@matterbridge/core 3.8.1-dev-20260607-08cd4da → 3.8.1-dev-20260609-37884d6
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.
- package/dist/behaviors/doorLockServer.d.ts +2 -2
- package/dist/devices/soilSensor.js +1 -12
- package/dist/jestutils/jestMatterTest.js +7 -7
- package/dist/jestutils/jestMatterbridgePlatformSpy.d.ts +4 -4
- package/dist/matterbridgeDeviceTypes.d.ts +33 -4
- package/dist/matterbridgeDeviceTypes.js +214 -58
- package/dist/matterbridgeEndpoint.d.ts +4 -3
- package/dist/matterbridgeEndpoint.js +6 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +5 -3
- package/dist/matterbridgeEndpointHelpers.js +111 -93
- package/package.json +7 -7
|
@@ -5,6 +5,7 @@ import { Actions } from '@matter/types/clusters/actions';
|
|
|
5
5
|
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
6
6
|
import { AdministratorCommissioning } from '@matter/types/clusters/administrator-commissioning';
|
|
7
7
|
import { AirQuality } from '@matter/types/clusters/air-quality';
|
|
8
|
+
import { ApplicationBasic } from '@matter/types/clusters/application-basic';
|
|
8
9
|
import { ApplicationLauncher } from '@matter/types/clusters/application-launcher';
|
|
9
10
|
import { AudioOutput } from '@matter/types/clusters/audio-output';
|
|
10
11
|
import { Binding } from '@matter/types/clusters/binding';
|
|
@@ -24,6 +25,7 @@ import { CommissionerControl } from '@matter/types/clusters/commissioner-control
|
|
|
24
25
|
import { CommodityMetering } from '@matter/types/clusters/commodity-metering';
|
|
25
26
|
import { CommodityPrice } from '@matter/types/clusters/commodity-price';
|
|
26
27
|
import { CommodityTariff } from '@matter/types/clusters/commodity-tariff';
|
|
28
|
+
import { ContentAppObserver } from '@matter/types/clusters/content-app-observer';
|
|
27
29
|
import { ContentControl } from '@matter/types/clusters/content-control';
|
|
28
30
|
import { ContentLauncher } from '@matter/types/clusters/content-launcher';
|
|
29
31
|
import { Descriptor } from '@matter/types/clusters/descriptor';
|
|
@@ -125,7 +127,7 @@ export var DeviceScopes;
|
|
|
125
127
|
DeviceScopes["Endpoint"] = "endpoint";
|
|
126
128
|
DeviceScopes["Node"] = "node";
|
|
127
129
|
})(DeviceScopes || (DeviceScopes = {}));
|
|
128
|
-
export const DeviceTypeDefinition = ({ name, deviceName, code, deviceClass, deviceScope, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
|
|
130
|
+
export const DeviceTypeDefinition = ({ name, deviceName, code, deviceClass, deviceScope, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], requiredDeviceTypes = [], requiredServerClustersOneOf = [], composedOf = [], }) => ({
|
|
129
131
|
name,
|
|
130
132
|
deviceName,
|
|
131
133
|
code: DeviceTypeId(code),
|
|
@@ -136,9 +138,12 @@ export const DeviceTypeDefinition = ({ name, deviceName, code, deviceClass, devi
|
|
|
136
138
|
optionalServerClusters,
|
|
137
139
|
requiredClientClusters,
|
|
138
140
|
optionalClientClusters,
|
|
141
|
+
requiredDeviceTypes,
|
|
142
|
+
requiredServerClustersOneOf,
|
|
143
|
+
composedOf,
|
|
139
144
|
});
|
|
140
|
-
export const
|
|
141
|
-
name: 'MA-
|
|
145
|
+
export const baseDeviceType = DeviceTypeDefinition({
|
|
146
|
+
name: 'MA-baseDeviceType',
|
|
142
147
|
deviceName: 'Base Device Type',
|
|
143
148
|
code: 0x0000,
|
|
144
149
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -156,6 +161,8 @@ export const rootNode = DeviceTypeDefinition({
|
|
|
156
161
|
revision: 4,
|
|
157
162
|
requiredServerClusters: [],
|
|
158
163
|
optionalServerClusters: [],
|
|
164
|
+
requiredClientClusters: [],
|
|
165
|
+
optionalClientClusters: [],
|
|
159
166
|
});
|
|
160
167
|
export const powerSource = DeviceTypeDefinition({
|
|
161
168
|
name: 'MA-powerSource',
|
|
@@ -167,8 +174,8 @@ export const powerSource = DeviceTypeDefinition({
|
|
|
167
174
|
requiredServerClusters: [PowerSource.id],
|
|
168
175
|
optionalServerClusters: [],
|
|
169
176
|
});
|
|
170
|
-
export const
|
|
171
|
-
name: 'MA-
|
|
177
|
+
export const otaRequestor = DeviceTypeDefinition({
|
|
178
|
+
name: 'MA-otaRequestor',
|
|
172
179
|
deviceName: 'OTA Requestor',
|
|
173
180
|
code: 0x0012,
|
|
174
181
|
deviceClass: DeviceClasses.Utility,
|
|
@@ -179,8 +186,8 @@ export const OTARequestor = DeviceTypeDefinition({
|
|
|
179
186
|
requiredClientClusters: [OtaSoftwareUpdateProvider.id],
|
|
180
187
|
optionalClientClusters: [],
|
|
181
188
|
});
|
|
182
|
-
export const
|
|
183
|
-
name: 'MA-
|
|
189
|
+
export const otaProvider = DeviceTypeDefinition({
|
|
190
|
+
name: 'MA-otaProvider',
|
|
184
191
|
deviceName: 'OTA Provider',
|
|
185
192
|
code: 0x0014,
|
|
186
193
|
deviceClass: DeviceClasses.Utility,
|
|
@@ -210,6 +217,7 @@ export const electricalSensor = DeviceTypeDefinition({
|
|
|
210
217
|
revision: 1,
|
|
211
218
|
requiredServerClusters: [PowerTopology.id],
|
|
212
219
|
optionalServerClusters: [ElectricalPowerMeasurement.id, ElectricalEnergyMeasurement.id],
|
|
220
|
+
requiredServerClustersOneOf: [ElectricalPowerMeasurement.id, ElectricalEnergyMeasurement.id],
|
|
213
221
|
});
|
|
214
222
|
export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
215
223
|
name: 'MA-deviceEnergyManagement',
|
|
@@ -224,7 +232,7 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
|
224
232
|
optionalClientClusters: [ElectricalGridConditions.id],
|
|
225
233
|
});
|
|
226
234
|
export const onOffLight = DeviceTypeDefinition({
|
|
227
|
-
name: 'MA-
|
|
235
|
+
name: 'MA-onOffLight',
|
|
228
236
|
deviceName: 'OnOff Light',
|
|
229
237
|
code: 0x0100,
|
|
230
238
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -236,7 +244,7 @@ export const onOffLight = DeviceTypeDefinition({
|
|
|
236
244
|
optionalClientClusters: [OccupancySensing.id],
|
|
237
245
|
});
|
|
238
246
|
export const dimmableLight = DeviceTypeDefinition({
|
|
239
|
-
name: 'MA-
|
|
247
|
+
name: 'MA-dimmableLight',
|
|
240
248
|
deviceName: 'Dimmable Light',
|
|
241
249
|
code: 0x0101,
|
|
242
250
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -248,7 +256,7 @@ export const dimmableLight = DeviceTypeDefinition({
|
|
|
248
256
|
optionalClientClusters: [OccupancySensing.id],
|
|
249
257
|
});
|
|
250
258
|
export const colorTemperatureLight = DeviceTypeDefinition({
|
|
251
|
-
name: 'MA-
|
|
259
|
+
name: 'MA-colorTemperatureLight',
|
|
252
260
|
deviceName: 'Color Temperature Light',
|
|
253
261
|
code: 0x010c,
|
|
254
262
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -260,7 +268,7 @@ export const colorTemperatureLight = DeviceTypeDefinition({
|
|
|
260
268
|
optionalClientClusters: [OccupancySensing.id],
|
|
261
269
|
});
|
|
262
270
|
export const extendedColorLight = DeviceTypeDefinition({
|
|
263
|
-
name: 'MA-
|
|
271
|
+
name: 'MA-extendedColorLight',
|
|
264
272
|
deviceName: 'Extended Color Light',
|
|
265
273
|
code: 0x010d,
|
|
266
274
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -271,8 +279,8 @@ export const extendedColorLight = DeviceTypeDefinition({
|
|
|
271
279
|
requiredClientClusters: [],
|
|
272
280
|
optionalClientClusters: [OccupancySensing.id],
|
|
273
281
|
});
|
|
274
|
-
export const
|
|
275
|
-
name: 'MA-
|
|
282
|
+
export const onOffPluginUnit = DeviceTypeDefinition({
|
|
283
|
+
name: 'MA-onOffPluginUnit',
|
|
276
284
|
deviceName: 'OnOff Plugin Unit',
|
|
277
285
|
code: 0x010a,
|
|
278
286
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -283,9 +291,10 @@ export const onOffOutlet = DeviceTypeDefinition({
|
|
|
283
291
|
requiredClientClusters: [],
|
|
284
292
|
optionalClientClusters: [OccupancySensing.id],
|
|
285
293
|
});
|
|
286
|
-
export const
|
|
287
|
-
|
|
288
|
-
|
|
294
|
+
export const onOffOutlet = onOffPluginUnit;
|
|
295
|
+
export const dimmablePluginUnit = DeviceTypeDefinition({
|
|
296
|
+
name: 'MA-dimmablePluginUnit',
|
|
297
|
+
deviceName: 'Dimmable Plugin Unit',
|
|
289
298
|
code: 0x010b,
|
|
290
299
|
deviceClass: DeviceClasses.Simple,
|
|
291
300
|
deviceScope: DeviceScopes.Endpoint,
|
|
@@ -295,8 +304,9 @@ export const dimmableOutlet = DeviceTypeDefinition({
|
|
|
295
304
|
requiredClientClusters: [],
|
|
296
305
|
optionalClientClusters: [OccupancySensing.id],
|
|
297
306
|
});
|
|
298
|
-
export const
|
|
299
|
-
|
|
307
|
+
export const dimmableOutlet = dimmablePluginUnit;
|
|
308
|
+
export const mountedOnOffControl = DeviceTypeDefinition({
|
|
309
|
+
name: 'MA-mountedOnOffControl',
|
|
300
310
|
deviceName: 'Mounted OnOff Control',
|
|
301
311
|
code: 0x010f,
|
|
302
312
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -307,8 +317,9 @@ export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
|
307
317
|
requiredClientClusters: [],
|
|
308
318
|
optionalClientClusters: [OccupancySensing.id],
|
|
309
319
|
});
|
|
310
|
-
export const
|
|
311
|
-
|
|
320
|
+
export const onOffMountedSwitch = mountedOnOffControl;
|
|
321
|
+
export const mountedDimmableLoadControl = DeviceTypeDefinition({
|
|
322
|
+
name: 'MA-mountedDimmableLoadControl',
|
|
312
323
|
deviceName: 'Mounted Dimmable Load Control',
|
|
313
324
|
code: 0x0110,
|
|
314
325
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -319,7 +330,8 @@ export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
|
319
330
|
requiredClientClusters: [],
|
|
320
331
|
optionalClientClusters: [OccupancySensing.id],
|
|
321
332
|
});
|
|
322
|
-
export const
|
|
333
|
+
export const dimmableMountedSwitch = mountedDimmableLoadControl;
|
|
334
|
+
export const pump = DeviceTypeDefinition({
|
|
323
335
|
name: 'MA-pump',
|
|
324
336
|
deviceName: 'Pump',
|
|
325
337
|
code: 0x303,
|
|
@@ -331,6 +343,7 @@ export const pumpDevice = DeviceTypeDefinition({
|
|
|
331
343
|
requiredClientClusters: [],
|
|
332
344
|
optionalClientClusters: [TemperatureMeasurement.id, PressureMeasurement.id, FlowMeasurement.id, OccupancySensing.id],
|
|
333
345
|
});
|
|
346
|
+
export const pumpDevice = pump;
|
|
334
347
|
export const waterValve = DeviceTypeDefinition({
|
|
335
348
|
name: 'MA-waterValve',
|
|
336
349
|
deviceName: 'Water Valve',
|
|
@@ -354,45 +367,73 @@ export const irrigationSystem = DeviceTypeDefinition({
|
|
|
354
367
|
optionalServerClusters: [Identify.id, OperationalState.id, FlowMeasurement.id],
|
|
355
368
|
requiredClientClusters: [],
|
|
356
369
|
optionalClientClusters: [FlowMeasurement.id],
|
|
370
|
+
composedOf: [waterValve],
|
|
357
371
|
});
|
|
358
|
-
export const
|
|
359
|
-
name: 'MA-
|
|
372
|
+
export const onOffLightSwitch = DeviceTypeDefinition({
|
|
373
|
+
name: 'MA-onOffLightSwitch',
|
|
360
374
|
deviceName: 'OnOff Light Switch',
|
|
361
375
|
code: 0x0103,
|
|
362
376
|
deviceClass: DeviceClasses.Simple,
|
|
363
377
|
deviceScope: DeviceScopes.Endpoint,
|
|
364
378
|
revision: 3,
|
|
365
|
-
requiredServerClusters: [Identify.id
|
|
379
|
+
requiredServerClusters: [Identify.id],
|
|
366
380
|
optionalServerClusters: [],
|
|
367
381
|
requiredClientClusters: [Identify.id, OnOff.id],
|
|
368
382
|
optionalClientClusters: [Groups.id, ScenesManagement.id],
|
|
369
383
|
});
|
|
370
|
-
export const
|
|
371
|
-
|
|
384
|
+
export const onOffSwitch = onOffLightSwitch;
|
|
385
|
+
export const dimmerSwitch = DeviceTypeDefinition({
|
|
386
|
+
name: 'MA-dimmerSwitch',
|
|
372
387
|
deviceName: 'Dimmer Switch',
|
|
373
388
|
code: 0x0104,
|
|
374
389
|
deviceClass: DeviceClasses.Simple,
|
|
375
390
|
deviceScope: DeviceScopes.Endpoint,
|
|
376
391
|
revision: 3,
|
|
377
|
-
requiredServerClusters: [Identify.id
|
|
392
|
+
requiredServerClusters: [Identify.id],
|
|
378
393
|
optionalServerClusters: [],
|
|
379
394
|
requiredClientClusters: [Identify.id, OnOff.id, LevelControl.id],
|
|
380
395
|
optionalClientClusters: [Groups.id, ScenesManagement.id],
|
|
381
396
|
});
|
|
382
|
-
export const
|
|
383
|
-
|
|
397
|
+
export const dimmableSwitch = dimmerSwitch;
|
|
398
|
+
export const colorDimmerSwitch = DeviceTypeDefinition({
|
|
399
|
+
name: 'MA-colorDimmerSwitch',
|
|
384
400
|
deviceName: 'Color Dimmer Switch',
|
|
385
401
|
code: 0x0105,
|
|
386
402
|
deviceClass: DeviceClasses.Simple,
|
|
387
403
|
deviceScope: DeviceScopes.Endpoint,
|
|
388
404
|
revision: 3,
|
|
389
|
-
requiredServerClusters: [Identify.id
|
|
405
|
+
requiredServerClusters: [Identify.id],
|
|
390
406
|
optionalServerClusters: [],
|
|
391
407
|
requiredClientClusters: [Identify.id, OnOff.id, LevelControl.id, ColorControl.id],
|
|
392
408
|
optionalClientClusters: [Groups.id, ScenesManagement.id],
|
|
393
409
|
});
|
|
410
|
+
export const colorTemperatureSwitch = colorDimmerSwitch;
|
|
411
|
+
export const controlBridge = DeviceTypeDefinition({
|
|
412
|
+
name: 'MA-controlBridge',
|
|
413
|
+
deviceName: 'Control Bridge',
|
|
414
|
+
code: 0x0840,
|
|
415
|
+
deviceClass: DeviceClasses.Simple,
|
|
416
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
417
|
+
revision: 3,
|
|
418
|
+
requiredServerClusters: [Identify.id],
|
|
419
|
+
optionalServerClusters: [],
|
|
420
|
+
requiredClientClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id, LevelControl.id, ColorControl.id],
|
|
421
|
+
optionalClientClusters: [IlluminanceMeasurement.id, OccupancySensing.id],
|
|
422
|
+
});
|
|
423
|
+
export const pumpController = DeviceTypeDefinition({
|
|
424
|
+
name: 'MA-pumpController',
|
|
425
|
+
deviceName: 'Pump Controller',
|
|
426
|
+
code: 0x0304,
|
|
427
|
+
deviceClass: DeviceClasses.Simple,
|
|
428
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
429
|
+
revision: 4,
|
|
430
|
+
requiredServerClusters: [Identify.id],
|
|
431
|
+
optionalServerClusters: [],
|
|
432
|
+
requiredClientClusters: [OnOff.id, PumpConfigurationAndControl.id],
|
|
433
|
+
optionalClientClusters: [Identify.id, Groups.id, LevelControl.id, ScenesManagement.id, TemperatureMeasurement.id, PressureMeasurement.id, FlowMeasurement.id],
|
|
434
|
+
});
|
|
394
435
|
export const genericSwitch = DeviceTypeDefinition({
|
|
395
|
-
name: 'MA-
|
|
436
|
+
name: 'MA-genericSwitch',
|
|
396
437
|
deviceName: 'Generic Switch',
|
|
397
438
|
code: 0x000f,
|
|
398
439
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -402,7 +443,7 @@ export const genericSwitch = DeviceTypeDefinition({
|
|
|
402
443
|
optionalServerClusters: [],
|
|
403
444
|
});
|
|
404
445
|
export const contactSensor = DeviceTypeDefinition({
|
|
405
|
-
name: 'MA-
|
|
446
|
+
name: 'MA-contactSensor',
|
|
406
447
|
deviceName: 'Contact Sensor',
|
|
407
448
|
code: 0x0015,
|
|
408
449
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -412,7 +453,7 @@ export const contactSensor = DeviceTypeDefinition({
|
|
|
412
453
|
optionalServerClusters: [BooleanStateConfiguration.id],
|
|
413
454
|
});
|
|
414
455
|
export const lightSensor = DeviceTypeDefinition({
|
|
415
|
-
name: 'MA-
|
|
456
|
+
name: 'MA-lightSensor',
|
|
416
457
|
deviceName: 'Light Sensor',
|
|
417
458
|
code: 0x0106,
|
|
418
459
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -421,7 +462,7 @@ export const lightSensor = DeviceTypeDefinition({
|
|
|
421
462
|
requiredServerClusters: [Identify.id, IlluminanceMeasurement.id],
|
|
422
463
|
});
|
|
423
464
|
export const occupancySensor = DeviceTypeDefinition({
|
|
424
|
-
name: 'MA-
|
|
465
|
+
name: 'MA-occupancySensor',
|
|
425
466
|
deviceName: 'Occupancy Sensor',
|
|
426
467
|
code: 0x0107,
|
|
427
468
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -431,7 +472,7 @@ export const occupancySensor = DeviceTypeDefinition({
|
|
|
431
472
|
optionalServerClusters: [BooleanStateConfiguration.id],
|
|
432
473
|
});
|
|
433
474
|
export const temperatureSensor = DeviceTypeDefinition({
|
|
434
|
-
name: 'MA-
|
|
475
|
+
name: 'MA-temperatureSensor',
|
|
435
476
|
deviceName: 'Temperature Sensor',
|
|
436
477
|
code: 0x0302,
|
|
437
478
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -441,7 +482,7 @@ export const temperatureSensor = DeviceTypeDefinition({
|
|
|
441
482
|
optionalServerClusters: [ThermostatUserInterfaceConfiguration.id],
|
|
442
483
|
});
|
|
443
484
|
export const pressureSensor = DeviceTypeDefinition({
|
|
444
|
-
name: 'MA-
|
|
485
|
+
name: 'MA-pressureSensor',
|
|
445
486
|
deviceName: 'Pressure Sensor',
|
|
446
487
|
code: 0x0305,
|
|
447
488
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -450,7 +491,7 @@ export const pressureSensor = DeviceTypeDefinition({
|
|
|
450
491
|
requiredServerClusters: [Identify.id, PressureMeasurement.id],
|
|
451
492
|
});
|
|
452
493
|
export const flowSensor = DeviceTypeDefinition({
|
|
453
|
-
name: 'MA-
|
|
494
|
+
name: 'MA-flowSensor',
|
|
454
495
|
deviceName: 'Flow Sensor',
|
|
455
496
|
code: 0x0306,
|
|
456
497
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -459,7 +500,7 @@ export const flowSensor = DeviceTypeDefinition({
|
|
|
459
500
|
requiredServerClusters: [Identify.id, FlowMeasurement.id],
|
|
460
501
|
});
|
|
461
502
|
export const humiditySensor = DeviceTypeDefinition({
|
|
462
|
-
name: 'MA-
|
|
503
|
+
name: 'MA-humiditySensor',
|
|
463
504
|
deviceName: 'Humidity Sensor',
|
|
464
505
|
code: 0x0307,
|
|
465
506
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -467,6 +508,17 @@ export const humiditySensor = DeviceTypeDefinition({
|
|
|
467
508
|
revision: 3,
|
|
468
509
|
requiredServerClusters: [Identify.id, RelativeHumidityMeasurement.id],
|
|
469
510
|
});
|
|
511
|
+
export const onOffSensor = DeviceTypeDefinition({
|
|
512
|
+
name: 'MA-onOffSensor',
|
|
513
|
+
deviceName: 'OnOff Sensor',
|
|
514
|
+
code: 0x0850,
|
|
515
|
+
deviceClass: DeviceClasses.Simple,
|
|
516
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
517
|
+
revision: 3,
|
|
518
|
+
requiredServerClusters: [Identify.id],
|
|
519
|
+
requiredClientClusters: [Identify.id, OnOff.id],
|
|
520
|
+
optionalClientClusters: [Groups.id, LevelControl.id, ColorControl.id, ScenesManagement.id],
|
|
521
|
+
});
|
|
470
522
|
export const smokeCoAlarm = DeviceTypeDefinition({
|
|
471
523
|
name: 'MA-smokeCoAlarm',
|
|
472
524
|
deviceName: 'Smoke CO Alarm',
|
|
@@ -476,6 +528,7 @@ export const smokeCoAlarm = DeviceTypeDefinition({
|
|
|
476
528
|
revision: 1,
|
|
477
529
|
requiredServerClusters: [Identify.id, SmokeCoAlarm.id],
|
|
478
530
|
optionalServerClusters: [Groups.id, TemperatureMeasurement.id, RelativeHumidityMeasurement.id, CarbonMonoxideConcentrationMeasurement.id],
|
|
531
|
+
requiredDeviceTypes: [powerSource],
|
|
479
532
|
});
|
|
480
533
|
export const airQualitySensor = DeviceTypeDefinition({
|
|
481
534
|
name: 'MA-airQualitySensor',
|
|
@@ -540,7 +593,7 @@ export const soilSensor = DeviceTypeDefinition({
|
|
|
540
593
|
requiredServerClusters: [Identify.id, SoilMeasurement.id],
|
|
541
594
|
optionalServerClusters: [TemperatureMeasurement.id],
|
|
542
595
|
});
|
|
543
|
-
export const
|
|
596
|
+
export const doorLock = DeviceTypeDefinition({
|
|
544
597
|
name: 'MA-doorLock',
|
|
545
598
|
deviceName: 'Door Lock',
|
|
546
599
|
code: 0xa,
|
|
@@ -550,7 +603,20 @@ export const doorLockDevice = DeviceTypeDefinition({
|
|
|
550
603
|
requiredServerClusters: [Identify.id, DoorLock.id],
|
|
551
604
|
optionalServerClusters: [],
|
|
552
605
|
});
|
|
553
|
-
export const
|
|
606
|
+
export const doorLockDevice = doorLock;
|
|
607
|
+
export const doorLockController = DeviceTypeDefinition({
|
|
608
|
+
name: 'MA-doorLockController',
|
|
609
|
+
deviceName: 'Door Lock Controller',
|
|
610
|
+
code: 0x00b,
|
|
611
|
+
deviceClass: DeviceClasses.Simple,
|
|
612
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
613
|
+
revision: 3,
|
|
614
|
+
requiredServerClusters: [],
|
|
615
|
+
optionalServerClusters: [],
|
|
616
|
+
requiredClientClusters: [DoorLock.id],
|
|
617
|
+
optionalClientClusters: [Groups.id, ScenesManagement.id],
|
|
618
|
+
});
|
|
619
|
+
export const windowCovering = DeviceTypeDefinition({
|
|
554
620
|
name: 'MA-windowCovering',
|
|
555
621
|
deviceName: 'Window Covering',
|
|
556
622
|
code: 0x202,
|
|
@@ -560,6 +626,19 @@ export const coverDevice = DeviceTypeDefinition({
|
|
|
560
626
|
requiredServerClusters: [Identify.id, WindowCovering.id],
|
|
561
627
|
optionalServerClusters: [Groups.id],
|
|
562
628
|
});
|
|
629
|
+
export const coverDevice = windowCovering;
|
|
630
|
+
export const windowCoveringController = DeviceTypeDefinition({
|
|
631
|
+
name: 'MA-windowCoveringController',
|
|
632
|
+
deviceName: 'Window Covering Controller',
|
|
633
|
+
code: 0x203,
|
|
634
|
+
deviceClass: DeviceClasses.Simple,
|
|
635
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
636
|
+
revision: 4,
|
|
637
|
+
requiredServerClusters: [],
|
|
638
|
+
optionalServerClusters: [Identify.id],
|
|
639
|
+
requiredClientClusters: [WindowCovering.id],
|
|
640
|
+
optionalClientClusters: [Identify.id, Groups.id],
|
|
641
|
+
});
|
|
563
642
|
export const closure = DeviceTypeDefinition({
|
|
564
643
|
name: 'MA-closure',
|
|
565
644
|
deviceName: 'Closure',
|
|
@@ -592,7 +671,7 @@ export const closureController = DeviceTypeDefinition({
|
|
|
592
671
|
requiredClientClusters: [ClosureControl.id],
|
|
593
672
|
optionalClientClusters: [Identify.id, Groups.id, ClosureDimension.id],
|
|
594
673
|
});
|
|
595
|
-
export const
|
|
674
|
+
export const thermostat = DeviceTypeDefinition({
|
|
596
675
|
name: 'MA-thermostat',
|
|
597
676
|
deviceName: 'Thermostat',
|
|
598
677
|
code: 0x301,
|
|
@@ -604,7 +683,8 @@ export const thermostatDevice = DeviceTypeDefinition({
|
|
|
604
683
|
requiredClientClusters: [],
|
|
605
684
|
optionalClientClusters: [FanControl.id, TemperatureMeasurement.id, RelativeHumidityMeasurement.id, OccupancySensing.id],
|
|
606
685
|
});
|
|
607
|
-
export const
|
|
686
|
+
export const thermostatDevice = thermostat;
|
|
687
|
+
export const fan = DeviceTypeDefinition({
|
|
608
688
|
name: 'MA-fan',
|
|
609
689
|
deviceName: 'Fan',
|
|
610
690
|
code: 0x2b,
|
|
@@ -614,6 +694,7 @@ export const fanDevice = DeviceTypeDefinition({
|
|
|
614
694
|
requiredServerClusters: [Identify.id, Groups.id, FanControl.id],
|
|
615
695
|
optionalServerClusters: [OnOff.id],
|
|
616
696
|
});
|
|
697
|
+
export const fanDevice = fan;
|
|
617
698
|
export const airPurifier = DeviceTypeDefinition({
|
|
618
699
|
name: 'MA-airPurifier',
|
|
619
700
|
deviceName: 'Air Purifier',
|
|
@@ -624,6 +705,18 @@ export const airPurifier = DeviceTypeDefinition({
|
|
|
624
705
|
requiredServerClusters: [Identify.id, FanControl.id],
|
|
625
706
|
optionalServerClusters: [Groups.id, OnOff.id, HepaFilterMonitoring.id, ActivatedCarbonFilterMonitoring.id],
|
|
626
707
|
});
|
|
708
|
+
export const thermostatController = DeviceTypeDefinition({
|
|
709
|
+
name: 'MA-thermostatController',
|
|
710
|
+
deviceName: 'Thermostat Controller',
|
|
711
|
+
code: 0x030a,
|
|
712
|
+
deviceClass: DeviceClasses.Simple,
|
|
713
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
714
|
+
revision: 1,
|
|
715
|
+
requiredServerClusters: [],
|
|
716
|
+
optionalServerClusters: [],
|
|
717
|
+
requiredClientClusters: [Thermostat.id],
|
|
718
|
+
optionalClientClusters: [Identify.id, Groups.id, ScenesManagement.id],
|
|
719
|
+
});
|
|
627
720
|
export const basicVideoPlayer = DeviceTypeDefinition({
|
|
628
721
|
name: 'MA-basicVideoPlayer',
|
|
629
722
|
deviceName: 'Basic Video Player',
|
|
@@ -655,7 +748,7 @@ export const castingVideoPlayer = DeviceTypeDefinition({
|
|
|
655
748
|
Messages.id,
|
|
656
749
|
],
|
|
657
750
|
});
|
|
658
|
-
export const
|
|
751
|
+
export const speaker = DeviceTypeDefinition({
|
|
659
752
|
name: 'MA-speaker',
|
|
660
753
|
deviceName: 'Speaker',
|
|
661
754
|
code: 0x0022,
|
|
@@ -665,8 +758,70 @@ export const speakerDevice = DeviceTypeDefinition({
|
|
|
665
758
|
requiredServerClusters: [OnOff.id, LevelControl.id],
|
|
666
759
|
optionalServerClusters: [],
|
|
667
760
|
});
|
|
761
|
+
export const speakerDevice = speaker;
|
|
762
|
+
export const contentApp = DeviceTypeDefinition({
|
|
763
|
+
name: 'MA-contentApp',
|
|
764
|
+
deviceName: 'Content App',
|
|
765
|
+
code: 0x0024,
|
|
766
|
+
deviceClass: DeviceClasses.Simple,
|
|
767
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
768
|
+
revision: 2,
|
|
769
|
+
requiredServerClusters: [KeypadInput.id, ApplicationLauncher.id, ApplicationBasic.id],
|
|
770
|
+
optionalServerClusters: [Channel.id, TargetNavigator.id, MediaPlayback.id, ContentLauncher.id, AccountLogin.id],
|
|
771
|
+
requiredClientClusters: [],
|
|
772
|
+
optionalClientClusters: [ContentAppObserver.id],
|
|
773
|
+
});
|
|
774
|
+
export const castingVideoClient = DeviceTypeDefinition({
|
|
775
|
+
name: 'MA-castingVideoClient',
|
|
776
|
+
deviceName: 'Casting Video Client',
|
|
777
|
+
code: 0x0029,
|
|
778
|
+
deviceClass: DeviceClasses.Simple,
|
|
779
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
780
|
+
revision: 2,
|
|
781
|
+
requiredServerClusters: [],
|
|
782
|
+
optionalServerClusters: [ContentAppObserver.id],
|
|
783
|
+
requiredClientClusters: [OnOff.id, KeypadInput.id, ContentLauncher.id, ApplicationBasic.id],
|
|
784
|
+
optionalClientClusters: [
|
|
785
|
+
LevelControl.id,
|
|
786
|
+
Messages.id,
|
|
787
|
+
WakeOnLan.id,
|
|
788
|
+
Channel.id,
|
|
789
|
+
TargetNavigator.id,
|
|
790
|
+
MediaPlayback.id,
|
|
791
|
+
MediaInput.id,
|
|
792
|
+
LowPower.id,
|
|
793
|
+
AudioOutput.id,
|
|
794
|
+
ApplicationLauncher.id,
|
|
795
|
+
AccountLogin.id,
|
|
796
|
+
ContentControl.id,
|
|
797
|
+
],
|
|
798
|
+
});
|
|
799
|
+
export const videoRemoteControl = DeviceTypeDefinition({
|
|
800
|
+
name: 'MA-videoRemoteControl',
|
|
801
|
+
deviceName: 'Video Remote Control',
|
|
802
|
+
code: 0x002a,
|
|
803
|
+
deviceClass: DeviceClasses.Simple,
|
|
804
|
+
deviceScope: DeviceScopes.Endpoint,
|
|
805
|
+
revision: 2,
|
|
806
|
+
requiredServerClusters: [],
|
|
807
|
+
optionalServerClusters: [],
|
|
808
|
+
requiredClientClusters: [OnOff.id, MediaPlayback.id, KeypadInput.id],
|
|
809
|
+
optionalClientClusters: [
|
|
810
|
+
LevelControl.id,
|
|
811
|
+
WakeOnLan.id,
|
|
812
|
+
Channel.id,
|
|
813
|
+
TargetNavigator.id,
|
|
814
|
+
MediaInput.id,
|
|
815
|
+
LowPower.id,
|
|
816
|
+
ContentLauncher.id,
|
|
817
|
+
AudioOutput.id,
|
|
818
|
+
ApplicationLauncher.id,
|
|
819
|
+
AccountLogin.id,
|
|
820
|
+
ContentControl.id,
|
|
821
|
+
],
|
|
822
|
+
});
|
|
668
823
|
export const modeSelect = DeviceTypeDefinition({
|
|
669
|
-
name: 'MA-
|
|
824
|
+
name: 'MA-modeSelect',
|
|
670
825
|
deviceName: 'Mode Select',
|
|
671
826
|
code: 0x27,
|
|
672
827
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -686,7 +841,7 @@ export const aggregator = DeviceTypeDefinition({
|
|
|
686
841
|
});
|
|
687
842
|
export const bridge = aggregator;
|
|
688
843
|
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
689
|
-
name: 'MA-
|
|
844
|
+
name: 'MA-roboticVacuumCleaner',
|
|
690
845
|
deviceName: 'Robotic Vacuum Cleaner',
|
|
691
846
|
code: 0x74,
|
|
692
847
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -696,7 +851,7 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
|
696
851
|
optionalServerClusters: [RvcCleanMode.id, ServiceArea.id],
|
|
697
852
|
});
|
|
698
853
|
export const laundryWasher = DeviceTypeDefinition({
|
|
699
|
-
name: 'MA-
|
|
854
|
+
name: 'MA-laundryWasher',
|
|
700
855
|
deviceName: 'Laundry Washer',
|
|
701
856
|
code: 0x73,
|
|
702
857
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -715,8 +870,8 @@ export const refrigerator = DeviceTypeDefinition({
|
|
|
715
870
|
requiredServerClusters: [],
|
|
716
871
|
optionalServerClusters: [Identify.id, RefrigeratorAndTemperatureControlledCabinetMode.id, RefrigeratorAlarm.id],
|
|
717
872
|
});
|
|
718
|
-
export const
|
|
719
|
-
name: 'MA-
|
|
873
|
+
export const roomAirConditioner = DeviceTypeDefinition({
|
|
874
|
+
name: 'MA-roomAirConditioner',
|
|
720
875
|
deviceName: 'Room Air Conditioner',
|
|
721
876
|
code: 0x72,
|
|
722
877
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -734,8 +889,9 @@ export const airConditioner = DeviceTypeDefinition({
|
|
|
734
889
|
ActivatedCarbonFilterMonitoring.id,
|
|
735
890
|
],
|
|
736
891
|
});
|
|
892
|
+
export const airConditioner = roomAirConditioner;
|
|
737
893
|
export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
738
|
-
name: 'MA-
|
|
894
|
+
name: 'MA-temperatureControlledCabinetCooler',
|
|
739
895
|
deviceName: 'Temperature Controlled Cabinet',
|
|
740
896
|
code: 0x71,
|
|
741
897
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -745,7 +901,7 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
|
|
|
745
901
|
optionalServerClusters: [TemperatureMeasurement.id],
|
|
746
902
|
});
|
|
747
903
|
export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
|
|
748
|
-
name: 'MA-
|
|
904
|
+
name: 'MA-temperatureControlledCabinetHeater',
|
|
749
905
|
deviceName: 'Temperature Controlled Cabinet',
|
|
750
906
|
code: 0x71,
|
|
751
907
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -765,7 +921,7 @@ export const dishwasher = DeviceTypeDefinition({
|
|
|
765
921
|
optionalServerClusters: [Identify.id, OnOff.id, TemperatureControl.id, DishwasherMode.id, DishwasherAlarm.id],
|
|
766
922
|
});
|
|
767
923
|
export const laundryDryer = DeviceTypeDefinition({
|
|
768
|
-
name: 'MA-
|
|
924
|
+
name: 'MA-laundryDryer',
|
|
769
925
|
deviceName: 'Laundry Dryer',
|
|
770
926
|
code: 0x7c,
|
|
771
927
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -775,7 +931,7 @@ export const laundryDryer = DeviceTypeDefinition({
|
|
|
775
931
|
optionalServerClusters: [Identify.id, LaundryWasherMode.id, OnOff.id, LaundryDryerControls.id, TemperatureControl.id],
|
|
776
932
|
});
|
|
777
933
|
export const cookSurface = DeviceTypeDefinition({
|
|
778
|
-
name: 'MA-
|
|
934
|
+
name: 'MA-cookSurface',
|
|
779
935
|
deviceName: 'Cook Surface',
|
|
780
936
|
code: 0x77,
|
|
781
937
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -805,7 +961,7 @@ export const oven = DeviceTypeDefinition({
|
|
|
805
961
|
optionalServerClusters: [Identify.id],
|
|
806
962
|
});
|
|
807
963
|
export const extractorHood = DeviceTypeDefinition({
|
|
808
|
-
name: 'MA-
|
|
964
|
+
name: 'MA-extractorHood',
|
|
809
965
|
deviceName: 'Extractor Hood',
|
|
810
966
|
code: 0x7a,
|
|
811
967
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -815,7 +971,7 @@ export const extractorHood = DeviceTypeDefinition({
|
|
|
815
971
|
optionalServerClusters: [Identify.id, HepaFilterMonitoring.id, ActivatedCarbonFilterMonitoring.id],
|
|
816
972
|
});
|
|
817
973
|
export const microwaveOven = DeviceTypeDefinition({
|
|
818
|
-
name: 'MA-
|
|
974
|
+
name: 'MA-microwaveOven',
|
|
819
975
|
deviceName: 'Microwave Oven',
|
|
820
976
|
code: 0x79,
|
|
821
977
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -835,7 +991,7 @@ export const evse = DeviceTypeDefinition({
|
|
|
835
991
|
optionalServerClusters: [Identify.id, TemperatureMeasurement.id],
|
|
836
992
|
});
|
|
837
993
|
export const waterHeater = DeviceTypeDefinition({
|
|
838
|
-
name: 'MA-
|
|
994
|
+
name: 'MA-waterHeater',
|
|
839
995
|
deviceName: 'Water Heater',
|
|
840
996
|
code: 0x050f,
|
|
841
997
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -845,7 +1001,7 @@ export const waterHeater = DeviceTypeDefinition({
|
|
|
845
1001
|
optionalServerClusters: [Identify.id],
|
|
846
1002
|
});
|
|
847
1003
|
export const solarPower = DeviceTypeDefinition({
|
|
848
|
-
name: 'MA-
|
|
1004
|
+
name: 'MA-solarPower',
|
|
849
1005
|
deviceName: 'Solar Power',
|
|
850
1006
|
code: 0x0017,
|
|
851
1007
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -855,7 +1011,7 @@ export const solarPower = DeviceTypeDefinition({
|
|
|
855
1011
|
optionalServerClusters: [Identify.id],
|
|
856
1012
|
});
|
|
857
1013
|
export const batteryStorage = DeviceTypeDefinition({
|
|
858
|
-
name: 'MA-
|
|
1014
|
+
name: 'MA-batteryStorage',
|
|
859
1015
|
deviceName: 'Battery Storage',
|
|
860
1016
|
code: 0x0018,
|
|
861
1017
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -865,7 +1021,7 @@ export const batteryStorage = DeviceTypeDefinition({
|
|
|
865
1021
|
optionalServerClusters: [Identify.id],
|
|
866
1022
|
});
|
|
867
1023
|
export const heatPump = DeviceTypeDefinition({
|
|
868
|
-
name: 'MA-
|
|
1024
|
+
name: 'MA-heatPump',
|
|
869
1025
|
deviceName: 'Heat Pump',
|
|
870
1026
|
code: 0x0309,
|
|
871
1027
|
deviceClass: DeviceClasses.Simple,
|
|
@@ -21,7 +21,7 @@ import { ThermostatUserInterfaceConfiguration } from '@matter/types/clusters/the
|
|
|
21
21
|
import { ValveConfigurationAndControl } from '@matter/types/clusters/valve-configuration-and-control';
|
|
22
22
|
import { WindowCovering } from '@matter/types/clusters/window-covering';
|
|
23
23
|
import { ClusterId, EndpointNumber } from '@matter/types/datatype';
|
|
24
|
-
import { Semtag } from '@matter/types/globals';
|
|
24
|
+
import { MeasurementAccuracy, Semtag } from '@matter/types/globals';
|
|
25
25
|
import { AnsiLogger, LogLevel } from 'node-ansi-logger';
|
|
26
26
|
import { DeviceTypeDefinition } from './matterbridgeDeviceTypes.js';
|
|
27
27
|
import { CommandHandler, CommandHandlerData, CommandHandlerExecutionResult, CommandHandlerFunction, CommandHandlers } from './matterbridgeEndpointCommandHandler.js';
|
|
@@ -137,8 +137,8 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
137
137
|
static deserialize(serializedDevice: SerializedMatterbridgeEndpoint): MatterbridgeEndpoint | undefined;
|
|
138
138
|
createDefaultPowerSourceWiredClusterServer(wiredCurrentType?: PowerSource.WiredCurrentType): this;
|
|
139
139
|
createDefaultPowerSourceBatteryClusterServer(batPercentRemaining?: null | number, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: null | number, batReplaceability?: PowerSource.BatReplaceability): this;
|
|
140
|
-
createDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining?: number, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: number, batReplacementDescription?: string, batQuantity?: number, batReplaceability?: PowerSource.BatReplaceability): this;
|
|
141
|
-
createDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining?: number, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: number, batReplaceability?: PowerSource.BatReplaceability): this;
|
|
140
|
+
createDefaultPowerSourceReplaceableBatteryClusterServer(batPercentRemaining?: number | null, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: number | null, batReplacementDescription?: string, batQuantity?: number, batReplaceability?: PowerSource.BatReplaceability): this;
|
|
141
|
+
createDefaultPowerSourceRechargeableBatteryClusterServer(batPercentRemaining?: number | null, batChargeLevel?: PowerSource.BatChargeLevel, batVoltage?: number | null, batReplaceability?: PowerSource.BatReplaceability): this;
|
|
142
142
|
createDefaultBasicInformationClusterServer(deviceName: string, serialNumber: string, vendorId?: number, vendorName?: string, productId?: number, productName?: string, softwareVersion?: number, softwareVersionString?: string, hardwareVersion?: number, hardwareVersionString?: string): this;
|
|
143
143
|
createDefaultBridgedDeviceBasicInformationClusterServer(deviceName: string, serialNumber: string, vendorId?: number, vendorName?: string, productName?: string, softwareVersion?: number, softwareVersionString?: string, hardwareVersion?: number, hardwareVersionString?: string): this;
|
|
144
144
|
createDefaultPowerTopologyClusterServer(): this;
|
|
@@ -218,6 +218,7 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
218
218
|
createDefaultIlluminanceMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): this;
|
|
219
219
|
createDefaultFlowMeasurementClusterServer(measuredValue?: number | null, minMeasuredValue?: number | null, maxMeasuredValue?: number | null): this;
|
|
220
220
|
createDefaultOccupancySensingClusterServer(occupied?: boolean, holdTime?: number, holdTimeMin?: number, holdTimeMax?: number): this;
|
|
221
|
+
createDefaultSoilMeasurementClusterServer(soilMoistureMeasuredValue?: number | null, soilMoistureMeasurementLimits?: MeasurementAccuracy): this;
|
|
221
222
|
createDefaultAirQualityClusterServer(airQuality?: AirQuality.AirQualityEnum): this;
|
|
222
223
|
createDefaultTvocMeasurementClusterServer(measuredValue?: number | null, measurementUnit?: ConcentrationMeasurement.MeasurementUnit, measurementMedium?: ConcentrationMeasurement.MeasurementMedium, uncertainty?: number): this;
|
|
223
224
|
createLevelTvocMeasurementClusterServer(levelValue?: ConcentrationMeasurement.LevelValue, measurementMedium?: ConcentrationMeasurement.MeasurementMedium): this;
|