@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.
@@ -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 baseDevice = DeviceTypeDefinition({
141
- name: 'MA-baseDevice',
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 OTARequestor = DeviceTypeDefinition({
171
- name: 'MA-OTARequestor',
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 OTAProvider = DeviceTypeDefinition({
183
- name: 'MA-OTAProvider',
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-onofflight',
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-dimmablelight',
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-colortemperaturelight',
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-extendedcolorlight',
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 onOffOutlet = DeviceTypeDefinition({
275
- name: 'MA-onoffpluginunit',
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 dimmableOutlet = DeviceTypeDefinition({
287
- name: 'MA-dimmablepluginunit',
288
- deviceName: 'Dimmable PlugIn Unit',
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 onOffMountedSwitch = DeviceTypeDefinition({
299
- name: 'MA-onoffmountedswitch',
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 dimmableMountedSwitch = DeviceTypeDefinition({
311
- name: 'MA-dimmablemountedswitch',
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 pumpDevice = DeviceTypeDefinition({
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 onOffSwitch = DeviceTypeDefinition({
359
- name: 'MA-onoffswitch',
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, OnOff.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 dimmableSwitch = DeviceTypeDefinition({
371
- name: 'MA-dimmableswitch',
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, OnOff.id, LevelControl.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 colorTemperatureSwitch = DeviceTypeDefinition({
383
- name: 'MA-colortemperatureswitch',
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, OnOff.id, LevelControl.id, ColorControl.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-genericswitch',
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-contactsensor',
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-lightsensor',
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-occupancysensor',
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-tempsensor',
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-pressuresensor',
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-flowsensor',
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-humiditysensor',
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 doorLockDevice = DeviceTypeDefinition({
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 coverDevice = DeviceTypeDefinition({
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 thermostatDevice = DeviceTypeDefinition({
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 fanDevice = DeviceTypeDefinition({
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 speakerDevice = DeviceTypeDefinition({
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-modeselect',
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-roboticvacuumcleaner',
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-laundrywasher',
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 airConditioner = DeviceTypeDefinition({
719
- name: 'MA-airConditioner',
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-temperaturecontrolledcabinetcooler',
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-temperaturecontrolledcabinetheater',
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-laundrydryer',
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-cooksurface',
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-extractorhood',
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-microwaveoven',
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-waterheater',
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-solarpower',
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-batterystorage',
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-heatpump',
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;