matterbridge 3.0.2 → 3.0.3-dev-20250517-720018f

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 (164) hide show
  1. package/CHANGELOG.md +22 -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 +71 -369
  7. package/dist/helpers.js +25 -56
  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 +143 -873
  17. package/dist/matterbridgeAccessoryPlatform.js +0 -34
  18. package/dist/matterbridgeBehaviors.js +4 -53
  19. package/dist/matterbridgeDeviceTypes.js +34 -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/frontend/build/asset-manifest.json +3 -3
  42. package/frontend/build/index.html +1 -1
  43. package/frontend/build/static/js/{main.f6e0f736.js → main.2486c3e3.js} +3 -3
  44. package/frontend/build/static/js/{main.f6e0f736.js.map → main.2486c3e3.js.map} +1 -1
  45. package/npm-shrinkwrap.json +2 -2
  46. package/package.json +1 -2
  47. package/dist/cli.d.ts +0 -29
  48. package/dist/cli.d.ts.map +0 -1
  49. package/dist/cli.js.map +0 -1
  50. package/dist/cluster/export.d.ts +0 -2
  51. package/dist/cluster/export.d.ts.map +0 -1
  52. package/dist/cluster/export.js.map +0 -1
  53. package/dist/defaultConfigSchema.d.ts +0 -27
  54. package/dist/defaultConfigSchema.d.ts.map +0 -1
  55. package/dist/defaultConfigSchema.js.map +0 -1
  56. package/dist/deviceManager.d.ts +0 -114
  57. package/dist/deviceManager.d.ts.map +0 -1
  58. package/dist/deviceManager.js.map +0 -1
  59. package/dist/frontend.d.ts +0 -241
  60. package/dist/frontend.d.ts.map +0 -1
  61. package/dist/frontend.js.map +0 -1
  62. package/dist/helpers.d.ts +0 -46
  63. package/dist/helpers.d.ts.map +0 -1
  64. package/dist/helpers.js.map +0 -1
  65. package/dist/index.d.ts +0 -36
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/logger/export.d.ts +0 -2
  69. package/dist/logger/export.d.ts.map +0 -1
  70. package/dist/logger/export.js.map +0 -1
  71. package/dist/matter/behaviors.d.ts +0 -2
  72. package/dist/matter/behaviors.d.ts.map +0 -1
  73. package/dist/matter/behaviors.js.map +0 -1
  74. package/dist/matter/clusters.d.ts +0 -2
  75. package/dist/matter/clusters.d.ts.map +0 -1
  76. package/dist/matter/clusters.js.map +0 -1
  77. package/dist/matter/devices.d.ts +0 -2
  78. package/dist/matter/devices.d.ts.map +0 -1
  79. package/dist/matter/devices.js.map +0 -1
  80. package/dist/matter/endpoints.d.ts +0 -2
  81. package/dist/matter/endpoints.d.ts.map +0 -1
  82. package/dist/matter/endpoints.js.map +0 -1
  83. package/dist/matter/export.d.ts +0 -5
  84. package/dist/matter/export.d.ts.map +0 -1
  85. package/dist/matter/export.js.map +0 -1
  86. package/dist/matter/types.d.ts +0 -3
  87. package/dist/matter/types.d.ts.map +0 -1
  88. package/dist/matter/types.js.map +0 -1
  89. package/dist/matterbridge.d.ts +0 -435
  90. package/dist/matterbridge.d.ts.map +0 -1
  91. package/dist/matterbridge.js.map +0 -1
  92. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -40
  93. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  94. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  95. package/dist/matterbridgeBehaviors.d.ts +0 -1188
  96. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  97. package/dist/matterbridgeBehaviors.js.map +0 -1
  98. package/dist/matterbridgeDeviceTypes.d.ts +0 -494
  99. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  100. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  101. package/dist/matterbridgeDynamicPlatform.d.ts +0 -40
  102. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  103. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  104. package/dist/matterbridgeEndpoint.d.ts +0 -965
  105. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  106. package/dist/matterbridgeEndpoint.js.map +0 -1
  107. package/dist/matterbridgeEndpointHelpers.d.ts +0 -2728
  108. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  109. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  110. package/dist/matterbridgePlatform.d.ts +0 -294
  111. package/dist/matterbridgePlatform.d.ts.map +0 -1
  112. package/dist/matterbridgePlatform.js.map +0 -1
  113. package/dist/matterbridgeTypes.d.ts +0 -187
  114. package/dist/matterbridgeTypes.d.ts.map +0 -1
  115. package/dist/matterbridgeTypes.js.map +0 -1
  116. package/dist/pluginManager.d.ts +0 -273
  117. package/dist/pluginManager.d.ts.map +0 -1
  118. package/dist/pluginManager.js.map +0 -1
  119. package/dist/roboticVacuumCleaner.d.ts +0 -43
  120. package/dist/roboticVacuumCleaner.d.ts.map +0 -1
  121. package/dist/roboticVacuumCleaner.js.map +0 -1
  122. package/dist/shelly.d.ts +0 -153
  123. package/dist/shelly.d.ts.map +0 -1
  124. package/dist/shelly.js.map +0 -1
  125. package/dist/storage/export.d.ts +0 -2
  126. package/dist/storage/export.d.ts.map +0 -1
  127. package/dist/storage/export.js.map +0 -1
  128. package/dist/update.d.ts +0 -58
  129. package/dist/update.d.ts.map +0 -1
  130. package/dist/update.js.map +0 -1
  131. package/dist/utils/colorUtils.d.ts +0 -61
  132. package/dist/utils/colorUtils.d.ts.map +0 -1
  133. package/dist/utils/colorUtils.js.map +0 -1
  134. package/dist/utils/commandLine.d.ts +0 -58
  135. package/dist/utils/commandLine.d.ts.map +0 -1
  136. package/dist/utils/commandLine.js.map +0 -1
  137. package/dist/utils/copyDirectory.d.ts +0 -32
  138. package/dist/utils/copyDirectory.d.ts.map +0 -1
  139. package/dist/utils/copyDirectory.js.map +0 -1
  140. package/dist/utils/createZip.d.ts +0 -38
  141. package/dist/utils/createZip.d.ts.map +0 -1
  142. package/dist/utils/createZip.js.map +0 -1
  143. package/dist/utils/deepCopy.d.ts +0 -31
  144. package/dist/utils/deepCopy.d.ts.map +0 -1
  145. package/dist/utils/deepCopy.js.map +0 -1
  146. package/dist/utils/deepEqual.d.ts +0 -53
  147. package/dist/utils/deepEqual.d.ts.map +0 -1
  148. package/dist/utils/deepEqual.js.map +0 -1
  149. package/dist/utils/export.d.ts +0 -11
  150. package/dist/utils/export.d.ts.map +0 -1
  151. package/dist/utils/export.js.map +0 -1
  152. package/dist/utils/hex.d.ts +0 -48
  153. package/dist/utils/hex.d.ts.map +0 -1
  154. package/dist/utils/hex.js.map +0 -1
  155. package/dist/utils/isvalid.d.ts +0 -102
  156. package/dist/utils/isvalid.d.ts.map +0 -1
  157. package/dist/utils/isvalid.js.map +0 -1
  158. package/dist/utils/network.d.ts +0 -69
  159. package/dist/utils/network.d.ts.map +0 -1
  160. package/dist/utils/network.js.map +0 -1
  161. package/dist/utils/wait.d.ts +0 -51
  162. package/dist/utils/wait.d.ts.map +0 -1
  163. package/dist/utils/wait.js.map +0 -1
  164. /package/frontend/build/static/js/{main.f6e0f736.js.LICENSE.txt → main.2486c3e3.js.LICENSE.txt} +0 -0
@@ -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';
@@ -88,44 +64,19 @@ import { RefrigeratorAlarm } from '@matter/main/clusters/refrigerator-alarm';
88
64
  import { RefrigeratorAndTemperatureControlledCabinetMode } from '@matter/main/clusters/refrigerator-and-temperature-controlled-cabinet-mode';
89
65
  import { ServiceArea } from '@matter/main/clusters/service-area';
90
66
  import { TemperatureControl } from '@matter/main/clusters/temperature-control';
67
+ import { OtaSoftwareUpdateRequestor } from '@matter/main/clusters/ota-software-update-requestor';
68
+ import { OtaSoftwareUpdateProvider } from '@matter/main/clusters';
91
69
  export var DeviceClasses;
92
70
  (function (DeviceClasses) {
93
- /** Node device type. */
94
71
  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
72
  DeviceClasses["App"] = "App";
100
- /**
101
- * Utility device type.
102
- * A Utility device type supports configuration and settings.
103
- */
104
73
  DeviceClasses["Utility"] = "Utility";
105
- /**
106
- * Simple device type.
107
- * A Simple device type supports local control that is persistent, independent, and unsupervised.
108
- */
109
74
  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
75
  DeviceClasses["Dynamic"] = "Dynamic";
117
- /** There exists a client application cluster on the endpoint. */
118
76
  DeviceClasses["Client"] = "Client";
119
- /** There exists a server application cluster on the endpoint. */
120
77
  DeviceClasses["Server"] = "Server";
121
- /** The device type is composed of 2 or more device types. */
122
78
  DeviceClasses["Composed"] = "Composed";
123
- /** The endpoint and at least one of its sibling endpoints have an overlap in application device type(s). */
124
79
  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
80
  DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
130
81
  })(DeviceClasses || (DeviceClasses = {}));
131
82
  export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
@@ -138,7 +89,6 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
138
89
  requiredClientClusters,
139
90
  optionalClientClusters,
140
91
  });
141
- // Utility device types
142
92
  export const powerSource = DeviceTypeDefinition({
143
93
  name: 'MA-powerSource',
144
94
  code: 0x0011,
@@ -147,22 +97,26 @@ export const powerSource = DeviceTypeDefinition({
147
97
  requiredServerClusters: [PowerSource.Cluster.id],
148
98
  optionalServerClusters: [],
149
99
  });
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
- */
100
+ export const OTARequestor = DeviceTypeDefinition({
101
+ name: 'MA-OTARequestor',
102
+ code: 0x0012,
103
+ deviceClass: DeviceClasses.Utility,
104
+ revision: 1,
105
+ requiredServerClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
106
+ optionalServerClusters: [],
107
+ requiredClientClusters: [OtaSoftwareUpdateProvider.Cluster.id],
108
+ optionalClientClusters: [],
109
+ });
110
+ export const OTAProvider = DeviceTypeDefinition({
111
+ name: 'MA-OTAProvider',
112
+ code: 0x0014,
113
+ deviceClass: DeviceClasses.Utility,
114
+ revision: 1,
115
+ requiredServerClusters: [OtaSoftwareUpdateProvider.Cluster.id],
116
+ optionalServerClusters: [],
117
+ requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
118
+ optionalClientClusters: [],
119
+ });
166
120
  export const bridgedNode = DeviceTypeDefinition({
167
121
  name: 'MA-bridgedNode',
168
122
  code: 0x0013,
@@ -187,194 +141,77 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
187
141
  requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
188
142
  optionalServerClusters: [],
189
143
  });
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
144
  export const onOffLight = DeviceTypeDefinition({
203
145
  name: 'MA-onofflight',
204
146
  code: 0x0100,
205
147
  deviceClass: DeviceClasses.Simple,
206
148
  revision: 3,
207
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
149
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
208
150
  optionalServerClusters: [LevelControl.Cluster.id],
209
151
  });
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
152
  export const dimmableLight = DeviceTypeDefinition({
222
153
  name: 'MA-dimmablelight',
223
154
  code: 0x0101,
224
155
  deviceClass: DeviceClasses.Simple,
225
156
  revision: 3,
226
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
157
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
227
158
  optionalServerClusters: [],
228
159
  });
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
160
  export const colorTemperatureLight = DeviceTypeDefinition({
243
161
  name: 'MA-colortemperaturelight',
244
162
  code: 0x010c,
245
163
  deviceClass: DeviceClasses.Simple,
246
164
  revision: 4,
247
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
165
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
248
166
  optionalServerClusters: [],
249
167
  });
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
168
  export const extendedColorLight = DeviceTypeDefinition({
265
169
  name: 'MA-extendedcolorlight',
266
170
  code: 0x010d,
267
171
  deviceClass: DeviceClasses.Simple,
268
172
  revision: 4,
269
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
173
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
270
174
  optionalServerClusters: [],
271
175
  });
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
176
  export const onOffOutlet = DeviceTypeDefinition({
285
177
  name: 'MA-onoffpluginunit',
286
178
  code: 0x010a,
287
179
  deviceClass: DeviceClasses.Simple,
288
180
  revision: 3,
289
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
181
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
290
182
  optionalServerClusters: [LevelControl.Cluster.id],
291
183
  });
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
184
  export const dimmableOutlet = DeviceTypeDefinition({
304
185
  name: 'MA-dimmablepluginunit',
305
186
  code: 0x010b,
306
187
  deviceClass: DeviceClasses.Simple,
307
188
  revision: 4,
308
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
189
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
309
190
  optionalServerClusters: [],
310
191
  });
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
192
  export const onOffMountedSwitch = DeviceTypeDefinition({
326
193
  name: 'MA-onoffmountedswitch',
327
194
  code: 0x010f,
328
195
  deviceClass: DeviceClasses.Simple,
329
196
  revision: 1,
330
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
197
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
331
198
  optionalServerClusters: [LevelControl.Cluster.id],
332
199
  });
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
200
  export const dimmableMountedSwitch = DeviceTypeDefinition({
350
201
  name: 'MA-dimmablemountedswitch',
351
202
  code: 0x0110,
352
203
  deviceClass: DeviceClasses.Simple,
353
204
  revision: 1,
354
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
205
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
355
206
  optionalServerClusters: [],
356
207
  });
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
208
  export const pumpDevice = DeviceTypeDefinition({
372
209
  name: 'MA-pump',
373
210
  code: 0x303,
374
211
  deviceClass: DeviceClasses.Simple,
375
212
  revision: 3,
376
213
  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],
214
+ optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
378
215
  });
379
216
  export const waterValve = DeviceTypeDefinition({
380
217
  name: 'MA-waterValve',
@@ -384,33 +221,29 @@ export const waterValve = DeviceTypeDefinition({
384
221
  requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
385
222
  optionalServerClusters: [FlowMeasurement.Cluster.id],
386
223
  });
387
- // Switches and Controls device types
388
- // Custom device types without client clusters (not working in Alexa)
389
224
  export const onOffSwitch = DeviceTypeDefinition({
390
225
  name: 'MA-onoffswitch',
391
226
  code: 0x0103,
392
227
  deviceClass: DeviceClasses.Simple,
393
228
  revision: 3,
394
229
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
395
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
230
+ optionalServerClusters: [Groups.Cluster.id],
396
231
  });
397
- // Custom device types without client clusters (not working in Alexa)
398
232
  export const dimmableSwitch = DeviceTypeDefinition({
399
233
  name: 'MA-dimmableswitch',
400
234
  code: 0x0104,
401
235
  deviceClass: DeviceClasses.Simple,
402
236
  revision: 3,
403
237
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
404
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
238
+ optionalServerClusters: [Groups.Cluster.id],
405
239
  });
406
- // Custom device types without client clusters (not working in Alexa)
407
240
  export const colorTemperatureSwitch = DeviceTypeDefinition({
408
241
  name: 'MA-colortemperatureswitch',
409
242
  code: 0x0105,
410
243
  deviceClass: DeviceClasses.Simple,
411
244
  revision: 3,
412
245
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
413
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
246
+ optionalServerClusters: [Groups.Cluster.id],
414
247
  });
415
248
  export const genericSwitch = DeviceTypeDefinition({
416
249
  name: 'MA-genericswitch',
@@ -420,11 +253,6 @@ export const genericSwitch = DeviceTypeDefinition({
420
253
  requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
421
254
  optionalServerClusters: [],
422
255
  });
423
- // Sensor device types
424
- /**
425
- * Closed or contact: state true
426
- * Open or no contact: state false
427
- */
428
256
  export const contactSensor = DeviceTypeDefinition({
429
257
  name: 'MA-contactsensor',
430
258
  code: 0x0015,
@@ -476,7 +304,6 @@ export const humiditySensor = DeviceTypeDefinition({
476
304
  revision: 2,
477
305
  requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
478
306
  });
479
- // Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
480
307
  export const smokeCoAlarm = DeviceTypeDefinition({
481
308
  name: 'MA-smokeCoAlarm',
482
309
  code: 0x0076,
@@ -530,15 +357,6 @@ export const rainSensor = DeviceTypeDefinition({
530
357
  requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
531
358
  optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
532
359
  });
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
360
  export const doorLockDevice = DeviceTypeDefinition({
543
361
  name: 'MA-doorLock',
544
362
  code: 0xa,
@@ -555,15 +373,6 @@ export const coverDevice = DeviceTypeDefinition({
555
373
  requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
556
374
  optionalServerClusters: [Groups.Cluster.id],
557
375
  });
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
376
  export const thermostatDevice = DeviceTypeDefinition({
568
377
  name: 'MA-thermostat',
569
378
  code: 0x301,
@@ -572,25 +381,6 @@ export const thermostatDevice = DeviceTypeDefinition({
572
381
  requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
573
382
  optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
574
383
  });
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
384
  export const fanDevice = DeviceTypeDefinition({
595
385
  name: 'MA-fan',
596
386
  code: 0x2b,
@@ -599,35 +389,6 @@ export const fanDevice = DeviceTypeDefinition({
599
389
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
600
390
  optionalServerClusters: [OnOff.Cluster.id],
601
391
  });
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
392
  export const airPurifier = DeviceTypeDefinition({
632
393
  name: 'MA-airPurifier',
633
394
  code: 0x2d,
@@ -636,7 +397,6 @@ export const airPurifier = DeviceTypeDefinition({
636
397
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
637
398
  optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
638
399
  });
639
- // Generic device types
640
400
  export const modeSelect = DeviceTypeDefinition({
641
401
  name: 'MA-modeselect',
642
402
  code: 0x27,
@@ -644,37 +404,6 @@ export const modeSelect = DeviceTypeDefinition({
644
404
  revision: 1,
645
405
  requiredServerClusters: [ModeSelect.Cluster.id],
646
406
  });
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
407
  export const aggregator = DeviceTypeDefinition({
679
408
  name: 'MA-aggregator',
680
409
  code: 0x000e,
@@ -684,29 +413,6 @@ export const aggregator = DeviceTypeDefinition({
684
413
  optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
685
414
  });
686
415
  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
416
  export const roboticVacuumCleaner = DeviceTypeDefinition({
711
417
  name: 'MA-roboticvacuumcleaner',
712
418
  code: 0x74,
@@ -715,11 +421,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
715
421
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
716
422
  optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
717
423
  });
718
- // Appliances device types
719
- /**
720
- * Cluster Restrictions:
721
- * On/Off Cluster: the DF (Dead Front) feature is required
722
- */
723
424
  export const laundryWasher = DeviceTypeDefinition({
724
425
  name: 'MA-laundrywasher',
725
426
  code: 0x73,
@@ -728,13 +429,6 @@ export const laundryWasher = DeviceTypeDefinition({
728
429
  requiredServerClusters: [OperationalState.Cluster.id],
729
430
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
730
431
  });
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
432
  export const refrigerator = DeviceTypeDefinition({
739
433
  name: 'MA-refrigerator',
740
434
  code: 0x70,
@@ -743,23 +437,6 @@ export const refrigerator = DeviceTypeDefinition({
743
437
  requiredServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
744
438
  optionalServerClusters: [],
745
439
  });
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
440
  export const airConditioner = DeviceTypeDefinition({
764
441
  name: 'MA-airConditioner',
765
442
  code: 0x72,
@@ -768,22 +445,12 @@ export const airConditioner = DeviceTypeDefinition({
768
445
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
769
446
  optionalServerClusters: [
770
447
  Groups.Cluster.id,
771
- /* ScenesManagement.Cluster.id,*/
772
448
  FanControl.Cluster.id,
773
449
  ThermostatUserInterfaceConfiguration.Cluster.id,
774
450
  TemperatureMeasurement.Cluster.id,
775
451
  RelativeHumidityMeasurement.Cluster.id,
776
452
  ],
777
453
  });
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
454
  export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
788
455
  name: 'MA-temperaturecontrolledcabinetcooler',
789
456
  code: 0x71,
@@ -792,15 +459,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
792
459
  requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
793
460
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
794
461
  });
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
462
  export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
805
463
  name: 'MA-temperaturecontrolledcabinetheater',
806
464
  code: 0x71,
@@ -809,10 +467,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
809
467
  requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
810
468
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
811
469
  });
812
- /**
813
- * Cluster Restrictions:
814
- * On/Off Cluster: the DF (Dead Front) feature is required
815
- */
816
470
  export const dishwasher = DeviceTypeDefinition({
817
471
  name: 'MA-dishwasher',
818
472
  code: 0x75,
@@ -821,10 +475,6 @@ export const dishwasher = DeviceTypeDefinition({
821
475
  requiredServerClusters: [OperationalState.Cluster.id],
822
476
  optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
823
477
  });
824
- /**
825
- * Cluster Restrictions:
826
- * On/Off Cluster: the DF (Dead Front) feature is required
827
- */
828
478
  export const laundryDryer = DeviceTypeDefinition({
829
479
  name: 'MA-laundrydryer',
830
480
  code: 0x7c,
@@ -833,13 +483,6 @@ export const laundryDryer = DeviceTypeDefinition({
833
483
  requiredServerClusters: [OperationalState.Cluster.id],
834
484
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
835
485
  });
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
486
  export const cookSurface = DeviceTypeDefinition({
844
487
  name: 'MA-cooksurface',
845
488
  code: 0x77,
@@ -848,18 +491,6 @@ export const cookSurface = DeviceTypeDefinition({
848
491
  requiredServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id],
849
492
  optionalServerClusters: [OnOff.Cluster.id],
850
493
  });
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
494
  export const cooktop = DeviceTypeDefinition({
864
495
  name: 'MA-cooktop',
865
496
  code: 0x78,
@@ -868,15 +499,6 @@ export const cooktop = DeviceTypeDefinition({
868
499
  requiredServerClusters: [OnOff.Cluster.id],
869
500
  optionalServerClusters: [Identify.Cluster.id],
870
501
  });
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
502
  export const oven = DeviceTypeDefinition({
881
503
  name: 'MA-oven',
882
504
  code: 0x7b,
@@ -885,18 +507,6 @@ export const oven = DeviceTypeDefinition({
885
507
  requiredServerClusters: [Identify.Cluster.id],
886
508
  optionalServerClusters: [],
887
509
  });
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
510
  export const extractorHood = DeviceTypeDefinition({
901
511
  name: 'MA-extractorhood',
902
512
  code: 0x7a,
@@ -905,12 +515,6 @@ export const extractorHood = DeviceTypeDefinition({
905
515
  requiredServerClusters: [FanControl.Cluster.id],
906
516
  optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
907
517
  });
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
518
  export const microwaveOven = DeviceTypeDefinition({
915
519
  name: 'MA-microwaveoven',
916
520
  code: 0x79,
@@ -919,4 +523,3 @@ export const microwaveOven = DeviceTypeDefinition({
919
523
  requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
920
524
  optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
921
525
  });
922
- //# sourceMappingURL=matterbridgeDeviceTypes.js.map