@matterbridge/core 3.7.10 → 3.8.0-dev-20260524-eed6b4a

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.
Files changed (52) hide show
  1. package/dist/behaviors/activatedCarbonFilterMonitoringServer.d.ts +5 -2
  2. package/dist/behaviors/bindingServer.js +0 -2
  3. package/dist/behaviors/booleanStateConfigurationServer.d.ts +6 -1
  4. package/dist/behaviors/colorControlServer.d.ts +20 -774
  5. package/dist/behaviors/deviceEnergyManagementServer.d.ts +9 -299
  6. package/dist/behaviors/doorLockServer.d.ts +29 -47
  7. package/dist/behaviors/doorLockServer.js +11 -299
  8. package/dist/behaviors/fanControlServer.d.ts +8 -1
  9. package/dist/behaviors/hepaFilterMonitoringServer.d.ts +5 -2
  10. package/dist/behaviors/smokeCoAlarmServer.d.ts +4 -77
  11. package/dist/behaviors/thermostatServer.d.ts +20 -722
  12. package/dist/behaviors/valveConfigurationAndControlServer.d.ts +4 -1
  13. package/dist/behaviors/windowCoveringServer.d.ts +28 -564
  14. package/dist/clusters/closure-control.d.ts +130 -620
  15. package/dist/clusters/closure-control.js +15 -170
  16. package/dist/clusters/closure-dimension.d.ts +148 -814
  17. package/dist/clusters/closure-dimension.js +15 -202
  18. package/dist/clusters/export.d.ts +1 -3
  19. package/dist/clusters/export.js +1 -3
  20. package/dist/clusters/soil-measurement.d.ts +31 -31
  21. package/dist/clusters/soil-measurement.js +29 -19
  22. package/dist/devices/closure.d.ts +14 -291
  23. package/dist/devices/closure.js +6 -13
  24. package/dist/devices/closurePanel.d.ts +13 -370
  25. package/dist/devices/closurePanel.js +9 -15
  26. package/dist/devices/evse.d.ts +7 -1
  27. package/dist/devices/heatPump.js +5 -5
  28. package/dist/devices/irrigationSystem.js +2 -2
  29. package/dist/devices/microwaveOven.d.ts +5 -76
  30. package/dist/devices/roboticVacuumCleaner.js +5 -5
  31. package/dist/devices/soilSensor.d.ts +0 -15
  32. package/dist/devices/soilSensor.js +4 -20
  33. package/dist/devices/temperatureControl.d.ts +10 -130
  34. package/dist/frontend.js +9 -9
  35. package/dist/helpers.js +0 -8
  36. package/dist/jestutils/jestBroadcastServerSpy.d.ts +2 -2
  37. package/dist/jestutils/jestMatterTest.js +4 -4
  38. package/dist/jestutils/jestMatterbridgeEndpointSpy.d.ts +34 -37
  39. package/dist/jestutils/jestMatterbridgePlatformSpy.d.ts +4 -4
  40. package/dist/jestutils/jestMatterbridgeTest.js +1 -1
  41. package/dist/matter/export.d.ts +11 -0
  42. package/dist/matter/export.js +11 -0
  43. package/dist/matterbridge.d.ts +3 -0
  44. package/dist/matterbridge.js +10 -4
  45. package/dist/matterbridgeDeviceTypes.d.ts +15 -0
  46. package/dist/matterbridgeDeviceTypes.js +305 -162
  47. package/dist/matterbridgeEndpoint.d.ts +35 -25
  48. package/dist/matterbridgeEndpoint.js +6 -7
  49. package/dist/matterbridgeEndpointCommandHandler.d.ts +3 -59
  50. package/dist/matterbridgeEndpointHelpers.d.ts +83 -1382
  51. package/dist/matterbridgeEndpointHelpers.js +20 -5
  52. package/package.json +8 -8
@@ -1,374 +1,17 @@
1
- import { ClusterBehavior } from '@matter/node';
2
- import { ClusterType } from '@matter/types';
3
- import { ClosureDimension } from '../clusters/closure-dimension.js';
1
+ import { ClosureDimensionServer } from '@matter/node/behaviors/closure-dimension';
2
+ import { ClosureDimension } from '@matter/types/clusters/closure-dimension';
4
3
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
5
- export declare namespace ClosureDimensionServer {
6
- interface State {
7
- currentState: ClosureDimension.DimensionState | null;
8
- targetState: ClosureDimension.DimensionState | null;
9
- resolution: number;
10
- stepValue: number;
11
- }
12
- }
13
- declare const ClosureDimensionServer_base: ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<ClusterType.Of<{
14
- readonly id: 261;
15
- readonly name: "ClosureDimension";
16
- readonly revision: 1;
17
- readonly features: {
18
- readonly positioning: import("@matter/types").BitFlag;
19
- readonly motionLatching: import("@matter/types").BitFlag;
20
- readonly unit: import("@matter/types").BitFlag;
21
- readonly limitation: import("@matter/types").BitFlag;
22
- readonly speed: import("@matter/types").BitFlag;
23
- readonly translation: import("@matter/types").BitFlag;
24
- readonly rotation: import("@matter/types").BitFlag;
25
- readonly modulation: import("@matter/types").BitFlag;
26
- };
27
- readonly attributes: {
28
- readonly currentState: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
29
- position: import("@matter/types").OptionalFieldType<number | null>;
30
- latch: import("@matter/types").OptionalFieldType<boolean | null>;
31
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
32
- }> | null, any>;
33
- readonly targetState: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
34
- position: import("@matter/types").OptionalFieldType<number | null>;
35
- latch: import("@matter/types").OptionalFieldType<boolean | null>;
36
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
37
- }> | null, any>;
38
- };
39
- readonly commands: {
40
- readonly setTarget: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
41
- position: import("@matter/types").OptionalFieldType<number>;
42
- latch: import("@matter/types").OptionalFieldType<boolean>;
43
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
44
- }>, void, any>;
45
- };
46
- readonly extensions: readonly [{
47
- readonly flags: {
48
- readonly positioning: true;
49
- };
50
- readonly component: {
51
- readonly attributes: {
52
- readonly resolution: import("@matter/types").FixedAttribute<number, any>;
53
- readonly stepValue: import("@matter/types").FixedAttribute<number, any>;
54
- };
55
- readonly commands: {
56
- readonly step: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
57
- direction: import("@matter/types").FieldType<ClosureDimension.StepDirection>;
58
- numberOfSteps: import("@matter/types").FieldType<number>;
59
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
60
- }>, void, any>;
61
- };
62
- };
63
- }, {
64
- readonly flags: {
65
- readonly motionLatching: true;
66
- };
67
- readonly component: {
68
- readonly attributes: {
69
- readonly latchControlModes: import("@matter/types").FixedAttribute<import("@matter/types").TypeFromPartialBitSchema<{
70
- remoteLatching: import("@matter/types").BitFlag;
71
- remoteUnlatching: import("@matter/types").BitFlag;
72
- }>, any>;
73
- };
74
- };
75
- }, {
76
- readonly flags: {
77
- readonly unit: true;
78
- };
79
- readonly component: {
80
- readonly attributes: {
81
- readonly unit: import("@matter/types").FixedAttribute<ClosureDimension.ClosureUnit, any>;
82
- readonly unitRange: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
83
- min: import("@matter/types").FieldType<number>;
84
- max: import("@matter/types").FieldType<number>;
85
- }> | null, any>;
86
- };
87
- };
88
- }, {
89
- readonly flags: {
90
- readonly limitation: true;
91
- };
92
- readonly component: {
93
- readonly attributes: {
94
- readonly limitRange: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
95
- min: import("@matter/types").FieldType<number>;
96
- max: import("@matter/types").FieldType<number>;
97
- }>, any>;
98
- };
99
- };
100
- }, {
101
- readonly flags: {
102
- readonly translation: true;
103
- };
104
- readonly component: {
105
- readonly attributes: {
106
- readonly translationDirection: import("@matter/types").FixedAttribute<ClosureDimension.TranslationDirection, any>;
107
- };
108
- };
109
- }, {
110
- readonly flags: {
111
- readonly rotation: true;
112
- };
113
- readonly component: {
114
- readonly attributes: {
115
- readonly rotationAxis: import("@matter/types").FixedAttribute<ClosureDimension.RotationAxis, any>;
116
- readonly overflow: import("@matter/types").FixedAttribute<ClosureDimension.Overflow, any>;
117
- };
118
- };
119
- }, {
120
- readonly flags: {
121
- readonly modulation: true;
122
- };
123
- readonly component: {
124
- readonly attributes: {
125
- readonly modulationType: import("@matter/types").FixedAttribute<ClosureDimension.ModulationType, any>;
126
- };
127
- };
128
- }, {
129
- readonly flags: {
130
- readonly positioning: false;
131
- readonly motionLatching: false;
132
- };
133
- readonly component: false;
134
- }, {
135
- readonly flags: {
136
- readonly unit: true;
137
- readonly positioning: false;
138
- };
139
- readonly component: false;
140
- }, {
141
- readonly flags: {
142
- readonly limitation: true;
143
- readonly positioning: false;
144
- };
145
- readonly component: false;
146
- }, {
147
- readonly flags: {
148
- readonly speed: true;
149
- readonly positioning: false;
150
- };
151
- readonly component: false;
152
- }, {
153
- readonly flags: {
154
- readonly translation: true;
155
- readonly positioning: false;
156
- };
157
- readonly component: false;
158
- }, {
159
- readonly flags: {
160
- readonly rotation: true;
161
- readonly positioning: false;
162
- };
163
- readonly component: false;
164
- }, {
165
- readonly flags: {
166
- readonly modulation: true;
167
- readonly positioning: false;
168
- };
169
- readonly component: false;
170
- }, {
171
- readonly flags: {
172
- readonly translation: true;
173
- readonly rotation: true;
174
- };
175
- readonly component: false;
176
- }, {
177
- readonly flags: {
178
- readonly translation: true;
179
- readonly modulation: true;
180
- };
181
- readonly component: false;
182
- }, {
183
- readonly flags: {
184
- readonly rotation: true;
185
- readonly modulation: true;
186
- };
187
- readonly component: false;
188
- }];
189
- }>, readonly [ClosureDimension.Feature.Positioning]>, ClusterBehavior.Type<ClusterType.Of<{
190
- readonly id: 261;
191
- readonly name: "ClosureDimension";
192
- readonly revision: 1;
193
- readonly features: {
194
- readonly positioning: import("@matter/types").BitFlag;
195
- readonly motionLatching: import("@matter/types").BitFlag;
196
- readonly unit: import("@matter/types").BitFlag;
197
- readonly limitation: import("@matter/types").BitFlag;
198
- readonly speed: import("@matter/types").BitFlag;
199
- readonly translation: import("@matter/types").BitFlag;
200
- readonly rotation: import("@matter/types").BitFlag;
201
- readonly modulation: import("@matter/types").BitFlag;
202
- };
203
- readonly attributes: {
204
- readonly currentState: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
205
- position: import("@matter/types").OptionalFieldType<number | null>;
206
- latch: import("@matter/types").OptionalFieldType<boolean | null>;
207
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
208
- }> | null, any>;
209
- readonly targetState: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
210
- position: import("@matter/types").OptionalFieldType<number | null>;
211
- latch: import("@matter/types").OptionalFieldType<boolean | null>;
212
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
213
- }> | null, any>;
214
- };
215
- readonly commands: {
216
- readonly setTarget: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
217
- position: import("@matter/types").OptionalFieldType<number>;
218
- latch: import("@matter/types").OptionalFieldType<boolean>;
219
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
220
- }>, void, any>;
221
- };
222
- readonly extensions: readonly [{
223
- readonly flags: {
224
- readonly positioning: true;
225
- };
226
- readonly component: {
227
- readonly attributes: {
228
- readonly resolution: import("@matter/types").FixedAttribute<number, any>;
229
- readonly stepValue: import("@matter/types").FixedAttribute<number, any>;
230
- };
231
- readonly commands: {
232
- readonly step: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
233
- direction: import("@matter/types").FieldType<ClosureDimension.StepDirection>;
234
- numberOfSteps: import("@matter/types").FieldType<number>;
235
- speed: import("@matter/types").OptionalFieldType<import("@matter/types").ThreeLevelAuto>;
236
- }>, void, any>;
237
- };
238
- };
239
- }, {
240
- readonly flags: {
241
- readonly motionLatching: true;
242
- };
243
- readonly component: {
244
- readonly attributes: {
245
- readonly latchControlModes: import("@matter/types").FixedAttribute<import("@matter/types").TypeFromPartialBitSchema<{
246
- remoteLatching: import("@matter/types").BitFlag;
247
- remoteUnlatching: import("@matter/types").BitFlag;
248
- }>, any>;
249
- };
250
- };
251
- }, {
252
- readonly flags: {
253
- readonly unit: true;
254
- };
255
- readonly component: {
256
- readonly attributes: {
257
- readonly unit: import("@matter/types").FixedAttribute<ClosureDimension.ClosureUnit, any>;
258
- readonly unitRange: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
259
- min: import("@matter/types").FieldType<number>;
260
- max: import("@matter/types").FieldType<number>;
261
- }> | null, any>;
262
- };
263
- };
264
- }, {
265
- readonly flags: {
266
- readonly limitation: true;
267
- };
268
- readonly component: {
269
- readonly attributes: {
270
- readonly limitRange: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
271
- min: import("@matter/types").FieldType<number>;
272
- max: import("@matter/types").FieldType<number>;
273
- }>, any>;
274
- };
275
- };
276
- }, {
277
- readonly flags: {
278
- readonly translation: true;
279
- };
280
- readonly component: {
281
- readonly attributes: {
282
- readonly translationDirection: import("@matter/types").FixedAttribute<ClosureDimension.TranslationDirection, any>;
283
- };
284
- };
285
- }, {
286
- readonly flags: {
287
- readonly rotation: true;
288
- };
289
- readonly component: {
290
- readonly attributes: {
291
- readonly rotationAxis: import("@matter/types").FixedAttribute<ClosureDimension.RotationAxis, any>;
292
- readonly overflow: import("@matter/types").FixedAttribute<ClosureDimension.Overflow, any>;
293
- };
294
- };
295
- }, {
296
- readonly flags: {
297
- readonly modulation: true;
298
- };
299
- readonly component: {
300
- readonly attributes: {
301
- readonly modulationType: import("@matter/types").FixedAttribute<ClosureDimension.ModulationType, any>;
302
- };
303
- };
304
- }, {
305
- readonly flags: {
306
- readonly positioning: false;
307
- readonly motionLatching: false;
308
- };
309
- readonly component: false;
310
- }, {
311
- readonly flags: {
312
- readonly unit: true;
313
- readonly positioning: false;
314
- };
315
- readonly component: false;
316
- }, {
317
- readonly flags: {
318
- readonly limitation: true;
319
- readonly positioning: false;
320
- };
321
- readonly component: false;
322
- }, {
323
- readonly flags: {
324
- readonly speed: true;
325
- readonly positioning: false;
326
- };
327
- readonly component: false;
328
- }, {
329
- readonly flags: {
330
- readonly translation: true;
331
- readonly positioning: false;
332
- };
333
- readonly component: false;
334
- }, {
335
- readonly flags: {
336
- readonly rotation: true;
337
- readonly positioning: false;
338
- };
339
- readonly component: false;
340
- }, {
341
- readonly flags: {
342
- readonly modulation: true;
343
- readonly positioning: false;
344
- };
345
- readonly component: false;
346
- }, {
347
- readonly flags: {
348
- readonly translation: true;
349
- readonly rotation: true;
350
- };
351
- readonly component: false;
352
- }, {
353
- readonly flags: {
354
- readonly translation: true;
355
- readonly modulation: true;
356
- };
357
- readonly component: false;
358
- }, {
359
- readonly flags: {
360
- readonly rotation: true;
361
- readonly modulation: true;
362
- };
363
- readonly component: false;
364
- }];
365
- }>, typeof ClusterBehavior, {
366
- components: never[];
367
- }>, {
368
- components: never[];
369
- }>;
370
- export declare class ClosureDimensionServer extends ClosureDimensionServer_base {
371
- state: ClosureDimensionServer.State;
4
+ declare const MatterbridgeClosureDimensionServer_base: import("@matter/node").ClusterBehavior.Type<typeof ClosureDimensionServer, import("@matter/types").ClusterType.WithSupportedFeatures<ClosureDimension, {
5
+ unit: false;
6
+ speed: true;
7
+ positioning: true;
8
+ motionLatching: true;
9
+ limitation: false;
10
+ translation: false;
11
+ rotation: false;
12
+ modulation: false;
13
+ }>, import("@matter/types").ClusterType.Concrete, new () => {}, "closureDimension">;
14
+ export declare class MatterbridgeClosureDimensionServer extends MatterbridgeClosureDimensionServer_base {
372
15
  setTarget: (request: ClosureDimension.SetTargetRequest) => Promise<void>;
373
16
  step: (request: ClosureDimension.StepRequest) => Promise<void>;
374
17
  }
@@ -1,17 +1,10 @@
1
- import { AttributeElement, ClusterElement, ClusterModel, CommandElement, DatatypeElement, FieldElement } from '@matter/main/model';
2
- import { ClusterBehavior } from '@matter/node';
3
- import { ClusterType } from '@matter/types';
1
+ import { ClosureDimensionServer } from '@matter/node/behaviors/closure-dimension';
2
+ import { ClosureDimension } from '@matter/types/clusters/closure-dimension';
3
+ import { ThreeLevelAuto } from '@matter/types/globals';
4
4
  import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
5
- import { ClosureDimension } from '../clusters/closure-dimension.js';
6
5
  import { closurePanel } from '../matterbridgeDeviceTypes.js';
7
6
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
8
- const ClosureDimensionSchema = ClusterElement({
9
- id: ClosureDimension.Cluster.id,
10
- name: ClosureDimension.Cluster.name,
11
- classification: 'application',
12
- }, AttributeElement({ id: 0xfffd, name: 'ClusterRevision', type: 'ClusterRevision', conformance: 'M', default: ClosureDimension.Base.revision }), AttributeElement({ id: 0xfffc, name: 'FeatureMap', type: 'FeatureMap', conformance: 'M' }, FieldElement({ name: 'POS', constraint: '0', title: 'Positioning' }), FieldElement({ name: 'ML', constraint: '1', title: 'MotionLatching' }), FieldElement({ name: 'UNI', constraint: '2', title: 'Unit' }), FieldElement({ name: 'LIM', constraint: '3', title: 'Limitation' }), FieldElement({ name: 'SPD', constraint: '4', title: 'Speed' }), FieldElement({ name: 'TRN', constraint: '5', title: 'Translation' }), FieldElement({ name: 'ROT', constraint: '6', title: 'Rotation' }), FieldElement({ name: 'MOD', constraint: '7', title: 'Modulation' })), AttributeElement({ name: 'CurrentState', id: 0x0000, type: 'DimensionStateStruct', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'TargetState', id: 0x0001, type: 'DimensionStateStruct', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'Resolution', id: 0x0002, type: 'percent100ths', conformance: 'POS', default: 1 }), AttributeElement({ name: 'StepValue', id: 0x0003, type: 'percent100ths', conformance: 'POS', default: 1 }), CommandElement({ name: 'SetTarget', id: 0x0000, conformance: 'M', direction: 'request', response: 'status' }, FieldElement({ name: 'Position', id: 0, type: 'percent100ths', conformance: 'O' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), CommandElement({ name: 'Step', id: 0x0001, conformance: 'POS', direction: 'request', response: 'status' }, FieldElement({ name: 'Direction', id: 0, type: 'StepDirectionEnum', conformance: 'M' }), FieldElement({ name: 'NumberOfSteps', id: 1, type: 'uint16', conformance: 'M', constraint: { min: 1 } }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), DatatypeElement({ name: 'StepDirectionEnum', type: 'enum8' }, FieldElement({ name: 'Decrease', id: 0, conformance: 'M' }), FieldElement({ name: 'Increase', id: 1, conformance: 'M' })), DatatypeElement({ name: 'DimensionStateStruct', type: 'struct' }, FieldElement({ name: 'Position', id: 0, type: 'percent100ths', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })));
13
- const ClosureDimensionBehavior = ClusterBehavior.for(ClusterType(ClosureDimension.Base), new ClusterModel(ClosureDimensionSchema));
14
- export class ClosureDimensionServer extends ClosureDimensionBehavior.with(ClosureDimension.Feature.Positioning) {
7
+ export class MatterbridgeClosureDimensionServer extends ClosureDimensionServer.with(ClosureDimension.Feature.Positioning, ClosureDimension.Feature.MotionLatching, ClosureDimension.Feature.Speed) {
15
8
  setTarget = async (request) => {
16
9
  const device = this.endpoint.stateOf(MatterbridgeServer);
17
10
  device.log.info(`SetTarget (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
@@ -27,7 +20,7 @@ export class ClosureDimensionServer extends ClosureDimensionBehavior.with(Closur
27
20
  ...previousTarget,
28
21
  ...(request?.position !== undefined ? { position: request.position } : null),
29
22
  ...(request?.latch !== undefined ? { latch: request.latch } : null),
30
- ...(request?.speed !== undefined ? { speed: request.speed } : null),
23
+ speed: request?.speed ?? previousTarget.speed ?? ThreeLevelAuto.Auto,
31
24
  };
32
25
  this.state.targetState = nextTarget;
33
26
  };
@@ -50,19 +43,20 @@ export class ClosureDimensionServer extends ClosureDimensionBehavior.with(Closur
50
43
  const currentPosition = typeof previousCurrent.position === 'number' ? previousCurrent.position : typeof previousTarget.position === 'number' ? previousTarget.position : 0;
51
44
  let nextPosition = isIncrease ? currentPosition + delta : currentPosition - delta;
52
45
  nextPosition = Math.max(0, Math.min(10000, nextPosition));
46
+ const speed = request?.speed ?? previousCurrent.speed ?? previousTarget.speed ?? ThreeLevelAuto.Auto;
53
47
  this.state.currentState = {
54
48
  ...previousCurrent,
55
49
  position: nextPosition,
56
- ...(request?.speed !== undefined ? { speed: request.speed } : null),
50
+ speed,
57
51
  };
58
- this.state.targetState = { ...previousTarget, position: nextPosition };
52
+ this.state.targetState = { ...previousTarget, position: nextPosition, speed };
59
53
  };
60
54
  }
61
55
  export class ClosurePanel extends MatterbridgeEndpoint {
62
56
  constructor(name, serial, options = {}) {
63
57
  super([closurePanel], { id: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` });
64
58
  this.createDefaultBasicInformationClusterServer(name, serial, 0xfff1, 'Matterbridge', 0x8000, 'Matterbridge Closure Panel');
65
- this.behaviors.require(ClosureDimensionServer, {
59
+ this.behaviors.require(MatterbridgeClosureDimensionServer, {
66
60
  currentState: null,
67
61
  targetState: null,
68
62
  resolution: options.resolution ?? 1,
@@ -10,7 +10,13 @@ export declare class Evse extends MatterbridgeEndpoint {
10
10
  createDefaultEnergyEvseClusterServer(state?: EnergyEvse.State, supplyState?: EnergyEvse.SupplyState, faultState?: EnergyEvse.FaultState): this;
11
11
  createDefaultEnergyEvseModeClusterServer(currentMode?: number, supportedModes?: EnergyEvseMode.ModeOption[]): this;
12
12
  }
13
- declare const MatterbridgeEnergyEvseServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<EnergyEvse.Cluster, readonly [EnergyEvse.Feature.ChargingPreferences]>, typeof EnergyEvseServer, import("@matter/node/behaviors/energy-evse").EnergyEvseInterface>;
13
+ declare const MatterbridgeEnergyEvseServer_base: import("@matter/node").ClusterBehavior.Type<typeof EnergyEvseServer, import("@matter/types").ClusterType.WithSupportedFeatures<EnergyEvse, {
14
+ rfid: false;
15
+ chargingPreferences: true;
16
+ soCReporting: false;
17
+ plugAndCharge: false;
18
+ v2X: false;
19
+ }>, import("@matter/types").ClusterType.Concrete, new () => {}, "energyEvse">;
14
20
  export declare class MatterbridgeEnergyEvseServer extends MatterbridgeEnergyEvseServer_base {
15
21
  disable(): Promise<void>;
16
22
  enableCharging(request: EnergyEvse.EnableChargingRequest): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { AreaNamespaceTag, NumberTag, PowerSourceTag } from '@matter/node';
1
+ import { CommonAreaNamespaceTag, CommonNumberTag, PowerSourceTag } from '@matter/node';
2
2
  import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
3
3
  import { deviceEnergyManagement, electricalSensor, heatPump, powerSource, temperatureSensor, thermostatDevice } from '../matterbridgeDeviceTypes.js';
4
4
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
@@ -19,24 +19,24 @@ export class HeatPump extends MatterbridgeEndpoint {
19
19
  .createDefaultDeviceEnergyManagementModeClusterServer()
20
20
  .addRequiredClusterServers();
21
21
  this.addChildDeviceType('FlowTemperature', temperatureSensor, {
22
- tagList: [getSemtag(NumberTag.One, 'FlowTemperature')],
22
+ tagList: [getSemtag(CommonNumberTag.One, 'FlowTemperature')],
23
23
  })
24
24
  .createDefaultTemperatureMeasurementClusterServer(4500)
25
25
  .addRequiredClusterServers();
26
26
  this.addChildDeviceType('ReturnTemperature', temperatureSensor, {
27
- tagList: [getSemtag(NumberTag.Two, 'ReturnTemperature')],
27
+ tagList: [getSemtag(CommonNumberTag.Two, 'ReturnTemperature')],
28
28
  })
29
29
  .createDefaultTemperatureMeasurementClusterServer(3500)
30
30
  .addRequiredClusterServers();
31
31
  this.addChildDeviceType('LivingThermostat', thermostatDevice, {
32
- tagList: [getSemtag(NumberTag.One, 'LivingThermostat'), getSemtag(AreaNamespaceTag.LivingRoom)],
32
+ tagList: [getSemtag(CommonNumberTag.One, 'LivingThermostat'), getSemtag(CommonAreaNamespaceTag.LivingRoom)],
33
33
  })
34
34
  .createDefaultThermostatClusterServer()
35
35
  .addRequiredClusterServers()
36
36
  .addUserLabel('room', 'Living Room')
37
37
  .catch(() => { });
38
38
  this.addChildDeviceType('BedroomThermostat', thermostatDevice, {
39
- tagList: [getSemtag(NumberTag.Two, 'BedroomThermostat'), getSemtag(AreaNamespaceTag.Bedroom)],
39
+ tagList: [getSemtag(CommonNumberTag.Two, 'BedroomThermostat'), getSemtag(CommonAreaNamespaceTag.Bedroom)],
40
40
  })
41
41
  .createDefaultThermostatClusterServer()
42
42
  .addRequiredClusterServers()
@@ -1,4 +1,4 @@
1
- import { LocationTag } from '@matter/node';
1
+ import { CommonLocationTag } from '@matter/main/node';
2
2
  import { OperationalState } from '@matter/types/clusters/operational-state';
3
3
  import { irrigationSystem, powerSource, waterValve } from '../matterbridgeDeviceTypes.js';
4
4
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
@@ -24,7 +24,7 @@ export class IrrigationSystem extends MatterbridgeEndpoint {
24
24
  this.addRequiredClusterServers();
25
25
  }
26
26
  addZone(tag) {
27
- this.addChildDeviceType(`Zone ${tag.tag}`, waterValve, { tagList: [getSemtag(tag), getSemtag(LocationTag.Zone)] })
27
+ this.addChildDeviceType(`Zone ${tag.tag}`, waterValve, { tagList: [getSemtag(tag), getSemtag(CommonLocationTag.Zone)] })
28
28
  .createDefaultValveConfigurationAndControlClusterServer()
29
29
  .addRequiredClusterServers();
30
30
  return this;
@@ -7,82 +7,11 @@ export declare class MicrowaveOven extends MatterbridgeEndpoint {
7
7
  createDefaultMicrowaveOvenModeClusterServer(currentMode: number, supportedModes: MicrowaveOvenMode.ModeOption[]): this;
8
8
  createDefaultMicrowaveOvenControlClusterServer(selectedWattIndex: number, supportedWatts: number[], cookTime: number, maxCookTime: number): this;
9
9
  }
10
- declare const MatterbridgeMicrowaveOvenControlServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{
11
- readonly id: 95;
12
- readonly name: "MicrowaveOvenControl";
13
- readonly revision: 1;
14
- readonly features: {
15
- readonly powerAsNumber: import("@matter/types").BitFlag;
16
- readonly powerInWatts: import("@matter/types").BitFlag;
17
- readonly powerNumberLimits: import("@matter/types").BitFlag;
18
- };
19
- readonly attributes: {
20
- readonly cookTime: import("@matter/types").Attribute<number, any>;
21
- readonly maxCookTime: import("@matter/types").FixedAttribute<number, any>;
22
- readonly wattRating: import("@matter/types").OptionalFixedAttribute<number, any>;
23
- };
24
- readonly commands: {
25
- readonly setCookingParameters: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
26
- cookMode: import("@matter/types").OptionalFieldType<number>;
27
- cookTime: import("@matter/types").OptionalFieldType<number>;
28
- powerSetting: import("@matter/types").OptionalFieldType<number>;
29
- wattSettingIndex: import("@matter/types").OptionalFieldType<number>;
30
- startAfterSetting: import("@matter/types").OptionalFieldType<boolean>;
31
- }>, void, any>;
32
- readonly addMoreTime: import("@matter/types").OptionalCommand<import("@matter/types").TypeFromFields<{
33
- timeToAdd: import("@matter/types").FieldType<number>;
34
- }>, void, any>;
35
- };
36
- readonly extensions: readonly [{
37
- readonly flags: {
38
- readonly powerAsNumber: true;
39
- };
40
- readonly component: {
41
- readonly attributes: {
42
- readonly powerSetting: import("@matter/types").Attribute<number, any>;
43
- };
44
- };
45
- }, {
46
- readonly flags: {
47
- readonly powerNumberLimits: true;
48
- };
49
- readonly component: {
50
- readonly attributes: {
51
- readonly minPower: import("@matter/types").FixedAttribute<number, any>;
52
- readonly maxPower: import("@matter/types").FixedAttribute<number, any>;
53
- readonly powerStep: import("@matter/types").FixedAttribute<number, any>;
54
- };
55
- };
56
- }, {
57
- readonly flags: {
58
- readonly powerInWatts: true;
59
- };
60
- readonly component: {
61
- readonly attributes: {
62
- readonly supportedWatts: import("@matter/types").FixedAttribute<number[], any>;
63
- readonly selectedWattIndex: import("@matter/types").Attribute<number, any>;
64
- };
65
- };
66
- }, {
67
- readonly flags: {
68
- readonly powerNumberLimits: true;
69
- readonly powerAsNumber: false;
70
- };
71
- readonly component: false;
72
- }, {
73
- readonly flags: {
74
- readonly powerAsNumber: true;
75
- readonly powerInWatts: true;
76
- };
77
- readonly component: false;
78
- }, {
79
- readonly flags: {
80
- readonly powerAsNumber: false;
81
- readonly powerInWatts: false;
82
- };
83
- readonly component: false;
84
- }];
85
- }>, readonly [MicrowaveOvenControl.Feature.PowerInWatts]>, typeof MicrowaveOvenControlServer, import("@matter/node/behaviors/microwave-oven-control").MicrowaveOvenControlInterface>;
10
+ declare const MatterbridgeMicrowaveOvenControlServer_base: import("@matter/node").ClusterBehavior.Type<typeof MicrowaveOvenControlServer, import("@matter/types").ClusterType.WithSupportedFeatures<MicrowaveOvenControl, {
11
+ powerAsNumber: false;
12
+ powerInWatts: true;
13
+ powerNumberLimits: false;
14
+ }>, import("@matter/types").ClusterType.Concrete, new () => {}, "microwaveOvenControl">;
86
15
  export declare class MatterbridgeMicrowaveOvenControlServer extends MatterbridgeMicrowaveOvenControlServer_base {
87
16
  initialize(): Promise<void>;
88
17
  setCookingParameters(request: MicrowaveOvenControl.SetCookingParametersRequest): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { AreaNamespaceTag } from '@matter/node';
1
+ import { CommonAreaNamespaceTag } from '@matter/node';
2
2
  import { RvcCleanModeServer } from '@matter/node/behaviors/rvc-clean-mode';
3
3
  import { RvcOperationalStateServer } from '@matter/node/behaviors/rvc-operational-state';
4
4
  import { RvcRunModeServer } from '@matter/node/behaviors/rvc-run-mode';
@@ -53,22 +53,22 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
53
53
  {
54
54
  areaId: 1,
55
55
  mapId: null,
56
- areaInfo: { locationInfo: { locationName: 'Living', floorNumber: 0, areaType: AreaNamespaceTag.LivingRoom.tag }, landmarkInfo: null },
56
+ areaInfo: { locationInfo: { locationName: 'Living', floorNumber: 0, areaType: CommonAreaNamespaceTag.LivingRoom.tag }, landmarkInfo: null },
57
57
  },
58
58
  {
59
59
  areaId: 2,
60
60
  mapId: null,
61
- areaInfo: { locationInfo: { locationName: 'Kitchen', floorNumber: 0, areaType: AreaNamespaceTag.Kitchen.tag }, landmarkInfo: null },
61
+ areaInfo: { locationInfo: { locationName: 'Kitchen', floorNumber: 0, areaType: CommonAreaNamespaceTag.Kitchen.tag }, landmarkInfo: null },
62
62
  },
63
63
  {
64
64
  areaId: 3,
65
65
  mapId: null,
66
- areaInfo: { locationInfo: { locationName: 'Bedroom', floorNumber: 1, areaType: AreaNamespaceTag.Bedroom.tag }, landmarkInfo: null },
66
+ areaInfo: { locationInfo: { locationName: 'Bedroom', floorNumber: 1, areaType: CommonAreaNamespaceTag.Bedroom.tag }, landmarkInfo: null },
67
67
  },
68
68
  {
69
69
  areaId: 4,
70
70
  mapId: null,
71
- areaInfo: { locationInfo: { locationName: 'Bathroom', floorNumber: 1, areaType: AreaNamespaceTag.Bathroom.tag }, landmarkInfo: null },
71
+ areaInfo: { locationInfo: { locationName: 'Bathroom', floorNumber: 1, areaType: CommonAreaNamespaceTag.Bathroom.tag }, landmarkInfo: null },
72
72
  },
73
73
  ],
74
74
  selectedAreas: selectedAreas ?? [],
@@ -1,19 +1,5 @@
1
- import { ClusterBehavior } from '@matter/node';
2
1
  import { type MeasurementAccuracy } from '@matter/types/globals';
3
- import { SoilMeasurement } from '../clusters/soil-measurement.js';
4
2
  import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
5
- declare const SoilMeasurementBehavior: ClusterBehavior.Type<SoilMeasurement.Cluster, typeof ClusterBehavior, {
6
- components: never[];
7
- }>;
8
- export declare namespace SoilMeasurementServer {
9
- interface State {
10
- soilMoistureMeasurementLimits: MeasurementAccuracy;
11
- soilMoistureMeasuredValue: number | null;
12
- }
13
- }
14
- export declare class SoilMeasurementServer extends SoilMeasurementBehavior {
15
- state: SoilMeasurementServer.State;
16
- }
17
3
  export interface SoilSensorOptions {
18
4
  soilMoistureMeasurementLimits?: MeasurementAccuracy;
19
5
  soilMoistureMeasuredValue?: number | null;
@@ -25,4 +11,3 @@ export declare class SoilSensor extends MatterbridgeEndpoint {
25
11
  setSoilMoistureMeasuredValue(value: number | null): Promise<void>;
26
12
  getSoilMoistureMeasuredValue(): number | null | undefined;
27
13
  }
28
- export {};