@matterbridge/core 3.7.10 → 3.8.0-dev-20260524-92c5fdd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/behaviors/activatedCarbonFilterMonitoringServer.d.ts +5 -2
  2. package/dist/behaviors/bindingServer.js +0 -2
  3. package/dist/behaviors/booleanStateConfigurationServer.d.ts +6 -1
  4. package/dist/behaviors/colorControlServer.d.ts +20 -774
  5. package/dist/behaviors/deviceEnergyManagementServer.d.ts +9 -299
  6. package/dist/behaviors/doorLockServer.d.ts +29 -47
  7. package/dist/behaviors/doorLockServer.js +11 -299
  8. package/dist/behaviors/fanControlServer.d.ts +8 -1
  9. package/dist/behaviors/hepaFilterMonitoringServer.d.ts +5 -2
  10. package/dist/behaviors/smokeCoAlarmServer.d.ts +4 -77
  11. package/dist/behaviors/thermostatServer.d.ts +20 -722
  12. package/dist/behaviors/valveConfigurationAndControlServer.d.ts +4 -1
  13. package/dist/behaviors/windowCoveringServer.d.ts +28 -564
  14. package/dist/clusters/closure-control.d.ts +130 -620
  15. package/dist/clusters/closure-control.js +15 -170
  16. package/dist/clusters/closure-dimension.d.ts +148 -814
  17. package/dist/clusters/closure-dimension.js +15 -202
  18. package/dist/clusters/export.d.ts +1 -3
  19. package/dist/clusters/export.js +1 -3
  20. package/dist/clusters/soil-measurement.d.ts +31 -31
  21. package/dist/clusters/soil-measurement.js +29 -19
  22. package/dist/devices/closure.d.ts +14 -291
  23. package/dist/devices/closure.js +6 -13
  24. package/dist/devices/closurePanel.d.ts +13 -370
  25. package/dist/devices/closurePanel.js +9 -15
  26. package/dist/devices/evse.d.ts +7 -1
  27. package/dist/devices/heatPump.js +5 -5
  28. package/dist/devices/irrigationSystem.js +2 -2
  29. package/dist/devices/microwaveOven.d.ts +5 -76
  30. package/dist/devices/roboticVacuumCleaner.js +5 -5
  31. package/dist/devices/soilSensor.d.ts +0 -15
  32. package/dist/devices/soilSensor.js +4 -20
  33. package/dist/devices/temperatureControl.d.ts +10 -130
  34. package/dist/helpers.js +0 -8
  35. package/dist/jestutils/jestBroadcastServerSpy.d.ts +2 -2
  36. package/dist/jestutils/jestMatterTest.js +4 -4
  37. package/dist/jestutils/jestMatterbridgeEndpointSpy.d.ts +34 -37
  38. package/dist/jestutils/jestMatterbridgePlatformSpy.d.ts +4 -4
  39. package/dist/jestutils/jestMatterbridgeTest.js +1 -1
  40. package/dist/matter/export.d.ts +11 -0
  41. package/dist/matter/export.js +11 -0
  42. package/dist/matterbridge.js +3 -1
  43. package/dist/matterbridgeDeviceTypes.d.ts +15 -0
  44. package/dist/matterbridgeDeviceTypes.js +305 -162
  45. package/dist/matterbridgeEndpoint.d.ts +35 -25
  46. package/dist/matterbridgeEndpoint.js +6 -7
  47. package/dist/matterbridgeEndpointCommandHandler.d.ts +3 -59
  48. package/dist/matterbridgeEndpointHelpers.d.ts +83 -1382
  49. package/dist/matterbridgeEndpointHelpers.js +20 -5
  50. package/package.json +6 -6
@@ -7,16 +7,26 @@ import { AdministratorCommissioning } from '@matter/types/clusters/administrator
7
7
  import { AirQuality } from '@matter/types/clusters/air-quality';
8
8
  import { ApplicationLauncher } from '@matter/types/clusters/application-launcher';
9
9
  import { AudioOutput } from '@matter/types/clusters/audio-output';
10
+ import { Binding } from '@matter/types/clusters/binding';
10
11
  import { BooleanState } from '@matter/types/clusters/boolean-state';
11
12
  import { BooleanStateConfiguration } from '@matter/types/clusters/boolean-state-configuration';
12
13
  import { BridgedDeviceBasicInformation } from '@matter/types/clusters/bridged-device-basic-information';
14
+ import { CameraAvSettingsUserLevelManagement } from '@matter/types/clusters/camera-av-settings-user-level-management';
15
+ import { CameraAvStreamManagement } from '@matter/types/clusters/camera-av-stream-management';
13
16
  import { CarbonDioxideConcentrationMeasurement } from '@matter/types/clusters/carbon-dioxide-concentration-measurement';
14
17
  import { CarbonMonoxideConcentrationMeasurement } from '@matter/types/clusters/carbon-monoxide-concentration-measurement';
15
18
  import { Channel } from '@matter/types/clusters/channel';
19
+ import { Chime } from '@matter/types/clusters/chime';
20
+ import { ClosureControl } from '@matter/types/clusters/closure-control';
21
+ import { ClosureDimension } from '@matter/types/clusters/closure-dimension';
16
22
  import { ColorControl } from '@matter/types/clusters/color-control';
17
23
  import { CommissionerControl } from '@matter/types/clusters/commissioner-control';
24
+ import { CommodityMetering } from '@matter/types/clusters/commodity-metering';
25
+ import { CommodityPrice } from '@matter/types/clusters/commodity-price';
26
+ import { CommodityTariff } from '@matter/types/clusters/commodity-tariff';
18
27
  import { ContentControl } from '@matter/types/clusters/content-control';
19
28
  import { ContentLauncher } from '@matter/types/clusters/content-launcher';
29
+ import { Descriptor } from '@matter/types/clusters/descriptor';
20
30
  import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
21
31
  import { DeviceEnergyManagementMode } from '@matter/types/clusters/device-energy-management-mode';
22
32
  import { DishwasherAlarm } from '@matter/types/clusters/dishwasher-alarm';
@@ -24,11 +34,13 @@ import { DishwasherMode } from '@matter/types/clusters/dishwasher-mode';
24
34
  import { DoorLock } from '@matter/types/clusters/door-lock';
25
35
  import { EcosystemInformation } from '@matter/types/clusters/ecosystem-information';
26
36
  import { ElectricalEnergyMeasurement } from '@matter/types/clusters/electrical-energy-measurement';
37
+ import { ElectricalGridConditions } from '@matter/types/clusters/electrical-grid-conditions';
27
38
  import { ElectricalPowerMeasurement } from '@matter/types/clusters/electrical-power-measurement';
28
39
  import { EnergyEvse } from '@matter/types/clusters/energy-evse';
29
40
  import { EnergyEvseMode } from '@matter/types/clusters/energy-evse-mode';
30
41
  import { EnergyPreference } from '@matter/types/clusters/energy-preference';
31
42
  import { FanControl } from '@matter/types/clusters/fan-control';
43
+ import { FixedLabel } from '@matter/types/clusters/fixed-label';
32
44
  import { FlowMeasurement } from '@matter/types/clusters/flow-measurement';
33
45
  import { FormaldehydeConcentrationMeasurement } from '@matter/types/clusters/formaldehyde-concentration-measurement';
34
46
  import { Groups } from '@matter/types/clusters/groups';
@@ -44,6 +56,7 @@ import { LowPower } from '@matter/types/clusters/low-power';
44
56
  import { MediaInput } from '@matter/types/clusters/media-input';
45
57
  import { MediaPlayback } from '@matter/types/clusters/media-playback';
46
58
  import { Messages } from '@matter/types/clusters/messages';
59
+ import { MeterIdentification } from '@matter/types/clusters/meter-identification';
47
60
  import { MicrowaveOvenControl } from '@matter/types/clusters/microwave-oven-control';
48
61
  import { MicrowaveOvenMode } from '@matter/types/clusters/microwave-oven-mode';
49
62
  import { ModeSelect } from '@matter/types/clusters/mode-select';
@@ -63,6 +76,7 @@ import { PowerSource } from '@matter/types/clusters/power-source';
63
76
  import { PowerTopology } from '@matter/types/clusters/power-topology';
64
77
  import { PressureMeasurement } from '@matter/types/clusters/pressure-measurement';
65
78
  import { PumpConfigurationAndControl } from '@matter/types/clusters/pump-configuration-and-control';
79
+ import { PushAvStreamTransport } from '@matter/types/clusters/push-av-stream-transport';
66
80
  import { RadonConcentrationMeasurement } from '@matter/types/clusters/radon-concentration-measurement';
67
81
  import { RefrigeratorAlarm } from '@matter/types/clusters/refrigerator-alarm';
68
82
  import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/types/clusters/refrigerator-and-temperature-controlled-cabinet-mode';
@@ -73,6 +87,7 @@ import { RvcRunMode } from '@matter/types/clusters/rvc-run-mode';
73
87
  import { ScenesManagement } from '@matter/types/clusters/scenes-management';
74
88
  import { ServiceArea } from '@matter/types/clusters/service-area';
75
89
  import { SmokeCoAlarm } from '@matter/types/clusters/smoke-co-alarm';
90
+ import { SoilMeasurement } from '@matter/types/clusters/soil-measurement';
76
91
  import { Switch } from '@matter/types/clusters/switch';
77
92
  import { TargetNavigator } from '@matter/types/clusters/target-navigator';
78
93
  import { TemperatureControl } from '@matter/types/clusters/temperature-control';
@@ -80,15 +95,16 @@ import { TemperatureMeasurement } from '@matter/types/clusters/temperature-measu
80
95
  import { Thermostat } from '@matter/types/clusters/thermostat';
81
96
  import { ThermostatUserInterfaceConfiguration } from '@matter/types/clusters/thermostat-user-interface-configuration';
82
97
  import { TotalVolatileOrganicCompoundsConcentrationMeasurement } from '@matter/types/clusters/total-volatile-organic-compounds-concentration-measurement';
98
+ import { UserLabel } from '@matter/types/clusters/user-label';
83
99
  import { ValveConfigurationAndControl } from '@matter/types/clusters/valve-configuration-and-control';
84
100
  import { WakeOnLan } from '@matter/types/clusters/wake-on-lan';
85
101
  import { WaterHeaterManagement } from '@matter/types/clusters/water-heater-management';
86
102
  import { WaterHeaterMode } from '@matter/types/clusters/water-heater-mode';
103
+ import { WebRtcTransportProvider } from '@matter/types/clusters/web-rtc-transport-provider';
104
+ import { WebRtcTransportRequestor } from '@matter/types/clusters/web-rtc-transport-requestor';
87
105
  import { WindowCovering } from '@matter/types/clusters/window-covering';
106
+ import { ZoneManagement } from '@matter/types/clusters/zone-management';
88
107
  import { DeviceTypeId } from '@matter/types/datatype';
89
- import { ClosureControl } from './clusters/closure-control.js';
90
- import { ClosureDimension } from './clusters/closure-dimension.js';
91
- import { SoilMeasurement } from './clusters/soil-measurement.js';
92
108
  export var DeviceClasses;
93
109
  (function (DeviceClasses) {
94
110
  DeviceClasses["Node"] = "Node";
@@ -112,11 +128,19 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
112
128
  requiredClientClusters,
113
129
  optionalClientClusters,
114
130
  });
131
+ export const baseDevice = DeviceTypeDefinition({
132
+ name: 'MA-baseDevice',
133
+ code: 0x0000,
134
+ deviceClass: DeviceClasses.Simple,
135
+ revision: 3,
136
+ requiredServerClusters: [Descriptor.id],
137
+ optionalServerClusters: [Binding.id, FixedLabel.id, UserLabel.id],
138
+ });
115
139
  export const rootNode = DeviceTypeDefinition({
116
140
  name: 'MA-rootNode',
117
141
  code: 0x0016,
118
142
  deviceClass: DeviceClasses.Node,
119
- revision: 3,
143
+ revision: 4,
120
144
  requiredServerClusters: [],
121
145
  optionalServerClusters: [],
122
146
  });
@@ -125,7 +149,7 @@ export const powerSource = DeviceTypeDefinition({
125
149
  code: 0x0011,
126
150
  deviceClass: DeviceClasses.Utility,
127
151
  revision: 1,
128
- requiredServerClusters: [PowerSource.Cluster.id],
152
+ requiredServerClusters: [PowerSource.id],
129
153
  optionalServerClusters: [],
130
154
  });
131
155
  export const OTARequestor = DeviceTypeDefinition({
@@ -133,9 +157,9 @@ export const OTARequestor = DeviceTypeDefinition({
133
157
  code: 0x0012,
134
158
  deviceClass: DeviceClasses.Utility,
135
159
  revision: 1,
136
- requiredServerClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
160
+ requiredServerClusters: [OtaSoftwareUpdateRequestor.id],
137
161
  optionalServerClusters: [],
138
- requiredClientClusters: [OtaSoftwareUpdateProvider.Cluster.id],
162
+ requiredClientClusters: [OtaSoftwareUpdateProvider.id],
139
163
  optionalClientClusters: [],
140
164
  });
141
165
  export const OTAProvider = DeviceTypeDefinition({
@@ -143,9 +167,9 @@ export const OTAProvider = DeviceTypeDefinition({
143
167
  code: 0x0014,
144
168
  deviceClass: DeviceClasses.Utility,
145
169
  revision: 1,
146
- requiredServerClusters: [OtaSoftwareUpdateProvider.Cluster.id],
170
+ requiredServerClusters: [OtaSoftwareUpdateProvider.id],
147
171
  optionalServerClusters: [],
148
- requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
172
+ requiredClientClusters: [OtaSoftwareUpdateRequestor.id],
149
173
  optionalClientClusters: [],
150
174
  });
151
175
  export const bridgedNode = DeviceTypeDefinition({
@@ -153,39 +177,39 @@ export const bridgedNode = DeviceTypeDefinition({
153
177
  code: 0x0013,
154
178
  deviceClass: DeviceClasses.Utility,
155
179
  revision: 3,
156
- requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
157
- optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
180
+ requiredServerClusters: [BridgedDeviceBasicInformation.id],
181
+ optionalServerClusters: [PowerSource.id, EcosystemInformation.id, AdministratorCommissioning.id],
158
182
  });
159
183
  export const electricalSensor = DeviceTypeDefinition({
160
184
  name: 'MA-electricalSensor',
161
185
  code: 0x0510,
162
186
  deviceClass: DeviceClasses.Utility,
163
187
  revision: 1,
164
- requiredServerClusters: [PowerTopology.Cluster.id],
165
- optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
188
+ requiredServerClusters: [PowerTopology.id],
189
+ optionalServerClusters: [ElectricalPowerMeasurement.id, ElectricalEnergyMeasurement.id],
166
190
  });
167
191
  export const deviceEnergyManagement = DeviceTypeDefinition({
168
192
  name: 'MA-deviceEnergyManagement',
169
193
  code: 0x050d,
170
194
  deviceClass: DeviceClasses.Utility,
171
- revision: 2,
172
- requiredServerClusters: [DeviceEnergyManagement.Cluster.id],
173
- optionalServerClusters: [DeviceEnergyManagementMode.Cluster.id],
195
+ revision: 3,
196
+ requiredServerClusters: [DeviceEnergyManagement.id],
197
+ optionalServerClusters: [DeviceEnergyManagementMode.id],
174
198
  });
175
199
  export const onOffLight = DeviceTypeDefinition({
176
200
  name: 'MA-onofflight',
177
201
  code: 0x0100,
178
202
  deviceClass: DeviceClasses.Simple,
179
203
  revision: 3,
180
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
181
- optionalServerClusters: [LevelControl.Cluster.id],
204
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id],
205
+ optionalServerClusters: [LevelControl.id],
182
206
  });
183
207
  export const dimmableLight = DeviceTypeDefinition({
184
208
  name: 'MA-dimmablelight',
185
209
  code: 0x0101,
186
210
  deviceClass: DeviceClasses.Simple,
187
211
  revision: 3,
188
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
212
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id, LevelControl.id],
189
213
  optionalServerClusters: [],
190
214
  });
191
215
  export const colorTemperatureLight = DeviceTypeDefinition({
@@ -193,7 +217,7 @@ export const colorTemperatureLight = DeviceTypeDefinition({
193
217
  code: 0x010c,
194
218
  deviceClass: DeviceClasses.Simple,
195
219
  revision: 4,
196
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
220
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id, LevelControl.id, ColorControl.id],
197
221
  optionalServerClusters: [],
198
222
  });
199
223
  export const extendedColorLight = DeviceTypeDefinition({
@@ -201,7 +225,7 @@ export const extendedColorLight = DeviceTypeDefinition({
201
225
  code: 0x010d,
202
226
  deviceClass: DeviceClasses.Simple,
203
227
  revision: 4,
204
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
228
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id, LevelControl.id, ColorControl.id],
205
229
  optionalServerClusters: [],
206
230
  });
207
231
  export const onOffOutlet = DeviceTypeDefinition({
@@ -209,15 +233,15 @@ export const onOffOutlet = DeviceTypeDefinition({
209
233
  code: 0x010a,
210
234
  deviceClass: DeviceClasses.Simple,
211
235
  revision: 4,
212
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
213
- optionalServerClusters: [LevelControl.Cluster.id],
236
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id],
237
+ optionalServerClusters: [LevelControl.id],
214
238
  });
215
239
  export const dimmableOutlet = DeviceTypeDefinition({
216
240
  name: 'MA-dimmablepluginunit',
217
241
  code: 0x010b,
218
242
  deviceClass: DeviceClasses.Simple,
219
243
  revision: 5,
220
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
244
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id, LevelControl.id],
221
245
  optionalServerClusters: [],
222
246
  });
223
247
  export const onOffMountedSwitch = DeviceTypeDefinition({
@@ -225,15 +249,15 @@ export const onOffMountedSwitch = DeviceTypeDefinition({
225
249
  code: 0x010f,
226
250
  deviceClass: DeviceClasses.Simple,
227
251
  revision: 2,
228
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
229
- optionalServerClusters: [LevelControl.Cluster.id],
252
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id],
253
+ optionalServerClusters: [LevelControl.id],
230
254
  });
231
255
  export const dimmableMountedSwitch = DeviceTypeDefinition({
232
256
  name: 'MA-dimmablemountedswitch',
233
257
  code: 0x0110,
234
258
  deviceClass: DeviceClasses.Simple,
235
259
  revision: 2,
236
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
260
+ requiredServerClusters: [Identify.id, Groups.id, ScenesManagement.id, OnOff.id, LevelControl.id],
237
261
  optionalServerClusters: [],
238
262
  });
239
263
  export const pumpDevice = DeviceTypeDefinition({
@@ -241,54 +265,47 @@ export const pumpDevice = DeviceTypeDefinition({
241
265
  code: 0x303,
242
266
  deviceClass: DeviceClasses.Simple,
243
267
  revision: 3,
244
- requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
245
- optionalServerClusters: [
246
- LevelControl.Cluster.id,
247
- Groups.Cluster.id,
248
- ScenesManagement.Cluster.id,
249
- TemperatureMeasurement.Cluster.id,
250
- PressureMeasurement.Cluster.id,
251
- FlowMeasurement.Cluster.id,
252
- ],
268
+ requiredServerClusters: [OnOff.id, PumpConfigurationAndControl.id, Identify.id],
269
+ optionalServerClusters: [LevelControl.id, Groups.id, ScenesManagement.id, TemperatureMeasurement.id, PressureMeasurement.id, FlowMeasurement.id],
253
270
  });
254
271
  export const waterValve = DeviceTypeDefinition({
255
272
  name: 'MA-waterValve',
256
273
  code: 0x42,
257
274
  deviceClass: DeviceClasses.Simple,
258
275
  revision: 1,
259
- requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
260
- optionalServerClusters: [FlowMeasurement.Cluster.id],
276
+ requiredServerClusters: [Identify.id, ValveConfigurationAndControl.id],
277
+ optionalServerClusters: [FlowMeasurement.id],
261
278
  });
262
279
  export const onOffSwitch = DeviceTypeDefinition({
263
280
  name: 'MA-onoffswitch',
264
281
  code: 0x0103,
265
282
  deviceClass: DeviceClasses.Simple,
266
283
  revision: 3,
267
- requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
268
- optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
284
+ requiredServerClusters: [Identify.id, OnOff.id],
285
+ optionalServerClusters: [Groups.id, ScenesManagement.id],
269
286
  });
270
287
  export const dimmableSwitch = DeviceTypeDefinition({
271
288
  name: 'MA-dimmableswitch',
272
289
  code: 0x0104,
273
290
  deviceClass: DeviceClasses.Simple,
274
291
  revision: 3,
275
- requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
276
- optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
292
+ requiredServerClusters: [Identify.id, OnOff.id, LevelControl.id],
293
+ optionalServerClusters: [Groups.id, ScenesManagement.id],
277
294
  });
278
295
  export const colorTemperatureSwitch = DeviceTypeDefinition({
279
296
  name: 'MA-colortemperatureswitch',
280
297
  code: 0x0105,
281
298
  deviceClass: DeviceClasses.Simple,
282
299
  revision: 3,
283
- requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
284
- optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
300
+ requiredServerClusters: [Identify.id, OnOff.id, LevelControl.id, ColorControl.id],
301
+ optionalServerClusters: [Groups.id, ScenesManagement.id],
285
302
  });
286
303
  export const genericSwitch = DeviceTypeDefinition({
287
304
  name: 'MA-genericswitch',
288
305
  code: 0x000f,
289
306
  deviceClass: DeviceClasses.Simple,
290
307
  revision: 3,
291
- requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
308
+ requiredServerClusters: [Identify.id, Switch.id],
292
309
  optionalServerClusters: [],
293
310
  });
294
311
  export const contactSensor = DeviceTypeDefinition({
@@ -296,79 +313,80 @@ export const contactSensor = DeviceTypeDefinition({
296
313
  code: 0x0015,
297
314
  deviceClass: DeviceClasses.Simple,
298
315
  revision: 2,
299
- requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
300
- optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
316
+ requiredServerClusters: [Identify.id, BooleanState.id],
317
+ optionalServerClusters: [BooleanStateConfiguration.id],
301
318
  });
302
319
  export const lightSensor = DeviceTypeDefinition({
303
320
  name: 'MA-lightsensor',
304
321
  code: 0x0106,
305
322
  deviceClass: DeviceClasses.Simple,
306
- revision: 3,
307
- requiredServerClusters: [Identify.Cluster.id, IlluminanceMeasurement.Cluster.id],
323
+ revision: 4,
324
+ requiredServerClusters: [Identify.id, IlluminanceMeasurement.id],
308
325
  });
309
326
  export const occupancySensor = DeviceTypeDefinition({
310
327
  name: 'MA-occupancysensor',
311
328
  code: 0x0107,
312
329
  deviceClass: DeviceClasses.Simple,
313
330
  revision: 4,
314
- requiredServerClusters: [Identify.Cluster.id, OccupancySensing.Cluster.id],
315
- optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
331
+ requiredServerClusters: [Identify.id, OccupancySensing.id],
332
+ optionalServerClusters: [BooleanStateConfiguration.id],
316
333
  });
317
334
  export const temperatureSensor = DeviceTypeDefinition({
318
335
  name: 'MA-tempsensor',
319
336
  code: 0x0302,
320
337
  deviceClass: DeviceClasses.Simple,
321
- revision: 2,
322
- requiredServerClusters: [Identify.Cluster.id, TemperatureMeasurement.Cluster.id],
338
+ revision: 3,
339
+ requiredServerClusters: [Identify.id, TemperatureMeasurement.id],
340
+ optionalServerClusters: [ThermostatUserInterfaceConfiguration.id],
323
341
  });
324
342
  export const pressureSensor = DeviceTypeDefinition({
325
343
  name: 'MA-pressuresensor',
326
344
  code: 0x0305,
327
345
  deviceClass: DeviceClasses.Simple,
328
- revision: 2,
329
- requiredServerClusters: [Identify.Cluster.id, PressureMeasurement.Cluster.id],
346
+ revision: 3,
347
+ requiredServerClusters: [Identify.id, PressureMeasurement.id],
330
348
  });
331
349
  export const flowSensor = DeviceTypeDefinition({
332
350
  name: 'MA-flowsensor',
333
351
  code: 0x0306,
334
352
  deviceClass: DeviceClasses.Simple,
335
- revision: 2,
336
- requiredServerClusters: [Identify.Cluster.id, FlowMeasurement.Cluster.id],
353
+ revision: 3,
354
+ requiredServerClusters: [Identify.id, FlowMeasurement.id],
337
355
  });
338
356
  export const humiditySensor = DeviceTypeDefinition({
339
357
  name: 'MA-humiditysensor',
340
358
  code: 0x0307,
341
359
  deviceClass: DeviceClasses.Simple,
342
- revision: 2,
343
- requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
360
+ revision: 3,
361
+ requiredServerClusters: [Identify.id, RelativeHumidityMeasurement.id],
344
362
  });
345
363
  export const smokeCoAlarm = DeviceTypeDefinition({
346
364
  name: 'MA-smokeCoAlarm',
347
365
  code: 0x0076,
348
366
  deviceClass: DeviceClasses.Simple,
349
367
  revision: 1,
350
- requiredServerClusters: [Identify.Cluster.id, SmokeCoAlarm.Cluster.id],
351
- optionalServerClusters: [Groups.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id, CarbonMonoxideConcentrationMeasurement.Cluster.id],
368
+ requiredServerClusters: [Identify.id, SmokeCoAlarm.id],
369
+ optionalServerClusters: [Groups.id, TemperatureMeasurement.id, RelativeHumidityMeasurement.id, CarbonMonoxideConcentrationMeasurement.id],
352
370
  });
353
371
  export const airQualitySensor = DeviceTypeDefinition({
354
372
  name: 'MA-airQualitySensor',
355
373
  code: 0x002c,
356
374
  deviceClass: DeviceClasses.Simple,
357
375
  revision: 1,
358
- requiredServerClusters: [Identify.Cluster.id, AirQuality.Cluster.id],
376
+ requiredServerClusters: [Identify.id, AirQuality.id],
359
377
  optionalServerClusters: [
360
- TemperatureMeasurement.Cluster.id,
361
- RelativeHumidityMeasurement.Cluster.id,
362
- CarbonMonoxideConcentrationMeasurement.Cluster.id,
363
- CarbonDioxideConcentrationMeasurement.Cluster.id,
364
- NitrogenDioxideConcentrationMeasurement.Cluster.id,
365
- OzoneConcentrationMeasurement.Cluster.id,
366
- FormaldehydeConcentrationMeasurement.Cluster.id,
367
- Pm1ConcentrationMeasurement.Cluster.id,
368
- Pm25ConcentrationMeasurement.Cluster.id,
369
- Pm10ConcentrationMeasurement.Cluster.id,
370
- RadonConcentrationMeasurement.Cluster.id,
371
- TotalVolatileOrganicCompoundsConcentrationMeasurement.Cluster.id,
378
+ TemperatureMeasurement.id,
379
+ RelativeHumidityMeasurement.id,
380
+ CarbonMonoxideConcentrationMeasurement.id,
381
+ CarbonDioxideConcentrationMeasurement.id,
382
+ NitrogenDioxideConcentrationMeasurement.id,
383
+ OzoneConcentrationMeasurement.id,
384
+ FormaldehydeConcentrationMeasurement.id,
385
+ Pm1ConcentrationMeasurement.id,
386
+ Pm25ConcentrationMeasurement.id,
387
+ Pm10ConcentrationMeasurement.id,
388
+ RadonConcentrationMeasurement.id,
389
+ TotalVolatileOrganicCompoundsConcentrationMeasurement.id,
372
390
  ],
373
391
  });
374
392
  export const waterFreezeDetector = DeviceTypeDefinition({
@@ -376,99 +394,90 @@ export const waterFreezeDetector = DeviceTypeDefinition({
376
394
  code: 0x0041,
377
395
  deviceClass: DeviceClasses.Simple,
378
396
  revision: 1,
379
- requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
380
- optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
397
+ requiredServerClusters: [Identify.id, BooleanState.id],
398
+ optionalServerClusters: [BooleanStateConfiguration.id],
381
399
  });
382
400
  export const waterLeakDetector = DeviceTypeDefinition({
383
401
  name: 'MA-waterLeakDetector',
384
402
  code: 0x0043,
385
403
  deviceClass: DeviceClasses.Simple,
386
404
  revision: 1,
387
- requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
388
- optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
405
+ requiredServerClusters: [Identify.id, BooleanState.id],
406
+ optionalServerClusters: [BooleanStateConfiguration.id],
389
407
  });
390
408
  export const rainSensor = DeviceTypeDefinition({
391
409
  name: 'MA-rainSensor',
392
410
  code: 0x0044,
393
411
  deviceClass: DeviceClasses.Simple,
394
412
  revision: 1,
395
- requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
396
- optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
413
+ requiredServerClusters: [Identify.id, BooleanState.id],
414
+ optionalServerClusters: [BooleanStateConfiguration.id],
397
415
  });
398
416
  export const doorLockDevice = DeviceTypeDefinition({
399
417
  name: 'MA-doorLock',
400
418
  code: 0xa,
401
419
  deviceClass: DeviceClasses.Simple,
402
- revision: 3,
403
- requiredServerClusters: [Identify.Cluster.id, DoorLock.Cluster.id],
404
- optionalServerClusters: [ScenesManagement.Cluster.id, Groups.Cluster.id],
420
+ revision: 4,
421
+ requiredServerClusters: [Identify.id, DoorLock.id],
422
+ optionalServerClusters: [],
405
423
  });
406
424
  export const coverDevice = DeviceTypeDefinition({
407
425
  name: 'MA-windowCovering',
408
426
  code: 0x202,
409
427
  deviceClass: DeviceClasses.Simple,
410
- revision: 4,
411
- requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
412
- optionalServerClusters: [Groups.Cluster.id],
428
+ revision: 6,
429
+ requiredServerClusters: [Identify.id, WindowCovering.id],
430
+ optionalServerClusters: [Groups.id],
413
431
  });
414
432
  export const thermostatDevice = DeviceTypeDefinition({
415
433
  name: 'MA-thermostat',
416
434
  code: 0x301,
417
435
  deviceClass: DeviceClasses.Simple,
418
- revision: 4,
419
- requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
420
- optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
436
+ revision: 5,
437
+ requiredServerClusters: [Identify.id, Thermostat.id],
438
+ optionalServerClusters: [Groups.id, ThermostatUserInterfaceConfiguration.id, EnergyPreference.id],
421
439
  });
422
440
  export const fanDevice = DeviceTypeDefinition({
423
441
  name: 'MA-fan',
424
442
  code: 0x2b,
425
443
  deviceClass: DeviceClasses.Simple,
426
- revision: 3,
427
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
428
- optionalServerClusters: [OnOff.Cluster.id],
444
+ revision: 4,
445
+ requiredServerClusters: [Identify.id, Groups.id, FanControl.id],
446
+ optionalServerClusters: [OnOff.id],
429
447
  });
430
448
  export const airPurifier = DeviceTypeDefinition({
431
449
  name: 'MA-airPurifier',
432
450
  code: 0x2d,
433
451
  deviceClass: DeviceClasses.Simple,
434
452
  revision: 2,
435
- requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
436
- optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
453
+ requiredServerClusters: [Identify.id, FanControl.id],
454
+ optionalServerClusters: [Groups.id, OnOff.id, HepaFilterMonitoring.id, ActivatedCarbonFilterMonitoring.id],
437
455
  });
438
456
  export const basicVideoPlayer = DeviceTypeDefinition({
439
457
  name: 'MA-basicVideoPlayer',
440
458
  code: 0x0028,
441
459
  deviceClass: DeviceClasses.Simple,
442
460
  revision: 2,
443
- requiredServerClusters: [OnOff.Cluster.id, MediaPlayback.Cluster.id, KeypadInput.Cluster.id],
444
- optionalServerClusters: [
445
- WakeOnLan.Cluster.id,
446
- Channel.Cluster.id,
447
- TargetNavigator.Cluster.id,
448
- MediaInput.Cluster.id,
449
- LowPower.Cluster.id,
450
- AudioOutput.Cluster.id,
451
- ContentControl.Cluster.id,
452
- Messages.Cluster.id,
453
- ],
461
+ requiredServerClusters: [OnOff.id, MediaPlayback.id, KeypadInput.id],
462
+ optionalServerClusters: [WakeOnLan.id, Channel.id, TargetNavigator.id, MediaInput.id, LowPower.id, AudioOutput.id, ContentControl.id, Messages.id],
454
463
  });
455
464
  export const castingVideoPlayer = DeviceTypeDefinition({
456
465
  name: 'MA-castingVideoPlayer',
457
466
  code: 0x0023,
458
467
  deviceClass: DeviceClasses.Simple,
459
468
  revision: 2,
460
- requiredServerClusters: [OnOff.Cluster.id, MediaPlayback.Cluster.id, KeypadInput.Cluster.id, ContentLauncher.Cluster.id],
469
+ requiredServerClusters: [OnOff.id, MediaPlayback.id, KeypadInput.id, ContentLauncher.id],
461
470
  optionalServerClusters: [
462
- WakeOnLan.Cluster.id,
463
- Channel.Cluster.id,
464
- TargetNavigator.Cluster.id,
465
- MediaInput.Cluster.id,
466
- LowPower.Cluster.id,
467
- AudioOutput.Cluster.id,
468
- ApplicationLauncher.Cluster.id,
469
- AccountLogin.Cluster.id,
470
- ContentControl.Cluster.id,
471
- Messages.Cluster.id,
471
+ WakeOnLan.id,
472
+ Channel.id,
473
+ TargetNavigator.id,
474
+ MediaInput.id,
475
+ LowPower.id,
476
+ AudioOutput.id,
477
+ ApplicationLauncher.id,
478
+ AccountLogin.id,
479
+ ContentControl.id,
480
+ Messages.id,
472
481
  ],
473
482
  });
474
483
  export const speakerDevice = DeviceTypeDefinition({
@@ -476,7 +485,7 @@ export const speakerDevice = DeviceTypeDefinition({
476
485
  code: 0x0022,
477
486
  deviceClass: DeviceClasses.Simple,
478
487
  revision: 1,
479
- requiredServerClusters: [OnOff.Cluster.id, LevelControl.Cluster.id],
488
+ requiredServerClusters: [OnOff.id, LevelControl.id],
480
489
  optionalServerClusters: [],
481
490
  });
482
491
  export const modeSelect = DeviceTypeDefinition({
@@ -484,7 +493,7 @@ export const modeSelect = DeviceTypeDefinition({
484
493
  code: 0x27,
485
494
  deviceClass: DeviceClasses.Simple,
486
495
  revision: 1,
487
- requiredServerClusters: [ModeSelect.Cluster.id],
496
+ requiredServerClusters: [ModeSelect.id],
488
497
  });
489
498
  export const aggregator = DeviceTypeDefinition({
490
499
  name: 'MA-aggregator',
@@ -492,7 +501,7 @@ export const aggregator = DeviceTypeDefinition({
492
501
  deviceClass: DeviceClasses.Dynamic,
493
502
  revision: 2,
494
503
  requiredServerClusters: [],
495
- optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
504
+ optionalServerClusters: [Actions.id, Identify.id, CommissionerControl.id],
496
505
  });
497
506
  export const bridge = aggregator;
498
507
  export const roboticVacuumCleaner = DeviceTypeDefinition({
@@ -500,16 +509,16 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
500
509
  code: 0x74,
501
510
  deviceClass: DeviceClasses.Simple,
502
511
  revision: 4,
503
- requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
504
- optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
512
+ requiredServerClusters: [Identify.id, RvcRunMode.id, RvcOperationalState.id],
513
+ optionalServerClusters: [RvcCleanMode.id, ServiceArea.id],
505
514
  });
506
515
  export const laundryWasher = DeviceTypeDefinition({
507
516
  name: 'MA-laundrywasher',
508
517
  code: 0x73,
509
518
  deviceClass: DeviceClasses.Simple,
510
519
  revision: 2,
511
- requiredServerClusters: [OperationalState.Cluster.id],
512
- optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
520
+ requiredServerClusters: [OperationalState.id],
521
+ optionalServerClusters: [Identify.id, LaundryWasherMode.id, OnOff.id, LaundryWasherControls.id, TemperatureControl.id],
513
522
  });
514
523
  export const refrigerator = DeviceTypeDefinition({
515
524
  name: 'MA-refrigerator',
@@ -517,21 +526,23 @@ export const refrigerator = DeviceTypeDefinition({
517
526
  deviceClass: DeviceClasses.Simple,
518
527
  revision: 2,
519
528
  requiredServerClusters: [],
520
- optionalServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
529
+ optionalServerClusters: [Identify.id, RefrigeratorAndTemperatureControlledCabinetMode.id, RefrigeratorAlarm.id],
521
530
  });
522
531
  export const airConditioner = DeviceTypeDefinition({
523
532
  name: 'MA-airConditioner',
524
533
  code: 0x72,
525
534
  deviceClass: DeviceClasses.Simple,
526
- revision: 2,
527
- requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
535
+ revision: 4,
536
+ requiredServerClusters: [Identify.id, OnOff.id, Thermostat.id],
528
537
  optionalServerClusters: [
529
- Groups.Cluster.id,
530
- ScenesManagement.Cluster.id,
531
- FanControl.Cluster.id,
532
- ThermostatUserInterfaceConfiguration.Cluster.id,
533
- TemperatureMeasurement.Cluster.id,
534
- RelativeHumidityMeasurement.Cluster.id,
538
+ Groups.id,
539
+ ScenesManagement.id,
540
+ FanControl.id,
541
+ ThermostatUserInterfaceConfiguration.id,
542
+ TemperatureMeasurement.id,
543
+ RelativeHumidityMeasurement.id,
544
+ HepaFilterMonitoring.id,
545
+ ActivatedCarbonFilterMonitoring.id,
535
546
  ],
536
547
  });
537
548
  export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
@@ -539,32 +550,32 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
539
550
  code: 0x71,
540
551
  deviceClass: DeviceClasses.Simple,
541
552
  revision: 5,
542
- requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
543
- optionalServerClusters: [TemperatureMeasurement.Cluster.id],
553
+ requiredServerClusters: [TemperatureControl.id, RefrigeratorAndTemperatureControlledCabinetMode.id],
554
+ optionalServerClusters: [TemperatureMeasurement.id],
544
555
  });
545
556
  export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
546
557
  name: 'MA-temperaturecontrolledcabinetheater',
547
558
  code: 0x71,
548
559
  deviceClass: DeviceClasses.Simple,
549
560
  revision: 5,
550
- requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
551
- optionalServerClusters: [TemperatureMeasurement.Cluster.id],
561
+ requiredServerClusters: [TemperatureControl.id, OvenMode.id, OvenCavityOperationalState.id],
562
+ optionalServerClusters: [TemperatureMeasurement.id],
552
563
  });
553
564
  export const dishwasher = DeviceTypeDefinition({
554
565
  name: 'MA-dishwasher',
555
566
  code: 0x75,
556
567
  deviceClass: DeviceClasses.Simple,
557
568
  revision: 2,
558
- requiredServerClusters: [OperationalState.Cluster.id],
559
- optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
569
+ requiredServerClusters: [OperationalState.id],
570
+ optionalServerClusters: [Identify.id, OnOff.id, TemperatureControl.id, DishwasherMode.id, DishwasherAlarm.id],
560
571
  });
561
572
  export const laundryDryer = DeviceTypeDefinition({
562
573
  name: 'MA-laundrydryer',
563
574
  code: 0x7c,
564
575
  deviceClass: DeviceClasses.Simple,
565
576
  revision: 2,
566
- requiredServerClusters: [OperationalState.Cluster.id],
567
- optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
577
+ requiredServerClusters: [OperationalState.id],
578
+ optionalServerClusters: [Identify.id, LaundryWasherMode.id, OnOff.id, LaundryDryerControls.id, TemperatureControl.id],
568
579
  });
569
580
  export const cookSurface = DeviceTypeDefinition({
570
581
  name: 'MA-cooksurface',
@@ -572,15 +583,15 @@ export const cookSurface = DeviceTypeDefinition({
572
583
  deviceClass: DeviceClasses.Simple,
573
584
  revision: 2,
574
585
  requiredServerClusters: [],
575
- optionalServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id, OnOff.Cluster.id],
586
+ optionalServerClusters: [TemperatureControl.id, TemperatureMeasurement.id, OnOff.id],
576
587
  });
577
588
  export const cooktop = DeviceTypeDefinition({
578
589
  name: 'MA-cooktop',
579
590
  code: 0x78,
580
591
  deviceClass: DeviceClasses.Simple,
581
592
  revision: 1,
582
- requiredServerClusters: [OnOff.Cluster.id],
583
- optionalServerClusters: [Identify.Cluster.id],
593
+ requiredServerClusters: [OnOff.id],
594
+ optionalServerClusters: [Identify.id],
584
595
  });
585
596
  export const oven = DeviceTypeDefinition({
586
597
  name: 'MA-oven',
@@ -588,39 +599,39 @@ export const oven = DeviceTypeDefinition({
588
599
  deviceClass: DeviceClasses.Simple,
589
600
  revision: 2,
590
601
  requiredServerClusters: [],
591
- optionalServerClusters: [Identify.Cluster.id],
602
+ optionalServerClusters: [Identify.id],
592
603
  });
593
604
  export const extractorHood = DeviceTypeDefinition({
594
605
  name: 'MA-extractorhood',
595
606
  code: 0x7a,
596
607
  deviceClass: DeviceClasses.Simple,
597
608
  revision: 1,
598
- requiredServerClusters: [FanControl.Cluster.id],
599
- optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
609
+ requiredServerClusters: [FanControl.id],
610
+ optionalServerClusters: [Identify.id, HepaFilterMonitoring.id, ActivatedCarbonFilterMonitoring.id],
600
611
  });
601
612
  export const microwaveOven = DeviceTypeDefinition({
602
613
  name: 'MA-microwaveoven',
603
614
  code: 0x79,
604
615
  deviceClass: DeviceClasses.Simple,
605
616
  revision: 2,
606
- requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
607
- optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
617
+ requiredServerClusters: [OperationalState.id, MicrowaveOvenMode.id, MicrowaveOvenControl.id],
618
+ optionalServerClusters: [Identify.id, FanControl.id],
608
619
  });
609
620
  export const evse = DeviceTypeDefinition({
610
621
  name: 'MA-evse',
611
622
  code: 0x050c,
612
623
  deviceClass: DeviceClasses.Simple,
613
624
  revision: 2,
614
- requiredServerClusters: [EnergyEvse.Cluster.id, EnergyEvseMode.Cluster.id],
615
- optionalServerClusters: [Identify.Cluster.id, TemperatureMeasurement.Cluster.id],
625
+ requiredServerClusters: [EnergyEvse.id, EnergyEvseMode.id],
626
+ optionalServerClusters: [Identify.id, TemperatureMeasurement.id],
616
627
  });
617
628
  export const waterHeater = DeviceTypeDefinition({
618
629
  name: 'MA-waterheater',
619
630
  code: 0x050f,
620
631
  deviceClass: DeviceClasses.Simple,
621
632
  revision: 1,
622
- requiredServerClusters: [Thermostat.Cluster.id, WaterHeaterManagement.Cluster.id, WaterHeaterMode.Cluster.id],
623
- optionalServerClusters: [Identify.Cluster.id],
633
+ requiredServerClusters: [Thermostat.id, WaterHeaterManagement.id, WaterHeaterMode.id],
634
+ optionalServerClusters: [Identify.id],
624
635
  });
625
636
  export const solarPower = DeviceTypeDefinition({
626
637
  name: 'MA-solarpower',
@@ -628,15 +639,15 @@ export const solarPower = DeviceTypeDefinition({
628
639
  deviceClass: DeviceClasses.Simple,
629
640
  revision: 1,
630
641
  requiredServerClusters: [],
631
- optionalServerClusters: [Identify.Cluster.id],
642
+ optionalServerClusters: [Identify.id],
632
643
  });
633
644
  export const batteryStorage = DeviceTypeDefinition({
634
645
  name: 'MA-batterystorage',
635
646
  code: 0x0018,
636
647
  deviceClass: DeviceClasses.Simple,
637
- revision: 1,
648
+ revision: 2,
638
649
  requiredServerClusters: [],
639
- optionalServerClusters: [Identify.Cluster.id],
650
+ optionalServerClusters: [Identify.id],
640
651
  });
641
652
  export const heatPump = DeviceTypeDefinition({
642
653
  name: 'MA-heatpump',
@@ -644,15 +655,15 @@ export const heatPump = DeviceTypeDefinition({
644
655
  deviceClass: DeviceClasses.Simple,
645
656
  revision: 1,
646
657
  requiredServerClusters: [],
647
- optionalServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
658
+ optionalServerClusters: [Identify.id, Thermostat.id],
648
659
  });
649
660
  export const soilSensor = DeviceTypeDefinition({
650
661
  name: 'MA-soilSensor',
651
662
  code: 0x0045,
652
663
  deviceClass: DeviceClasses.Simple,
653
664
  revision: 1,
654
- requiredServerClusters: [Identify.Cluster.id, SoilMeasurement.Cluster.id],
655
- optionalServerClusters: [TemperatureMeasurement.Cluster.id],
665
+ requiredServerClusters: [Identify.id, SoilMeasurement.id],
666
+ optionalServerClusters: [TemperatureMeasurement.id],
656
667
  });
657
668
  export const irrigationSystem = DeviceTypeDefinition({
658
669
  name: 'MA-irrigationSystem',
@@ -660,16 +671,16 @@ export const irrigationSystem = DeviceTypeDefinition({
660
671
  deviceClass: DeviceClasses.Simple,
661
672
  revision: 1,
662
673
  requiredServerClusters: [],
663
- optionalServerClusters: [Identify.Cluster.id, OperationalState.Cluster.id, FlowMeasurement.Cluster.id],
674
+ optionalServerClusters: [Identify.id, OperationalState.id, FlowMeasurement.id],
664
675
  requiredClientClusters: [],
665
- optionalClientClusters: [FlowMeasurement.Cluster.id],
676
+ optionalClientClusters: [FlowMeasurement.id],
666
677
  });
667
678
  export const closure = DeviceTypeDefinition({
668
679
  name: 'MA-closure',
669
680
  code: 0x0230,
670
681
  deviceClass: DeviceClasses.Simple,
671
682
  revision: 1,
672
- requiredServerClusters: [Identify.Cluster.id, ClosureControl.Cluster.id],
683
+ requiredServerClusters: [Identify.id, ClosureControl.id],
673
684
  optionalServerClusters: [],
674
685
  });
675
686
  export const closurePanel = DeviceTypeDefinition({
@@ -677,6 +688,138 @@ export const closurePanel = DeviceTypeDefinition({
677
688
  code: 0x0231,
678
689
  deviceClass: DeviceClasses.Simple,
679
690
  revision: 1,
680
- requiredServerClusters: [ClosureDimension.Cluster.id],
691
+ requiredServerClusters: [ClosureDimension.id],
692
+ optionalServerClusters: [],
693
+ });
694
+ export const closureController = DeviceTypeDefinition({
695
+ name: 'MA-closureController',
696
+ code: 0x023e,
697
+ deviceClass: DeviceClasses.Simple,
698
+ revision: 1,
699
+ requiredServerClusters: [],
700
+ optionalServerClusters: [],
701
+ requiredClientClusters: [ClosureControl.id],
702
+ optionalClientClusters: [Identify.id, Groups.id, ClosureDimension.id],
703
+ });
704
+ export const meterReferencePoint = DeviceTypeDefinition({
705
+ name: 'MA-meterReferencePoint',
706
+ code: 0x0512,
707
+ deviceClass: DeviceClasses.Simple,
708
+ revision: 1,
709
+ requiredServerClusters: [Identify.id],
710
+ optionalServerClusters: [],
711
+ });
712
+ export const electricalEnergyTariff = DeviceTypeDefinition({
713
+ name: 'MA-electricalEnergyTariff',
714
+ code: 0x0513,
715
+ deviceClass: DeviceClasses.Simple,
716
+ revision: 1,
717
+ requiredServerClusters: [],
718
+ optionalServerClusters: [CommodityPrice.id, ElectricalGridConditions.id, CommodityTariff.id],
719
+ });
720
+ export const electricalMeter = DeviceTypeDefinition({
721
+ name: 'MA-electricalMeter',
722
+ code: 0x0514,
723
+ deviceClass: DeviceClasses.Simple,
724
+ revision: 1,
725
+ requiredServerClusters: [ElectricalPowerMeasurement.id, ElectricalEnergyMeasurement.id],
726
+ optionalServerClusters: [CommodityMetering.id],
727
+ });
728
+ export const electricalUtilityMeter = DeviceTypeDefinition({
729
+ name: 'MA-electricalUtilityMeter',
730
+ code: 0x0511,
731
+ deviceClass: DeviceClasses.Simple,
732
+ revision: 1,
733
+ requiredServerClusters: [MeterIdentification.id],
734
+ optionalServerClusters: [],
735
+ });
736
+ export const camera = DeviceTypeDefinition({
737
+ name: 'MA-camera',
738
+ code: 0x0142,
739
+ deviceClass: DeviceClasses.Simple,
740
+ revision: 1,
741
+ requiredServerClusters: [CameraAvStreamManagement.id, WebRtcTransportProvider.id],
742
+ optionalServerClusters: [Identify.id, OccupancySensing.id, ZoneManagement.id, CameraAvSettingsUserLevelManagement.id, WebRtcTransportRequestor.id, PushAvStreamTransport.id],
743
+ requiredClientClusters: [WebRtcTransportRequestor.id],
744
+ optionalClientClusters: [WebRtcTransportProvider.id],
745
+ });
746
+ export const floodlightCamera = DeviceTypeDefinition({
747
+ name: 'MA-floodlightCamera',
748
+ code: 0x0144,
749
+ deviceClass: DeviceClasses.Simple,
750
+ revision: 1,
751
+ requiredServerClusters: [],
752
+ optionalServerClusters: [],
753
+ });
754
+ export const videoDoorbell = DeviceTypeDefinition({
755
+ name: 'MA-videoDoorbell',
756
+ code: 0x0143,
757
+ deviceClass: DeviceClasses.Simple,
758
+ revision: 1,
759
+ requiredServerClusters: [],
760
+ optionalServerClusters: [],
761
+ });
762
+ export const intercom = DeviceTypeDefinition({
763
+ name: 'MA-intercom',
764
+ code: 0x0140,
765
+ deviceClass: DeviceClasses.Simple,
766
+ revision: 2,
767
+ requiredServerClusters: [CameraAvStreamManagement.id, WebRtcTransportProvider.id, WebRtcTransportRequestor.id],
768
+ optionalServerClusters: [Identify.id, CameraAvSettingsUserLevelManagement.id],
769
+ requiredClientClusters: [WebRtcTransportProvider.id, WebRtcTransportRequestor.id],
770
+ optionalClientClusters: [Chime.id],
771
+ });
772
+ export const audioDoorbell = DeviceTypeDefinition({
773
+ name: 'MA-audioDoorbell',
774
+ code: 0x0141,
775
+ deviceClass: DeviceClasses.Simple,
776
+ revision: 2,
777
+ requiredServerClusters: [Identify.id, Switch.id, CameraAvStreamManagement.id, WebRtcTransportProvider.id],
778
+ optionalServerClusters: [WebRtcTransportRequestor.id, PushAvStreamTransport.id],
779
+ requiredClientClusters: [WebRtcTransportRequestor.id, Chime.id],
780
+ optionalClientClusters: [WebRtcTransportProvider.id],
781
+ });
782
+ export const snapshotCamera = DeviceTypeDefinition({
783
+ name: 'MA-snapshotCamera',
784
+ code: 0x0145,
785
+ deviceClass: DeviceClasses.Simple,
786
+ revision: 1,
787
+ requiredServerClusters: [CameraAvStreamManagement.id],
788
+ optionalServerClusters: [Identify.id, OccupancySensing.id, ZoneManagement.id, CameraAvSettingsUserLevelManagement.id],
789
+ });
790
+ export const chime = DeviceTypeDefinition({
791
+ name: 'MA-chime',
792
+ code: 0x0146,
793
+ deviceClass: DeviceClasses.Simple,
794
+ revision: 1,
795
+ requiredServerClusters: [Chime.id],
796
+ optionalServerClusters: [Identify.id],
797
+ });
798
+ export const cameraController = DeviceTypeDefinition({
799
+ name: 'MA-cameraController',
800
+ code: 0x0147,
801
+ deviceClass: DeviceClasses.Simple,
802
+ revision: 1,
803
+ requiredServerClusters: [WebRtcTransportRequestor.id],
804
+ optionalServerClusters: [],
805
+ requiredClientClusters: [WebRtcTransportProvider.id],
806
+ optionalClientClusters: [
807
+ Identify.id,
808
+ PowerSource.id,
809
+ OccupancySensing.id,
810
+ ZoneManagement.id,
811
+ CameraAvStreamManagement.id,
812
+ CameraAvSettingsUserLevelManagement.id,
813
+ WebRtcTransportRequestor.id,
814
+ PushAvStreamTransport.id,
815
+ ],
816
+ });
817
+ export const doorbell = DeviceTypeDefinition({
818
+ name: 'MA-doorbell',
819
+ code: 0x0148,
820
+ deviceClass: DeviceClasses.Simple,
821
+ revision: 2,
822
+ requiredServerClusters: [Identify.id, Switch.id],
681
823
  optionalServerClusters: [],
824
+ requiredClientClusters: [Chime.id],
682
825
  });