@matter/node 0.11.0-alpha.0-20241005-e3e4e4a7a → 0.11.0-alpha.0-20241006-eccb81ae1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,8 +3,190 @@
3
3
  * Copyright 2022-2024 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- /*** THIS FILE WILL BE REGENERATED IF YOU DO NOT REMOVE THIS MESSAGE ***/
7
- import { ElectricalEnergyMeasurementBehavior } from "./ElectricalEnergyMeasurementBehavior.js";
6
+ import { ElectricalEnergyMeasurement } from "#clusters/electrical-energy-measurement";
7
+ import { ClusterType } from "#types";
8
+ declare const ElectricalEnergyMeasurementServerBase: import("../../index.js").ClusterBehavior.Type<import("#types").ClusterComposer.WithFeatures<ElectricalEnergyMeasurement.Complete, readonly [ElectricalEnergyMeasurement.Feature.CumulativeEnergy, ElectricalEnergyMeasurement.Feature.PeriodicEnergy, ElectricalEnergyMeasurement.Feature.ImportedEnergy, ElectricalEnergyMeasurement.Feature.ExportedEnergy]>, import("../../index.js").ClusterBehavior.Type<ElectricalEnergyMeasurement.Complete, import("../../index.js").ClusterBehavior.Type<ClusterType.Of<{
9
+ readonly id: 145;
10
+ readonly name: "ElectricalEnergyMeasurement";
11
+ readonly revision: 1;
12
+ readonly features: {
13
+ readonly importedEnergy: import("#types").BitFlag;
14
+ readonly exportedEnergy: import("#types").BitFlag;
15
+ readonly cumulativeEnergy: import("#types").BitFlag;
16
+ readonly periodicEnergy: import("#types").BitFlag;
17
+ };
18
+ readonly attributes: {
19
+ readonly accuracy: import("#types").FixedAttribute<import("#types").TypeFromFields<{
20
+ measurementType: import("#types").FieldType<import("#types").MeasurementType>;
21
+ measured: import("#types").FieldType<boolean>;
22
+ minMeasuredValue: import("#types").FieldType<number | bigint>;
23
+ maxMeasuredValue: import("#types").FieldType<number | bigint>;
24
+ accuracyRanges: import("#types").FieldType<import("#types").TypeFromFields<{
25
+ rangeMin: import("#types").FieldType<number | bigint>;
26
+ rangeMax: import("#types").FieldType<number | bigint>;
27
+ percentMax: import("#types").OptionalFieldType<number>;
28
+ percentMin: import("#types").OptionalFieldType<number>;
29
+ percentTypical: import("#types").OptionalFieldType<number>;
30
+ fixedMax: import("#types").OptionalFieldType<number | bigint>;
31
+ fixedMin: import("#types").OptionalFieldType<number | bigint>;
32
+ fixedTypical: import("#types").OptionalFieldType<number | bigint>;
33
+ }>[]>;
34
+ }>, any>;
35
+ };
36
+ readonly extensions: readonly [{
37
+ readonly flags: {
38
+ readonly importedEnergy: true;
39
+ readonly cumulativeEnergy: true;
40
+ };
41
+ readonly component: {
42
+ readonly attributes: {
43
+ readonly cumulativeEnergyImported: import("#types").Attribute<import("#types").TypeFromFields<{
44
+ energy: import("#types").FieldType<number | bigint>;
45
+ startTimestamp: import("#types").OptionalFieldType<number>;
46
+ endTimestamp: import("#types").OptionalFieldType<number>;
47
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
48
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
49
+ }> | null, any>;
50
+ };
51
+ };
52
+ }, {
53
+ readonly flags: {
54
+ readonly exportedEnergy: true;
55
+ readonly cumulativeEnergy: true;
56
+ };
57
+ readonly component: {
58
+ readonly attributes: {
59
+ readonly cumulativeEnergyExported: import("#types").Attribute<import("#types").TypeFromFields<{
60
+ energy: import("#types").FieldType<number | bigint>;
61
+ startTimestamp: import("#types").OptionalFieldType<number>;
62
+ endTimestamp: import("#types").OptionalFieldType<number>;
63
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
64
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
65
+ }> | null, any>;
66
+ };
67
+ };
68
+ }, {
69
+ readonly flags: {
70
+ readonly importedEnergy: true;
71
+ readonly periodicEnergy: true;
72
+ };
73
+ readonly component: {
74
+ readonly attributes: {
75
+ readonly periodicEnergyImported: import("#types").Attribute<import("#types").TypeFromFields<{
76
+ energy: import("#types").FieldType<number | bigint>;
77
+ startTimestamp: import("#types").OptionalFieldType<number>;
78
+ endTimestamp: import("#types").OptionalFieldType<number>;
79
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
80
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
81
+ }> | null, any>;
82
+ };
83
+ };
84
+ }, {
85
+ readonly flags: {
86
+ readonly exportedEnergy: true;
87
+ readonly periodicEnergy: true;
88
+ };
89
+ readonly component: {
90
+ readonly attributes: {
91
+ readonly periodicEnergyExported: import("#types").Attribute<import("#types").TypeFromFields<{
92
+ energy: import("#types").FieldType<number | bigint>;
93
+ startTimestamp: import("#types").OptionalFieldType<number>;
94
+ endTimestamp: import("#types").OptionalFieldType<number>;
95
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
96
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
97
+ }> | null, any>;
98
+ };
99
+ };
100
+ }, {
101
+ readonly flags: {
102
+ readonly cumulativeEnergy: true;
103
+ };
104
+ readonly component: {
105
+ readonly attributes: {
106
+ readonly cumulativeEnergyReset: import("#types").OptionalAttribute<import("#types").TypeFromFields<{
107
+ importedResetTimestamp: import("#types").OptionalFieldType<number | null>;
108
+ exportedResetTimestamp: import("#types").OptionalFieldType<number | null>;
109
+ importedResetSystime: import("#types").OptionalFieldType<number | bigint | null>;
110
+ exportedResetSystime: import("#types").OptionalFieldType<number | bigint | null>;
111
+ }> | null, any>;
112
+ };
113
+ readonly events: {
114
+ readonly cumulativeEnergyMeasured: import("#types").Event<import("#types").TypeFromFields<{
115
+ energyImported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
116
+ energy: import("#types").FieldType<number | bigint>;
117
+ startTimestamp: import("#types").OptionalFieldType<number>;
118
+ endTimestamp: import("#types").OptionalFieldType<number>;
119
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
120
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
121
+ }>>;
122
+ energyExported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
123
+ energy: import("#types").FieldType<number | bigint>;
124
+ startTimestamp: import("#types").OptionalFieldType<number>;
125
+ endTimestamp: import("#types").OptionalFieldType<number>;
126
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
127
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
128
+ }>>;
129
+ }>, any>;
130
+ };
131
+ };
132
+ }, {
133
+ readonly flags: {
134
+ readonly periodicEnergy: true;
135
+ };
136
+ readonly component: {
137
+ readonly events: {
138
+ readonly periodicEnergyMeasured: import("#types").Event<import("#types").TypeFromFields<{
139
+ energyImported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
140
+ energy: import("#types").FieldType<number | bigint>;
141
+ startTimestamp: import("#types").OptionalFieldType<number>;
142
+ endTimestamp: import("#types").OptionalFieldType<number>;
143
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
144
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
145
+ }>>;
146
+ energyExported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
147
+ energy: import("#types").FieldType<number | bigint>;
148
+ startTimestamp: import("#types").OptionalFieldType<number>;
149
+ endTimestamp: import("#types").OptionalFieldType<number>;
150
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
151
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
152
+ }>>;
153
+ }>, any>;
154
+ };
155
+ };
156
+ }, {
157
+ readonly flags: {
158
+ readonly importedEnergy: false;
159
+ readonly exportedEnergy: false;
160
+ };
161
+ readonly component: false;
162
+ }, {
163
+ readonly flags: {
164
+ readonly cumulativeEnergy: false;
165
+ readonly periodicEnergy: false;
166
+ };
167
+ readonly component: false;
168
+ }];
169
+ }>, typeof import("../../index.js").ClusterBehavior, {
170
+ components: never[];
171
+ }>, {
172
+ components: never[];
173
+ }>, {
174
+ components: never[];
175
+ }>;
176
+ /**
177
+ * Helper Type for setMeasurement method to be used to set the measurement values together and handle as an atomic set
178
+ * to also trigger single events for imported and exported energy values.
179
+ */
180
+ type AtomicElectricalEnergyMeasurement = {
181
+ cumulativeEnergy?: {
182
+ imported?: ElectricalEnergyMeasurement.EnergyMeasurement;
183
+ exported?: ElectricalEnergyMeasurement.EnergyMeasurement;
184
+ };
185
+ periodicEnergy?: {
186
+ imported?: ElectricalEnergyMeasurement.EnergyMeasurement;
187
+ exported?: ElectricalEnergyMeasurement.EnergyMeasurement;
188
+ };
189
+ };
8
190
  /**
9
191
  * This is the default server implementation of {@link ElectricalEnergyMeasurementBehavior}.
10
192
  *
@@ -12,6 +194,183 @@ import { ElectricalEnergyMeasurementBehavior } from "./ElectricalEnergyMeasureme
12
194
  * default. You should use {@link ElectricalEnergyMeasurementServer.with} to specialize the class for the features your
13
195
  * implementation supports.
14
196
  */
15
- export declare class ElectricalEnergyMeasurementServer extends ElectricalEnergyMeasurementBehavior {
197
+ export declare class ElectricalEnergyMeasurementServerLogic extends ElectricalEnergyMeasurementServerBase {
198
+ /**
199
+ * Convenience method to set the measurement values for the cluster in an atomic way. This method updates the
200
+ * attributes with the provided data and also sends the events for the imported and exported energy values.
201
+ */
202
+ setMeasurement(measurement: AtomicElectricalEnergyMeasurement): void;
203
+ }
204
+ export declare namespace ElectricalEnergyMeasurementServerLogic {
205
+ const ExtensionInterface: {
206
+ setMeasurement(measurement: AtomicElectricalEnergyMeasurement): void;
207
+ };
208
+ }
209
+ declare const ElectricalEnergyMeasurementServer_base: import("../../index.js").ClusterBehavior.Type<ClusterType.Of<{
210
+ readonly id: 145;
211
+ readonly name: "ElectricalEnergyMeasurement";
212
+ readonly revision: 1;
213
+ readonly features: {
214
+ readonly importedEnergy: import("#types").BitFlag;
215
+ readonly exportedEnergy: import("#types").BitFlag;
216
+ readonly cumulativeEnergy: import("#types").BitFlag;
217
+ readonly periodicEnergy: import("#types").BitFlag;
218
+ };
219
+ readonly attributes: {
220
+ readonly accuracy: import("#types").FixedAttribute<import("#types").TypeFromFields<{
221
+ measurementType: import("#types").FieldType<import("#types").MeasurementType>;
222
+ measured: import("#types").FieldType<boolean>;
223
+ minMeasuredValue: import("#types").FieldType<number | bigint>;
224
+ maxMeasuredValue: import("#types").FieldType<number | bigint>;
225
+ accuracyRanges: import("#types").FieldType<import("#types").TypeFromFields<{
226
+ rangeMin: import("#types").FieldType<number | bigint>;
227
+ rangeMax: import("#types").FieldType<number | bigint>;
228
+ percentMax: import("#types").OptionalFieldType<number>;
229
+ percentMin: import("#types").OptionalFieldType<number>;
230
+ percentTypical: import("#types").OptionalFieldType<number>;
231
+ fixedMax: import("#types").OptionalFieldType<number | bigint>;
232
+ fixedMin: import("#types").OptionalFieldType<number | bigint>;
233
+ fixedTypical: import("#types").OptionalFieldType<number | bigint>;
234
+ }>[]>;
235
+ }>, any>;
236
+ };
237
+ readonly extensions: readonly [{
238
+ readonly flags: {
239
+ readonly importedEnergy: true;
240
+ readonly cumulativeEnergy: true;
241
+ };
242
+ readonly component: {
243
+ readonly attributes: {
244
+ readonly cumulativeEnergyImported: import("#types").Attribute<import("#types").TypeFromFields<{
245
+ energy: import("#types").FieldType<number | bigint>;
246
+ startTimestamp: import("#types").OptionalFieldType<number>;
247
+ endTimestamp: import("#types").OptionalFieldType<number>;
248
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
249
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
250
+ }> | null, any>;
251
+ };
252
+ };
253
+ }, {
254
+ readonly flags: {
255
+ readonly exportedEnergy: true;
256
+ readonly cumulativeEnergy: true;
257
+ };
258
+ readonly component: {
259
+ readonly attributes: {
260
+ readonly cumulativeEnergyExported: import("#types").Attribute<import("#types").TypeFromFields<{
261
+ energy: import("#types").FieldType<number | bigint>;
262
+ startTimestamp: import("#types").OptionalFieldType<number>;
263
+ endTimestamp: import("#types").OptionalFieldType<number>;
264
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
265
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
266
+ }> | null, any>;
267
+ };
268
+ };
269
+ }, {
270
+ readonly flags: {
271
+ readonly importedEnergy: true;
272
+ readonly periodicEnergy: true;
273
+ };
274
+ readonly component: {
275
+ readonly attributes: {
276
+ readonly periodicEnergyImported: import("#types").Attribute<import("#types").TypeFromFields<{
277
+ energy: import("#types").FieldType<number | bigint>;
278
+ startTimestamp: import("#types").OptionalFieldType<number>;
279
+ endTimestamp: import("#types").OptionalFieldType<number>;
280
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
281
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
282
+ }> | null, any>;
283
+ };
284
+ };
285
+ }, {
286
+ readonly flags: {
287
+ readonly exportedEnergy: true;
288
+ readonly periodicEnergy: true;
289
+ };
290
+ readonly component: {
291
+ readonly attributes: {
292
+ readonly periodicEnergyExported: import("#types").Attribute<import("#types").TypeFromFields<{
293
+ energy: import("#types").FieldType<number | bigint>;
294
+ startTimestamp: import("#types").OptionalFieldType<number>;
295
+ endTimestamp: import("#types").OptionalFieldType<number>;
296
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
297
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
298
+ }> | null, any>;
299
+ };
300
+ };
301
+ }, {
302
+ readonly flags: {
303
+ readonly cumulativeEnergy: true;
304
+ };
305
+ readonly component: {
306
+ readonly attributes: {
307
+ readonly cumulativeEnergyReset: import("#types").OptionalAttribute<import("#types").TypeFromFields<{
308
+ importedResetTimestamp: import("#types").OptionalFieldType<number | null>;
309
+ exportedResetTimestamp: import("#types").OptionalFieldType<number | null>;
310
+ importedResetSystime: import("#types").OptionalFieldType<number | bigint | null>;
311
+ exportedResetSystime: import("#types").OptionalFieldType<number | bigint | null>;
312
+ }> | null, any>;
313
+ };
314
+ readonly events: {
315
+ readonly cumulativeEnergyMeasured: import("#types").Event<import("#types").TypeFromFields<{
316
+ energyImported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
317
+ energy: import("#types").FieldType<number | bigint>;
318
+ startTimestamp: import("#types").OptionalFieldType<number>;
319
+ endTimestamp: import("#types").OptionalFieldType<number>;
320
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
321
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
322
+ }>>;
323
+ energyExported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
324
+ energy: import("#types").FieldType<number | bigint>;
325
+ startTimestamp: import("#types").OptionalFieldType<number>;
326
+ endTimestamp: import("#types").OptionalFieldType<number>;
327
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
328
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
329
+ }>>;
330
+ }>, any>;
331
+ };
332
+ };
333
+ }, {
334
+ readonly flags: {
335
+ readonly periodicEnergy: true;
336
+ };
337
+ readonly component: {
338
+ readonly events: {
339
+ readonly periodicEnergyMeasured: import("#types").Event<import("#types").TypeFromFields<{
340
+ energyImported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
341
+ energy: import("#types").FieldType<number | bigint>;
342
+ startTimestamp: import("#types").OptionalFieldType<number>;
343
+ endTimestamp: import("#types").OptionalFieldType<number>;
344
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
345
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
346
+ }>>;
347
+ energyExported: import("#types").OptionalFieldType<import("#types").TypeFromFields<{
348
+ energy: import("#types").FieldType<number | bigint>;
349
+ startTimestamp: import("#types").OptionalFieldType<number>;
350
+ endTimestamp: import("#types").OptionalFieldType<number>;
351
+ startSystime: import("#types").OptionalFieldType<number | bigint>;
352
+ endSystime: import("#types").OptionalFieldType<number | bigint>;
353
+ }>>;
354
+ }>, any>;
355
+ };
356
+ };
357
+ }, {
358
+ readonly flags: {
359
+ readonly importedEnergy: false;
360
+ readonly exportedEnergy: false;
361
+ };
362
+ readonly component: false;
363
+ }, {
364
+ readonly flags: {
365
+ readonly cumulativeEnergy: false;
366
+ readonly periodicEnergy: false;
367
+ };
368
+ readonly component: false;
369
+ }];
370
+ }>, typeof ElectricalEnergyMeasurementServerLogic, {
371
+ components: never[];
372
+ }>;
373
+ export declare class ElectricalEnergyMeasurementServer extends ElectricalEnergyMeasurementServer_base {
16
374
  }
375
+ export {};
17
376
  //# sourceMappingURL=ElectricalEnergyMeasurementServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElectricalEnergyMeasurementServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/electrical-energy-measurement/ElectricalEnergyMeasurementServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yEAAyE;AAEzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAE/F;;;;;;GAMG;AACH,qBAAa,iCAAkC,SAAQ,mCAAmC;CAAG"}
1
+ {"version":3,"file":"ElectricalEnergyMeasurementServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/electrical-energy-measurement/ElectricalEnergyMeasurementServer.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,71 @@
3
3
  * Copyright 2022-2024 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ElectricalEnergyMeasurement } from "#clusters/electrical-energy-measurement";
7
+ import { ClusterType } from "#types";
6
8
  import { ElectricalEnergyMeasurementBehavior } from "./ElectricalEnergyMeasurementBehavior.js";
7
- class ElectricalEnergyMeasurementServer extends ElectricalEnergyMeasurementBehavior {
9
+ const ElectricalEnergyMeasurementServerBase = ElectricalEnergyMeasurementBehavior.for(
10
+ ElectricalEnergyMeasurement.Complete
11
+ ).with(
12
+ ElectricalEnergyMeasurement.Feature.CumulativeEnergy,
13
+ ElectricalEnergyMeasurement.Feature.PeriodicEnergy,
14
+ ElectricalEnergyMeasurement.Feature.ImportedEnergy,
15
+ ElectricalEnergyMeasurement.Feature.ExportedEnergy
16
+ );
17
+ class ElectricalEnergyMeasurementServerLogic extends ElectricalEnergyMeasurementServerBase {
18
+ /**
19
+ * Convenience method to set the measurement values for the cluster in an atomic way. This method updates the
20
+ * attributes with the provided data and also sends the events for the imported and exported energy values.
21
+ */
22
+ setMeasurement(measurement) {
23
+ if (this.features.cumulativeEnergy) {
24
+ const useImported = measurement.cumulativeEnergy?.imported !== void 0 && this.features.importedEnergy;
25
+ const useExported = measurement.cumulativeEnergy?.exported !== void 0 && this.features.exportedEnergy;
26
+ if (useImported) {
27
+ this.state.cumulativeEnergyImported = measurement.cumulativeEnergy.imported;
28
+ }
29
+ if (useExported) {
30
+ this.state.cumulativeEnergyExported = measurement.cumulativeEnergy.exported;
31
+ }
32
+ if (useImported || useExported) {
33
+ this.events.cumulativeEnergyMeasured?.emit(
34
+ {
35
+ energyImported: measurement.cumulativeEnergy?.imported,
36
+ energyExported: measurement.cumulativeEnergy?.exported
37
+ },
38
+ this.context
39
+ );
40
+ }
41
+ }
42
+ if (this.features.periodicEnergy) {
43
+ const useImported = measurement.periodicEnergy?.imported !== void 0 && this.features.importedEnergy;
44
+ const useExported = measurement.periodicEnergy?.exported !== void 0 && this.features.exportedEnergy;
45
+ if (useImported) {
46
+ this.state.periodicEnergyImported = measurement.periodicEnergy.imported;
47
+ }
48
+ if (useExported) {
49
+ this.state.periodicEnergyExported = measurement.periodicEnergy.exported;
50
+ }
51
+ if (useImported || useExported) {
52
+ this.events.periodicEnergyMeasured?.emit(
53
+ {
54
+ energyImported: measurement.periodicEnergy?.imported,
55
+ energyExported: measurement.periodicEnergy?.exported
56
+ },
57
+ this.context
58
+ );
59
+ }
60
+ }
61
+ }
62
+ }
63
+ ((ElectricalEnergyMeasurementServerLogic2) => {
64
+ })(ElectricalEnergyMeasurementServerLogic || (ElectricalEnergyMeasurementServerLogic = {}));
65
+ class ElectricalEnergyMeasurementServer extends ElectricalEnergyMeasurementServerLogic.for(
66
+ ClusterType(ElectricalEnergyMeasurement.Base)
67
+ ) {
8
68
  }
9
69
  export {
10
- ElectricalEnergyMeasurementServer
70
+ ElectricalEnergyMeasurementServer,
71
+ ElectricalEnergyMeasurementServerLogic
11
72
  };
12
73
  //# sourceMappingURL=ElectricalEnergyMeasurementServer.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/electrical-energy-measurement/ElectricalEnergyMeasurementServer.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,2CAA2C;AAS7C,MAAM,0CAA0C,oCAAoC;AAAC;",
5
- "names": []
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,mCAAmC;AAC5C,SAAS,mBAAmB;AAC5B,SAAS,2CAA2C;AAEpD,MAAM,wCAAwC,oCAAoC;AAAA,EAC9E,4BAA4B;AAChC,EAAE;AAAA,EACE,4BAA4B,QAAQ;AAAA,EACpC,4BAA4B,QAAQ;AAAA,EACpC,4BAA4B,QAAQ;AAAA,EACpC,4BAA4B,QAAQ;AACxC;AAwBO,MAAM,+CAA+C,sCAAsC;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9F,eAAe,aAAgD;AAC3D,QAAI,KAAK,SAAS,kBAAkB;AAChC,YAAM,cAAc,YAAY,kBAAkB,aAAa,UAAa,KAAK,SAAS;AAC1F,YAAM,cAAc,YAAY,kBAAkB,aAAa,UAAa,KAAK,SAAS;AAC1F,UAAI,aAAa;AACb,aAAK,MAAM,2BAA2B,YAAY,iBAAkB;AAAA,MACxE;AACA,UAAI,aAAa;AACb,aAAK,MAAM,2BAA2B,YAAY,iBAAkB;AAAA,MACxE;AACA,UAAI,eAAe,aAAa;AAC5B,aAAK,OAAO,0BAA0B;AAAA,UAClC;AAAA,YACI,gBAAgB,YAAY,kBAAkB;AAAA,YAC9C,gBAAgB,YAAY,kBAAkB;AAAA,UAClD;AAAA,UACA,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,KAAK,SAAS,gBAAgB;AAC9B,YAAM,cAAc,YAAY,gBAAgB,aAAa,UAAa,KAAK,SAAS;AACxF,YAAM,cAAc,YAAY,gBAAgB,aAAa,UAAa,KAAK,SAAS;AACxF,UAAI,aAAa;AACb,aAAK,MAAM,yBAAyB,YAAY,eAAgB;AAAA,MACpE;AACA,UAAI,aAAa;AACb,aAAK,MAAM,yBAAyB,YAAY,eAAgB;AAAA,MACpE;AACA,UAAI,eAAe,aAAa;AAC5B,aAAK,OAAO,wBAAwB;AAAA,UAChC;AAAA,YACI,gBAAgB,YAAY,gBAAgB;AAAA,YAC5C,gBAAgB,YAAY,gBAAgB;AAAA,UAChD;AAAA,UACA,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,4CAAV;AAAA,GAAU;AAOV,MAAM,0CAA0C,uCAAuC;AAAA,EAC1F,YAAY,4BAA4B,IAAI;AAChD,EAAE;AAAC;",
5
+ "names": ["ElectricalEnergyMeasurementServerLogic"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.11.0-alpha.0-20241005-e3e4e4a7a",
3
+ "version": "0.11.0-alpha.0-20241006-eccb81ae1",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -43,13 +43,13 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@noble/curves": "^1.5.0",
46
- "@matter/general": "0.11.0-alpha.0-20241005-e3e4e4a7a",
47
- "@matter/model": "0.11.0-alpha.0-20241005-e3e4e4a7a",
48
- "@matter/types": "0.11.0-alpha.0-20241005-e3e4e4a7a",
49
- "@matter/protocol": "0.11.0-alpha.0-20241005-e3e4e4a7a"
46
+ "@matter/general": "0.11.0-alpha.0-20241006-eccb81ae1",
47
+ "@matter/model": "0.11.0-alpha.0-20241006-eccb81ae1",
48
+ "@matter/types": "0.11.0-alpha.0-20241006-eccb81ae1",
49
+ "@matter/protocol": "0.11.0-alpha.0-20241006-eccb81ae1"
50
50
  },
51
51
  "devDependencies": {
52
- "@matter/tools": "0.11.0-alpha.0-20241005-e3e4e4a7a"
52
+ "@matter/tools": "0.11.0-alpha.0-20241006-eccb81ae1"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -4,10 +4,34 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- /*** THIS FILE WILL BE REGENERATED IF YOU DO NOT REMOVE THIS MESSAGE ***/
8
-
7
+ import { ElectricalEnergyMeasurement } from "#clusters/electrical-energy-measurement";
8
+ import { ClusterType } from "#types";
9
9
  import { ElectricalEnergyMeasurementBehavior } from "./ElectricalEnergyMeasurementBehavior.js";
10
10
 
11
+ const ElectricalEnergyMeasurementServerBase = ElectricalEnergyMeasurementBehavior.for(
12
+ ElectricalEnergyMeasurement.Complete,
13
+ ).with(
14
+ ElectricalEnergyMeasurement.Feature.CumulativeEnergy,
15
+ ElectricalEnergyMeasurement.Feature.PeriodicEnergy,
16
+ ElectricalEnergyMeasurement.Feature.ImportedEnergy,
17
+ ElectricalEnergyMeasurement.Feature.ExportedEnergy,
18
+ );
19
+
20
+ /**
21
+ * Helper Type for setMeasurement method to be used to set the measurement values together and handle as an atomic set
22
+ * to also trigger single events for imported and exported energy values.
23
+ */
24
+ type AtomicElectricalEnergyMeasurement = {
25
+ cumulativeEnergy?: {
26
+ imported?: ElectricalEnergyMeasurement.EnergyMeasurement;
27
+ exported?: ElectricalEnergyMeasurement.EnergyMeasurement;
28
+ };
29
+ periodicEnergy?: {
30
+ imported?: ElectricalEnergyMeasurement.EnergyMeasurement;
31
+ exported?: ElectricalEnergyMeasurement.EnergyMeasurement;
32
+ };
33
+ };
34
+
11
35
  /**
12
36
  * This is the default server implementation of {@link ElectricalEnergyMeasurementBehavior}.
13
37
  *
@@ -15,4 +39,60 @@ import { ElectricalEnergyMeasurementBehavior } from "./ElectricalEnergyMeasureme
15
39
  * default. You should use {@link ElectricalEnergyMeasurementServer.with} to specialize the class for the features your
16
40
  * implementation supports.
17
41
  */
18
- export class ElectricalEnergyMeasurementServer extends ElectricalEnergyMeasurementBehavior {}
42
+ export class ElectricalEnergyMeasurementServerLogic extends ElectricalEnergyMeasurementServerBase {
43
+ /**
44
+ * Convenience method to set the measurement values for the cluster in an atomic way. This method updates the
45
+ * attributes with the provided data and also sends the events for the imported and exported energy values.
46
+ */
47
+ setMeasurement(measurement: AtomicElectricalEnergyMeasurement) {
48
+ if (this.features.cumulativeEnergy) {
49
+ const useImported = measurement.cumulativeEnergy?.imported !== undefined && this.features.importedEnergy;
50
+ const useExported = measurement.cumulativeEnergy?.exported !== undefined && this.features.exportedEnergy;
51
+ if (useImported) {
52
+ this.state.cumulativeEnergyImported = measurement.cumulativeEnergy!.imported;
53
+ }
54
+ if (useExported) {
55
+ this.state.cumulativeEnergyExported = measurement.cumulativeEnergy!.exported;
56
+ }
57
+ if (useImported || useExported) {
58
+ this.events.cumulativeEnergyMeasured?.emit(
59
+ {
60
+ energyImported: measurement.cumulativeEnergy?.imported,
61
+ energyExported: measurement.cumulativeEnergy?.exported,
62
+ },
63
+ this.context,
64
+ );
65
+ }
66
+ }
67
+ if (this.features.periodicEnergy) {
68
+ const useImported = measurement.periodicEnergy?.imported !== undefined && this.features.importedEnergy;
69
+ const useExported = measurement.periodicEnergy?.exported !== undefined && this.features.exportedEnergy;
70
+ if (useImported) {
71
+ this.state.periodicEnergyImported = measurement.periodicEnergy!.imported;
72
+ }
73
+ if (useExported) {
74
+ this.state.periodicEnergyExported = measurement.periodicEnergy!.exported;
75
+ }
76
+ if (useImported || useExported) {
77
+ this.events.periodicEnergyMeasured?.emit(
78
+ {
79
+ energyImported: measurement.periodicEnergy?.imported,
80
+ energyExported: measurement.periodicEnergy?.exported,
81
+ },
82
+ this.context,
83
+ );
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ export namespace ElectricalEnergyMeasurementServerLogic {
90
+ export declare const ExtensionInterface: {
91
+ setMeasurement(measurement: AtomicElectricalEnergyMeasurement): void;
92
+ };
93
+ }
94
+
95
+ // Reset all Features
96
+ export class ElectricalEnergyMeasurementServer extends ElectricalEnergyMeasurementServerLogic.for(
97
+ ClusterType(ElectricalEnergyMeasurement.Base),
98
+ ) {}