@matterbridge/core 3.8.1-dev-20260610-f258cc7 → 3.9.0-dev-20260611-fd7bca4

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.
@@ -18,7 +18,6 @@ export declare enum DeviceScopes {
18
18
  }
19
19
  export interface DeviceTypeDefinition {
20
20
  name: string;
21
- deviceName: string;
22
21
  code: DeviceTypeId;
23
22
  deviceClass: DeviceClasses;
24
23
  deviceScope: DeviceScopes;
@@ -31,9 +30,8 @@ export interface DeviceTypeDefinition {
31
30
  requiredServerClustersOneOf?: ClusterId[];
32
31
  composedOf?: DeviceTypeDefinition[];
33
32
  }
34
- export declare const DeviceTypeDefinition: ({ name, deviceName, code, deviceClass, deviceScope, revision, requiredServerClusters, optionalServerClusters, requiredClientClusters, optionalClientClusters, requiredDeviceTypes, requiredServerClustersOneOf, composedOf, }: {
33
+ export declare const DeviceTypeDefinition: ({ name, code, deviceClass, deviceScope, revision, requiredServerClusters, optionalServerClusters, requiredClientClusters, optionalClientClusters, requiredDeviceTypes, requiredServerClustersOneOf, composedOf, }: {
35
34
  name: string;
36
- deviceName: string;
37
35
  code: number;
38
36
  deviceClass: DeviceClasses;
39
37
  deviceScope: DeviceScopes;
@@ -127,9 +127,8 @@ export var DeviceScopes;
127
127
  DeviceScopes["Endpoint"] = "endpoint";
128
128
  DeviceScopes["Node"] = "node";
129
129
  })(DeviceScopes || (DeviceScopes = {}));
130
- export const DeviceTypeDefinition = ({ name, deviceName, code, deviceClass, deviceScope, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], requiredDeviceTypes = [], requiredServerClustersOneOf = [], composedOf = [], }) => ({
130
+ export const DeviceTypeDefinition = ({ name, code, deviceClass, deviceScope, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], requiredDeviceTypes = [], requiredServerClustersOneOf = [], composedOf = [], }) => ({
131
131
  name,
132
- deviceName,
133
132
  code: DeviceTypeId(code),
134
133
  deviceClass,
135
134
  deviceScope,
@@ -143,8 +142,7 @@ export const DeviceTypeDefinition = ({ name, deviceName, code, deviceClass, devi
143
142
  composedOf,
144
143
  });
145
144
  export const baseDeviceType = DeviceTypeDefinition({
146
- name: 'MA-baseDeviceType',
147
- deviceName: 'BaseDeviceType',
145
+ name: 'BaseDeviceType',
148
146
  code: 0x0000,
149
147
  deviceClass: DeviceClasses.Simple,
150
148
  deviceScope: DeviceScopes.Endpoint,
@@ -153,8 +151,7 @@ export const baseDeviceType = DeviceTypeDefinition({
153
151
  optionalServerClusters: [Binding.id, FixedLabel.id, UserLabel.id],
154
152
  });
155
153
  export const rootNode = DeviceTypeDefinition({
156
- name: 'MA-rootNode',
157
- deviceName: 'RootNode',
154
+ name: 'RootNode',
158
155
  code: 0x0016,
159
156
  deviceClass: DeviceClasses.Node,
160
157
  deviceScope: DeviceScopes.Node,
@@ -165,8 +162,7 @@ export const rootNode = DeviceTypeDefinition({
165
162
  optionalClientClusters: [],
166
163
  });
167
164
  export const powerSource = DeviceTypeDefinition({
168
- name: 'MA-powerSource',
169
- deviceName: 'PowerSource',
165
+ name: 'PowerSource',
170
166
  code: 0x0011,
171
167
  deviceClass: DeviceClasses.Utility,
172
168
  deviceScope: DeviceScopes.Node,
@@ -175,8 +171,7 @@ export const powerSource = DeviceTypeDefinition({
175
171
  optionalServerClusters: [],
176
172
  });
177
173
  export const otaRequestor = DeviceTypeDefinition({
178
- name: 'MA-otaRequestor',
179
- deviceName: 'OTARequestor',
174
+ name: 'OTARequestor',
180
175
  code: 0x0012,
181
176
  deviceClass: DeviceClasses.Utility,
182
177
  deviceScope: DeviceScopes.Node,
@@ -187,8 +182,7 @@ export const otaRequestor = DeviceTypeDefinition({
187
182
  optionalClientClusters: [],
188
183
  });
189
184
  export const otaProvider = DeviceTypeDefinition({
190
- name: 'MA-otaProvider',
191
- deviceName: 'OTAProvider',
185
+ name: 'OTAProvider',
192
186
  code: 0x0014,
193
187
  deviceClass: DeviceClasses.Utility,
194
188
  deviceScope: DeviceScopes.Node,
@@ -199,8 +193,7 @@ export const otaProvider = DeviceTypeDefinition({
199
193
  optionalClientClusters: [OtaSoftwareUpdateRequestor.id],
200
194
  });
201
195
  export const bridgedNode = DeviceTypeDefinition({
202
- name: 'MA-bridgedNode',
203
- deviceName: 'BridgedNode',
196
+ name: 'BridgedNode',
204
197
  code: 0x0013,
205
198
  deviceClass: DeviceClasses.Utility,
206
199
  deviceScope: DeviceScopes.Endpoint,
@@ -209,8 +202,7 @@ export const bridgedNode = DeviceTypeDefinition({
209
202
  optionalServerClusters: [PowerSource.id, EcosystemInformation.id, AdministratorCommissioning.id],
210
203
  });
211
204
  export const electricalSensor = DeviceTypeDefinition({
212
- name: 'MA-electricalSensor',
213
- deviceName: 'ElectricalSensor',
205
+ name: 'ElectricalSensor',
214
206
  code: 0x0510,
215
207
  deviceClass: DeviceClasses.Utility,
216
208
  deviceScope: DeviceScopes.Endpoint,
@@ -220,8 +212,7 @@ export const electricalSensor = DeviceTypeDefinition({
220
212
  requiredServerClustersOneOf: [ElectricalPowerMeasurement.id, ElectricalEnergyMeasurement.id],
221
213
  });
222
214
  export const deviceEnergyManagement = DeviceTypeDefinition({
223
- name: 'MA-deviceEnergyManagement',
224
- deviceName: 'DeviceEnergyManagement',
215
+ name: 'DeviceEnergyManagement',
225
216
  code: 0x050d,
226
217
  deviceClass: DeviceClasses.Utility,
227
218
  deviceScope: DeviceScopes.Endpoint,
@@ -232,8 +223,7 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
232
223
  optionalClientClusters: [ElectricalGridConditions.id],
233
224
  });
234
225
  export const onOffLight = DeviceTypeDefinition({
235
- name: 'MA-onOffLight',
236
- deviceName: 'OnOffLight',
226
+ name: 'OnOffLight',
237
227
  code: 0x0100,
238
228
  deviceClass: DeviceClasses.Simple,
239
229
  deviceScope: DeviceScopes.Endpoint,
@@ -244,8 +234,7 @@ export const onOffLight = DeviceTypeDefinition({
244
234
  optionalClientClusters: [OccupancySensing.id],
245
235
  });
246
236
  export const dimmableLight = DeviceTypeDefinition({
247
- name: 'MA-dimmableLight',
248
- deviceName: 'DimmableLight',
237
+ name: 'DimmableLight',
249
238
  code: 0x0101,
250
239
  deviceClass: DeviceClasses.Simple,
251
240
  deviceScope: DeviceScopes.Endpoint,
@@ -256,8 +245,7 @@ export const dimmableLight = DeviceTypeDefinition({
256
245
  optionalClientClusters: [OccupancySensing.id],
257
246
  });
258
247
  export const colorTemperatureLight = DeviceTypeDefinition({
259
- name: 'MA-colorTemperatureLight',
260
- deviceName: 'ColorTemperatureLight',
248
+ name: 'ColorTemperatureLight',
261
249
  code: 0x010c,
262
250
  deviceClass: DeviceClasses.Simple,
263
251
  deviceScope: DeviceScopes.Endpoint,
@@ -268,8 +256,7 @@ export const colorTemperatureLight = DeviceTypeDefinition({
268
256
  optionalClientClusters: [OccupancySensing.id],
269
257
  });
270
258
  export const extendedColorLight = DeviceTypeDefinition({
271
- name: 'MA-extendedColorLight',
272
- deviceName: 'ExtendedColorLight',
259
+ name: 'ExtendedColorLight',
273
260
  code: 0x010d,
274
261
  deviceClass: DeviceClasses.Simple,
275
262
  deviceScope: DeviceScopes.Endpoint,
@@ -280,8 +267,7 @@ export const extendedColorLight = DeviceTypeDefinition({
280
267
  optionalClientClusters: [OccupancySensing.id],
281
268
  });
282
269
  export const onOffPlugInUnit = DeviceTypeDefinition({
283
- name: 'MA-onOffPlugInUnit',
284
- deviceName: 'OnOffPlugInUnit',
270
+ name: 'OnOffPlugInUnit',
285
271
  code: 0x010a,
286
272
  deviceClass: DeviceClasses.Simple,
287
273
  deviceScope: DeviceScopes.Endpoint,
@@ -293,8 +279,7 @@ export const onOffPlugInUnit = DeviceTypeDefinition({
293
279
  });
294
280
  export const onOffOutlet = onOffPlugInUnit;
295
281
  export const dimmablePlugInUnit = DeviceTypeDefinition({
296
- name: 'MA-dimmablePlugInUnit',
297
- deviceName: 'DimmablePlugInUnit',
282
+ name: 'DimmablePlugInUnit',
298
283
  code: 0x010b,
299
284
  deviceClass: DeviceClasses.Simple,
300
285
  deviceScope: DeviceScopes.Endpoint,
@@ -306,8 +291,7 @@ export const dimmablePlugInUnit = DeviceTypeDefinition({
306
291
  });
307
292
  export const dimmableOutlet = dimmablePlugInUnit;
308
293
  export const mountedOnOffControl = DeviceTypeDefinition({
309
- name: 'MA-mountedOnOffControl',
310
- deviceName: 'MountedOnOffControl',
294
+ name: 'MountedOnOffControl',
311
295
  code: 0x010f,
312
296
  deviceClass: DeviceClasses.Simple,
313
297
  deviceScope: DeviceScopes.Endpoint,
@@ -319,8 +303,7 @@ export const mountedOnOffControl = DeviceTypeDefinition({
319
303
  });
320
304
  export const onOffMountedSwitch = mountedOnOffControl;
321
305
  export const mountedDimmableLoadControl = DeviceTypeDefinition({
322
- name: 'MA-mountedDimmableLoadControl',
323
- deviceName: 'MountedDimmableLoadControl',
306
+ name: 'MountedDimmableLoadControl',
324
307
  code: 0x0110,
325
308
  deviceClass: DeviceClasses.Simple,
326
309
  deviceScope: DeviceScopes.Endpoint,
@@ -332,8 +315,7 @@ export const mountedDimmableLoadControl = DeviceTypeDefinition({
332
315
  });
333
316
  export const dimmableMountedSwitch = mountedDimmableLoadControl;
334
317
  export const pump = DeviceTypeDefinition({
335
- name: 'MA-pump',
336
- deviceName: 'Pump',
318
+ name: 'Pump',
337
319
  code: 0x303,
338
320
  deviceClass: DeviceClasses.Simple,
339
321
  deviceScope: DeviceScopes.Endpoint,
@@ -345,8 +327,7 @@ export const pump = DeviceTypeDefinition({
345
327
  });
346
328
  export const pumpDevice = pump;
347
329
  export const waterValve = DeviceTypeDefinition({
348
- name: 'MA-waterValve',
349
- deviceName: 'WaterValve',
330
+ name: 'WaterValve',
350
331
  code: 0x42,
351
332
  deviceClass: DeviceClasses.Simple,
352
333
  deviceScope: DeviceScopes.Endpoint,
@@ -357,8 +338,7 @@ export const waterValve = DeviceTypeDefinition({
357
338
  optionalClientClusters: [FlowMeasurement.id],
358
339
  });
359
340
  export const irrigationSystem = DeviceTypeDefinition({
360
- name: 'MA-irrigationSystem',
361
- deviceName: 'IrrigationSystem',
341
+ name: 'IrrigationSystem',
362
342
  code: 0x0040,
363
343
  deviceClass: DeviceClasses.Simple,
364
344
  deviceScope: DeviceScopes.Endpoint,
@@ -370,8 +350,7 @@ export const irrigationSystem = DeviceTypeDefinition({
370
350
  composedOf: [waterValve],
371
351
  });
372
352
  export const onOffLightSwitch = DeviceTypeDefinition({
373
- name: 'MA-onOffLightSwitch',
374
- deviceName: 'OnOffLightSwitch',
353
+ name: 'OnOffLightSwitch',
375
354
  code: 0x0103,
376
355
  deviceClass: DeviceClasses.Simple,
377
356
  deviceScope: DeviceScopes.Endpoint,
@@ -383,8 +362,7 @@ export const onOffLightSwitch = DeviceTypeDefinition({
383
362
  });
384
363
  export const onOffSwitch = onOffLightSwitch;
385
364
  export const dimmerSwitch = DeviceTypeDefinition({
386
- name: 'MA-dimmerSwitch',
387
- deviceName: 'DimmerSwitch',
365
+ name: 'DimmerSwitch',
388
366
  code: 0x0104,
389
367
  deviceClass: DeviceClasses.Simple,
390
368
  deviceScope: DeviceScopes.Endpoint,
@@ -396,8 +374,7 @@ export const dimmerSwitch = DeviceTypeDefinition({
396
374
  });
397
375
  export const dimmableSwitch = dimmerSwitch;
398
376
  export const colorDimmerSwitch = DeviceTypeDefinition({
399
- name: 'MA-colorDimmerSwitch',
400
- deviceName: 'ColorDimmerSwitch',
377
+ name: 'ColorDimmerSwitch',
401
378
  code: 0x0105,
402
379
  deviceClass: DeviceClasses.Simple,
403
380
  deviceScope: DeviceScopes.Endpoint,
@@ -409,8 +386,7 @@ export const colorDimmerSwitch = DeviceTypeDefinition({
409
386
  });
410
387
  export const colorTemperatureSwitch = colorDimmerSwitch;
411
388
  export const controlBridge = DeviceTypeDefinition({
412
- name: 'MA-controlBridge',
413
- deviceName: 'ControlBridge',
389
+ name: 'ControlBridge',
414
390
  code: 0x0840,
415
391
  deviceClass: DeviceClasses.Simple,
416
392
  deviceScope: DeviceScopes.Endpoint,
@@ -421,8 +397,7 @@ export const controlBridge = DeviceTypeDefinition({
421
397
  optionalClientClusters: [IlluminanceMeasurement.id, OccupancySensing.id],
422
398
  });
423
399
  export const pumpController = DeviceTypeDefinition({
424
- name: 'MA-pumpController',
425
- deviceName: 'PumpController',
400
+ name: 'PumpController',
426
401
  code: 0x0304,
427
402
  deviceClass: DeviceClasses.Simple,
428
403
  deviceScope: DeviceScopes.Endpoint,
@@ -433,8 +408,7 @@ export const pumpController = DeviceTypeDefinition({
433
408
  optionalClientClusters: [Identify.id, Groups.id, LevelControl.id, ScenesManagement.id, TemperatureMeasurement.id, PressureMeasurement.id, FlowMeasurement.id],
434
409
  });
435
410
  export const genericSwitch = DeviceTypeDefinition({
436
- name: 'MA-genericSwitch',
437
- deviceName: 'GenericSwitch',
411
+ name: 'GenericSwitch',
438
412
  code: 0x000f,
439
413
  deviceClass: DeviceClasses.Simple,
440
414
  deviceScope: DeviceScopes.Endpoint,
@@ -443,8 +417,7 @@ export const genericSwitch = DeviceTypeDefinition({
443
417
  optionalServerClusters: [],
444
418
  });
445
419
  export const contactSensor = DeviceTypeDefinition({
446
- name: 'MA-contactSensor',
447
- deviceName: 'ContactSensor',
420
+ name: 'ContactSensor',
448
421
  code: 0x0015,
449
422
  deviceClass: DeviceClasses.Simple,
450
423
  deviceScope: DeviceScopes.Endpoint,
@@ -453,8 +426,7 @@ export const contactSensor = DeviceTypeDefinition({
453
426
  optionalServerClusters: [BooleanStateConfiguration.id],
454
427
  });
455
428
  export const lightSensor = DeviceTypeDefinition({
456
- name: 'MA-lightSensor',
457
- deviceName: 'LightSensor',
429
+ name: 'LightSensor',
458
430
  code: 0x0106,
459
431
  deviceClass: DeviceClasses.Simple,
460
432
  deviceScope: DeviceScopes.Endpoint,
@@ -462,8 +434,7 @@ export const lightSensor = DeviceTypeDefinition({
462
434
  requiredServerClusters: [Identify.id, IlluminanceMeasurement.id],
463
435
  });
464
436
  export const occupancySensor = DeviceTypeDefinition({
465
- name: 'MA-occupancySensor',
466
- deviceName: 'OccupancySensor',
437
+ name: 'OccupancySensor',
467
438
  code: 0x0107,
468
439
  deviceClass: DeviceClasses.Simple,
469
440
  deviceScope: DeviceScopes.Endpoint,
@@ -472,8 +443,7 @@ export const occupancySensor = DeviceTypeDefinition({
472
443
  optionalServerClusters: [BooleanStateConfiguration.id],
473
444
  });
474
445
  export const temperatureSensor = DeviceTypeDefinition({
475
- name: 'MA-temperatureSensor',
476
- deviceName: 'TemperatureSensor',
446
+ name: 'TemperatureSensor',
477
447
  code: 0x0302,
478
448
  deviceClass: DeviceClasses.Simple,
479
449
  deviceScope: DeviceScopes.Endpoint,
@@ -482,8 +452,7 @@ export const temperatureSensor = DeviceTypeDefinition({
482
452
  optionalServerClusters: [ThermostatUserInterfaceConfiguration.id],
483
453
  });
484
454
  export const pressureSensor = DeviceTypeDefinition({
485
- name: 'MA-pressureSensor',
486
- deviceName: 'PressureSensor',
455
+ name: 'PressureSensor',
487
456
  code: 0x0305,
488
457
  deviceClass: DeviceClasses.Simple,
489
458
  deviceScope: DeviceScopes.Endpoint,
@@ -491,8 +460,7 @@ export const pressureSensor = DeviceTypeDefinition({
491
460
  requiredServerClusters: [Identify.id, PressureMeasurement.id],
492
461
  });
493
462
  export const flowSensor = DeviceTypeDefinition({
494
- name: 'MA-flowSensor',
495
- deviceName: 'FlowSensor',
463
+ name: 'FlowSensor',
496
464
  code: 0x0306,
497
465
  deviceClass: DeviceClasses.Simple,
498
466
  deviceScope: DeviceScopes.Endpoint,
@@ -500,8 +468,7 @@ export const flowSensor = DeviceTypeDefinition({
500
468
  requiredServerClusters: [Identify.id, FlowMeasurement.id],
501
469
  });
502
470
  export const humiditySensor = DeviceTypeDefinition({
503
- name: 'MA-humiditySensor',
504
- deviceName: 'HumiditySensor',
471
+ name: 'HumiditySensor',
505
472
  code: 0x0307,
506
473
  deviceClass: DeviceClasses.Simple,
507
474
  deviceScope: DeviceScopes.Endpoint,
@@ -509,8 +476,7 @@ export const humiditySensor = DeviceTypeDefinition({
509
476
  requiredServerClusters: [Identify.id, RelativeHumidityMeasurement.id],
510
477
  });
511
478
  export const onOffSensor = DeviceTypeDefinition({
512
- name: 'MA-onOffSensor',
513
- deviceName: 'OnOffSensor',
479
+ name: 'OnOffSensor',
514
480
  code: 0x0850,
515
481
  deviceClass: DeviceClasses.Simple,
516
482
  deviceScope: DeviceScopes.Endpoint,
@@ -520,8 +486,7 @@ export const onOffSensor = DeviceTypeDefinition({
520
486
  optionalClientClusters: [Groups.id, LevelControl.id, ColorControl.id, ScenesManagement.id],
521
487
  });
522
488
  export const smokeCoAlarm = DeviceTypeDefinition({
523
- name: 'MA-smokeCoAlarm',
524
- deviceName: 'SmokeCOAlarm',
489
+ name: 'SmokeCOAlarm',
525
490
  code: 0x0076,
526
491
  deviceClass: DeviceClasses.Simple,
527
492
  deviceScope: DeviceScopes.Endpoint,
@@ -531,8 +496,7 @@ export const smokeCoAlarm = DeviceTypeDefinition({
531
496
  requiredDeviceTypes: [powerSource],
532
497
  });
533
498
  export const airQualitySensor = DeviceTypeDefinition({
534
- name: 'MA-airQualitySensor',
535
- deviceName: 'AirQualitySensor',
499
+ name: 'AirQualitySensor',
536
500
  code: 0x002c,
537
501
  deviceClass: DeviceClasses.Simple,
538
502
  deviceScope: DeviceScopes.Endpoint,
@@ -554,8 +518,7 @@ export const airQualitySensor = DeviceTypeDefinition({
554
518
  ],
555
519
  });
556
520
  export const waterFreezeDetector = DeviceTypeDefinition({
557
- name: 'MA-waterFreezeDetector',
558
- deviceName: 'WaterFreezeDetector',
521
+ name: 'WaterFreezeDetector',
559
522
  code: 0x0041,
560
523
  deviceClass: DeviceClasses.Simple,
561
524
  deviceScope: DeviceScopes.Endpoint,
@@ -564,8 +527,7 @@ export const waterFreezeDetector = DeviceTypeDefinition({
564
527
  optionalServerClusters: [BooleanStateConfiguration.id],
565
528
  });
566
529
  export const waterLeakDetector = DeviceTypeDefinition({
567
- name: 'MA-waterLeakDetector',
568
- deviceName: 'WaterLeakDetector',
530
+ name: 'WaterLeakDetector',
569
531
  code: 0x0043,
570
532
  deviceClass: DeviceClasses.Simple,
571
533
  deviceScope: DeviceScopes.Endpoint,
@@ -574,8 +536,7 @@ export const waterLeakDetector = DeviceTypeDefinition({
574
536
  optionalServerClusters: [BooleanStateConfiguration.id],
575
537
  });
576
538
  export const rainSensor = DeviceTypeDefinition({
577
- name: 'MA-rainSensor',
578
- deviceName: 'RainSensor',
539
+ name: 'RainSensor',
579
540
  code: 0x0044,
580
541
  deviceClass: DeviceClasses.Simple,
581
542
  deviceScope: DeviceScopes.Endpoint,
@@ -584,8 +545,7 @@ export const rainSensor = DeviceTypeDefinition({
584
545
  optionalServerClusters: [BooleanStateConfiguration.id],
585
546
  });
586
547
  export const soilSensor = DeviceTypeDefinition({
587
- name: 'MA-soilSensor',
588
- deviceName: 'SoilSensor',
548
+ name: 'SoilSensor',
589
549
  code: 0x0045,
590
550
  deviceClass: DeviceClasses.Simple,
591
551
  deviceScope: DeviceScopes.Endpoint,
@@ -594,8 +554,7 @@ export const soilSensor = DeviceTypeDefinition({
594
554
  optionalServerClusters: [TemperatureMeasurement.id],
595
555
  });
596
556
  export const doorLock = DeviceTypeDefinition({
597
- name: 'MA-doorLock',
598
- deviceName: 'DoorLock',
557
+ name: 'DoorLock',
599
558
  code: 0xa,
600
559
  deviceClass: DeviceClasses.Simple,
601
560
  deviceScope: DeviceScopes.Endpoint,
@@ -605,8 +564,7 @@ export const doorLock = DeviceTypeDefinition({
605
564
  });
606
565
  export const doorLockDevice = doorLock;
607
566
  export const doorLockController = DeviceTypeDefinition({
608
- name: 'MA-doorLockController',
609
- deviceName: 'DoorLockController',
567
+ name: 'DoorLockController',
610
568
  code: 0x00b,
611
569
  deviceClass: DeviceClasses.Simple,
612
570
  deviceScope: DeviceScopes.Endpoint,
@@ -617,8 +575,7 @@ export const doorLockController = DeviceTypeDefinition({
617
575
  optionalClientClusters: [Groups.id, ScenesManagement.id],
618
576
  });
619
577
  export const windowCovering = DeviceTypeDefinition({
620
- name: 'MA-windowCovering',
621
- deviceName: 'WindowCovering',
578
+ name: 'WindowCovering',
622
579
  code: 0x202,
623
580
  deviceClass: DeviceClasses.Simple,
624
581
  deviceScope: DeviceScopes.Endpoint,
@@ -628,8 +585,7 @@ export const windowCovering = DeviceTypeDefinition({
628
585
  });
629
586
  export const coverDevice = windowCovering;
630
587
  export const windowCoveringController = DeviceTypeDefinition({
631
- name: 'MA-windowCoveringController',
632
- deviceName: 'WindowCoveringController',
588
+ name: 'WindowCoveringController',
633
589
  code: 0x203,
634
590
  deviceClass: DeviceClasses.Simple,
635
591
  deviceScope: DeviceScopes.Endpoint,
@@ -640,8 +596,7 @@ export const windowCoveringController = DeviceTypeDefinition({
640
596
  optionalClientClusters: [Identify.id, Groups.id],
641
597
  });
642
598
  export const closure = DeviceTypeDefinition({
643
- name: 'MA-closure',
644
- deviceName: 'Closure',
599
+ name: 'Closure',
645
600
  code: 0x0230,
646
601
  deviceClass: DeviceClasses.Simple,
647
602
  deviceScope: DeviceScopes.Endpoint,
@@ -650,8 +605,7 @@ export const closure = DeviceTypeDefinition({
650
605
  optionalServerClusters: [],
651
606
  });
652
607
  export const closurePanel = DeviceTypeDefinition({
653
- name: 'MA-closurePanel',
654
- deviceName: 'ClosurePanel',
608
+ name: 'ClosurePanel',
655
609
  code: 0x0231,
656
610
  deviceClass: DeviceClasses.Simple,
657
611
  deviceScope: DeviceScopes.Endpoint,
@@ -660,8 +614,7 @@ export const closurePanel = DeviceTypeDefinition({
660
614
  optionalServerClusters: [],
661
615
  });
662
616
  export const closureController = DeviceTypeDefinition({
663
- name: 'MA-closureController',
664
- deviceName: 'ClosureController',
617
+ name: 'ClosureController',
665
618
  code: 0x023e,
666
619
  deviceClass: DeviceClasses.Simple,
667
620
  deviceScope: DeviceScopes.Endpoint,
@@ -672,8 +625,7 @@ export const closureController = DeviceTypeDefinition({
672
625
  optionalClientClusters: [Identify.id, Groups.id, ClosureDimension.id],
673
626
  });
674
627
  export const thermostat = DeviceTypeDefinition({
675
- name: 'MA-thermostat',
676
- deviceName: 'Thermostat',
628
+ name: 'Thermostat',
677
629
  code: 0x301,
678
630
  deviceClass: DeviceClasses.Simple,
679
631
  deviceScope: DeviceScopes.Endpoint,
@@ -685,8 +637,7 @@ export const thermostat = DeviceTypeDefinition({
685
637
  });
686
638
  export const thermostatDevice = thermostat;
687
639
  export const fan = DeviceTypeDefinition({
688
- name: 'MA-fan',
689
- deviceName: 'Fan',
640
+ name: 'Fan',
690
641
  code: 0x2b,
691
642
  deviceClass: DeviceClasses.Simple,
692
643
  deviceScope: DeviceScopes.Endpoint,
@@ -696,8 +647,7 @@ export const fan = DeviceTypeDefinition({
696
647
  });
697
648
  export const fanDevice = fan;
698
649
  export const airPurifier = DeviceTypeDefinition({
699
- name: 'MA-airPurifier',
700
- deviceName: 'AirPurifier',
650
+ name: 'AirPurifier',
701
651
  code: 0x2d,
702
652
  deviceClass: DeviceClasses.Simple,
703
653
  deviceScope: DeviceScopes.Endpoint,
@@ -706,8 +656,7 @@ export const airPurifier = DeviceTypeDefinition({
706
656
  optionalServerClusters: [Groups.id, OnOff.id, HepaFilterMonitoring.id, ActivatedCarbonFilterMonitoring.id],
707
657
  });
708
658
  export const thermostatController = DeviceTypeDefinition({
709
- name: 'MA-thermostatController',
710
- deviceName: 'ThermostatController',
659
+ name: 'ThermostatController',
711
660
  code: 0x030a,
712
661
  deviceClass: DeviceClasses.Simple,
713
662
  deviceScope: DeviceScopes.Endpoint,
@@ -718,8 +667,7 @@ export const thermostatController = DeviceTypeDefinition({
718
667
  optionalClientClusters: [Identify.id, Groups.id, ScenesManagement.id],
719
668
  });
720
669
  export const basicVideoPlayer = DeviceTypeDefinition({
721
- name: 'MA-basicVideoPlayer',
722
- deviceName: 'BasicVideoPlayer',
670
+ name: 'BasicVideoPlayer',
723
671
  code: 0x0028,
724
672
  deviceClass: DeviceClasses.Simple,
725
673
  deviceScope: DeviceScopes.Endpoint,
@@ -728,8 +676,7 @@ export const basicVideoPlayer = DeviceTypeDefinition({
728
676
  optionalServerClusters: [WakeOnLan.id, Channel.id, TargetNavigator.id, MediaInput.id, LowPower.id, AudioOutput.id, ContentControl.id, Messages.id],
729
677
  });
730
678
  export const castingVideoPlayer = DeviceTypeDefinition({
731
- name: 'MA-castingVideoPlayer',
732
- deviceName: 'CastingVideoPlayer',
679
+ name: 'CastingVideoPlayer',
733
680
  code: 0x0023,
734
681
  deviceClass: DeviceClasses.Simple,
735
682
  deviceScope: DeviceScopes.Endpoint,
@@ -749,8 +696,7 @@ export const castingVideoPlayer = DeviceTypeDefinition({
749
696
  ],
750
697
  });
751
698
  export const speaker = DeviceTypeDefinition({
752
- name: 'MA-speaker',
753
- deviceName: 'Speaker',
699
+ name: 'Speaker',
754
700
  code: 0x0022,
755
701
  deviceClass: DeviceClasses.Simple,
756
702
  deviceScope: DeviceScopes.Endpoint,
@@ -760,8 +706,7 @@ export const speaker = DeviceTypeDefinition({
760
706
  });
761
707
  export const speakerDevice = speaker;
762
708
  export const contentApp = DeviceTypeDefinition({
763
- name: 'MA-contentApp',
764
- deviceName: 'ContentApp',
709
+ name: 'ContentApp',
765
710
  code: 0x0024,
766
711
  deviceClass: DeviceClasses.Simple,
767
712
  deviceScope: DeviceScopes.Endpoint,
@@ -772,8 +717,7 @@ export const contentApp = DeviceTypeDefinition({
772
717
  optionalClientClusters: [ContentAppObserver.id],
773
718
  });
774
719
  export const castingVideoClient = DeviceTypeDefinition({
775
- name: 'MA-castingVideoClient',
776
- deviceName: 'CastingVideoClient',
720
+ name: 'CastingVideoClient',
777
721
  code: 0x0029,
778
722
  deviceClass: DeviceClasses.Simple,
779
723
  deviceScope: DeviceScopes.Endpoint,
@@ -797,8 +741,7 @@ export const castingVideoClient = DeviceTypeDefinition({
797
741
  ],
798
742
  });
799
743
  export const videoRemoteControl = DeviceTypeDefinition({
800
- name: 'MA-videoRemoteControl',
801
- deviceName: 'VideoRemoteControl',
744
+ name: 'VideoRemoteControl',
802
745
  code: 0x002a,
803
746
  deviceClass: DeviceClasses.Simple,
804
747
  deviceScope: DeviceScopes.Endpoint,
@@ -821,8 +764,7 @@ export const videoRemoteControl = DeviceTypeDefinition({
821
764
  ],
822
765
  });
823
766
  export const modeSelect = DeviceTypeDefinition({
824
- name: 'MA-modeSelect',
825
- deviceName: 'ModeSelect',
767
+ name: 'ModeSelect',
826
768
  code: 0x27,
827
769
  deviceClass: DeviceClasses.Simple,
828
770
  deviceScope: DeviceScopes.Endpoint,
@@ -830,8 +772,7 @@ export const modeSelect = DeviceTypeDefinition({
830
772
  requiredServerClusters: [ModeSelect.id],
831
773
  });
832
774
  export const aggregator = DeviceTypeDefinition({
833
- name: 'MA-aggregator',
834
- deviceName: 'Aggregator',
775
+ name: 'Aggregator',
835
776
  code: 0x000e,
836
777
  deviceClass: DeviceClasses.Dynamic,
837
778
  deviceScope: DeviceScopes.Endpoint,
@@ -841,8 +782,7 @@ export const aggregator = DeviceTypeDefinition({
841
782
  });
842
783
  export const bridge = aggregator;
843
784
  export const roboticVacuumCleaner = DeviceTypeDefinition({
844
- name: 'MA-roboticVacuumCleaner',
845
- deviceName: 'RoboticVacuumCleaner',
785
+ name: 'RoboticVacuumCleaner',
846
786
  code: 0x74,
847
787
  deviceClass: DeviceClasses.Simple,
848
788
  deviceScope: DeviceScopes.Endpoint,
@@ -851,8 +791,7 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
851
791
  optionalServerClusters: [RvcCleanMode.id, ServiceArea.id],
852
792
  });
853
793
  export const laundryWasher = DeviceTypeDefinition({
854
- name: 'MA-laundryWasher',
855
- deviceName: 'LaundryWasher',
794
+ name: 'LaundryWasher',
856
795
  code: 0x73,
857
796
  deviceClass: DeviceClasses.Simple,
858
797
  deviceScope: DeviceScopes.Endpoint,
@@ -861,8 +800,7 @@ export const laundryWasher = DeviceTypeDefinition({
861
800
  optionalServerClusters: [Identify.id, LaundryWasherMode.id, OnOff.id, LaundryWasherControls.id, TemperatureControl.id],
862
801
  });
863
802
  export const refrigerator = DeviceTypeDefinition({
864
- name: 'MA-refrigerator',
865
- deviceName: 'Refrigerator',
803
+ name: 'Refrigerator',
866
804
  code: 0x70,
867
805
  deviceClass: DeviceClasses.Simple,
868
806
  deviceScope: DeviceScopes.Endpoint,
@@ -871,8 +809,7 @@ export const refrigerator = DeviceTypeDefinition({
871
809
  optionalServerClusters: [Identify.id, RefrigeratorAndTemperatureControlledCabinetMode.id, RefrigeratorAlarm.id],
872
810
  });
873
811
  export const roomAirConditioner = DeviceTypeDefinition({
874
- name: 'MA-roomAirConditioner',
875
- deviceName: 'RoomAirConditioner',
812
+ name: 'RoomAirConditioner',
876
813
  code: 0x72,
877
814
  deviceClass: DeviceClasses.Simple,
878
815
  deviceScope: DeviceScopes.Endpoint,
@@ -891,8 +828,7 @@ export const roomAirConditioner = DeviceTypeDefinition({
891
828
  });
892
829
  export const airConditioner = roomAirConditioner;
893
830
  export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
894
- name: 'MA-temperatureControlledCabinetCooler',
895
- deviceName: 'TemperatureControlledCabinet',
831
+ name: 'TemperatureControlledCabinet',
896
832
  code: 0x71,
897
833
  deviceClass: DeviceClasses.Simple,
898
834
  deviceScope: DeviceScopes.Endpoint,
@@ -901,8 +837,7 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
901
837
  optionalServerClusters: [TemperatureMeasurement.id],
902
838
  });
903
839
  export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
904
- name: 'MA-temperatureControlledCabinetHeater',
905
- deviceName: 'TemperatureControlledCabinet',
840
+ name: 'TemperatureControlledCabinet',
906
841
  code: 0x71,
907
842
  deviceClass: DeviceClasses.Simple,
908
843
  deviceScope: DeviceScopes.Endpoint,
@@ -911,8 +846,7 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
911
846
  optionalServerClusters: [TemperatureMeasurement.id],
912
847
  });
913
848
  export const dishwasher = DeviceTypeDefinition({
914
- name: 'MA-dishwasher',
915
- deviceName: 'Dishwasher',
849
+ name: 'Dishwasher',
916
850
  code: 0x75,
917
851
  deviceClass: DeviceClasses.Simple,
918
852
  deviceScope: DeviceScopes.Endpoint,
@@ -921,8 +855,7 @@ export const dishwasher = DeviceTypeDefinition({
921
855
  optionalServerClusters: [Identify.id, OnOff.id, TemperatureControl.id, DishwasherMode.id, DishwasherAlarm.id],
922
856
  });
923
857
  export const laundryDryer = DeviceTypeDefinition({
924
- name: 'MA-laundryDryer',
925
- deviceName: 'LaundryDryer',
858
+ name: 'LaundryDryer',
926
859
  code: 0x7c,
927
860
  deviceClass: DeviceClasses.Simple,
928
861
  deviceScope: DeviceScopes.Endpoint,
@@ -931,8 +864,7 @@ export const laundryDryer = DeviceTypeDefinition({
931
864
  optionalServerClusters: [Identify.id, LaundryWasherMode.id, OnOff.id, LaundryDryerControls.id, TemperatureControl.id],
932
865
  });
933
866
  export const cookSurface = DeviceTypeDefinition({
934
- name: 'MA-cookSurface',
935
- deviceName: 'CookSurface',
867
+ name: 'CookSurface',
936
868
  code: 0x77,
937
869
  deviceClass: DeviceClasses.Simple,
938
870
  deviceScope: DeviceScopes.Endpoint,
@@ -941,8 +873,7 @@ export const cookSurface = DeviceTypeDefinition({
941
873
  optionalServerClusters: [TemperatureControl.id, TemperatureMeasurement.id, OnOff.id],
942
874
  });
943
875
  export const cooktop = DeviceTypeDefinition({
944
- name: 'MA-cooktop',
945
- deviceName: 'Cooktop',
876
+ name: 'Cooktop',
946
877
  code: 0x78,
947
878
  deviceClass: DeviceClasses.Simple,
948
879
  deviceScope: DeviceScopes.Endpoint,
@@ -951,8 +882,7 @@ export const cooktop = DeviceTypeDefinition({
951
882
  optionalServerClusters: [Identify.id],
952
883
  });
953
884
  export const oven = DeviceTypeDefinition({
954
- name: 'MA-oven',
955
- deviceName: 'Oven',
885
+ name: 'Oven',
956
886
  code: 0x7b,
957
887
  deviceClass: DeviceClasses.Simple,
958
888
  deviceScope: DeviceScopes.Endpoint,
@@ -961,8 +891,7 @@ export const oven = DeviceTypeDefinition({
961
891
  optionalServerClusters: [Identify.id],
962
892
  });
963
893
  export const extractorHood = DeviceTypeDefinition({
964
- name: 'MA-extractorHood',
965
- deviceName: 'ExtractorHood',
894
+ name: 'ExtractorHood',
966
895
  code: 0x7a,
967
896
  deviceClass: DeviceClasses.Simple,
968
897
  deviceScope: DeviceScopes.Endpoint,
@@ -971,8 +900,7 @@ export const extractorHood = DeviceTypeDefinition({
971
900
  optionalServerClusters: [Identify.id, HepaFilterMonitoring.id, ActivatedCarbonFilterMonitoring.id],
972
901
  });
973
902
  export const microwaveOven = DeviceTypeDefinition({
974
- name: 'MA-microwaveOven',
975
- deviceName: 'MicrowaveOven',
903
+ name: 'MicrowaveOven',
976
904
  code: 0x79,
977
905
  deviceClass: DeviceClasses.Simple,
978
906
  deviceScope: DeviceScopes.Endpoint,
@@ -981,8 +909,7 @@ export const microwaveOven = DeviceTypeDefinition({
981
909
  optionalServerClusters: [Identify.id, FanControl.id],
982
910
  });
983
911
  export const evse = DeviceTypeDefinition({
984
- name: 'MA-evse',
985
- deviceName: 'EnergyEVSE',
912
+ name: 'EnergyEVSE',
986
913
  code: 0x050c,
987
914
  deviceClass: DeviceClasses.Simple,
988
915
  deviceScope: DeviceScopes.Endpoint,
@@ -991,8 +918,7 @@ export const evse = DeviceTypeDefinition({
991
918
  optionalServerClusters: [Identify.id, TemperatureMeasurement.id],
992
919
  });
993
920
  export const waterHeater = DeviceTypeDefinition({
994
- name: 'MA-waterHeater',
995
- deviceName: 'WaterHeater',
921
+ name: 'WaterHeater',
996
922
  code: 0x050f,
997
923
  deviceClass: DeviceClasses.Simple,
998
924
  deviceScope: DeviceScopes.Endpoint,
@@ -1001,8 +927,7 @@ export const waterHeater = DeviceTypeDefinition({
1001
927
  optionalServerClusters: [Identify.id],
1002
928
  });
1003
929
  export const solarPower = DeviceTypeDefinition({
1004
- name: 'MA-solarPower',
1005
- deviceName: 'SolarPower',
930
+ name: 'SolarPower',
1006
931
  code: 0x0017,
1007
932
  deviceClass: DeviceClasses.Simple,
1008
933
  deviceScope: DeviceScopes.Endpoint,
@@ -1011,8 +936,7 @@ export const solarPower = DeviceTypeDefinition({
1011
936
  optionalServerClusters: [Identify.id],
1012
937
  });
1013
938
  export const batteryStorage = DeviceTypeDefinition({
1014
- name: 'MA-batteryStorage',
1015
- deviceName: 'BatteryStorage',
939
+ name: 'BatteryStorage',
1016
940
  code: 0x0018,
1017
941
  deviceClass: DeviceClasses.Simple,
1018
942
  deviceScope: DeviceScopes.Endpoint,
@@ -1021,8 +945,7 @@ export const batteryStorage = DeviceTypeDefinition({
1021
945
  optionalServerClusters: [Identify.id],
1022
946
  });
1023
947
  export const heatPump = DeviceTypeDefinition({
1024
- name: 'MA-heatPump',
1025
- deviceName: 'HeatPump',
948
+ name: 'HeatPump',
1026
949
  code: 0x0309,
1027
950
  deviceClass: DeviceClasses.Simple,
1028
951
  deviceScope: DeviceScopes.Endpoint,
@@ -1033,8 +956,7 @@ export const heatPump = DeviceTypeDefinition({
1033
956
  optionalClientClusters: [Thermostat.id],
1034
957
  });
1035
958
  export const meterReferencePoint = DeviceTypeDefinition({
1036
- name: 'MA-meterReferencePoint',
1037
- deviceName: 'MeterReferencePoint',
959
+ name: 'MeterReferencePoint',
1038
960
  code: 0x0512,
1039
961
  deviceClass: DeviceClasses.Simple,
1040
962
  deviceScope: DeviceScopes.Endpoint,
@@ -1043,8 +965,7 @@ export const meterReferencePoint = DeviceTypeDefinition({
1043
965
  optionalServerClusters: [],
1044
966
  });
1045
967
  export const electricalEnergyTariff = DeviceTypeDefinition({
1046
- name: 'MA-electricalEnergyTariff',
1047
- deviceName: 'ElectricalEnergyTariff',
968
+ name: 'ElectricalEnergyTariff',
1048
969
  code: 0x0513,
1049
970
  deviceClass: DeviceClasses.Simple,
1050
971
  deviceScope: DeviceScopes.Endpoint,
@@ -1053,8 +974,7 @@ export const electricalEnergyTariff = DeviceTypeDefinition({
1053
974
  optionalServerClusters: [CommodityPrice.id, ElectricalGridConditions.id, CommodityTariff.id],
1054
975
  });
1055
976
  export const electricalMeter = DeviceTypeDefinition({
1056
- name: 'MA-electricalMeter',
1057
- deviceName: 'ElectricalMeter',
977
+ name: 'ElectricalMeter',
1058
978
  code: 0x0514,
1059
979
  deviceClass: DeviceClasses.Simple,
1060
980
  deviceScope: DeviceScopes.Endpoint,
@@ -1063,8 +983,7 @@ export const electricalMeter = DeviceTypeDefinition({
1063
983
  optionalServerClusters: [CommodityMetering.id],
1064
984
  });
1065
985
  export const electricalUtilityMeter = DeviceTypeDefinition({
1066
- name: 'MA-electricalUtilityMeter',
1067
- deviceName: 'ElectricalUtilityMeter',
986
+ name: 'ElectricalUtilityMeter',
1068
987
  code: 0x0511,
1069
988
  deviceClass: DeviceClasses.Simple,
1070
989
  deviceScope: DeviceScopes.Endpoint,
@@ -1073,8 +992,7 @@ export const electricalUtilityMeter = DeviceTypeDefinition({
1073
992
  optionalServerClusters: [],
1074
993
  });
1075
994
  export const camera = DeviceTypeDefinition({
1076
- name: 'MA-camera',
1077
- deviceName: 'Camera',
995
+ name: 'Camera',
1078
996
  code: 0x0142,
1079
997
  deviceClass: DeviceClasses.Simple,
1080
998
  deviceScope: DeviceScopes.Endpoint,
@@ -1085,8 +1003,7 @@ export const camera = DeviceTypeDefinition({
1085
1003
  optionalClientClusters: [WebRtcTransportProvider.id],
1086
1004
  });
1087
1005
  export const floodlightCamera = DeviceTypeDefinition({
1088
- name: 'MA-floodlightCamera',
1089
- deviceName: 'FloodlightCamera',
1006
+ name: 'FloodlightCamera',
1090
1007
  code: 0x0144,
1091
1008
  deviceClass: DeviceClasses.Simple,
1092
1009
  deviceScope: DeviceScopes.Endpoint,
@@ -1095,8 +1012,7 @@ export const floodlightCamera = DeviceTypeDefinition({
1095
1012
  optionalServerClusters: [],
1096
1013
  });
1097
1014
  export const videoDoorbell = DeviceTypeDefinition({
1098
- name: 'MA-videoDoorbell',
1099
- deviceName: 'VideoDoorbell',
1015
+ name: 'VideoDoorbell',
1100
1016
  code: 0x0143,
1101
1017
  deviceClass: DeviceClasses.Simple,
1102
1018
  deviceScope: DeviceScopes.Endpoint,
@@ -1105,8 +1021,7 @@ export const videoDoorbell = DeviceTypeDefinition({
1105
1021
  optionalServerClusters: [],
1106
1022
  });
1107
1023
  export const intercom = DeviceTypeDefinition({
1108
- name: 'MA-intercom',
1109
- deviceName: 'Intercom',
1024
+ name: 'Intercom',
1110
1025
  code: 0x0140,
1111
1026
  deviceClass: DeviceClasses.Simple,
1112
1027
  deviceScope: DeviceScopes.Endpoint,
@@ -1117,8 +1032,7 @@ export const intercom = DeviceTypeDefinition({
1117
1032
  optionalClientClusters: [Chime.id],
1118
1033
  });
1119
1034
  export const audioDoorbell = DeviceTypeDefinition({
1120
- name: 'MA-audioDoorbell',
1121
- deviceName: 'AudioDoorbell',
1035
+ name: 'AudioDoorbell',
1122
1036
  code: 0x0141,
1123
1037
  deviceClass: DeviceClasses.Simple,
1124
1038
  deviceScope: DeviceScopes.Endpoint,
@@ -1129,8 +1043,7 @@ export const audioDoorbell = DeviceTypeDefinition({
1129
1043
  optionalClientClusters: [WebRtcTransportProvider.id],
1130
1044
  });
1131
1045
  export const snapshotCamera = DeviceTypeDefinition({
1132
- name: 'MA-snapshotCamera',
1133
- deviceName: 'SnapshotCamera',
1046
+ name: 'SnapshotCamera',
1134
1047
  code: 0x0145,
1135
1048
  deviceClass: DeviceClasses.Simple,
1136
1049
  deviceScope: DeviceScopes.Endpoint,
@@ -1139,8 +1052,7 @@ export const snapshotCamera = DeviceTypeDefinition({
1139
1052
  optionalServerClusters: [Identify.id, OccupancySensing.id, ZoneManagement.id, CameraAvSettingsUserLevelManagement.id],
1140
1053
  });
1141
1054
  export const chime = DeviceTypeDefinition({
1142
- name: 'MA-chime',
1143
- deviceName: 'Chime',
1055
+ name: 'Chime',
1144
1056
  code: 0x0146,
1145
1057
  deviceClass: DeviceClasses.Simple,
1146
1058
  deviceScope: DeviceScopes.Endpoint,
@@ -1149,8 +1061,7 @@ export const chime = DeviceTypeDefinition({
1149
1061
  optionalServerClusters: [Identify.id],
1150
1062
  });
1151
1063
  export const cameraController = DeviceTypeDefinition({
1152
- name: 'MA-cameraController',
1153
- deviceName: 'CameraController',
1064
+ name: 'CameraController',
1154
1065
  code: 0x0147,
1155
1066
  deviceClass: DeviceClasses.Simple,
1156
1067
  deviceScope: DeviceScopes.Endpoint,
@@ -1171,8 +1082,7 @@ export const cameraController = DeviceTypeDefinition({
1171
1082
  ],
1172
1083
  });
1173
1084
  export const doorbell = DeviceTypeDefinition({
1174
- name: 'MA-doorbell',
1175
- deviceName: 'Doorbell',
1085
+ name: 'Doorbell',
1176
1086
  code: 0x0148,
1177
1087
  deviceClass: DeviceClasses.Simple,
1178
1088
  deviceScope: DeviceScopes.Endpoint,
@@ -1272,9 +1182,7 @@ export const supportedDeviceTypes = [
1272
1182
  cameraController,
1273
1183
  doorbell,
1274
1184
  ];
1275
- export const getSupportedDeviceType = (key) => typeof key === 'number'
1276
- ? supportedDeviceTypes.find((deviceType) => deviceType.code === key)
1277
- : supportedDeviceTypes.find((deviceType) => deviceType.name === key || deviceType.deviceName === key);
1185
+ export const getSupportedDeviceType = (key) => typeof key === 'number' ? supportedDeviceTypes.find((deviceType) => deviceType.code === key) : supportedDeviceTypes.find((deviceType) => deviceType.name === key);
1278
1186
  export const supportedClusters = [
1279
1187
  AccountLogin,
1280
1188
  Actions,
@@ -142,7 +142,7 @@ export class MatterbridgeEndpoint extends Endpoint {
142
142
  deviceTypeList = [{ deviceType: firstDefinition.code, revision: firstDefinition.revision }];
143
143
  }
144
144
  const deviceTypeDefinitionV8 = {
145
- name: firstDefinition.name.replace('-', '_'),
145
+ name: firstDefinition.name,
146
146
  deviceType: firstDefinition.code,
147
147
  deviceRevision: firstDefinition.revision,
148
148
  deviceClass: firstDefinition.deviceClass.toLowerCase(),
@@ -39,7 +39,7 @@ export declare function optionsFor<T extends Behavior.Type>(type: T, options: Be
39
39
  export declare function defaultFor<T extends Behavior.Type>(type: T, options?: Behavior.Options<T>): Partial<Behavior.Options<T>> | undefined;
40
40
  export declare function getBehaviourTypesFromClusterServerIds(clusterServerList: ClusterId[]): Behavior.Type[];
41
41
  export declare function getBehaviourTypesFromClusterClientIds(clusterClientList: ClusterId[]): Behavior.Type[];
42
- export declare function getBehaviourTypeFromClusterServerId(clusterId: ClusterId): Behavior.Type;
42
+ export declare function getBehaviourTypeFromClusterServerId(clusterId: ClusterId): Behavior.Type | undefined;
43
43
  export declare function getBehaviourTypeFromClusterClientId(clusterId: ClusterId): ClusterBehavior.Type | undefined;
44
44
  export declare function getBehavior(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string): Behavior.Type | undefined;
45
45
  export declare function invokeBehaviorCommand(endpoint: MatterbridgeEndpoint, cluster: Behavior.Type | ClusterType | ClusterId | string, command: CommandHandlers, params?: Record<string, boolean | number | bigint | string | object | null>): Promise<boolean>;
@@ -228,7 +228,9 @@ export function defaultFor(type, options) {
228
228
  export function getBehaviourTypesFromClusterServerIds(clusterServerList) {
229
229
  const behaviorTypes = [];
230
230
  clusterServerList.forEach((clusterId) => {
231
- behaviorTypes.push(getBehaviourTypeFromClusterServerId(clusterId));
231
+ const behaviorType = getBehaviourTypeFromClusterServerId(clusterId);
232
+ if (behaviorType)
233
+ behaviorTypes.push(behaviorType);
232
234
  });
233
235
  return behaviorTypes;
234
236
  }
@@ -334,7 +336,7 @@ export function getBehaviourTypeFromClusterServerId(clusterId) {
334
336
  return MatterbridgeDeviceEnergyManagementServer.with('PowerForecastReporting');
335
337
  if (clusterId === DeviceEnergyManagementMode.id)
336
338
  return MatterbridgeDeviceEnergyManagementModeServer;
337
- return MatterbridgeIdentifyServer;
339
+ return undefined;
338
340
  }
339
341
  export function getBehaviourTypeFromClusterClientId(clusterId) {
340
342
  if (clusterId === Identify.id)
@@ -0,0 +1,12 @@
1
+ import { Behavior } from '@matter/node';
2
+ import { ClusterId } from '@matter/types/datatype';
3
+ import type { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
4
+ export interface CreateClusterServerOptions {
5
+ features?: Record<string, boolean> | string[];
6
+ attributes?: Record<string, unknown>;
7
+ }
8
+ export declare function snakeCase(name: string): string;
9
+ export declare function pascalCase(name: string): string;
10
+ export declare function camelCase(name: string): string;
11
+ export declare function getServerBehaviorFromClusterId(clusterId: ClusterId, features?: Record<string, boolean> | string[]): Promise<Behavior.Type | undefined>;
12
+ export declare function createClusterServer(endpoint: MatterbridgeEndpoint, clusterId: ClusterId, options?: CreateClusterServerOptions): Promise<MatterbridgeEndpoint>;
@@ -0,0 +1,62 @@
1
+ import { ClusterBehavior } from '@matter/node';
2
+ import { getClusterNameById } from '@matter/types/cluster';
3
+ import { db, hk } from 'node-ansi-logger';
4
+ export function snakeCase(name) {
5
+ let result = '';
6
+ let needSeparator = false;
7
+ for (const char of name) {
8
+ if (char >= 'A' && char <= 'Z') {
9
+ if (needSeparator) {
10
+ result += '-';
11
+ needSeparator = false;
12
+ }
13
+ result += char.toLowerCase();
14
+ }
15
+ else {
16
+ result += char;
17
+ needSeparator = true;
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ export function pascalCase(name) {
23
+ return name
24
+ .split(/[-_]/)
25
+ .filter((piece) => piece.length > 0)
26
+ .map((piece) => piece.charAt(0).toUpperCase() + piece.slice(1))
27
+ .join('');
28
+ }
29
+ export function camelCase(name) {
30
+ const pascal = pascalCase(name);
31
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
32
+ }
33
+ export async function getServerBehaviorFromClusterId(clusterId, features) {
34
+ const name = getClusterNameById(clusterId);
35
+ if (name.includes('Unknown cluster'))
36
+ return undefined;
37
+ let mod;
38
+ try {
39
+ mod = (await import(`@matter/node/behaviors/${snakeCase(name)}`));
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ const base = mod[`${name}Server`];
45
+ if (!base || !ClusterBehavior.isType(base))
46
+ return undefined;
47
+ const featureNames = (Array.isArray(features)
48
+ ? features
49
+ : Object.entries(features ?? {})
50
+ .filter(([, enabled]) => enabled)
51
+ .map(([key]) => key)).map((key) => pascalCase(key));
52
+ return featureNames.length > 0 ? base.with(...featureNames) : base;
53
+ }
54
+ export async function createClusterServer(endpoint, clusterId, options) {
55
+ const type = await getServerBehaviorFromClusterId(clusterId, options?.features);
56
+ if (!type) {
57
+ endpoint.log.warn(`createClusterServer: no matter.js server for clusterId ${hk}0x${clusterId.toString(16).padStart(4, '0')}${db}`);
58
+ return endpoint;
59
+ }
60
+ endpoint.behaviors.require(type, options?.attributes ?? {});
61
+ return endpoint;
62
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterbridge/core",
3
- "version": "3.8.1-dev-20260610-f258cc7",
3
+ "version": "3.9.0-dev-20260611-fd7bca4",
4
4
  "description": "Matterbridge core library",
5
5
  "author": "https://github.com/Luligu",
6
6
  "homepage": "https://matterbridge.io/",
@@ -129,11 +129,11 @@
129
129
  "CHANGELOG.md"
130
130
  ],
131
131
  "dependencies": {
132
- "@matter/main": "0.17.2-alpha.0-20260609-97109a2d3",
133
- "@matterbridge/dgram": "3.8.1-dev-20260610-f258cc7",
134
- "@matterbridge/thread": "3.8.1-dev-20260610-f258cc7",
135
- "@matterbridge/types": "3.8.1-dev-20260610-f258cc7",
136
- "@matterbridge/utils": "3.8.1-dev-20260610-f258cc7",
132
+ "@matter/main": "0.17.2",
133
+ "@matterbridge/dgram": "3.9.0-dev-20260611-fd7bca4",
134
+ "@matterbridge/thread": "3.9.0-dev-20260611-fd7bca4",
135
+ "@matterbridge/types": "3.9.0-dev-20260611-fd7bca4",
136
+ "@matterbridge/utils": "3.9.0-dev-20260611-fd7bca4",
137
137
  "escape-html": "1.0.3",
138
138
  "express": "5.2.1",
139
139
  "express-rate-limit": "8.5.2",