matterbridge 3.2.5 → 3.2.6-dev-20250903-2acb918

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 (267) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cli.js +2 -91
  3. package/dist/cliEmitter.js +0 -30
  4. package/dist/clusters/export.js +0 -2
  5. package/dist/defaultConfigSchema.js +0 -24
  6. package/dist/deviceManager.js +1 -94
  7. package/dist/devices/batteryStorage.js +1 -48
  8. package/dist/devices/cooktop.js +0 -55
  9. package/dist/devices/dishwasher.js +0 -57
  10. package/dist/devices/evse.js +10 -74
  11. package/dist/devices/export.js +0 -4
  12. package/dist/devices/extractorHood.js +0 -42
  13. package/dist/devices/heatPump.js +2 -50
  14. package/dist/devices/laundryDryer.js +3 -62
  15. package/dist/devices/laundryWasher.js +4 -70
  16. package/dist/devices/microwaveOven.js +5 -88
  17. package/dist/devices/oven.js +0 -85
  18. package/dist/devices/refrigerator.js +0 -102
  19. package/dist/devices/roboticVacuumCleaner.js +10 -96
  20. package/dist/devices/solarPower.js +0 -38
  21. package/dist/devices/temperatureControl.js +3 -25
  22. package/dist/devices/waterHeater.js +2 -82
  23. package/dist/dgram/coap.js +13 -126
  24. package/dist/dgram/dgram.js +2 -113
  25. package/dist/dgram/mb_coap.js +3 -41
  26. package/dist/dgram/mb_mdns.js +13 -51
  27. package/dist/dgram/mdns.js +137 -298
  28. package/dist/dgram/multicast.js +1 -60
  29. package/dist/dgram/unicast.js +0 -54
  30. package/dist/frontend.js +24 -451
  31. package/dist/globalMatterbridge.js +0 -47
  32. package/dist/helpers.js +0 -53
  33. package/dist/index.js +1 -30
  34. package/dist/logger/export.js +0 -1
  35. package/dist/matter/behaviors.js +0 -2
  36. package/dist/matter/clusters.js +0 -2
  37. package/dist/matter/devices.js +0 -2
  38. package/dist/matter/endpoints.js +0 -2
  39. package/dist/matter/export.js +0 -3
  40. package/dist/matter/types.js +0 -3
  41. package/dist/matterbridge.js +50 -789
  42. package/dist/matterbridgeAccessoryPlatform.js +0 -36
  43. package/dist/matterbridgeBehaviors.js +5 -65
  44. package/dist/matterbridgeDeviceTypes.js +17 -581
  45. package/dist/matterbridgeDynamicPlatform.js +0 -36
  46. package/dist/matterbridgeEndpoint.js +54 -1223
  47. package/dist/matterbridgeEndpointHelpers.js +12 -345
  48. package/dist/matterbridgePlatform.js +0 -256
  49. package/dist/matterbridgeTypes.js +0 -25
  50. package/dist/pluginManager.js +3 -249
  51. package/dist/shelly.js +7 -168
  52. package/dist/storage/export.js +0 -1
  53. package/dist/update.js +0 -69
  54. package/dist/utils/colorUtils.js +2 -97
  55. package/dist/utils/commandLine.js +0 -54
  56. package/dist/utils/copyDirectory.js +1 -38
  57. package/dist/utils/createDirectory.js +0 -33
  58. package/dist/utils/createZip.js +2 -47
  59. package/dist/utils/deepCopy.js +0 -39
  60. package/dist/utils/deepEqual.js +1 -72
  61. package/dist/utils/error.js +0 -41
  62. package/dist/utils/export.js +0 -1
  63. package/dist/utils/hex.js +0 -124
  64. package/dist/utils/isvalid.js +0 -101
  65. package/dist/utils/network.js +5 -91
  66. package/dist/utils/spawn.js +0 -40
  67. package/dist/utils/wait.js +8 -60
  68. package/npm-shrinkwrap.json +2 -2
  69. package/package.json +1 -2
  70. package/dist/cli.d.ts +0 -26
  71. package/dist/cli.d.ts.map +0 -1
  72. package/dist/cli.js.map +0 -1
  73. package/dist/cliEmitter.d.ts +0 -34
  74. package/dist/cliEmitter.d.ts.map +0 -1
  75. package/dist/cliEmitter.js.map +0 -1
  76. package/dist/clusters/export.d.ts +0 -2
  77. package/dist/clusters/export.d.ts.map +0 -1
  78. package/dist/clusters/export.js.map +0 -1
  79. package/dist/defaultConfigSchema.d.ts +0 -28
  80. package/dist/defaultConfigSchema.d.ts.map +0 -1
  81. package/dist/defaultConfigSchema.js.map +0 -1
  82. package/dist/deviceManager.d.ts +0 -112
  83. package/dist/deviceManager.d.ts.map +0 -1
  84. package/dist/deviceManager.js.map +0 -1
  85. package/dist/devices/batteryStorage.d.ts +0 -48
  86. package/dist/devices/batteryStorage.d.ts.map +0 -1
  87. package/dist/devices/batteryStorage.js.map +0 -1
  88. package/dist/devices/cooktop.d.ts +0 -60
  89. package/dist/devices/cooktop.d.ts.map +0 -1
  90. package/dist/devices/cooktop.js.map +0 -1
  91. package/dist/devices/dishwasher.d.ts +0 -71
  92. package/dist/devices/dishwasher.d.ts.map +0 -1
  93. package/dist/devices/dishwasher.js.map +0 -1
  94. package/dist/devices/evse.d.ts +0 -75
  95. package/dist/devices/evse.d.ts.map +0 -1
  96. package/dist/devices/evse.js.map +0 -1
  97. package/dist/devices/export.d.ts +0 -15
  98. package/dist/devices/export.d.ts.map +0 -1
  99. package/dist/devices/export.js.map +0 -1
  100. package/dist/devices/extractorHood.d.ts +0 -46
  101. package/dist/devices/extractorHood.d.ts.map +0 -1
  102. package/dist/devices/extractorHood.js.map +0 -1
  103. package/dist/devices/heatPump.d.ts +0 -47
  104. package/dist/devices/heatPump.d.ts.map +0 -1
  105. package/dist/devices/heatPump.js.map +0 -1
  106. package/dist/devices/laundryDryer.d.ts +0 -67
  107. package/dist/devices/laundryDryer.d.ts.map +0 -1
  108. package/dist/devices/laundryDryer.js.map +0 -1
  109. package/dist/devices/laundryWasher.d.ts +0 -81
  110. package/dist/devices/laundryWasher.d.ts.map +0 -1
  111. package/dist/devices/laundryWasher.js.map +0 -1
  112. package/dist/devices/microwaveOven.d.ts +0 -168
  113. package/dist/devices/microwaveOven.d.ts.map +0 -1
  114. package/dist/devices/microwaveOven.js.map +0 -1
  115. package/dist/devices/oven.d.ts +0 -105
  116. package/dist/devices/oven.d.ts.map +0 -1
  117. package/dist/devices/oven.js.map +0 -1
  118. package/dist/devices/refrigerator.d.ts +0 -118
  119. package/dist/devices/refrigerator.d.ts.map +0 -1
  120. package/dist/devices/refrigerator.js.map +0 -1
  121. package/dist/devices/roboticVacuumCleaner.d.ts +0 -112
  122. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  123. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  124. package/dist/devices/solarPower.d.ts +0 -40
  125. package/dist/devices/solarPower.d.ts.map +0 -1
  126. package/dist/devices/solarPower.js.map +0 -1
  127. package/dist/devices/temperatureControl.d.ts +0 -166
  128. package/dist/devices/temperatureControl.d.ts.map +0 -1
  129. package/dist/devices/temperatureControl.js.map +0 -1
  130. package/dist/devices/waterHeater.d.ts +0 -111
  131. package/dist/devices/waterHeater.d.ts.map +0 -1
  132. package/dist/devices/waterHeater.js.map +0 -1
  133. package/dist/dgram/coap.d.ts +0 -205
  134. package/dist/dgram/coap.d.ts.map +0 -1
  135. package/dist/dgram/coap.js.map +0 -1
  136. package/dist/dgram/dgram.d.ts +0 -140
  137. package/dist/dgram/dgram.d.ts.map +0 -1
  138. package/dist/dgram/dgram.js.map +0 -1
  139. package/dist/dgram/mb_coap.d.ts +0 -24
  140. package/dist/dgram/mb_coap.d.ts.map +0 -1
  141. package/dist/dgram/mb_coap.js.map +0 -1
  142. package/dist/dgram/mb_mdns.d.ts +0 -24
  143. package/dist/dgram/mb_mdns.d.ts.map +0 -1
  144. package/dist/dgram/mb_mdns.js.map +0 -1
  145. package/dist/dgram/mdns.d.ts +0 -288
  146. package/dist/dgram/mdns.d.ts.map +0 -1
  147. package/dist/dgram/mdns.js.map +0 -1
  148. package/dist/dgram/multicast.d.ts +0 -65
  149. package/dist/dgram/multicast.d.ts.map +0 -1
  150. package/dist/dgram/multicast.js.map +0 -1
  151. package/dist/dgram/unicast.d.ts +0 -56
  152. package/dist/dgram/unicast.d.ts.map +0 -1
  153. package/dist/dgram/unicast.js.map +0 -1
  154. package/dist/frontend.d.ts +0 -313
  155. package/dist/frontend.d.ts.map +0 -1
  156. package/dist/frontend.js.map +0 -1
  157. package/dist/globalMatterbridge.d.ts +0 -59
  158. package/dist/globalMatterbridge.d.ts.map +0 -1
  159. package/dist/globalMatterbridge.js.map +0 -1
  160. package/dist/helpers.d.ts +0 -48
  161. package/dist/helpers.d.ts.map +0 -1
  162. package/dist/helpers.js.map +0 -1
  163. package/dist/index.d.ts +0 -33
  164. package/dist/index.d.ts.map +0 -1
  165. package/dist/index.js.map +0 -1
  166. package/dist/logger/export.d.ts +0 -2
  167. package/dist/logger/export.d.ts.map +0 -1
  168. package/dist/logger/export.js.map +0 -1
  169. package/dist/matter/behaviors.d.ts +0 -2
  170. package/dist/matter/behaviors.d.ts.map +0 -1
  171. package/dist/matter/behaviors.js.map +0 -1
  172. package/dist/matter/clusters.d.ts +0 -2
  173. package/dist/matter/clusters.d.ts.map +0 -1
  174. package/dist/matter/clusters.js.map +0 -1
  175. package/dist/matter/devices.d.ts +0 -2
  176. package/dist/matter/devices.d.ts.map +0 -1
  177. package/dist/matter/devices.js.map +0 -1
  178. package/dist/matter/endpoints.d.ts +0 -2
  179. package/dist/matter/endpoints.d.ts.map +0 -1
  180. package/dist/matter/endpoints.js.map +0 -1
  181. package/dist/matter/export.d.ts +0 -5
  182. package/dist/matter/export.d.ts.map +0 -1
  183. package/dist/matter/export.js.map +0 -1
  184. package/dist/matter/types.d.ts +0 -3
  185. package/dist/matter/types.d.ts.map +0 -1
  186. package/dist/matter/types.js.map +0 -1
  187. package/dist/matterbridge.d.ts +0 -462
  188. package/dist/matterbridge.d.ts.map +0 -1
  189. package/dist/matterbridge.js.map +0 -1
  190. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
  191. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  192. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  193. package/dist/matterbridgeBehaviors.d.ts +0 -1351
  194. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  195. package/dist/matterbridgeBehaviors.js.map +0 -1
  196. package/dist/matterbridgeDeviceTypes.d.ts +0 -710
  197. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  198. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  199. package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
  200. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  201. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  202. package/dist/matterbridgeEndpoint.d.ts +0 -1359
  203. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  204. package/dist/matterbridgeEndpoint.js.map +0 -1
  205. package/dist/matterbridgeEndpointHelpers.d.ts +0 -407
  206. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  207. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  208. package/dist/matterbridgePlatform.d.ts +0 -331
  209. package/dist/matterbridgePlatform.d.ts.map +0 -1
  210. package/dist/matterbridgePlatform.js.map +0 -1
  211. package/dist/matterbridgeTypes.d.ts +0 -198
  212. package/dist/matterbridgeTypes.d.ts.map +0 -1
  213. package/dist/matterbridgeTypes.js.map +0 -1
  214. package/dist/pluginManager.d.ts +0 -270
  215. package/dist/pluginManager.d.ts.map +0 -1
  216. package/dist/pluginManager.js.map +0 -1
  217. package/dist/shelly.d.ts +0 -174
  218. package/dist/shelly.d.ts.map +0 -1
  219. package/dist/shelly.js.map +0 -1
  220. package/dist/storage/export.d.ts +0 -2
  221. package/dist/storage/export.d.ts.map +0 -1
  222. package/dist/storage/export.js.map +0 -1
  223. package/dist/update.d.ts +0 -75
  224. package/dist/update.d.ts.map +0 -1
  225. package/dist/update.js.map +0 -1
  226. package/dist/utils/colorUtils.d.ts +0 -99
  227. package/dist/utils/colorUtils.d.ts.map +0 -1
  228. package/dist/utils/colorUtils.js.map +0 -1
  229. package/dist/utils/commandLine.d.ts +0 -59
  230. package/dist/utils/commandLine.d.ts.map +0 -1
  231. package/dist/utils/commandLine.js.map +0 -1
  232. package/dist/utils/copyDirectory.d.ts +0 -33
  233. package/dist/utils/copyDirectory.d.ts.map +0 -1
  234. package/dist/utils/copyDirectory.js.map +0 -1
  235. package/dist/utils/createDirectory.d.ts +0 -34
  236. package/dist/utils/createDirectory.d.ts.map +0 -1
  237. package/dist/utils/createDirectory.js.map +0 -1
  238. package/dist/utils/createZip.d.ts +0 -39
  239. package/dist/utils/createZip.d.ts.map +0 -1
  240. package/dist/utils/createZip.js.map +0 -1
  241. package/dist/utils/deepCopy.d.ts +0 -32
  242. package/dist/utils/deepCopy.d.ts.map +0 -1
  243. package/dist/utils/deepCopy.js.map +0 -1
  244. package/dist/utils/deepEqual.d.ts +0 -54
  245. package/dist/utils/deepEqual.d.ts.map +0 -1
  246. package/dist/utils/deepEqual.js.map +0 -1
  247. package/dist/utils/error.d.ts +0 -44
  248. package/dist/utils/error.d.ts.map +0 -1
  249. package/dist/utils/error.js.map +0 -1
  250. package/dist/utils/export.d.ts +0 -12
  251. package/dist/utils/export.d.ts.map +0 -1
  252. package/dist/utils/export.js.map +0 -1
  253. package/dist/utils/hex.d.ts +0 -89
  254. package/dist/utils/hex.d.ts.map +0 -1
  255. package/dist/utils/hex.js.map +0 -1
  256. package/dist/utils/isvalid.d.ts +0 -103
  257. package/dist/utils/isvalid.d.ts.map +0 -1
  258. package/dist/utils/isvalid.js.map +0 -1
  259. package/dist/utils/network.d.ts +0 -84
  260. package/dist/utils/network.d.ts.map +0 -1
  261. package/dist/utils/network.js.map +0 -1
  262. package/dist/utils/spawn.d.ts +0 -33
  263. package/dist/utils/spawn.d.ts.map +0 -1
  264. package/dist/utils/spawn.js.map +0 -1
  265. package/dist/utils/wait.d.ts +0 -54
  266. package/dist/utils/wait.d.ts.map +0 -1
  267. package/dist/utils/wait.js.map +0 -1
@@ -1,29 +1,4 @@
1
- /**
2
- * This file contains the class MatterbridgeDevice.
3
- *
4
- * @file matterbridgeDeviceTypes.ts
5
- * @author Luca Liguori
6
- * @created 2024-11-08
7
- * @version 1.0.0
8
- * @license Apache-2.0
9
- *
10
- * Copyright 2024, 2025, 2026 Luca Liguori.
11
- *
12
- * Licensed under the Apache License, Version 2.0 (the "License");
13
- * you may not use this file except in compliance with the License.
14
- * You may obtain a copy of the License at
15
- *
16
- * http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * Unless required by applicable law or agreed to in writing, software
19
- * distributed under the License is distributed on an "AS IS" BASIS,
20
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- * See the License for the specific language governing permissions and
22
- * limitations under the License.
23
- */
24
- // @matter
25
1
  import { DeviceTypeId } from '@matter/main';
26
- // @matter clusters
27
2
  import { BooleanState } from '@matter/main/clusters/boolean-state';
28
3
  import { BooleanStateConfiguration } from '@matter/main/clusters/boolean-state-configuration';
29
4
  import { BridgedDeviceBasicInformation } from '@matter/main/clusters/bridged-device-basic-information';
@@ -93,42 +68,15 @@ import { OtaSoftwareUpdateRequestor } from '@matter/main/clusters/ota-software-u
93
68
  import { EnergyEvse, EnergyEvseMode, OtaSoftwareUpdateProvider, WaterHeaterManagement, WaterHeaterMode } from '@matter/main/clusters';
94
69
  export var DeviceClasses;
95
70
  (function (DeviceClasses) {
96
- /** Node device type. */
97
71
  DeviceClasses["Node"] = "Node";
98
- /**
99
- * Application device type.
100
- * Application devices types are typically the most datatype endpoints on a node and in the network.
101
- */
102
72
  DeviceClasses["App"] = "App";
103
- /**
104
- * Utility device type.
105
- * A Utility device type supports configuration and settings.
106
- */
107
73
  DeviceClasses["Utility"] = "Utility";
108
- /**
109
- * Simple device type.
110
- * A Simple device type supports local control that is persistent, independent, and unsupervised.
111
- */
112
74
  DeviceClasses["Simple"] = "Simple";
113
- /**
114
- * Dynamic device type.
115
- * A Dynamic device type supports intelligent and supervisory services, such as commissioning,
116
- * monitoring, trend analysis, scheduling and central management. A dynamic device type is an
117
- * application device type.
118
- */
119
75
  DeviceClasses["Dynamic"] = "Dynamic";
120
- /** There exists a client application cluster on the endpoint. */
121
76
  DeviceClasses["Client"] = "Client";
122
- /** There exists a server application cluster on the endpoint. */
123
77
  DeviceClasses["Server"] = "Server";
124
- /** The device type is composed of 2 or more device types. */
125
78
  DeviceClasses["Composed"] = "Composed";
126
- /** The endpoint and at least one of its sibling endpoints have an overlap in application device type(s). */
127
79
  DeviceClasses["Duplicate"] = "Duplicate";
128
- /**
129
- * The endpoint represents a Bridged Device, for which information about the state of
130
- * its power source is available to the Bridge
131
- */
132
80
  DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
133
81
  })(DeviceClasses || (DeviceClasses = {}));
134
82
  export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
@@ -141,14 +89,13 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
141
89
  requiredClientClusters,
142
90
  optionalClientClusters,
143
91
  });
144
- // Chapter 2. Utility device types
145
92
  export const rootNode = DeviceTypeDefinition({
146
93
  name: 'MA-rootNode',
147
94
  code: 0x0016,
148
95
  deviceClass: DeviceClasses.Node,
149
96
  revision: 3,
150
- requiredServerClusters: [], // Intentionally left empty
151
- optionalServerClusters: [], // Intentionally left empty
97
+ requiredServerClusters: [],
98
+ optionalServerClusters: [],
152
99
  });
153
100
  export const powerSource = DeviceTypeDefinition({
154
101
  name: 'MA-powerSource',
@@ -178,27 +125,6 @@ export const OTAProvider = DeviceTypeDefinition({
178
125
  requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
179
126
  optionalClientClusters: [],
180
127
  });
181
- /**
182
- 2.5.3. Conditions
183
- Please see the Base Device Type definition for conformance tags.
184
- This device type SHALL only be used for Nodes which have a device type of Bridge.
185
-
186
- 2.5.5. Cluster Requirements
187
- Each endpoint supporting this device type SHALL include these clusters based on the conformance
188
- defined below.
189
- - 0x0039 Bridged Device Basic Information Server
190
-
191
- 2.5.6. Endpoint Composition
192
- • A Bridged Node endpoint SHALL support one of the following composition patterns:
193
- ◦ Separate Endpoints: All application device types are supported on separate endpoints, and
194
- not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
195
- attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
196
- device, including the endpoints supporting the application device types, i.e. the full-family
197
- pattern defined in the System Model specification.
198
- ◦ One Endpoint: Both the Bridged Node and one or more application device types are sup
199
- ported on the same endpoint (following application device type rules). Endpoint composi
200
- tion SHALL conform to the application device type(s) definition
201
- */
202
128
  export const bridgedNode = DeviceTypeDefinition({
203
129
  name: 'MA-bridgedNode',
204
130
  code: 0x0013,
@@ -207,17 +133,6 @@ export const bridgedNode = DeviceTypeDefinition({
207
133
  requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
208
134
  optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
209
135
  });
210
- /**
211
- * An Electrical Sensor device measures the electrical power and/or energy being imported and/or
212
- * exported.
213
- * It is a utility device type that provides information about the electrical power and/or energy
214
- * consumption and generation.
215
- *
216
- * 2.6.3. Device Type Requirements
217
- * Electrical measurements made by either the Electrical Power Measurement cluster, the Electrical
218
- * Energy Measurement cluster, or both SHALL apply to the endpoints indicated by the Power Topology
219
- * cluster.
220
- */
221
136
  export const electricalSensor = DeviceTypeDefinition({
222
137
  name: 'MA-electricalSensor',
223
138
  code: 0x0510,
@@ -226,10 +141,6 @@ export const electricalSensor = DeviceTypeDefinition({
226
141
  requiredServerClusters: [PowerTopology.Cluster.id],
227
142
  optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
228
143
  });
229
- /**
230
- * A Device Energy Management device provides reporting and optionally adjustment of the electrical
231
- * power planned on being consumed or produced by the device.
232
- */
233
144
  export const deviceEnergyManagement = DeviceTypeDefinition({
234
145
  name: 'MA-deviceEnergyManagement',
235
146
  code: 0x050d,
@@ -238,194 +149,77 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
238
149
  requiredServerClusters: [DeviceEnergyManagement.Cluster.id],
239
150
  optionalServerClusters: [DeviceEnergyManagementMode.Cluster.id],
240
151
  });
241
- // Chapter 4. Lightning device types
242
- /**
243
- * Element Requirements:
244
- * - Identify Command TriggerEffect
245
- * - Scenes Management Command CopyScene
246
- * - On/Off Feature Lighting
247
- * - Level Control Feature OnOff
248
- * - Level Control Feature Lighting
249
- * - Level Control Attribute CurrentLevel 1 to 254
250
- * - Level Control Attribute MinLevel 1
251
- * - Level Control Attribute MaxLevel 254
252
- */
253
152
  export const onOffLight = DeviceTypeDefinition({
254
153
  name: 'MA-onofflight',
255
154
  code: 0x0100,
256
155
  deviceClass: DeviceClasses.Simple,
257
156
  revision: 3,
258
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
157
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
259
158
  optionalServerClusters: [LevelControl.Cluster.id],
260
159
  });
261
- /**
262
- * Element Requirements:
263
- * - Identify Command TriggerEffect
264
- * - Scenes Management Command CopyScene
265
- * - On/Off Feature Lighting
266
- * - Level Control Feature OnOff
267
- * - Level Control Feature Lighting
268
- * - Level Control Attribute CurrentLevel 1 to 254
269
- * - Level Control Attribute MinLevel 1
270
- * - Level Control Attribute MaxLevel 254
271
- */
272
160
  export const dimmableLight = DeviceTypeDefinition({
273
161
  name: 'MA-dimmablelight',
274
162
  code: 0x0101,
275
163
  deviceClass: DeviceClasses.Simple,
276
164
  revision: 3,
277
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
165
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
278
166
  optionalServerClusters: [],
279
167
  });
280
- /**
281
- * Element Requirements:
282
- * - Identify Command TriggerEffect
283
- * - Scenes Management Command CopyScene
284
- * - On/Off Feature Lighting
285
- * - Level Control Feature OnOff
286
- * - Level Control Feature Lighting
287
- * - Level Control Attribute CurrentLevel 1 to 254
288
- * - Level Control Attribute MinLevel 1
289
- * - Level Control Attribute MaxLevel 254
290
- * - Color Control Feature ColorTemperature
291
- * - Color Control Attribute RemainingTime
292
- */
293
168
  export const colorTemperatureLight = DeviceTypeDefinition({
294
169
  name: 'MA-colortemperaturelight',
295
170
  code: 0x010c,
296
171
  deviceClass: DeviceClasses.Simple,
297
172
  revision: 4,
298
- 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],
299
174
  optionalServerClusters: [],
300
175
  });
301
- /**
302
- * Element Requirements:
303
- * - Identify Command TriggerEffect
304
- * - Scenes Management Command CopyScene
305
- * - On/Off Feature Lighting
306
- * - Level Control Feature OnOff
307
- * - Level Control Feature Lighting
308
- * - Level Control Attribute CurrentLevel 1 to 254
309
- * - Level Control Attribute MinLevel 1
310
- * - Level Control Attribute MaxLevel 254
311
- * - Color Control Feature XY
312
- * - Color Control Feature ColorTemperature
313
- * - Color Control Attribute RemainingTime
314
- */
315
176
  export const extendedColorLight = DeviceTypeDefinition({
316
177
  name: 'MA-extendedcolorlight',
317
178
  code: 0x010d,
318
179
  deviceClass: DeviceClasses.Simple,
319
180
  revision: 4,
320
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
181
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
321
182
  optionalServerClusters: [],
322
183
  });
323
- // Chapter 5. Smart plugs/Outlets and other Actuators device types
324
- /**
325
- * Element Requirements:
326
- * - Identify Command TriggerEffect
327
- * - Scenes Management Command CopyScene
328
- * - On/Off Feature Lighting
329
- * - Level Control Feature OnOff
330
- * - Level Control Feature Lighting
331
- * - Level Control Attribute CurrentLevel 1 to 254
332
- * - Level Control Attribute MinLevel 1
333
- * - Level Control Attribute MaxLevel 254
334
- */
335
184
  export const onOffOutlet = DeviceTypeDefinition({
336
185
  name: 'MA-onoffpluginunit',
337
186
  code: 0x010a,
338
187
  deviceClass: DeviceClasses.Simple,
339
188
  revision: 3,
340
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
189
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
341
190
  optionalServerClusters: [LevelControl.Cluster.id],
342
191
  });
343
- /**
344
- * Element Requirements:
345
- * - Identify Command TriggerEffect
346
- * - Scenes Management Command CopyScene
347
- * - On/Off Feature Lighting
348
- * - Level Control Feature OnOff
349
- * - Level Control Feature Lighting
350
- * - Level Control Attribute CurrentLevel 1 to 254
351
- * - Level Control Attribute MinLevel 1
352
- * - Level Control Attribute MaxLevel 254
353
- */
354
192
  export const dimmableOutlet = DeviceTypeDefinition({
355
193
  name: 'MA-dimmablepluginunit',
356
194
  code: 0x010b,
357
195
  deviceClass: DeviceClasses.Simple,
358
196
  revision: 4,
359
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
197
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
360
198
  optionalServerClusters: [],
361
199
  });
362
- /**
363
- * A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
364
- * into it, and is capable of switching that provided power on or off.
365
- * It is a simple device type that does not require any client clusters.
366
- * Element Requirements:
367
- * - Identify Command TriggerEffect
368
- * - Scenes Management Command CopyScene
369
- * - On/Off Feature Lighting
370
- * - Level Control Feature OnOff
371
- * - Level Control Feature Lighting
372
- * - Level Control Attribute CurrentLevel 1 to 254
373
- * - Level Control Attribute MinLevel 1
374
- * - Level Control Attribute MaxLevel 254
375
- */
376
200
  export const onOffMountedSwitch = DeviceTypeDefinition({
377
201
  name: 'MA-onoffmountedswitch',
378
202
  code: 0x010f,
379
203
  deviceClass: DeviceClasses.Simple,
380
204
  revision: 1,
381
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id],
205
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
382
206
  optionalServerClusters: [LevelControl.Cluster.id],
383
207
  });
384
- /**
385
- * A Mounted Dimmable Load Control is a fixed device that provides power to another device that is
386
- * plugged into it, and is capable of being switched on or off and have its level adjusted. The Mounted
387
- * Dimmable Load Control is typically used to control a conventional non-communicating light
388
- * through its mains connection using phase cutting.
389
- * It is a simple device type that does not require any client clusters.
390
- * Element Requirements:
391
- * - Identify Command TriggerEffect
392
- * - Scenes Management Command CopyScene
393
- * - On/Off Feature Lighting
394
- * - Level Control Feature OnOff
395
- * - Level Control Feature Lighting
396
- * - Level Control Attribute CurrentLevel 1 to 254
397
- * - Level Control Attribute MinLevel 1
398
- * - Level Control Attribute MaxLevel 254
399
- */
400
208
  export const dimmableMountedSwitch = DeviceTypeDefinition({
401
209
  name: 'MA-dimmablemountedswitch',
402
210
  code: 0x0110,
403
211
  deviceClass: DeviceClasses.Simple,
404
212
  revision: 1,
405
- requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id,*/ OnOff.Cluster.id, LevelControl.Cluster.id],
213
+ requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
406
214
  optionalServerClusters: [],
407
215
  });
408
- /**
409
- * Remark:
410
- * On/Off Cluster:
411
- * - Off If the pump is powered on, store the current level then immediately power it off.
412
- * - 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,
413
- * move immediately to the maximum level allowed for the pump.
414
- * - 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.
415
- *
416
- * LevelControl cluster:
417
- * Level Setpoint Meaning
418
- * 0 N/A Pump is stopped,
419
- * 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
420
- * 201–255 100.0% Pump setpoint is 100.0%
421
- */
422
216
  export const pumpDevice = DeviceTypeDefinition({
423
217
  name: 'MA-pump',
424
218
  code: 0x303,
425
219
  deviceClass: DeviceClasses.Simple,
426
220
  revision: 3,
427
221
  requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
428
- optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, /* ScenesManagement.Cluster.id, */ TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
222
+ optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
429
223
  });
430
224
  export const waterValve = DeviceTypeDefinition({
431
225
  name: 'MA-waterValve',
@@ -435,33 +229,29 @@ export const waterValve = DeviceTypeDefinition({
435
229
  requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
436
230
  optionalServerClusters: [FlowMeasurement.Cluster.id],
437
231
  });
438
- // Chapter 6. Switches and Controls device types
439
- // Custom device types without client clusters (not working in Alexa)
440
232
  export const onOffSwitch = DeviceTypeDefinition({
441
233
  name: 'MA-onoffswitch',
442
234
  code: 0x0103,
443
235
  deviceClass: DeviceClasses.Simple,
444
236
  revision: 3,
445
237
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
446
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
238
+ optionalServerClusters: [Groups.Cluster.id],
447
239
  });
448
- // Custom device types without client clusters (not working in Alexa)
449
240
  export const dimmableSwitch = DeviceTypeDefinition({
450
241
  name: 'MA-dimmableswitch',
451
242
  code: 0x0104,
452
243
  deviceClass: DeviceClasses.Simple,
453
244
  revision: 3,
454
245
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
455
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
246
+ optionalServerClusters: [Groups.Cluster.id],
456
247
  });
457
- // Custom device types without client clusters (not working in Alexa)
458
248
  export const colorTemperatureSwitch = DeviceTypeDefinition({
459
249
  name: 'MA-colortemperatureswitch',
460
250
  code: 0x0105,
461
251
  deviceClass: DeviceClasses.Simple,
462
252
  revision: 3,
463
253
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
464
- optionalServerClusters: [Groups.Cluster.id /* , ScenesManagement.Cluster.id*/],
254
+ optionalServerClusters: [Groups.Cluster.id],
465
255
  });
466
256
  export const genericSwitch = DeviceTypeDefinition({
467
257
  name: 'MA-genericswitch',
@@ -471,11 +261,6 @@ export const genericSwitch = DeviceTypeDefinition({
471
261
  requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
472
262
  optionalServerClusters: [],
473
263
  });
474
- // Chapter 7. Sensor device types
475
- /**
476
- * Closed or contact: state true
477
- * Open or no contact: state false
478
- */
479
264
  export const contactSensor = DeviceTypeDefinition({
480
265
  name: 'MA-contactsensor',
481
266
  code: 0x0015,
@@ -527,7 +312,6 @@ export const humiditySensor = DeviceTypeDefinition({
527
312
  revision: 2,
528
313
  requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
529
314
  });
530
- // Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
531
315
  export const smokeCoAlarm = DeviceTypeDefinition({
532
316
  name: 'MA-smokeCoAlarm',
533
317
  code: 0x0076,
@@ -581,15 +365,6 @@ export const rainSensor = DeviceTypeDefinition({
581
365
  requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
582
366
  optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
583
367
  });
584
- // Closures device types
585
- /**
586
- * 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.
587
- * Element Requirements:
588
- *
589
- * - AccessControl Attribute Extension
590
- * - DoorLock Feature User
591
- * - DoorLock Attribute AlarmMask
592
- */
593
368
  export const doorLockDevice = DeviceTypeDefinition({
594
369
  name: 'MA-doorLock',
595
370
  code: 0xa,
@@ -606,15 +381,6 @@ export const coverDevice = DeviceTypeDefinition({
606
381
  requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
607
382
  optionalServerClusters: [Groups.Cluster.id],
608
383
  });
609
- // HVAC device types
610
- /**
611
- * A Thermostat device is capable of having either built-in or separate sensors for temperature,
612
- * humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
613
- * thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
614
- * unit (for example, an indoor air handler) or is capable of including a mechanism to control a
615
- * heating or cooling unit directly.
616
- *
617
- */
618
384
  export const thermostatDevice = DeviceTypeDefinition({
619
385
  name: 'MA-thermostat',
620
386
  code: 0x301,
@@ -623,25 +389,6 @@ export const thermostatDevice = DeviceTypeDefinition({
623
389
  requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
624
390
  optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
625
391
  });
626
- /**
627
- * A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
628
- * Remark: it may have a thermostat device type.
629
- * Additional device types MAY also be included in device compositions.
630
- * Element Requirements:
631
- * The FanControl cluster must have the FanModeSequence attribute.
632
- *
633
- * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
634
- * includes an Off setting.
635
- * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
636
- * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
637
- * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
638
- * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
639
- * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
640
- * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
641
- * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
642
- * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
643
- * SpeedSetting and PercentSetting.
644
- */
645
392
  export const fanDevice = DeviceTypeDefinition({
646
393
  name: 'MA-fan',
647
394
  code: 0x2b,
@@ -650,35 +397,6 @@ export const fanDevice = DeviceTypeDefinition({
650
397
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
651
398
  optionalServerClusters: [OnOff.Cluster.id],
652
399
  });
653
- /**
654
- * An Air Purifier is a standalone device that is designed to clean the air in a room.
655
- * It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
656
- * the condition of its filters.
657
- *
658
- * Remark:
659
- * An Air Purifier MAY expose elements of its functionality through one or more additional device
660
- * types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
661
- * requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
662
- * included in device compositions but are not considered part of the core functionality of the device.
663
- * 0x0301 Thermostat O
664
- * 0x0302 Temperature Sensor O
665
- * 0x0307 Humidity Sensor O
666
- * 0x002C Air Quality Sensor O
667
- *
668
- * Cluster Restrictions:
669
- * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
670
- * includes an Off setting.
671
- * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
672
- * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
673
- * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
674
- * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
675
- * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
676
- * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
677
- * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
678
- * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
679
- * SpeedSetting and PercentSetting.
680
- *
681
- */
682
400
  export const airPurifier = DeviceTypeDefinition({
683
401
  name: 'MA-airPurifier',
684
402
  code: 0x2d,
@@ -687,7 +405,6 @@ export const airPurifier = DeviceTypeDefinition({
687
405
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
688
406
  optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
689
407
  });
690
- // Generic device types
691
408
  export const modeSelect = DeviceTypeDefinition({
692
409
  name: 'MA-modeselect',
693
410
  code: 0x27,
@@ -695,37 +412,6 @@ export const modeSelect = DeviceTypeDefinition({
695
412
  revision: 1,
696
413
  requiredServerClusters: [ModeSelect.Cluster.id],
697
414
  });
698
- /**
699
- * This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
700
- * device type provide functionality for the collection of descendant endpoints present in the PartsList
701
- * of the endpoint’s descriptor, for example the Actions cluster.
702
- *
703
- * Endpoint Composition:
704
- * An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
705
- * aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
706
- *
707
- * Disambiguation:
708
- * If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
709
- * independent bridged devices, the endpoints SHOULD make available metadata to allow a
710
- * client to disambiguate distinct bridged devices with an overlap in application device types.
711
- *
712
- * Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
713
- * - thus reusing the naming information which the bridge already has to allow disambiguation to the
714
- * user when using a direct user interface to the bridge.
715
- *
716
- * Actions cluster (9.14 Matter specification):
717
- * If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
718
- * in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
719
- * no actions are exposed). 9.12 Matter specification
720
- *
721
- * 9.12.5. New features for Bridged Devices
722
- * Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
723
- * specific means. These updates MAY result in one or more changes to their capabilities,
724
- * such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
725
- * on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
726
- * (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
727
- * that wish to be notified of such changes SHOULD monitor changes of these attributes.
728
- */
729
415
  export const aggregator = DeviceTypeDefinition({
730
416
  name: 'MA-aggregator',
731
417
  code: 0x000e,
@@ -735,29 +421,6 @@ export const aggregator = DeviceTypeDefinition({
735
421
  optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
736
422
  });
737
423
  export const bridge = aggregator;
738
- // Robotic device types
739
- /**
740
- * A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
741
- * in a home or office environment. It is typically a mobile device that can navigate around
742
- * obstacles and can be controlled remotely.
743
- *
744
- * Cluster Usage:
745
- * The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
746
- * state of the device, and therefore it SHOULD be used for monitoring purposes.
747
- *
748
- * To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
749
- * command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
750
- *
751
- * To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
752
- * command with the NewMode field set to a mode that has the Idle mode tag associated with it.
753
- *
754
- * To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
755
- *
756
- * To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
757
- * command.
758
- *
759
- *
760
- */
761
424
  export const roboticVacuumCleaner = DeviceTypeDefinition({
762
425
  name: 'MA-roboticvacuumcleaner',
763
426
  code: 0x74,
@@ -766,11 +429,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
766
429
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
767
430
  optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
768
431
  });
769
- // Chapter 13. Appliances device types
770
- /**
771
- * Cluster Restrictions:
772
- * On/Off Cluster: the DF (Dead Front) feature is required
773
- */
774
432
  export const laundryWasher = DeviceTypeDefinition({
775
433
  name: 'MA-laundrywasher',
776
434
  code: 0x73,
@@ -779,13 +437,6 @@ export const laundryWasher = DeviceTypeDefinition({
779
437
  requiredServerClusters: [OperationalState.Cluster.id],
780
438
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
781
439
  });
782
- /**
783
- * A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
784
- * A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
785
- *
786
- * Device Type Requirements:
787
- * 0x0071 Temperature Controlled Cabinet
788
- */
789
440
  export const refrigerator = DeviceTypeDefinition({
790
441
  name: 'MA-refrigerator',
791
442
  code: 0x70,
@@ -794,23 +445,6 @@ export const refrigerator = DeviceTypeDefinition({
794
445
  requiredServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
795
446
  optionalServerClusters: [],
796
447
  });
797
- /**
798
- * A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
799
- *
800
- * A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
801
- * the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
802
- * requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
803
- * 0x0302 Temperature Sensor O
804
- * 0x0307 Humidity Sensor O
805
- *
806
- * Remark:
807
- * The DF (Dead Front) feature is required for the On/Off cluster in this device type:
808
- * - Thermostat LocalTemperature null
809
- * - Temperature Measurement MeasuredValue null
810
- * - Relative Humidity Measurement MeasuredValue null
811
- * - Fan Control SpeedSetting null
812
- * - Fan Control PercentSetting null
813
- */
814
448
  export const airConditioner = DeviceTypeDefinition({
815
449
  name: 'MA-airConditioner',
816
450
  code: 0x72,
@@ -819,22 +453,12 @@ export const airConditioner = DeviceTypeDefinition({
819
453
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
820
454
  optionalServerClusters: [
821
455
  Groups.Cluster.id,
822
- /* ScenesManagement.Cluster.id,*/
823
456
  FanControl.Cluster.id,
824
457
  ThermostatUserInterfaceConfiguration.Cluster.id,
825
458
  TemperatureMeasurement.Cluster.id,
826
459
  RelativeHumidityMeasurement.Cluster.id,
827
460
  ],
828
461
  });
829
- /**
830
- * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
831
- * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
832
- * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
833
- * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
834
- * range, or similar device.
835
- * Conditions:
836
- * Cooler The device has cooling functionality.
837
- */
838
462
  export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
839
463
  name: 'MA-temperaturecontrolledcabinetcooler',
840
464
  code: 0x71,
@@ -843,15 +467,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
843
467
  requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
844
468
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
845
469
  });
846
- /**
847
- * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
848
- * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
849
- * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
850
- * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
851
- * range, or similar device.
852
- * Conditions:
853
- * Heater The device has heating functionality.
854
- */
855
470
  export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
856
471
  name: 'MA-temperaturecontrolledcabinetheater',
857
472
  code: 0x71,
@@ -860,10 +475,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
860
475
  requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
861
476
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
862
477
  });
863
- /**
864
- * Cluster Restrictions:
865
- * On/Off Cluster: the DF (Dead Front) feature is required
866
- */
867
478
  export const dishwasher = DeviceTypeDefinition({
868
479
  name: 'MA-dishwasher',
869
480
  code: 0x75,
@@ -872,10 +483,6 @@ export const dishwasher = DeviceTypeDefinition({
872
483
  requiredServerClusters: [OperationalState.Cluster.id],
873
484
  optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
874
485
  });
875
- /**
876
- * Cluster Restrictions:
877
- * On/Off Cluster: the DF (Dead Front) feature is required
878
- */
879
486
  export const laundryDryer = DeviceTypeDefinition({
880
487
  name: 'MA-laundrydryer',
881
488
  code: 0x7c,
@@ -884,13 +491,6 @@ export const laundryDryer = DeviceTypeDefinition({
884
491
  requiredServerClusters: [OperationalState.Cluster.id],
885
492
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
886
493
  });
887
- /**
888
- * A Cook Surface device type represents a heating object on a cooktop or other similar device. It
889
- * SHALL only be used when composed as part of another device type (cooktop).
890
- *
891
- * Cluster Restrictions:
892
- * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
893
- */
894
494
  export const cookSurface = DeviceTypeDefinition({
895
495
  name: 'MA-cooksurface',
896
496
  code: 0x77,
@@ -899,18 +499,6 @@ export const cookSurface = DeviceTypeDefinition({
899
499
  requiredServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id],
900
500
  optionalServerClusters: [OnOff.Cluster.id],
901
501
  });
902
- /**
903
- * A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
904
- * field located below the glass surface directly to the magnetic induction cookware placed
905
- * above or through traditional gas or electric burners.
906
- *
907
- * Device Type Requirements:
908
- * A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
909
- * 0x0077 Cook Surface min 1 O
910
- *
911
- * Cluster Restrictions:
912
- * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
913
- */
914
502
  export const cooktop = DeviceTypeDefinition({
915
503
  name: 'MA-cooktop',
916
504
  code: 0x78,
@@ -919,15 +507,6 @@ export const cooktop = DeviceTypeDefinition({
919
507
  requiredServerClusters: [OnOff.Cluster.id],
920
508
  optionalServerClusters: [Identify.Cluster.id],
921
509
  });
922
- /**
923
- * An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
924
- * An oven is always defined via endpoint composition.
925
- * Conditions:
926
- * An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
927
- * Device Type Requirements:
928
- * - 0x0071 Temperature Controlled Cabinet min 1
929
- * - 0x0078 Cooktop
930
- */
931
510
  export const oven = DeviceTypeDefinition({
932
511
  name: 'MA-oven',
933
512
  code: 0x7b,
@@ -936,18 +515,6 @@ export const oven = DeviceTypeDefinition({
936
515
  requiredServerClusters: [Identify.Cluster.id],
937
516
  optionalServerClusters: [],
938
517
  });
939
- /**
940
- * An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
941
- * Additional device types not listed in this table MAY also be included in device compositions.
942
- * Device Type Requirements:
943
- * 0x0100+ On/Off Light+ O
944
- *
945
- *
946
- * Element Requirements:
947
- * - 0x0202 Fan Control Feature Rocking X
948
- * - 0x0202 Fan Control Feature Wind X
949
- * - 0x0202 Fan Control Feature AirflowDirection X
950
- */
951
518
  export const extractorHood = DeviceTypeDefinition({
952
519
  name: 'MA-extractorhood',
953
520
  code: 0x7a,
@@ -956,12 +523,6 @@ export const extractorHood = DeviceTypeDefinition({
956
523
  requiredServerClusters: [FanControl.Cluster.id],
957
524
  optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
958
525
  });
959
- /**
960
- * A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
961
- * A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
962
- * A Microwave Oven MAY also support additional capabilities via endpoint composition.
963
- *
964
- */
965
526
  export const microwaveOven = DeviceTypeDefinition({
966
527
  name: 'MA-microwaveoven',
967
528
  code: 0x79,
@@ -970,26 +531,6 @@ export const microwaveOven = DeviceTypeDefinition({
970
531
  requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
971
532
  optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
972
533
  });
973
- // Chapter 14. Energy Device Types
974
- /**
975
- * An EVSE (Electric Vehicle Supply Equipment) is a device that allows an EV (Electric Vehicle) to be
976
- * connected to the mains electricity supply to allow it to be charged (or discharged in case of Vehicle
977
- * to Grid / Vehicle to Home applications).
978
- *
979
- * 14.1.5. Device Type Requirements
980
- * An EVSE SHALL be composed of at least one endpoint with device types as defined by the conformance
981
- * below. There MAY be more endpoints with other device types existing in the EVSE.
982
- * - ID Name Constraint Conformance
983
- * - 0x0011 Power Source min 1 M
984
- * - 0x0510 Electrical Sensor min 1 M
985
- * - 0x050D Device Energy Management min 1 M
986
- *
987
- * The Electrical Sensor device SHALL include both the Electrical Energy Measurement and Electrical
988
- * Power Measurement clusters, measuring the total energy and power of the EVSE.
989
- *
990
- * The Device Energy Management cluster included in the Device Energy Management device SHALL
991
- * support the Power Forecast Reporting (PFR) feature.
992
- */
993
534
  export const evse = DeviceTypeDefinition({
994
535
  name: 'MA-evse',
995
536
  code: 0x050c,
@@ -998,39 +539,6 @@ export const evse = DeviceTypeDefinition({
998
539
  requiredServerClusters: [EnergyEvse.Cluster.id, EnergyEvseMode.Cluster.id],
999
540
  optionalServerClusters: [Identify.Cluster.id, TemperatureMeasurement.Cluster.id],
1000
541
  });
1001
- /**
1002
- * A water heater is a device that is generally installed in properties to heat water for showers, baths etc.
1003
- * A Water Heater is always defined via endpoint composition.
1004
- *
1005
- * 14.2.5. Device Type Requirements
1006
- * A Water Heater SHALL be composed of at least one endpoint with device types as defined by the
1007
- * conformance below. There MAY be more endpoints with other device types existing in the Water Heater.
1008
- * - ID Name Constraint Conformance
1009
- * - 0x0011 Power Source O
1010
- * - 0x0302 Temperature Sensor O
1011
- * - 0x0510 Electrical Sensor desc
1012
- * - 0x050D Device Energy Management O
1013
- *
1014
- * 14.2.7. Element Requirements
1015
- * 0x0201 Thermostat Feature Heating M
1016
- *
1017
- * The Energy Management feature of the Water Heater cluster SHALL be supported if the Device
1018
- * Energy Management device type is included.
1019
- * If Off is a supported SystemMode in the Thermostat cluster, setting the SystemMode of the Thermostat
1020
- * cluster to Off SHALL set the CurrentMode attribute of the Water Heater Mode cluster to a mode
1021
- * having the Off mode tag value and vice versa.
1022
- * At least one entry in the SupportedModes attribute of the Water Heater Mode cluster SHALL
1023
- * include the Timed mode tag in the ModeTags field list.
1024
- *
1025
- * WaterHeaterMode Cluster
1026
- * 9.6.6.1. SupportedModes Attribute
1027
- * At least one entry in the SupportedModes attribute SHALL include the Manual mode tag in the
1028
- * ModeTags field list.
1029
- * At least one entry in the SupportedModes attribute SHALL include the Off mode tag in the ModeTags
1030
- * field list.
1031
- * An entry in the SupportedModes attribute that includes one of an Off, Manual, or Timed tag SHALL
1032
- * NOT also include an additional instance of any one of these tag types.
1033
- */
1034
542
  export const waterHeater = DeviceTypeDefinition({
1035
543
  name: 'MA-waterheater',
1036
544
  code: 0x050f,
@@ -1039,99 +547,27 @@ export const waterHeater = DeviceTypeDefinition({
1039
547
  requiredServerClusters: [Thermostat.Cluster.id, WaterHeaterManagement.Cluster.id, WaterHeaterMode.Cluster.id],
1040
548
  optionalServerClusters: [Identify.Cluster.id],
1041
549
  });
1042
- /**
1043
- * A Solar Power device is a device that allows a solar panel array, which can optionally be comprised
1044
- * of a set parallel strings of solar panels, and its associated controller and, if appropriate, inverter, to
1045
- * be monitored and controlled by an Energy Management System.
1046
- *
1047
- * 14.3.5. Device Type Requirements
1048
- * A Solar Power device SHALL be composed of at least one endpoint with device types as defined by
1049
- * the conformance below. There MAY be more endpoints with additional instances of these device
1050
- * types or additional device types existing in the Solar Power device.
1051
- *
1052
- * - ID Name Constraint Conformance
1053
- * - 0x0011 Power Source min 1 M
1054
- * - 0x0510 Electrical Sensor min 1 M
1055
- * - 0x050D Device Energy Management O
1056
- * - 0x0302 Temperature Sensor O
1057
- *
1058
- * 14.3.5.1. Cluster Requirements on Composing Device Types
1059
- *
1060
- * - 0x0011 Power Source 0x002F Power Source Feature Wired M
1061
- * - 0x0011 Power Source 0x001D Descriptor Feature TagList M
1062
- * - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement M
1063
- * - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute Voltage M
1064
- * - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute ActiveCurrent M
1065
- * - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement M
1066
- * - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement Feature ExportedEnergy M
1067
- * - 0x050D Device Energy Management 0x0098 Device Energy Management Feature PowerAdjustment M
1068
- * - 0x0302 Temperature Sensor 0x001D Descriptor Feature TagList M
1069
- */
1070
550
  export const solarPower = DeviceTypeDefinition({
1071
551
  name: 'MA-solarpower',
1072
552
  code: 0x0017,
1073
553
  deviceClass: DeviceClasses.Simple,
1074
554
  revision: 1,
1075
- requiredServerClusters: [], // See 14.3.5.1. Cluster Requirements on Composing Device Types
555
+ requiredServerClusters: [],
1076
556
  optionalServerClusters: [Identify.Cluster.id],
1077
557
  });
1078
- /**
1079
- * A Battery Storage device is a device that allows a DC battery, which can optionally be comprised of
1080
- * a set parallel strings of battery packs and associated controller, and an AC inverter, to be monitored
1081
- * and controlled by an Energy Management System in order to manage the peaks and troughs of supply
1082
- * and demand, and/or to optimize cost of the energy consumed in premises. It is not intended to
1083
- * be used for a UPS directly supplying a set of appliances, nor for portable battery storage devices.
1084
- *
1085
- * 14.4.5. Device Type Requirements
1086
- * A Battery Storage device SHALL be composed of at least one endpoint with device types as defined by
1087
- * the conformance below. There MAY be more endpoints with additional instances of these device
1088
- * types or additional device types existing in the Battery Storage device.
1089
- * - ID Name Constraint Conformance
1090
- * - 0x0011 Power Source min 1 M
1091
- * - 0x0510 Electrical Sensor min 1 M
1092
- * - 0x050D Device Energy Management M
1093
- * - 0x0302 Temperature Sensor O
1094
- * - 0x0017 Solar Power O
1095
- *
1096
- * See 14.4.5.1. Cluster Requirements on Composing Device Types
1097
- */
1098
558
  export const batteryStorage = DeviceTypeDefinition({
1099
559
  name: 'MA-batterystorage',
1100
560
  code: 0x0018,
1101
561
  deviceClass: DeviceClasses.Simple,
1102
562
  revision: 1,
1103
- requiredServerClusters: [], // See 14.4.5.1. Cluster Requirements on Composing Device Types
563
+ requiredServerClusters: [],
1104
564
  optionalServerClusters: [Identify.Cluster.id],
1105
565
  });
1106
- /**
1107
- * A Heat Pump device is a device that uses electrical energy to heat either spaces or water tanks using
1108
- * ground, water or air as the heat source. These typically can heat the air or can pump water via central
1109
- * heating radiators or underfloor heating systems. It is typical to also heat hot water and store
1110
- * the heat in a hot water tank.
1111
- *
1112
- * 14.5.1. Heat Pump Architecture
1113
- * A Heat Pump device is always defined via endpoint composition.
1114
- *
1115
- * 14.5.5. Device Type Requirements
1116
- * A Heat Pump device SHALL be composed of at least one endpoint with device types as defined by
1117
- * the conformance below. There MAY be more endpoints with additional instances of these device
1118
- * types or additional device types existing in the Heat Pump device.
1119
- * - ID Name Constraint Conformance
1120
- * - 0x0011 Power Source M
1121
- * - 0x0510 Electrical Sensor min 1 M
1122
- * - 0x050D Device Energy Management M
1123
- * - 0x0301 Thermostat O
1124
- * - 0x050f Water Heater O
1125
- * - 0x0302 Temperature Sensor O
1126
- *
1127
- * See 14.5.5.1. Cluster Requirements on Composing Device Types
1128
- */
1129
566
  export const heatPump = DeviceTypeDefinition({
1130
567
  name: 'MA-heatpump',
1131
568
  code: 0x0309,
1132
569
  deviceClass: DeviceClasses.Simple,
1133
570
  revision: 1,
1134
- requiredServerClusters: [], // See 14.5.5.1. Cluster Requirements on Composing Device Types
571
+ requiredServerClusters: [],
1135
572
  optionalServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
1136
573
  });
1137
- //# sourceMappingURL=matterbridgeDeviceTypes.js.map