matterbridge 3.0.2 → 3.0.3-dev-20250517-bcc5d13

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 (159) hide show
  1. package/CHANGELOG.md +20 -3
  2. package/dist/cli.js +2 -37
  3. package/dist/cluster/export.js +0 -2
  4. package/dist/defaultConfigSchema.js +0 -23
  5. package/dist/deviceManager.js +1 -94
  6. package/dist/frontend.js +62 -369
  7. package/dist/helpers.js +0 -49
  8. package/dist/index.js +2 -31
  9. package/dist/logger/export.js +0 -1
  10. package/dist/matter/behaviors.js +0 -2
  11. package/dist/matter/clusters.js +0 -2
  12. package/dist/matter/devices.js +0 -2
  13. package/dist/matter/endpoints.js +0 -2
  14. package/dist/matter/export.js +0 -2
  15. package/dist/matter/types.js +0 -2
  16. package/dist/matterbridge.js +134 -873
  17. package/dist/matterbridgeAccessoryPlatform.js +0 -34
  18. package/dist/matterbridgeBehaviors.js +4 -53
  19. package/dist/matterbridgeDeviceTypes.js +12 -431
  20. package/dist/matterbridgeDynamicPlatform.js +0 -34
  21. package/dist/matterbridgeEndpoint.js +11 -807
  22. package/dist/matterbridgeEndpointHelpers.js +9 -147
  23. package/dist/matterbridgePlatform.js +7 -225
  24. package/dist/matterbridgeTypes.js +0 -24
  25. package/dist/pluginManager.js +3 -264
  26. package/dist/roboticVacuumCleaner.js +3 -39
  27. package/dist/shelly.js +7 -155
  28. package/dist/storage/export.js +0 -1
  29. package/dist/update.js +0 -53
  30. package/dist/utils/colorUtils.js +2 -205
  31. package/dist/utils/commandLine.js +0 -53
  32. package/dist/utils/copyDirectory.js +1 -37
  33. package/dist/utils/createZip.js +2 -42
  34. package/dist/utils/deepCopy.js +0 -38
  35. package/dist/utils/deepEqual.js +1 -71
  36. package/dist/utils/export.js +0 -1
  37. package/dist/utils/hex.js +0 -57
  38. package/dist/utils/isvalid.js +0 -100
  39. package/dist/utils/network.js +5 -76
  40. package/dist/utils/wait.js +20 -56
  41. package/npm-shrinkwrap.json +2 -2
  42. package/package.json +1 -2
  43. package/dist/cli.d.ts +0 -29
  44. package/dist/cli.d.ts.map +0 -1
  45. package/dist/cli.js.map +0 -1
  46. package/dist/cluster/export.d.ts +0 -2
  47. package/dist/cluster/export.d.ts.map +0 -1
  48. package/dist/cluster/export.js.map +0 -1
  49. package/dist/defaultConfigSchema.d.ts +0 -27
  50. package/dist/defaultConfigSchema.d.ts.map +0 -1
  51. package/dist/defaultConfigSchema.js.map +0 -1
  52. package/dist/deviceManager.d.ts +0 -114
  53. package/dist/deviceManager.d.ts.map +0 -1
  54. package/dist/deviceManager.js.map +0 -1
  55. package/dist/frontend.d.ts +0 -241
  56. package/dist/frontend.d.ts.map +0 -1
  57. package/dist/frontend.js.map +0 -1
  58. package/dist/helpers.d.ts +0 -46
  59. package/dist/helpers.d.ts.map +0 -1
  60. package/dist/helpers.js.map +0 -1
  61. package/dist/index.d.ts +0 -36
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/index.js.map +0 -1
  64. package/dist/logger/export.d.ts +0 -2
  65. package/dist/logger/export.d.ts.map +0 -1
  66. package/dist/logger/export.js.map +0 -1
  67. package/dist/matter/behaviors.d.ts +0 -2
  68. package/dist/matter/behaviors.d.ts.map +0 -1
  69. package/dist/matter/behaviors.js.map +0 -1
  70. package/dist/matter/clusters.d.ts +0 -2
  71. package/dist/matter/clusters.d.ts.map +0 -1
  72. package/dist/matter/clusters.js.map +0 -1
  73. package/dist/matter/devices.d.ts +0 -2
  74. package/dist/matter/devices.d.ts.map +0 -1
  75. package/dist/matter/devices.js.map +0 -1
  76. package/dist/matter/endpoints.d.ts +0 -2
  77. package/dist/matter/endpoints.d.ts.map +0 -1
  78. package/dist/matter/endpoints.js.map +0 -1
  79. package/dist/matter/export.d.ts +0 -5
  80. package/dist/matter/export.d.ts.map +0 -1
  81. package/dist/matter/export.js.map +0 -1
  82. package/dist/matter/types.d.ts +0 -3
  83. package/dist/matter/types.d.ts.map +0 -1
  84. package/dist/matter/types.js.map +0 -1
  85. package/dist/matterbridge.d.ts +0 -435
  86. package/dist/matterbridge.d.ts.map +0 -1
  87. package/dist/matterbridge.js.map +0 -1
  88. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -40
  89. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  90. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  91. package/dist/matterbridgeBehaviors.d.ts +0 -1188
  92. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  93. package/dist/matterbridgeBehaviors.js.map +0 -1
  94. package/dist/matterbridgeDeviceTypes.d.ts +0 -494
  95. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  96. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  97. package/dist/matterbridgeDynamicPlatform.d.ts +0 -40
  98. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  99. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  100. package/dist/matterbridgeEndpoint.d.ts +0 -965
  101. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  102. package/dist/matterbridgeEndpoint.js.map +0 -1
  103. package/dist/matterbridgeEndpointHelpers.d.ts +0 -2728
  104. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  105. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  106. package/dist/matterbridgePlatform.d.ts +0 -294
  107. package/dist/matterbridgePlatform.d.ts.map +0 -1
  108. package/dist/matterbridgePlatform.js.map +0 -1
  109. package/dist/matterbridgeTypes.d.ts +0 -187
  110. package/dist/matterbridgeTypes.d.ts.map +0 -1
  111. package/dist/matterbridgeTypes.js.map +0 -1
  112. package/dist/pluginManager.d.ts +0 -273
  113. package/dist/pluginManager.d.ts.map +0 -1
  114. package/dist/pluginManager.js.map +0 -1
  115. package/dist/roboticVacuumCleaner.d.ts +0 -43
  116. package/dist/roboticVacuumCleaner.d.ts.map +0 -1
  117. package/dist/roboticVacuumCleaner.js.map +0 -1
  118. package/dist/shelly.d.ts +0 -153
  119. package/dist/shelly.d.ts.map +0 -1
  120. package/dist/shelly.js.map +0 -1
  121. package/dist/storage/export.d.ts +0 -2
  122. package/dist/storage/export.d.ts.map +0 -1
  123. package/dist/storage/export.js.map +0 -1
  124. package/dist/update.d.ts +0 -58
  125. package/dist/update.d.ts.map +0 -1
  126. package/dist/update.js.map +0 -1
  127. package/dist/utils/colorUtils.d.ts +0 -61
  128. package/dist/utils/colorUtils.d.ts.map +0 -1
  129. package/dist/utils/colorUtils.js.map +0 -1
  130. package/dist/utils/commandLine.d.ts +0 -58
  131. package/dist/utils/commandLine.d.ts.map +0 -1
  132. package/dist/utils/commandLine.js.map +0 -1
  133. package/dist/utils/copyDirectory.d.ts +0 -32
  134. package/dist/utils/copyDirectory.d.ts.map +0 -1
  135. package/dist/utils/copyDirectory.js.map +0 -1
  136. package/dist/utils/createZip.d.ts +0 -38
  137. package/dist/utils/createZip.d.ts.map +0 -1
  138. package/dist/utils/createZip.js.map +0 -1
  139. package/dist/utils/deepCopy.d.ts +0 -31
  140. package/dist/utils/deepCopy.d.ts.map +0 -1
  141. package/dist/utils/deepCopy.js.map +0 -1
  142. package/dist/utils/deepEqual.d.ts +0 -53
  143. package/dist/utils/deepEqual.d.ts.map +0 -1
  144. package/dist/utils/deepEqual.js.map +0 -1
  145. package/dist/utils/export.d.ts +0 -11
  146. package/dist/utils/export.d.ts.map +0 -1
  147. package/dist/utils/export.js.map +0 -1
  148. package/dist/utils/hex.d.ts +0 -48
  149. package/dist/utils/hex.d.ts.map +0 -1
  150. package/dist/utils/hex.js.map +0 -1
  151. package/dist/utils/isvalid.d.ts +0 -102
  152. package/dist/utils/isvalid.d.ts.map +0 -1
  153. package/dist/utils/isvalid.js.map +0 -1
  154. package/dist/utils/network.d.ts +0 -69
  155. package/dist/utils/network.d.ts.map +0 -1
  156. package/dist/utils/network.js.map +0 -1
  157. package/dist/utils/wait.d.ts +0 -51
  158. package/dist/utils/wait.d.ts.map +0 -1
  159. package/dist/utils/wait.js.map +0 -1
@@ -1,28 +1,4 @@
1
- /**
2
- * This file contains the class MatterbridgeDevice.
3
- *
4
- * @file matterbridgeDeviceTypes.ts
5
- * @author Luca Liguori
6
- * @date 2024-11-08
7
- * @version 1.0.0
8
- *
9
- * Copyright 2024, 2025, 2026 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License. *
22
- */
23
- // @matter
24
1
  import { DeviceTypeId } from '@matter/main';
25
- // @matter clusters
26
2
  import { BooleanState } from '@matter/main/clusters/boolean-state';
27
3
  import { BooleanStateConfiguration } from '@matter/main/clusters/boolean-state-configuration';
28
4
  import { BridgedDeviceBasicInformation } from '@matter/main/clusters/bridged-device-basic-information';
@@ -90,42 +66,15 @@ import { ServiceArea } from '@matter/main/clusters/service-area';
90
66
  import { TemperatureControl } from '@matter/main/clusters/temperature-control';
91
67
  export var DeviceClasses;
92
68
  (function (DeviceClasses) {
93
- /** Node device type. */
94
69
  DeviceClasses["Node"] = "Node";
95
- /**
96
- * Application device type.
97
- * Application devices types are typically the most datatype endpoints on a node and in the network.
98
- */
99
70
  DeviceClasses["App"] = "App";
100
- /**
101
- * Utility device type.
102
- * A Utility device type supports configuration and settings.
103
- */
104
71
  DeviceClasses["Utility"] = "Utility";
105
- /**
106
- * Simple device type.
107
- * A Simple device type supports local control that is persistent, independent, and unsupervised.
108
- */
109
72
  DeviceClasses["Simple"] = "Simple";
110
- /**
111
- * Dynamic device type.
112
- * A Dynamic device type supports intelligent and supervisory services, such as commissioning,
113
- * monitoring, trend analysis, scheduling and central management. A dynamic device type is an
114
- * application device type.
115
- */
116
73
  DeviceClasses["Dynamic"] = "Dynamic";
117
- /** There exists a client application cluster on the endpoint. */
118
74
  DeviceClasses["Client"] = "Client";
119
- /** There exists a server application cluster on the endpoint. */
120
75
  DeviceClasses["Server"] = "Server";
121
- /** The device type is composed of 2 or more device types. */
122
76
  DeviceClasses["Composed"] = "Composed";
123
- /** The endpoint and at least one of its sibling endpoints have an overlap in application device type(s). */
124
77
  DeviceClasses["Duplicate"] = "Duplicate";
125
- /**
126
- * The endpoint represents a Bridged Device, for which information about the state of
127
- * its power source is available to the Bridge
128
- */
129
78
  DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
130
79
  })(DeviceClasses || (DeviceClasses = {}));
131
80
  export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
@@ -138,7 +87,6 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
138
87
  requiredClientClusters,
139
88
  optionalClientClusters,
140
89
  });
141
- // Utility device types
142
90
  export const powerSource = DeviceTypeDefinition({
143
91
  name: 'MA-powerSource',
144
92
  code: 0x0011,
@@ -147,22 +95,6 @@ export const powerSource = DeviceTypeDefinition({
147
95
  requiredServerClusters: [PowerSource.Cluster.id],
148
96
  optionalServerClusters: [],
149
97
  });
150
- /**
151
- 2.5.3. Conditions
152
- Please see the Base Device Type definition for conformance tags.
153
- This device type SHALL only be used for Nodes which have a device type of Bridge.
154
-
155
- 2.5.6. Endpoint Composition
156
- • A Bridged Node endpoint SHALL support one of the following composition patterns:
157
- ◦ Separate Endpoints: All application device types are supported on separate endpoints, and
158
- not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
159
- attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
160
- device, including the endpoints supporting the application device types, i.e. the full-family
161
- pattern defined in the System Model specification.
162
- ◦ One Endpoint: Both the Bridged Node and one or more application device types are sup
163
- ported on the same endpoint (following application device type rules). Endpoint composi
164
- tion SHALL conform to the application device type(s) definition
165
- */
166
98
  export const bridgedNode = DeviceTypeDefinition({
167
99
  name: 'MA-bridgedNode',
168
100
  code: 0x0013,
@@ -187,194 +119,77 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
187
119
  requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
188
120
  optionalServerClusters: [],
189
121
  });
190
- // Lightning device types
191
- /**
192
- * Element Requirements:
193
- * - Identify Command TriggerEffect
194
- * - Scenes Management Command CopyScene
195
- * - On/Off Feature Lighting
196
- * - Level Control Feature OnOff
197
- * - Level Control Feature Lighting
198
- * - Level Control Attribute CurrentLevel 1 to 254
199
- * - Level Control Attribute MinLevel 1
200
- * - Level Control Attribute MaxLevel 254
201
- */
202
122
  export const onOffLight = DeviceTypeDefinition({
203
123
  name: 'MA-onofflight',
204
124
  code: 0x0100,
205
125
  deviceClass: DeviceClasses.Simple,
206
126
  revision: 3,
207
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
127
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
208
128
  optionalServerClusters: [LevelControl.Cluster.id],
209
129
  });
210
- /**
211
- * Element Requirements:
212
- * - Identify Command TriggerEffect
213
- * - Scenes Management Command CopyScene
214
- * - On/Off Feature Lighting
215
- * - Level Control Feature OnOff
216
- * - Level Control Feature Lighting
217
- * - Level Control Attribute CurrentLevel 1 to 254
218
- * - Level Control Attribute MinLevel 1
219
- * - Level Control Attribute MaxLevel 254
220
- */
221
130
  export const dimmableLight = DeviceTypeDefinition({
222
131
  name: 'MA-dimmablelight',
223
132
  code: 0x0101,
224
133
  deviceClass: DeviceClasses.Simple,
225
134
  revision: 3,
226
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
135
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
227
136
  optionalServerClusters: [],
228
137
  });
229
- /**
230
- * Element Requirements:
231
- * - Identify Command TriggerEffect
232
- * - Scenes Management Command CopyScene
233
- * - On/Off Feature Lighting
234
- * - Level Control Feature OnOff
235
- * - Level Control Feature Lighting
236
- * - Level Control Attribute CurrentLevel 1 to 254
237
- * - Level Control Attribute MinLevel 1
238
- * - Level Control Attribute MaxLevel 254
239
- * - Color Control Feature ColorTemperature
240
- * - Color Control Attribute RemainingTime
241
- */
242
138
  export const colorTemperatureLight = DeviceTypeDefinition({
243
139
  name: 'MA-colortemperaturelight',
244
140
  code: 0x010c,
245
141
  deviceClass: DeviceClasses.Simple,
246
142
  revision: 4,
247
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
143
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
248
144
  optionalServerClusters: [],
249
145
  });
250
- /**
251
- * Element Requirements:
252
- * - Identify Command TriggerEffect
253
- * - Scenes Management Command CopyScene
254
- * - On/Off Feature Lighting
255
- * - Level Control Feature OnOff
256
- * - Level Control Feature Lighting
257
- * - Level Control Attribute CurrentLevel 1 to 254
258
- * - Level Control Attribute MinLevel 1
259
- * - Level Control Attribute MaxLevel 254
260
- * - Color Control Feature XY
261
- * - Color Control Feature ColorTemperature
262
- * - Color Control Attribute RemainingTime
263
- */
264
146
  export const extendedColorLight = DeviceTypeDefinition({
265
147
  name: 'MA-extendedcolorlight',
266
148
  code: 0x010d,
267
149
  deviceClass: DeviceClasses.Simple,
268
150
  revision: 4,
269
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
151
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
270
152
  optionalServerClusters: [],
271
153
  });
272
- // Smart plugs/Outlets and other Actuators device types
273
- /**
274
- * Element Requirements:
275
- * - Identify Command TriggerEffect
276
- * - Scenes Management Command CopyScene
277
- * - On/Off Feature Lighting
278
- * - Level Control Feature OnOff
279
- * - Level Control Feature Lighting
280
- * - Level Control Attribute CurrentLevel 1 to 254
281
- * - Level Control Attribute MinLevel 1
282
- * - Level Control Attribute MaxLevel 254
283
- */
284
154
  export const onOffOutlet = DeviceTypeDefinition({
285
155
  name: 'MA-onoffpluginunit',
286
156
  code: 0x010a,
287
157
  deviceClass: DeviceClasses.Simple,
288
158
  revision: 3,
289
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
159
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
290
160
  optionalServerClusters: [LevelControl.Cluster.id],
291
161
  });
292
- /**
293
- * Element Requirements:
294
- * - Identify Command TriggerEffect
295
- * - Scenes Management Command CopyScene
296
- * - On/Off Feature Lighting
297
- * - Level Control Feature OnOff
298
- * - Level Control Feature Lighting
299
- * - Level Control Attribute CurrentLevel 1 to 254
300
- * - Level Control Attribute MinLevel 1
301
- * - Level Control Attribute MaxLevel 254
302
- */
303
162
  export const dimmableOutlet = DeviceTypeDefinition({
304
163
  name: 'MA-dimmablepluginunit',
305
164
  code: 0x010b,
306
165
  deviceClass: DeviceClasses.Simple,
307
166
  revision: 4,
308
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
167
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
309
168
  optionalServerClusters: [],
310
169
  });
311
- /**
312
- * A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
313
- * into it, and is capable of switching that provided power on or off.
314
- * It is a simple device type that does not require any client clusters.
315
- * Element Requirements:
316
- * - Identify Command TriggerEffect
317
- * - Scenes Management Command CopyScene
318
- * - On/Off Feature Lighting
319
- * - Level Control Feature OnOff
320
- * - Level Control Feature Lighting
321
- * - Level Control Attribute CurrentLevel 1 to 254
322
- * - Level Control Attribute MinLevel 1
323
- * - Level Control Attribute MaxLevel 254
324
- */
325
170
  export const onOffMountedSwitch = DeviceTypeDefinition({
326
171
  name: 'MA-onoffmountedswitch',
327
172
  code: 0x010f,
328
173
  deviceClass: DeviceClasses.Simple,
329
174
  revision: 1,
330
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
175
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
331
176
  optionalServerClusters: [LevelControl.Cluster.id],
332
177
  });
333
- /**
334
- * A Mounted Dimmable Load Control is a fixed device that provides power to another device that is
335
- * plugged into it, and is capable of being switched on or off and have its level adjusted. The Mounted
336
- * Dimmable Load Control is typically used to control a conventional non-communicating light
337
- * through its mains connection using phase cutting.
338
- * It is a simple device type that does not require any client clusters.
339
- * Element Requirements:
340
- * - Identify Command TriggerEffect
341
- * - Scenes Management Command CopyScene
342
- * - On/Off Feature Lighting
343
- * - Level Control Feature OnOff
344
- * - Level Control Feature Lighting
345
- * - Level Control Attribute CurrentLevel 1 to 254
346
- * - Level Control Attribute MinLevel 1
347
- * - Level Control Attribute MaxLevel 254
348
- */
349
178
  export const dimmableMountedSwitch = DeviceTypeDefinition({
350
179
  name: 'MA-dimmablemountedswitch',
351
180
  code: 0x0110,
352
181
  deviceClass: DeviceClasses.Simple,
353
182
  revision: 1,
354
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
183
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
355
184
  optionalServerClusters: [],
356
185
  });
357
- /**
358
- * Remark:
359
- * On/Off Cluster:
360
- * - Off If the pump is powered on, store the current level then immediately power it off.
361
- * - On If the pump is powered off, power it on and move immediately to the level stored by a previous Off command. If no such level has been stored,
362
- * move immediately to the maximum level allowed for the pump.
363
- * - Toggle If the pump is powered on, proceed as for the Off command. If the device is powered off, proceed as for the On command.
364
- *
365
- * LevelControl cluster:
366
- * Level Setpoint Meaning
367
- * 0 N/A Pump is stopped,
368
- * 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
369
- * 201–255 100.0% Pump setpoint is 100.0%
370
- */
371
186
  export const pumpDevice = DeviceTypeDefinition({
372
187
  name: 'MA-pump',
373
188
  code: 0x303,
374
189
  deviceClass: DeviceClasses.Simple,
375
190
  revision: 3,
376
191
  requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
377
- optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id, */ TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
192
+ optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
378
193
  });
379
194
  export const waterValve = DeviceTypeDefinition({
380
195
  name: 'MA-waterValve',
@@ -384,33 +199,29 @@ export const waterValve = DeviceTypeDefinition({
384
199
  requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
385
200
  optionalServerClusters: [FlowMeasurement.Cluster.id],
386
201
  });
387
- // Switches and Controls device types
388
- // Custom device types without client clusters (not working in Alexa)
389
202
  export const onOffSwitch = DeviceTypeDefinition({
390
203
  name: 'MA-onoffswitch',
391
204
  code: 0x0103,
392
205
  deviceClass: DeviceClasses.Simple,
393
206
  revision: 3,
394
207
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
395
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
208
+ optionalServerClusters: [Groups.Cluster.id],
396
209
  });
397
- // Custom device types without client clusters (not working in Alexa)
398
210
  export const dimmableSwitch = DeviceTypeDefinition({
399
211
  name: 'MA-dimmableswitch',
400
212
  code: 0x0104,
401
213
  deviceClass: DeviceClasses.Simple,
402
214
  revision: 3,
403
215
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
404
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
216
+ optionalServerClusters: [Groups.Cluster.id],
405
217
  });
406
- // Custom device types without client clusters (not working in Alexa)
407
218
  export const colorTemperatureSwitch = DeviceTypeDefinition({
408
219
  name: 'MA-colortemperatureswitch',
409
220
  code: 0x0105,
410
221
  deviceClass: DeviceClasses.Simple,
411
222
  revision: 3,
412
223
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
413
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
224
+ optionalServerClusters: [Groups.Cluster.id],
414
225
  });
415
226
  export const genericSwitch = DeviceTypeDefinition({
416
227
  name: 'MA-genericswitch',
@@ -420,11 +231,6 @@ export const genericSwitch = DeviceTypeDefinition({
420
231
  requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
421
232
  optionalServerClusters: [],
422
233
  });
423
- // Sensor device types
424
- /**
425
- * Closed or contact: state true
426
- * Open or no contact: state false
427
- */
428
234
  export const contactSensor = DeviceTypeDefinition({
429
235
  name: 'MA-contactsensor',
430
236
  code: 0x0015,
@@ -476,7 +282,6 @@ export const humiditySensor = DeviceTypeDefinition({
476
282
  revision: 2,
477
283
  requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
478
284
  });
479
- // Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
480
285
  export const smokeCoAlarm = DeviceTypeDefinition({
481
286
  name: 'MA-smokeCoAlarm',
482
287
  code: 0x0076,
@@ -530,15 +335,6 @@ export const rainSensor = DeviceTypeDefinition({
530
335
  requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
531
336
  optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
532
337
  });
533
- // Closures device types
534
- /**
535
- * A Door Lock is a device used to secure a door. It is possible to actuate a door lock either by means of a manual or a remote method.
536
- * Element Requirements:
537
- *
538
- * - AccessControl Attribute Extension
539
- * - DoorLock Feature User
540
- * - DoorLock Attribute AlarmMask
541
- */
542
338
  export const doorLockDevice = DeviceTypeDefinition({
543
339
  name: 'MA-doorLock',
544
340
  code: 0xa,
@@ -555,15 +351,6 @@ export const coverDevice = DeviceTypeDefinition({
555
351
  requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
556
352
  optionalServerClusters: [Groups.Cluster.id],
557
353
  });
558
- // HVAC device types
559
- /**
560
- * A Thermostat device is capable of having either built-in or separate sensors for temperature,
561
- * humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
562
- * thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
563
- * unit (for example, an indoor air handler) or is capable of including a mechanism to control a
564
- * heating or cooling unit directly.
565
- *
566
- */
567
354
  export const thermostatDevice = DeviceTypeDefinition({
568
355
  name: 'MA-thermostat',
569
356
  code: 0x301,
@@ -572,25 +359,6 @@ export const thermostatDevice = DeviceTypeDefinition({
572
359
  requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
573
360
  optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
574
361
  });
575
- /**
576
- * A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
577
- * Remark: it may have a thermostat device type.
578
- * Additional device types MAY also be included in device compositions.
579
- * Element Requirements:
580
- * The FanControl cluster must have the FanModeSequence attribute.
581
- *
582
- * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
583
- * includes an Off setting.
584
- * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
585
- * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
586
- * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
587
- * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
588
- * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
589
- * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
590
- * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
591
- * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
592
- * SpeedSetting and PercentSetting.
593
- */
594
362
  export const fanDevice = DeviceTypeDefinition({
595
363
  name: 'MA-fan',
596
364
  code: 0x2b,
@@ -599,35 +367,6 @@ export const fanDevice = DeviceTypeDefinition({
599
367
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
600
368
  optionalServerClusters: [OnOff.Cluster.id],
601
369
  });
602
- /**
603
- * An Air Purifier is a standalone device that is designed to clean the air in a room.
604
- * It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
605
- * the condition of its filters.
606
- *
607
- * Remark:
608
- * An Air Purifier MAY expose elements of its functionality through one or more additional device
609
- * types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
610
- * requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
611
- * included in device compositions but are not considered part of the core functionality of the device.
612
- * 0x0301 Thermostat O
613
- * 0x0302 Temperature Sensor O
614
- * 0x0307 Humidity Sensor O
615
- * 0x002C Air Quality Sensor O
616
- *
617
- * Cluster Restrictions:
618
- * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
619
- * includes an Off setting.
620
- * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
621
- * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
622
- * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
623
- * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
624
- * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
625
- * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
626
- * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
627
- * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
628
- * SpeedSetting and PercentSetting.
629
- *
630
- */
631
370
  export const airPurifier = DeviceTypeDefinition({
632
371
  name: 'MA-airPurifier',
633
372
  code: 0x2d,
@@ -636,7 +375,6 @@ export const airPurifier = DeviceTypeDefinition({
636
375
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
637
376
  optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
638
377
  });
639
- // Generic device types
640
378
  export const modeSelect = DeviceTypeDefinition({
641
379
  name: 'MA-modeselect',
642
380
  code: 0x27,
@@ -644,37 +382,6 @@ export const modeSelect = DeviceTypeDefinition({
644
382
  revision: 1,
645
383
  requiredServerClusters: [ModeSelect.Cluster.id],
646
384
  });
647
- /**
648
- * This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
649
- * device type provide functionality for the collection of descendant endpoints present in the PartsList
650
- * of the endpoint’s descriptor, for example the Actions cluster.
651
- *
652
- * Endpoint Composition:
653
- * An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
654
- * aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
655
- *
656
- * Disambiguation:
657
- * If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
658
- * independent bridged devices, the endpoints SHOULD make available metadata to allow a
659
- * client to disambiguate distinct bridged devices with an overlap in application device types.
660
- *
661
- * Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
662
- * - thus reusing the naming information which the bridge already has to allow disambiguation to the
663
- * user when using a direct user interface to the bridge.
664
- *
665
- * Actions cluster (9.14 Matter specification):
666
- * If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
667
- * in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
668
- * no actions are exposed). 9.12 Matter specification
669
- *
670
- * 9.12.5. New features for Bridged Devices
671
- * Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
672
- * specific means. These updates MAY result in one or more changes to their capabilities,
673
- * such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
674
- * on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
675
- * (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
676
- * that wish to be notified of such changes SHOULD monitor changes of these attributes.
677
- */
678
385
  export const aggregator = DeviceTypeDefinition({
679
386
  name: 'MA-aggregator',
680
387
  code: 0x000e,
@@ -684,29 +391,6 @@ export const aggregator = DeviceTypeDefinition({
684
391
  optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
685
392
  });
686
393
  export const bridge = aggregator;
687
- // Robotic device types
688
- /**
689
- * A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
690
- * in a home or office environment. It is typically a mobile device that can navigate around
691
- * obstacles and can be controlled remotely.
692
- *
693
- * Cluster Usage:
694
- * The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
695
- * state of the device, and therefore it SHOULD be used for monitoring purposes.
696
- *
697
- * To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
698
- * command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
699
- *
700
- * To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
701
- * command with the NewMode field set to a mode that has the Idle mode tag associated with it.
702
- *
703
- * To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
704
- *
705
- * To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
706
- * command.
707
- *
708
- *
709
- */
710
394
  export const roboticVacuumCleaner = DeviceTypeDefinition({
711
395
  name: 'MA-roboticvacuumcleaner',
712
396
  code: 0x74,
@@ -715,11 +399,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
715
399
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
716
400
  optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
717
401
  });
718
- // Appliances device types
719
- /**
720
- * Cluster Restrictions:
721
- * On/Off Cluster: the DF (Dead Front) feature is required
722
- */
723
402
  export const laundryWasher = DeviceTypeDefinition({
724
403
  name: 'MA-laundrywasher',
725
404
  code: 0x73,
@@ -728,13 +407,6 @@ export const laundryWasher = DeviceTypeDefinition({
728
407
  requiredServerClusters: [OperationalState.Cluster.id],
729
408
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
730
409
  });
731
- /**
732
- * A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
733
- * A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
734
- *
735
- * Device Type Requirements:
736
- * 0x0071 Temperature Controlled Cabinet
737
- */
738
410
  export const refrigerator = DeviceTypeDefinition({
739
411
  name: 'MA-refrigerator',
740
412
  code: 0x70,
@@ -743,23 +415,6 @@ export const refrigerator = DeviceTypeDefinition({
743
415
  requiredServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
744
416
  optionalServerClusters: [],
745
417
  });
746
- /**
747
- * A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
748
- *
749
- * A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
750
- * the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
751
- * requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
752
- * 0x0302 Temperature Sensor O
753
- * 0x0307 Humidity Sensor O
754
- *
755
- * Remark:
756
- * The DF (Dead Front) feature is required for the On/Off cluster in this device type:
757
- * - Thermostat LocalTemperature null
758
- * - Temperature Measurement MeasuredValue null
759
- * - Relative Humidity Measurement MeasuredValue null
760
- * - Fan Control SpeedSetting null
761
- * - Fan Control PercentSetting null
762
- */
763
418
  export const airConditioner = DeviceTypeDefinition({
764
419
  name: 'MA-airConditioner',
765
420
  code: 0x72,
@@ -768,22 +423,12 @@ export const airConditioner = DeviceTypeDefinition({
768
423
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
769
424
  optionalServerClusters: [
770
425
  Groups.Cluster.id,
771
- /* ScenesManagement.Cluster.id,*/
772
426
  FanControl.Cluster.id,
773
427
  ThermostatUserInterfaceConfiguration.Cluster.id,
774
428
  TemperatureMeasurement.Cluster.id,
775
429
  RelativeHumidityMeasurement.Cluster.id,
776
430
  ],
777
431
  });
778
- /**
779
- * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
780
- * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
781
- * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
782
- * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
783
- * range, or similar device.
784
- * Conditions:
785
- * Cooler The device has cooling functionality.
786
- */
787
432
  export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
788
433
  name: 'MA-temperaturecontrolledcabinetcooler',
789
434
  code: 0x71,
@@ -792,15 +437,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
792
437
  requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
793
438
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
794
439
  });
795
- /**
796
- * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
797
- * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
798
- * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
799
- * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
800
- * range, or similar device.
801
- * Conditions:
802
- * Heater The device has heating functionality.
803
- */
804
440
  export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
805
441
  name: 'MA-temperaturecontrolledcabinetheater',
806
442
  code: 0x71,
@@ -809,10 +445,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
809
445
  requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
810
446
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
811
447
  });
812
- /**
813
- * Cluster Restrictions:
814
- * On/Off Cluster: the DF (Dead Front) feature is required
815
- */
816
448
  export const dishwasher = DeviceTypeDefinition({
817
449
  name: 'MA-dishwasher',
818
450
  code: 0x75,
@@ -821,10 +453,6 @@ export const dishwasher = DeviceTypeDefinition({
821
453
  requiredServerClusters: [OperationalState.Cluster.id],
822
454
  optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
823
455
  });
824
- /**
825
- * Cluster Restrictions:
826
- * On/Off Cluster: the DF (Dead Front) feature is required
827
- */
828
456
  export const laundryDryer = DeviceTypeDefinition({
829
457
  name: 'MA-laundrydryer',
830
458
  code: 0x7c,
@@ -833,13 +461,6 @@ export const laundryDryer = DeviceTypeDefinition({
833
461
  requiredServerClusters: [OperationalState.Cluster.id],
834
462
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
835
463
  });
836
- /**
837
- * A Cook Surface device type represents a heating object on a cooktop or other similar device. It
838
- * SHALL only be used when composed as part of another device type (cooktop).
839
- *
840
- * Cluster Restrictions:
841
- * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
842
- */
843
464
  export const cookSurface = DeviceTypeDefinition({
844
465
  name: 'MA-cooksurface',
845
466
  code: 0x77,
@@ -848,18 +469,6 @@ export const cookSurface = DeviceTypeDefinition({
848
469
  requiredServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id],
849
470
  optionalServerClusters: [OnOff.Cluster.id],
850
471
  });
851
- /**
852
- * A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
853
- * field located below the glass surface directly to the magnetic induction cookware placed
854
- * above or through traditional gas or electric burners.
855
- *
856
- * Device Type Requirements:
857
- * A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
858
- * 0x0077 Cook Surface min 1 O
859
- *
860
- * Cluster Restrictions:
861
- * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
862
- */
863
472
  export const cooktop = DeviceTypeDefinition({
864
473
  name: 'MA-cooktop',
865
474
  code: 0x78,
@@ -868,15 +477,6 @@ export const cooktop = DeviceTypeDefinition({
868
477
  requiredServerClusters: [OnOff.Cluster.id],
869
478
  optionalServerClusters: [Identify.Cluster.id],
870
479
  });
871
- /**
872
- * An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
873
- * An oven is always defined via endpoint composition.
874
- * Conditions:
875
- * An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
876
- * Device Type Requirements:
877
- * 0x0071 Temperature Controlled Cabinet min 1
878
- * 0x0078 Cooktop
879
- */
880
480
  export const oven = DeviceTypeDefinition({
881
481
  name: 'MA-oven',
882
482
  code: 0x7b,
@@ -885,18 +485,6 @@ export const oven = DeviceTypeDefinition({
885
485
  requiredServerClusters: [Identify.Cluster.id],
886
486
  optionalServerClusters: [],
887
487
  });
888
- /**
889
- * An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
890
- * Additional device types not listed in this table MAY also be included in device compositions.
891
- * Device Type Requirements:
892
- * 0x0100+ On/Off Light+ O
893
- *
894
- *
895
- * Element Requirements:
896
- * 0x0202 Fan Control Feature Rocking X
897
- * 0x0202 Fan Control Feature Wind X
898
- * 0x0202 Fan Control Feature AirflowDirection X
899
- */
900
488
  export const extractorHood = DeviceTypeDefinition({
901
489
  name: 'MA-extractorhood',
902
490
  code: 0x7a,
@@ -905,12 +493,6 @@ export const extractorHood = DeviceTypeDefinition({
905
493
  requiredServerClusters: [FanControl.Cluster.id],
906
494
  optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
907
495
  });
908
- /**
909
- * A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
910
- * A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
911
- * A Microwave Oven MAY also support additional capabilities via endpoint composition.
912
- *
913
- */
914
496
  export const microwaveOven = DeviceTypeDefinition({
915
497
  name: 'MA-microwaveoven',
916
498
  code: 0x79,
@@ -919,4 +501,3 @@ export const microwaveOven = DeviceTypeDefinition({
919
501
  requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
920
502
  optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
921
503
  });
922
- //# sourceMappingURL=matterbridgeDeviceTypes.js.map