matterbridge 3.5.0 → 3.5.1-dev-20260121-22e98b4

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 (328) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bin/mb_coap.js +1 -1
  3. package/bin/mb_mdns.js +1 -1
  4. package/dist/broadcastServer.d.ts +0 -115
  5. package/dist/broadcastServer.js +1 -119
  6. package/dist/broadcastServerTypes.d.ts +0 -43
  7. package/dist/broadcastServerTypes.js +0 -24
  8. package/dist/cli.d.ts +1 -26
  9. package/dist/cli.js +2 -102
  10. package/dist/cliEmitter.d.ts +0 -36
  11. package/dist/cliEmitter.js +0 -37
  12. package/dist/cliHistory.d.ts +0 -42
  13. package/dist/cliHistory.js +1 -39
  14. package/dist/clusters/export.d.ts +0 -1
  15. package/dist/clusters/export.js +0 -2
  16. package/dist/deviceManager.d.ts +0 -108
  17. package/dist/deviceManager.js +2 -114
  18. package/dist/devices/airConditioner.d.ts +0 -75
  19. package/dist/devices/airConditioner.js +0 -57
  20. package/dist/devices/batteryStorage.d.ts +0 -43
  21. package/dist/devices/batteryStorage.js +1 -48
  22. package/dist/devices/cooktop.d.ts +0 -55
  23. package/dist/devices/cooktop.js +0 -56
  24. package/dist/devices/dishwasher.d.ts +0 -55
  25. package/dist/devices/dishwasher.js +0 -57
  26. package/dist/devices/evse.d.ts +0 -57
  27. package/dist/devices/evse.js +10 -74
  28. package/dist/devices/export.d.ts +0 -1
  29. package/dist/devices/export.js +0 -5
  30. package/dist/devices/extractorHood.d.ts +0 -41
  31. package/dist/devices/extractorHood.js +0 -43
  32. package/dist/devices/heatPump.d.ts +0 -43
  33. package/dist/devices/heatPump.js +2 -50
  34. package/dist/devices/laundryDryer.d.ts +0 -58
  35. package/dist/devices/laundryDryer.js +3 -62
  36. package/dist/devices/laundryWasher.d.ts +0 -64
  37. package/dist/devices/laundryWasher.js +4 -70
  38. package/dist/devices/microwaveOven.d.ts +1 -77
  39. package/dist/devices/microwaveOven.js +5 -88
  40. package/dist/devices/oven.d.ts +0 -82
  41. package/dist/devices/oven.js +0 -85
  42. package/dist/devices/refrigerator.d.ts +0 -100
  43. package/dist/devices/refrigerator.js +0 -102
  44. package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
  45. package/dist/devices/roboticVacuumCleaner.js +9 -100
  46. package/dist/devices/solarPower.d.ts +0 -36
  47. package/dist/devices/solarPower.js +0 -38
  48. package/dist/devices/speaker.d.ts +0 -79
  49. package/dist/devices/speaker.js +0 -84
  50. package/dist/devices/temperatureControl.d.ts +0 -21
  51. package/dist/devices/temperatureControl.js +3 -24
  52. package/dist/devices/waterHeater.d.ts +0 -74
  53. package/dist/devices/waterHeater.js +2 -82
  54. package/dist/frontend.d.ts +0 -187
  55. package/dist/frontend.js +39 -505
  56. package/dist/frontendTypes.d.ts +0 -57
  57. package/dist/frontendTypes.js +0 -45
  58. package/dist/helpers.d.ts +0 -43
  59. package/dist/helpers.js +1 -54
  60. package/dist/index.d.ts +0 -23
  61. package/dist/index.js +0 -25
  62. package/dist/jestutils/export.d.ts +0 -1
  63. package/dist/jestutils/export.js +0 -1
  64. package/dist/jestutils/jestHelpers.d.ts +0 -255
  65. package/dist/jestutils/jestHelpers.js +14 -372
  66. package/dist/logger/export.d.ts +0 -1
  67. package/dist/logger/export.js +0 -1
  68. package/dist/matter/behaviors.d.ts +0 -1
  69. package/dist/matter/behaviors.js +0 -2
  70. package/dist/matter/clusters.d.ts +0 -1
  71. package/dist/matter/clusters.js +0 -2
  72. package/dist/matter/devices.d.ts +0 -1
  73. package/dist/matter/devices.js +0 -2
  74. package/dist/matter/endpoints.d.ts +0 -1
  75. package/dist/matter/endpoints.js +0 -2
  76. package/dist/matter/export.d.ts +0 -1
  77. package/dist/matter/export.js +0 -2
  78. package/dist/matter/types.d.ts +0 -1
  79. package/dist/matter/types.js +0 -2
  80. package/dist/matterNode.d.ts +0 -258
  81. package/dist/matterNode.js +9 -364
  82. package/dist/matterbridge.d.ts +0 -362
  83. package/dist/matterbridge.js +60 -860
  84. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -36
  85. package/dist/matterbridgeAccessoryPlatform.js +0 -38
  86. package/dist/matterbridgeBehaviors.d.ts +0 -24
  87. package/dist/matterbridgeBehaviors.js +5 -68
  88. package/dist/matterbridgeDeviceTypes.d.ts +0 -649
  89. package/dist/matterbridgeDeviceTypes.js +6 -673
  90. package/dist/matterbridgeDynamicPlatform.d.ts +0 -36
  91. package/dist/matterbridgeDynamicPlatform.js +0 -38
  92. package/dist/matterbridgeEndpoint.d.ts +2 -1332
  93. package/dist/matterbridgeEndpoint.js +94 -1459
  94. package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
  95. package/dist/matterbridgeEndpointHelpers.js +21 -486
  96. package/dist/matterbridgeEndpointTypes.d.ts +0 -70
  97. package/dist/matterbridgeEndpointTypes.js +0 -25
  98. package/dist/matterbridgePlatform.d.ts +0 -425
  99. package/dist/matterbridgePlatform.js +2 -453
  100. package/dist/matterbridgeTypes.d.ts +0 -46
  101. package/dist/matterbridgeTypes.js +0 -26
  102. package/dist/mb_coap.d.ts +1 -0
  103. package/dist/{dgram/mb_coap.js → mb_coap.js} +3 -41
  104. package/dist/mb_mdns.d.ts +1 -0
  105. package/dist/{dgram/mb_mdns.js → mb_mdns.js} +37 -81
  106. package/dist/pluginManager.d.ts +0 -305
  107. package/dist/pluginManager.js +8 -345
  108. package/dist/shelly.d.ts +0 -157
  109. package/dist/shelly.js +7 -178
  110. package/dist/spawn.d.ts +1 -0
  111. package/dist/{utils/spawn.js → spawn.js} +3 -73
  112. package/dist/storage/export.d.ts +0 -1
  113. package/dist/storage/export.js +0 -1
  114. package/dist/update.d.ts +0 -75
  115. package/dist/update.js +7 -100
  116. package/dist/utils/export.d.ts +1 -13
  117. package/dist/utils/export.js +1 -13
  118. package/dist/workerGlobalPrefix.d.ts +0 -24
  119. package/dist/workerGlobalPrefix.js +6 -40
  120. package/dist/workerTypes.d.ts +0 -25
  121. package/dist/workerTypes.js +0 -24
  122. package/dist/workers.d.ts +0 -61
  123. package/dist/workers.js +4 -68
  124. package/npm-shrinkwrap.json +35 -5
  125. package/package.json +5 -5
  126. package/dist/broadcastServer.d.ts.map +0 -1
  127. package/dist/broadcastServer.js.map +0 -1
  128. package/dist/broadcastServerTypes.d.ts.map +0 -1
  129. package/dist/broadcastServerTypes.js.map +0 -1
  130. package/dist/cli.d.ts.map +0 -1
  131. package/dist/cli.js.map +0 -1
  132. package/dist/cliEmitter.d.ts.map +0 -1
  133. package/dist/cliEmitter.js.map +0 -1
  134. package/dist/cliHistory.d.ts.map +0 -1
  135. package/dist/cliHistory.js.map +0 -1
  136. package/dist/clusters/export.d.ts.map +0 -1
  137. package/dist/clusters/export.js.map +0 -1
  138. package/dist/deviceManager.d.ts.map +0 -1
  139. package/dist/deviceManager.js.map +0 -1
  140. package/dist/devices/airConditioner.d.ts.map +0 -1
  141. package/dist/devices/airConditioner.js.map +0 -1
  142. package/dist/devices/batteryStorage.d.ts.map +0 -1
  143. package/dist/devices/batteryStorage.js.map +0 -1
  144. package/dist/devices/cooktop.d.ts.map +0 -1
  145. package/dist/devices/cooktop.js.map +0 -1
  146. package/dist/devices/dishwasher.d.ts.map +0 -1
  147. package/dist/devices/dishwasher.js.map +0 -1
  148. package/dist/devices/evse.d.ts.map +0 -1
  149. package/dist/devices/evse.js.map +0 -1
  150. package/dist/devices/export.d.ts.map +0 -1
  151. package/dist/devices/export.js.map +0 -1
  152. package/dist/devices/extractorHood.d.ts.map +0 -1
  153. package/dist/devices/extractorHood.js.map +0 -1
  154. package/dist/devices/heatPump.d.ts.map +0 -1
  155. package/dist/devices/heatPump.js.map +0 -1
  156. package/dist/devices/laundryDryer.d.ts.map +0 -1
  157. package/dist/devices/laundryDryer.js.map +0 -1
  158. package/dist/devices/laundryWasher.d.ts.map +0 -1
  159. package/dist/devices/laundryWasher.js.map +0 -1
  160. package/dist/devices/microwaveOven.d.ts.map +0 -1
  161. package/dist/devices/microwaveOven.js.map +0 -1
  162. package/dist/devices/oven.d.ts.map +0 -1
  163. package/dist/devices/oven.js.map +0 -1
  164. package/dist/devices/refrigerator.d.ts.map +0 -1
  165. package/dist/devices/refrigerator.js.map +0 -1
  166. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  167. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  168. package/dist/devices/solarPower.d.ts.map +0 -1
  169. package/dist/devices/solarPower.js.map +0 -1
  170. package/dist/devices/speaker.d.ts.map +0 -1
  171. package/dist/devices/speaker.js.map +0 -1
  172. package/dist/devices/temperatureControl.d.ts.map +0 -1
  173. package/dist/devices/temperatureControl.js.map +0 -1
  174. package/dist/devices/waterHeater.d.ts.map +0 -1
  175. package/dist/devices/waterHeater.js.map +0 -1
  176. package/dist/dgram/coap.d.ts +0 -205
  177. package/dist/dgram/coap.d.ts.map +0 -1
  178. package/dist/dgram/coap.js +0 -365
  179. package/dist/dgram/coap.js.map +0 -1
  180. package/dist/dgram/dgram.d.ts +0 -144
  181. package/dist/dgram/dgram.d.ts.map +0 -1
  182. package/dist/dgram/dgram.js +0 -363
  183. package/dist/dgram/dgram.js.map +0 -1
  184. package/dist/dgram/mb_coap.d.ts +0 -24
  185. package/dist/dgram/mb_coap.d.ts.map +0 -1
  186. package/dist/dgram/mb_coap.js.map +0 -1
  187. package/dist/dgram/mb_mdns.d.ts +0 -24
  188. package/dist/dgram/mb_mdns.d.ts.map +0 -1
  189. package/dist/dgram/mb_mdns.js.map +0 -1
  190. package/dist/dgram/mdns.d.ts +0 -371
  191. package/dist/dgram/mdns.d.ts.map +0 -1
  192. package/dist/dgram/mdns.js +0 -934
  193. package/dist/dgram/mdns.js.map +0 -1
  194. package/dist/dgram/multicast.d.ts +0 -67
  195. package/dist/dgram/multicast.d.ts.map +0 -1
  196. package/dist/dgram/multicast.js +0 -179
  197. package/dist/dgram/multicast.js.map +0 -1
  198. package/dist/dgram/unicast.d.ts +0 -64
  199. package/dist/dgram/unicast.d.ts.map +0 -1
  200. package/dist/dgram/unicast.js +0 -100
  201. package/dist/dgram/unicast.js.map +0 -1
  202. package/dist/frontend.d.ts.map +0 -1
  203. package/dist/frontend.js.map +0 -1
  204. package/dist/frontendTypes.d.ts.map +0 -1
  205. package/dist/frontendTypes.js.map +0 -1
  206. package/dist/helpers.d.ts.map +0 -1
  207. package/dist/helpers.js.map +0 -1
  208. package/dist/index.d.ts.map +0 -1
  209. package/dist/index.js.map +0 -1
  210. package/dist/jestutils/export.d.ts.map +0 -1
  211. package/dist/jestutils/export.js.map +0 -1
  212. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  213. package/dist/jestutils/jestHelpers.js.map +0 -1
  214. package/dist/logger/export.d.ts.map +0 -1
  215. package/dist/logger/export.js.map +0 -1
  216. package/dist/matter/behaviors.d.ts.map +0 -1
  217. package/dist/matter/behaviors.js.map +0 -1
  218. package/dist/matter/clusters.d.ts.map +0 -1
  219. package/dist/matter/clusters.js.map +0 -1
  220. package/dist/matter/devices.d.ts.map +0 -1
  221. package/dist/matter/devices.js.map +0 -1
  222. package/dist/matter/endpoints.d.ts.map +0 -1
  223. package/dist/matter/endpoints.js.map +0 -1
  224. package/dist/matter/export.d.ts.map +0 -1
  225. package/dist/matter/export.js.map +0 -1
  226. package/dist/matter/types.d.ts.map +0 -1
  227. package/dist/matter/types.js.map +0 -1
  228. package/dist/matterNode.d.ts.map +0 -1
  229. package/dist/matterNode.js.map +0 -1
  230. package/dist/matterbridge.d.ts.map +0 -1
  231. package/dist/matterbridge.js.map +0 -1
  232. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  233. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  234. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  235. package/dist/matterbridgeBehaviors.js.map +0 -1
  236. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  237. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  238. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  239. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  240. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  241. package/dist/matterbridgeEndpoint.js.map +0 -1
  242. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  243. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  244. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  245. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  246. package/dist/matterbridgePlatform.d.ts.map +0 -1
  247. package/dist/matterbridgePlatform.js.map +0 -1
  248. package/dist/matterbridgeTypes.d.ts.map +0 -1
  249. package/dist/matterbridgeTypes.js.map +0 -1
  250. package/dist/pluginManager.d.ts.map +0 -1
  251. package/dist/pluginManager.js.map +0 -1
  252. package/dist/shelly.d.ts.map +0 -1
  253. package/dist/shelly.js.map +0 -1
  254. package/dist/storage/export.d.ts.map +0 -1
  255. package/dist/storage/export.js.map +0 -1
  256. package/dist/update.d.ts.map +0 -1
  257. package/dist/update.js.map +0 -1
  258. package/dist/utils/colorUtils.d.ts +0 -101
  259. package/dist/utils/colorUtils.d.ts.map +0 -1
  260. package/dist/utils/colorUtils.js +0 -282
  261. package/dist/utils/colorUtils.js.map +0 -1
  262. package/dist/utils/commandLine.d.ts +0 -66
  263. package/dist/utils/commandLine.d.ts.map +0 -1
  264. package/dist/utils/commandLine.js +0 -123
  265. package/dist/utils/commandLine.js.map +0 -1
  266. package/dist/utils/copyDirectory.d.ts +0 -35
  267. package/dist/utils/copyDirectory.d.ts.map +0 -1
  268. package/dist/utils/copyDirectory.js +0 -76
  269. package/dist/utils/copyDirectory.js.map +0 -1
  270. package/dist/utils/createDirectory.d.ts +0 -34
  271. package/dist/utils/createDirectory.d.ts.map +0 -1
  272. package/dist/utils/createDirectory.js +0 -54
  273. package/dist/utils/createDirectory.js.map +0 -1
  274. package/dist/utils/createZip.d.ts +0 -39
  275. package/dist/utils/createZip.d.ts.map +0 -1
  276. package/dist/utils/createZip.js +0 -114
  277. package/dist/utils/createZip.js.map +0 -1
  278. package/dist/utils/deepCopy.d.ts +0 -32
  279. package/dist/utils/deepCopy.d.ts.map +0 -1
  280. package/dist/utils/deepCopy.js +0 -79
  281. package/dist/utils/deepCopy.js.map +0 -1
  282. package/dist/utils/deepEqual.d.ts +0 -54
  283. package/dist/utils/deepEqual.d.ts.map +0 -1
  284. package/dist/utils/deepEqual.js +0 -129
  285. package/dist/utils/deepEqual.js.map +0 -1
  286. package/dist/utils/error.d.ts +0 -45
  287. package/dist/utils/error.d.ts.map +0 -1
  288. package/dist/utils/error.js +0 -54
  289. package/dist/utils/error.js.map +0 -1
  290. package/dist/utils/export.d.ts.map +0 -1
  291. package/dist/utils/export.js.map +0 -1
  292. package/dist/utils/format.d.ts +0 -53
  293. package/dist/utils/format.d.ts.map +0 -1
  294. package/dist/utils/format.js +0 -78
  295. package/dist/utils/format.js.map +0 -1
  296. package/dist/utils/hex.d.ts +0 -89
  297. package/dist/utils/hex.d.ts.map +0 -1
  298. package/dist/utils/hex.js +0 -242
  299. package/dist/utils/hex.js.map +0 -1
  300. package/dist/utils/inspector.d.ts +0 -87
  301. package/dist/utils/inspector.d.ts.map +0 -1
  302. package/dist/utils/inspector.js +0 -268
  303. package/dist/utils/inspector.js.map +0 -1
  304. package/dist/utils/isValid.d.ts +0 -103
  305. package/dist/utils/isValid.d.ts.map +0 -1
  306. package/dist/utils/isValid.js +0 -162
  307. package/dist/utils/isValid.js.map +0 -1
  308. package/dist/utils/network.d.ts +0 -141
  309. package/dist/utils/network.d.ts.map +0 -1
  310. package/dist/utils/network.js +0 -314
  311. package/dist/utils/network.js.map +0 -1
  312. package/dist/utils/spawn.d.ts +0 -33
  313. package/dist/utils/spawn.d.ts.map +0 -1
  314. package/dist/utils/spawn.js.map +0 -1
  315. package/dist/utils/tracker.d.ts +0 -108
  316. package/dist/utils/tracker.d.ts.map +0 -1
  317. package/dist/utils/tracker.js +0 -264
  318. package/dist/utils/tracker.js.map +0 -1
  319. package/dist/utils/wait.d.ts +0 -54
  320. package/dist/utils/wait.d.ts.map +0 -1
  321. package/dist/utils/wait.js +0 -125
  322. package/dist/utils/wait.js.map +0 -1
  323. package/dist/workerGlobalPrefix.d.ts.map +0 -1
  324. package/dist/workerGlobalPrefix.js.map +0 -1
  325. package/dist/workerTypes.d.ts.map +0 -1
  326. package/dist/workerTypes.js.map +0 -1
  327. package/dist/workers.d.ts.map +0 -1
  328. package/dist/workers.js.map +0 -1
@@ -1,32 +1,6 @@
1
- /**
2
- * This file contains the matter device type definitions for MatterbridgeEndpoint.
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
- // eslint-disable-next-line no-console
25
1
  if (process.argv.includes('--loader') || process.argv.includes('-loader'))
26
2
  console.log('\u001B[32mMatterbridgeDeviceTypes loaded.\u001B[40;0m');
27
- // @matter
28
3
  import { DeviceTypeId } from '@matter/types/datatype';
29
- // @matter clusters
30
4
  import { AccountLogin } from '@matter/types/clusters/account-login';
31
5
  import { Actions } from '@matter/types/clusters/actions';
32
6
  import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
@@ -114,49 +88,15 @@ import { WindowCovering } from '@matter/types/clusters/window-covering';
114
88
  import { ScenesManagement } from '@matter/types/clusters/scenes-management';
115
89
  export var DeviceClasses;
116
90
  (function (DeviceClasses) {
117
- /** 1.1.5. Device Type Class Conditions */
118
- /** Node device type. */
119
91
  DeviceClasses["Node"] = "Node";
120
- /**
121
- * Application device type.
122
- * Application devices types are typically the most datatype endpoints on a node and in the network.
123
- */
124
92
  DeviceClasses["App"] = "App";
125
- /**
126
- * Utility device type.
127
- * A Utility device type supports configuration and settings.
128
- */
129
93
  DeviceClasses["Utility"] = "Utility";
130
- /**
131
- * Simple device type.
132
- * A Simple device type supports local control that is persistent, independent, and unsupervised.
133
- */
134
94
  DeviceClasses["Simple"] = "Simple";
135
- /**
136
- * Dynamic device type.
137
- * A Dynamic device type supports intelligent and supervisory services, such as commissioning,
138
- * monitoring, trend analysis, scheduling and central management. A dynamic device type is an
139
- * application device type.
140
- */
141
95
  DeviceClasses["Dynamic"] = "Dynamic";
142
- /** The device type is composed of 2 or more device types. */
143
96
  DeviceClasses["Composed"] = "Composed";
144
- /** 1.1.6. Endpoint Type Class Conditions */
145
- /** There exists a client application cluster on the endpoint. */
146
97
  DeviceClasses["Client"] = "Client";
147
- /** There exists a server application cluster on the endpoint. */
148
98
  DeviceClasses["Server"] = "Server";
149
- /**
150
- * The endpoint and at least one of its sibling endpoints have an overlap in application device type(s),
151
- * as defined in the "Disambiguation" section in the System Model specification. This condition triggers
152
- * requirements for providing additional information about the endpoints in order to disambiguate
153
- * between the endpoints (see "Disambiguation" section in the System Model specification).
154
- */
155
99
  DeviceClasses["Duplicate"] = "Duplicate";
156
- /**
157
- * The endpoint represents a Bridged Device, for which information about the state of
158
- * its power source is available to the Bridge
159
- */
160
100
  DeviceClasses["BridgedPowerSourceInfo"] = "BridgedPowerSourceInfo";
161
101
  })(DeviceClasses || (DeviceClasses = {}));
162
102
  export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requiredServerClusters = [], optionalServerClusters = [], requiredClientClusters = [], optionalClientClusters = [], }) => ({
@@ -169,14 +109,13 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, revision, requir
169
109
  requiredClientClusters,
170
110
  optionalClientClusters,
171
111
  });
172
- // Chapter 2. Utility device types
173
112
  export const rootNode = DeviceTypeDefinition({
174
113
  name: 'MA-rootNode',
175
114
  code: 0x0016,
176
115
  deviceClass: DeviceClasses.Node,
177
116
  revision: 3,
178
- requiredServerClusters: [], // Intentionally left empty to avoid imports
179
- optionalServerClusters: [], // Intentionally left empty to avoid imports
117
+ requiredServerClusters: [],
118
+ optionalServerClusters: [],
180
119
  });
181
120
  export const powerSource = DeviceTypeDefinition({
182
121
  name: 'MA-powerSource',
@@ -206,46 +145,14 @@ export const OTAProvider = DeviceTypeDefinition({
206
145
  requiredClientClusters: [OtaSoftwareUpdateRequestor.Cluster.id],
207
146
  optionalClientClusters: [],
208
147
  });
209
- /**
210
- 2.5.3. Conditions
211
- Please see the Base Device Type definition for conformance tags.
212
- This device type SHALL only be used for Nodes which have a device type of Bridge.
213
-
214
- 2.5.5. Cluster Requirements
215
- Each endpoint supporting this device type SHALL include these clusters based on the conformance
216
- defined below.
217
- - 0x0039 Bridged Device Basic Information Server
218
-
219
- 2.5.6. Endpoint Composition
220
- • A Bridged Node endpoint SHALL support one of the following composition patterns:
221
- ◦ Separate Endpoints: All application device types are supported on separate endpoints, and
222
- not on the Bridged Node endpoint. The Bridged Node endpoint’s Descriptor cluster PartsList
223
- attribute SHALL indicate a list of all endpoints representing the functionality of the bridged
224
- device, including the endpoints supporting the application device types, i.e. the full-family
225
- pattern defined in the System Model specification.
226
- ◦ One Endpoint: Both the Bridged Node and one or more application device types are supported
227
- on the same endpoint (following application device type rules). Endpoint composition
228
- SHALL conform to the application device type(s) definition.
229
- */
230
148
  export const bridgedNode = DeviceTypeDefinition({
231
149
  name: 'MA-bridgedNode',
232
150
  code: 0x0013,
233
151
  deviceClass: DeviceClasses.Utility,
234
152
  revision: 3,
235
- requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id], // omitted PowerSourceConfiguration cause is deprecated
153
+ requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
236
154
  optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
237
155
  });
238
- /**
239
- * An Electrical Sensor device measures the electrical power and/or energy being imported and/or
240
- * exported.
241
- * It is a utility device type that provides information about the electrical power and/or energy
242
- * consumption and generation.
243
- *
244
- * 2.6.3. Device Type Requirements
245
- * Electrical measurements made by either the Electrical Power Measurement cluster, the Electrical
246
- * Energy Measurement cluster, or both SHALL apply to the endpoints indicated by the Power Topology
247
- * cluster.
248
- */
249
156
  export const electricalSensor = DeviceTypeDefinition({
250
157
  name: 'MA-electricalSensor',
251
158
  code: 0x0510,
@@ -254,10 +161,6 @@ export const electricalSensor = DeviceTypeDefinition({
254
161
  requiredServerClusters: [PowerTopology.Cluster.id],
255
162
  optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
256
163
  });
257
- /**
258
- * A Device Energy Management device provides reporting and optionally adjustment of the electrical
259
- * power planned on being consumed or produced by the device.
260
- */
261
164
  export const deviceEnergyManagement = DeviceTypeDefinition({
262
165
  name: 'MA-deviceEnergyManagement',
263
166
  code: 0x050d,
@@ -266,19 +169,6 @@ export const deviceEnergyManagement = DeviceTypeDefinition({
266
169
  requiredServerClusters: [DeviceEnergyManagement.Cluster.id],
267
170
  optionalServerClusters: [DeviceEnergyManagementMode.Cluster.id],
268
171
  });
269
- /** Chapter 3. Application Device Types */
270
- /** Chapter 4. Lighting device types */
271
- /**
272
- * Element Requirements:
273
- * - Identify Command TriggerEffect
274
- * - Scenes Management Command CopyScene
275
- * - On/Off Feature Lighting
276
- * - Level Control Feature OnOff
277
- * - Level Control Feature Lighting
278
- * - Level Control Attribute CurrentLevel 1 to 254
279
- * - Level Control Attribute MinLevel 1
280
- * - Level Control Attribute MaxLevel 254
281
- */
282
172
  export const onOffLight = DeviceTypeDefinition({
283
173
  name: 'MA-onofflight',
284
174
  code: 0x0100,
@@ -287,17 +177,6 @@ export const onOffLight = DeviceTypeDefinition({
287
177
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
288
178
  optionalServerClusters: [LevelControl.Cluster.id],
289
179
  });
290
- /**
291
- * Element Requirements:
292
- * - Identify Command TriggerEffect
293
- * - Scenes Management Command CopyScene
294
- * - On/Off Feature Lighting
295
- * - Level Control Feature OnOff
296
- * - Level Control Feature Lighting
297
- * - Level Control Attribute CurrentLevel 1 to 254
298
- * - Level Control Attribute MinLevel 1
299
- * - Level Control Attribute MaxLevel 254
300
- */
301
180
  export const dimmableLight = DeviceTypeDefinition({
302
181
  name: 'MA-dimmablelight',
303
182
  code: 0x0101,
@@ -306,19 +185,6 @@ export const dimmableLight = DeviceTypeDefinition({
306
185
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
307
186
  optionalServerClusters: [],
308
187
  });
309
- /**
310
- * Element Requirements:
311
- * - Identify Command TriggerEffect
312
- * - Scenes Management Command CopyScene
313
- * - On/Off Feature Lighting
314
- * - Level Control Feature OnOff
315
- * - Level Control Feature Lighting
316
- * - Level Control Attribute CurrentLevel 1 to 254
317
- * - Level Control Attribute MinLevel 1
318
- * - Level Control Attribute MaxLevel 254
319
- * - Color Control Feature ColorTemperature
320
- * - Color Control Attribute RemainingTime
321
- */
322
188
  export const colorTemperatureLight = DeviceTypeDefinition({
323
189
  name: 'MA-colortemperaturelight',
324
190
  code: 0x010c,
@@ -327,20 +193,6 @@ export const colorTemperatureLight = DeviceTypeDefinition({
327
193
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
328
194
  optionalServerClusters: [],
329
195
  });
330
- /**
331
- * Element Requirements:
332
- * - Identify Command TriggerEffect
333
- * - Scenes Management Command CopyScene
334
- * - On/Off Feature Lighting
335
- * - Level Control Feature OnOff
336
- * - Level Control Feature Lighting
337
- * - Level Control Attribute CurrentLevel 1 to 254
338
- * - Level Control Attribute MinLevel 1
339
- * - Level Control Attribute MaxLevel 254
340
- * - Color Control Feature XY
341
- * - Color Control Feature ColorTemperature
342
- * - Color Control Attribute RemainingTime
343
- */
344
196
  export const extendedColorLight = DeviceTypeDefinition({
345
197
  name: 'MA-extendedcolorlight',
346
198
  code: 0x010d,
@@ -349,26 +201,6 @@ export const extendedColorLight = DeviceTypeDefinition({
349
201
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
350
202
  optionalServerClusters: [],
351
203
  });
352
- // Chapter 5. Smart plugs/Outlets and other Actuators device types
353
- /**
354
- * An On/Off Plug-in Unit is a device that provides power to another device that is plugged into it, and
355
- * is capable of switching that provided power on or off.
356
- * The Mounted On/Off Control (added in Matter 1.4) has identical cluster requirements as the On/Off
357
- * Plug-In Unit, and is marked as superset of this device type (since Matter 1.4.2). For devices intended
358
- * to be mounted permanently, the Mounted On/Off Control device type SHALL be used, with the
359
- * On/Off Plug-In Unit device type optionally added in the DeviceTypeList of the Descriptor cluster in
360
- * addition to the On/Off Plug-In Unit device type (see [ref_MountedOnOffControlServerGuidance]).
361
- *
362
- * Element Requirements:
363
- * - Identify Command TriggerEffect
364
- * - Scenes Management Command CopyScene
365
- * - On/Off Feature Lighting
366
- * - Level Control Feature OnOff
367
- * - Level Control Feature Lighting
368
- * - Level Control Attribute CurrentLevel 1 to 254
369
- * - Level Control Attribute MinLevel 1
370
- * - Level Control Attribute MaxLevel 254
371
- */
372
204
  export const onOffOutlet = DeviceTypeDefinition({
373
205
  name: 'MA-onoffpluginunit',
374
206
  code: 0x010a,
@@ -377,27 +209,6 @@ export const onOffOutlet = DeviceTypeDefinition({
377
209
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
378
210
  optionalServerClusters: [LevelControl.Cluster.id],
379
211
  });
380
- /**
381
- * A Dimmable Plug-In Unit is a device that provides power to another device that is plugged into it,
382
- * and is capable of being switched on or off and have its level adjusted. The Dimmable Plug-in Unit is
383
- * typically used to control a conventional non-communicating light through its mains connection
384
- * using phase cutting.
385
- * The Mounted Dimmable Load Control (added in Matter 1.4) has identical cluster requirements as
386
- * the Dimmable Plug-In Unit, and is marked as a superset of this device type (since Matter 1.4.2). For
387
- * devices intended to be mounted permanently, the Mounted Dimmable Load Control device type
388
- * SHALL be used, with the Dimmable Plug-In Unit device type optionally added to the DeviceTypeList
389
- * of the Descriptor cluster in addition to the Mounted Dimmable Load Control device type (see [ref_MountedDimmableLoadControlServerGuidance]).
390
- *
391
- * Element Requirements:
392
- * - Identify Command TriggerEffect
393
- * - Scenes Management Command CopyScene
394
- * - On/Off Feature Lighting
395
- * - Level Control Feature OnOff
396
- * - Level Control Feature Lighting
397
- * - Level Control Attribute CurrentLevel 1 to 254
398
- * - Level Control Attribute MinLevel 1
399
- * - Level Control Attribute MaxLevel 254
400
- */
401
212
  export const dimmableOutlet = DeviceTypeDefinition({
402
213
  name: 'MA-dimmablepluginunit',
403
214
  code: 0x010b,
@@ -406,27 +217,6 @@ export const dimmableOutlet = DeviceTypeDefinition({
406
217
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
407
218
  optionalServerClusters: [],
408
219
  });
409
- /**
410
- * A Mounted On/Off Control is a fixed device that provides power to another device that is plugged
411
- * into it, and is capable of switching that provided power on or off.
412
- * This device type is intended for any wall-mounted or hardwired load controller, while On/Off Plugin
413
- * Unit is intended only for smart plugs and other power switching devices that are not permaMatter
414
- * Device Library Specification R1.4.2 Connectivity Standards Alliance Document 23-27351 July 16, 2025
415
- * Copyright © Connectivity Standards Alliance, Inc. All rights reserved. Page 53
416
- * nently connected, and which can be unplugged from their power source.
417
- *
418
- * It is a simple device type that does not require any client clusters. As per matter 1.4.2 it should be added also on/Off Plug-In Unit for backward compatibility.
419
- *
420
- * Element Requirements:
421
- * - Identify Command TriggerEffect
422
- * - Scenes Management Command CopyScene
423
- * - On/Off Feature Lighting
424
- * - Level Control Feature OnOff
425
- * - Level Control Feature Lighting
426
- * - Level Control Attribute CurrentLevel 1 to 254
427
- * - Level Control Attribute MinLevel 1
428
- * - Level Control Attribute MaxLevel 254
429
- */
430
220
  export const onOffMountedSwitch = DeviceTypeDefinition({
431
221
  name: 'MA-onoffmountedswitch',
432
222
  code: 0x010f,
@@ -435,27 +225,6 @@ export const onOffMountedSwitch = DeviceTypeDefinition({
435
225
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id],
436
226
  optionalServerClusters: [LevelControl.Cluster.id],
437
227
  });
438
- /**
439
- * A Mounted Dimmable Load Control is a fixed device that provides power to a load connected to it,
440
- * and is capable of being switched on or off and have its level adjusted. The Mounted Dimmable Load
441
- * Control is typically used to control a conventional non-communicating light through its mains connection
442
- * using phase cutting.
443
- * This device type is intended for any wall-mounted or hardwired dimmer-capable load controller,
444
- * while Dimmable Plug-In Unit is intended only for dimmer-capable smart plugs that are not permanently
445
- * connected, and which can be unplugged from their power source.
446
- *
447
- * It is a simple device type that does not require any client clusters. As per matter 1.4.2 it should be added also dimmable Plug-In Unit for backward compatibility.
448
- *
449
- * Element Requirements:
450
- * - Identify Command TriggerEffect
451
- * - Scenes Management Command CopyScene
452
- * - On/Off Feature Lighting
453
- * - Level Control Feature OnOff
454
- * - Level Control Feature Lighting
455
- * - Level Control Attribute CurrentLevel 1 to 254
456
- * - Level Control Attribute MinLevel 1
457
- * - Level Control Attribute MaxLevel 254
458
- */
459
228
  export const dimmableMountedSwitch = DeviceTypeDefinition({
460
229
  name: 'MA-dimmablemountedswitch',
461
230
  code: 0x0110,
@@ -464,20 +233,6 @@ export const dimmableMountedSwitch = DeviceTypeDefinition({
464
233
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
465
234
  optionalServerClusters: [],
466
235
  });
467
- /**
468
- * Remark:
469
- * On/Off Cluster:
470
- * - Off If the pump is powered on, store the current level then immediately power it off.
471
- * - 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,
472
- * move immediately to the maximum level allowed for the pump.
473
- * - 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.
474
- *
475
- * LevelControl cluster:
476
- * Level Setpoint Meaning
477
- * 0 N/A Pump is stopped,
478
- * 1–200 Level / 2 (0.5–100.0%) Pump setpoint in percent
479
- * 201–255 100.0% Pump setpoint is 100.0%
480
- */
481
236
  export const pumpDevice = DeviceTypeDefinition({
482
237
  name: 'MA-pump',
483
238
  code: 0x303,
@@ -494,8 +249,6 @@ export const waterValve = DeviceTypeDefinition({
494
249
  requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
495
250
  optionalServerClusters: [FlowMeasurement.Cluster.id],
496
251
  });
497
- // Chapter 6. Switches and Controls device types
498
- // Custom device types with server cluster instead of client clusters (not working in Alexa)
499
252
  export const onOffSwitch = DeviceTypeDefinition({
500
253
  name: 'MA-onoffswitch',
501
254
  code: 0x0103,
@@ -504,7 +257,6 @@ export const onOffSwitch = DeviceTypeDefinition({
504
257
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
505
258
  optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
506
259
  });
507
- // Custom device types with server cluster instead of client clusters (not working in Alexa)
508
260
  export const dimmableSwitch = DeviceTypeDefinition({
509
261
  name: 'MA-dimmableswitch',
510
262
  code: 0x0104,
@@ -513,7 +265,6 @@ export const dimmableSwitch = DeviceTypeDefinition({
513
265
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
514
266
  optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
515
267
  });
516
- // Custom device types with server cluster instead of client clusters (not working in Alexa)
517
268
  export const colorTemperatureSwitch = DeviceTypeDefinition({
518
269
  name: 'MA-colortemperatureswitch',
519
270
  code: 0x0105,
@@ -530,11 +281,6 @@ export const genericSwitch = DeviceTypeDefinition({
530
281
  requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
531
282
  optionalServerClusters: [],
532
283
  });
533
- // Chapter 7. Sensor device types
534
- /**
535
- * Closed or contact: state true
536
- * Open or no contact: state false
537
- */
538
284
  export const contactSensor = DeviceTypeDefinition({
539
285
  name: 'MA-contactsensor',
540
286
  code: 0x0015,
@@ -586,7 +332,6 @@ export const humiditySensor = DeviceTypeDefinition({
586
332
  revision: 2,
587
333
  requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
588
334
  });
589
- // Remark: A Smoke CO Alarm device type SHALL support an instance of a Power Source device type on some endpoint.
590
335
  export const smokeCoAlarm = DeviceTypeDefinition({
591
336
  name: 'MA-smokeCoAlarm',
592
337
  code: 0x0076,
@@ -640,15 +385,6 @@ export const rainSensor = DeviceTypeDefinition({
640
385
  requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
641
386
  optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
642
387
  });
643
- // Chapter 8. Closures device types
644
- /**
645
- * 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.
646
- * Element Requirements:
647
- *
648
- * - AccessControl Attribute Extension
649
- * - DoorLock Feature User
650
- * - DoorLock Attribute AlarmMask
651
- */
652
388
  export const doorLockDevice = DeviceTypeDefinition({
653
389
  name: 'MA-doorLock',
654
390
  code: 0xa,
@@ -665,15 +401,6 @@ export const coverDevice = DeviceTypeDefinition({
665
401
  requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
666
402
  optionalServerClusters: [Groups.Cluster.id],
667
403
  });
668
- // Chapter 9. HVAC device types
669
- /**
670
- * A Thermostat device is capable of having either built-in or separate sensors for temperature,
671
- * humidity or occupancy. It allows the desired temperature to be set either remotely or locally. The
672
- * thermostat is capable of sending heating and/or cooling requirement notifications to a heating/cooling
673
- * unit (for example, an indoor air handler) or is capable of including a mechanism to control a
674
- * heating or cooling unit directly.
675
- *
676
- */
677
404
  export const thermostatDevice = DeviceTypeDefinition({
678
405
  name: 'MA-thermostat',
679
406
  code: 0x301,
@@ -682,25 +409,6 @@ export const thermostatDevice = DeviceTypeDefinition({
682
409
  requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
683
410
  optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
684
411
  });
685
- /**
686
- * A Fan device is typically standalone or mounted on a ceiling or wall and is used to circulate air in a room.
687
- * Remark: it may have a thermostat device type.
688
- * Additional device types MAY also be included in device compositions.
689
- * Element Requirements:
690
- * The FanControl cluster must have the FanModeSequence attribute.
691
- *
692
- * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
693
- * includes an Off setting.
694
- * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
695
- * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
696
- * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
697
- * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
698
- * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
699
- * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
700
- * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
701
- * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
702
- * SpeedSetting and PercentSetting.
703
- */
704
412
  export const fanDevice = DeviceTypeDefinition({
705
413
  name: 'MA-fan',
706
414
  code: 0x2b,
@@ -709,35 +417,6 @@ export const fanDevice = DeviceTypeDefinition({
709
417
  requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
710
418
  optionalServerClusters: [OnOff.Cluster.id],
711
419
  });
712
- /**
713
- * An Air Purifier is a standalone device that is designed to clean the air in a room.
714
- * It is a device that has a fan to control the air speed while it is operating. Optionally, it can report on
715
- * the condition of its filters.
716
- *
717
- * Remark:
718
- * An Air Purifier MAY expose elements of its functionality through one or more additional device
719
- * types on different endpoints. All devices used in compositions SHALL adhere to the disambiguation
720
- * requirements of the System Model. Other device types, not explicitly listed in the table, MAY also be
721
- * included in device compositions but are not considered part of the core functionality of the device.
722
- * 0x0301 Thermostat O
723
- * 0x0302 Temperature Sensor O
724
- * 0x0307 Humidity Sensor O
725
- * 0x002C Air Quality Sensor O
726
- *
727
- * Cluster Restrictions:
728
- * The On/Off cluster is independent from the Fan Control Cluster’s FanMode attribute, which also
729
- * includes an Off setting.
730
- * If the FanMode attribute of the Fan Control cluster is set to a value other than Off when the OnOff
731
- * attribute of the On/Off cluster transitions from TRUE to FALSE, it may be desirable to restore the
732
- * FanMode, SpeedSetting and PercentSetting attribute values of the Fan Control cluster when the OnOff
733
- * attribute of the On/Off cluster later transitions from FALSE to TRUE. If the FanMode is set to Off when
734
- * the device is turned off, this information is lost, as the SpeedSetting and PercentSetting will be set to
735
- * zero. Using the On/Off cluster alongside the Fan Control cluster allows the FanMode, SpeedSetting and
736
- * PercentSetting to remain unchanged when the device is turned off. In this case, the On/Off cluster
737
- * would be set to Off, and the SpeedCurrent and PercentCurrent set to zero, without changing FanMode,
738
- * SpeedSetting and PercentSetting.
739
- *
740
- */
741
420
  export const airPurifier = DeviceTypeDefinition({
742
421
  name: 'MA-airPurifier',
743
422
  code: 0x2d,
@@ -746,26 +425,6 @@ export const airPurifier = DeviceTypeDefinition({
746
425
  requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
747
426
  optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
748
427
  });
749
- // Chapter 10. Media Device Types
750
- /**
751
- * 10.2. A Basic Video Player has playback controls (play, pause, etc.) and keypad remote controls (up, down, number input),
752
- * but is not able to launch arbitrary content applications. It is a commissionable node.
753
- *
754
- * Required server clusters (minimum features per spec):
755
- * - Media Playback (media playback controls)
756
- * - Keypad Input (remote key events)
757
- * - On/Off (basic power control)
758
- *
759
- * Optional server clusters (additional capabilities commonly implemented):
760
- * - Audio Output (speaker selection / volume endpoints)
761
- * - Channel (linear channel navigation)
762
- * - Target Navigator (high level app / target navigation)
763
- * - Media Input (input source selection)
764
- * - Low Power (power saving / wake logic)
765
- * - Wake On LAN (remote wake capabilities)
766
- * - Messages (device messaging / notifications)
767
- * - Content Control (parental or content access control)
768
- */
769
428
  export const basicVideoPlayer = DeviceTypeDefinition({
770
429
  name: 'MA-basicVideoPlayer',
771
430
  code: 0x0028,
@@ -774,29 +433,6 @@ export const basicVideoPlayer = DeviceTypeDefinition({
774
433
  requiredServerClusters: [OnOff.Cluster.id, MediaPlayback.Cluster.id, KeypadInput.Cluster.id],
775
434
  optionalServerClusters: [WakeOnLan.Cluster.id, Channel.Cluster.id, TargetNavigator.Cluster.id, MediaInput.Cluster.id, LowPower.Cluster.id, AudioOutput.Cluster.id, ContentControl.Cluster.id, Messages.Cluster.id],
776
435
  });
777
- /**
778
- * 10.3. A Casting Video Player supports Basic Video Player features and content launching features.
779
- * It is a Commissioner and can launch Content Apps (Content Launcher cluster) and optionally expose
780
- * an Application Launcher cluster when acting as a Content App Platform.
781
- *
782
- * Required server clusters (minimum features per spec):
783
- * - Media Playback (playback controls)
784
- * - Keypad Input (remote key events)
785
- * - Content Launcher (content launching capability)
786
- * - On/Off (basic power control)
787
- *
788
- * Optional server clusters (additional capabilities):
789
- * - Application Launcher (hosting content apps)
790
- * - Account Login (account / session association)
791
- * - Audio Output (output / volume endpoints)
792
- * - Channel (linear channel navigation)
793
- * - Target Navigator (high level target navigation)
794
- * - Media Input (input source selection)
795
- * - Low Power (power saving / wake logic)
796
- * - Wake On LAN (remote wake capabilities)
797
- * - Messages (device messaging / notifications)
798
- * - Content Control (parental or content access control)
799
- */
800
436
  export const castingVideoPlayer = DeviceTypeDefinition({
801
437
  name: 'MA-castingVideoPlayer',
802
438
  code: 0x0023,
@@ -816,12 +452,6 @@ export const castingVideoPlayer = DeviceTypeDefinition({
816
452
  Messages.Cluster.id,
817
453
  ],
818
454
  });
819
- /**
820
- * 10.4. A Speaker device type controls the speaker.
821
- * unmute/mute, the On/Off cluster SHALL be used. A value of TRUE for the OnOff attribute
822
- * SHALL represent the volume on (not muted) state, while a value of FALSE SHALL represent the volume
823
- * off (muted) state. For volume level control, the Level cluster SHALL be used.
824
- */
825
455
  export const speakerDevice = DeviceTypeDefinition({
826
456
  name: 'MA-speaker',
827
457
  code: 0x0022,
@@ -830,7 +460,6 @@ export const speakerDevice = DeviceTypeDefinition({
830
460
  requiredServerClusters: [OnOff.Cluster.id, LevelControl.Cluster.id],
831
461
  optionalServerClusters: [],
832
462
  });
833
- // Chapter 11. Generic Device Types
834
463
  export const modeSelect = DeviceTypeDefinition({
835
464
  name: 'MA-modeselect',
836
465
  code: 0x27,
@@ -838,37 +467,6 @@ export const modeSelect = DeviceTypeDefinition({
838
467
  revision: 1,
839
468
  requiredServerClusters: [ModeSelect.Cluster.id],
840
469
  });
841
- /**
842
- * This device type aggregates endpoints as a collection. Clusters on the endpoint indicating this
843
- * device type provide functionality for the collection of descendant endpoints present in the PartsList
844
- * of the endpoint’s descriptor, for example the Actions cluster.
845
- *
846
- * Endpoint Composition:
847
- * An Aggregator endpoint’s Descriptor cluster PartsList attribute SHALL list the collection of all endpoints
848
- * aggregated by the Aggregator device type, i.e. the full-family pattern defined in the System Model specification.
849
- *
850
- * Disambiguation:
851
- * If the Duplicate condition applies to child endpoints of an Aggregator endpoint that represent multiple
852
- * independent bridged devices, the endpoints SHOULD make available metadata to allow a
853
- * client to disambiguate distinct bridged devices with an overlap in application device types.
854
- *
855
- * Typically this is done using the NodeLabel attribute of the Bridged Device Basic Information cluster
856
- * - thus reusing the naming information which the bridge already has to allow disambiguation to the
857
- * user when using a direct user interface to the bridge.
858
- *
859
- * Actions cluster (9.14 Matter specification):
860
- * If a Bridge has (such) information on topology or logical grouping, it SHOULD expose such information
861
- * in the EndpointLists attribute of an Actions cluster (the ActionLists of which MAY be empty if
862
- * no actions are exposed). 9.12 Matter specification
863
- *
864
- * 9.12.5. New features for Bridged Devices
865
- * Bridged Devices can have their software updated independently of the Bridge, through Bridge Manufacturer-
866
- * specific means. These updates MAY result in one or more changes to their capabilities,
867
- * such as supported clusters and/or attributes, for an endpoint. Like every Matter Node, every endpoint
868
- * on the Bridge’s Node contains a Descriptor cluster that contains attributes for the device types
869
- * (DeviceTypeList), endpoints (PartsList) and supported clusters (ServerList and ClientList). Nodes
870
- * that wish to be notified of such changes SHOULD monitor changes of these attributes.
871
- */
872
470
  export const aggregator = DeviceTypeDefinition({
873
471
  name: 'MA-aggregator',
874
472
  code: 0x000e,
@@ -878,29 +476,6 @@ export const aggregator = DeviceTypeDefinition({
878
476
  optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
879
477
  });
880
478
  export const bridge = aggregator;
881
- // Chapter 12. Robotic Device Types
882
- /**
883
- * A Robotic Vacuum Cleaner is a device that is capable of cleaning floors and other surfaces
884
- * in a home or office environment. It is typically a mobile device that can navigate around
885
- * obstacles and can be controlled remotely.
886
- *
887
- * Cluster Usage:
888
- * The RVC Operational State cluster’s OperationalState attribute SHALL be updated according to the
889
- * state of the device, and therefore it SHOULD be used for monitoring purposes.
890
- *
891
- * To attempt starting a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
892
- * command with the NewMode field set to a mode that has the Cleaning mode tag associated with it.
893
- *
894
- * To attempt stopping a cleaning operation, the RVC Run Mode cluster can be sent a ChangeToMode
895
- * command with the NewMode field set to a mode that has the Idle mode tag associated with it.
896
- *
897
- * To attempt pausing a cleaning operation, the RVC Operational State cluster can be sent a Pause command.
898
- *
899
- * To attempt resuming a cleaning operation, the RVC Operational State cluster can be sent a Resume
900
- * command.
901
- *
902
- *
903
- */
904
479
  export const roboticVacuumCleaner = DeviceTypeDefinition({
905
480
  name: 'MA-roboticvacuumcleaner',
906
481
  code: 0x74,
@@ -909,12 +484,6 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
909
484
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
910
485
  optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
911
486
  });
912
- // Chapter 13. Appliances device types
913
- /**
914
- * Cluster Restrictions:
915
- * On/Off Cluster: the DF (Dead Front) feature is required
916
- * Operational State Event OperationCompletion
917
- */
918
487
  export const laundryWasher = DeviceTypeDefinition({
919
488
  name: 'MA-laundrywasher',
920
489
  code: 0x73,
@@ -923,14 +492,6 @@ export const laundryWasher = DeviceTypeDefinition({
923
492
  requiredServerClusters: [OperationalState.Cluster.id],
924
493
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryWasherControls.Cluster.id, TemperatureControl.Cluster.id],
925
494
  });
926
- /**
927
- * A refrigerator represents a device that contains one or more cabinets that are capable of chilling or freezing food.
928
- * A Refrigerator SHALL be composed of at least one endpoint with the Temperature Controlled Cabinet device type.
929
- * A Refrigerator SHALL have the Cooler condition applied to at least one endpoint containing the Temperature Control Cluster.
930
- *
931
- * Device Type Requirements:
932
- * 0x0071 Temperature Controlled Cabinet with Cooler condition
933
- */
934
495
  export const refrigerator = DeviceTypeDefinition({
935
496
  name: 'MA-refrigerator',
936
497
  code: 0x70,
@@ -939,23 +500,6 @@ export const refrigerator = DeviceTypeDefinition({
939
500
  requiredServerClusters: [],
940
501
  optionalServerClusters: [Identify.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id, RefrigeratorAlarm.Cluster.id],
941
502
  });
942
- /**
943
- * A Room Air Conditioner is a device with the primary function of controlling the air temperature in a single room.
944
- *
945
- * A Room Air Conditioner MAY have zero or more of each device type listed in this table subject to
946
- * the conformance column of the table. All devices used in compositions SHALL adhere to the disambiguation
947
- * requirements of the System Model. Additional device types not listed in this table MAY also be included in device compositions.
948
- * 0x0302 Temperature Sensor O
949
- * 0x0307 Humidity Sensor O
950
- *
951
- * Remark:
952
- * The DF (Dead Front) feature is required for the On/Off cluster in this device type:
953
- * - Thermostat LocalTemperature null
954
- * - Temperature Measurement MeasuredValue null
955
- * - Relative Humidity Measurement MeasuredValue null
956
- * - Fan Control SpeedSetting null
957
- * - Fan Control PercentSetting null
958
- */
959
503
  export const airConditioner = DeviceTypeDefinition({
960
504
  name: 'MA-airConditioner',
961
505
  code: 0x72,
@@ -964,19 +508,6 @@ export const airConditioner = DeviceTypeDefinition({
964
508
  requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
965
509
  optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id, FanControl.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
966
510
  });
967
- /**
968
- * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
969
- * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
970
- * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
971
- * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
972
- * range, or similar device.
973
- *
974
- * Conditions:
975
- * Cooler The device has cooling functionality.
976
- *
977
- * Cluster Restrictions:
978
- * TemperatureNumber is the only valid temperature control mode
979
- */
980
511
  export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
981
512
  name: 'MA-temperaturecontrolledcabinetcooler',
982
513
  code: 0x71,
@@ -985,20 +516,6 @@ export const temperatureControlledCabinetCooler = DeviceTypeDefinition({
985
516
  requiredServerClusters: [TemperatureControl.Cluster.id, RefrigeratorAndTemperatureControlledCabinetMode.Cluster.id],
986
517
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
987
518
  });
988
- /**
989
- * A Temperature Controlled Cabinet only exists composed as part of another device type. It represents
990
- * a single cabinet that is capable of having its temperature controlled. Such a cabinet may be
991
- * chilling or freezing food, for example as part of a refrigerator, freezer, wine chiller, or other similar
992
- * device. Equally, such a cabinet may be warming or heating food, for example as part of an oven,
993
- * range, or similar device.
994
- *
995
- * Conditions:
996
- * Heater The device has heating functionality.
997
- *
998
- * Cluster Restrictions:
999
- * TemperatureNumber is the only valid temperature control mode
1000
- * OperationCompletion event for Oven Cavity Operational State cluster
1001
- */
1002
519
  export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
1003
520
  name: 'MA-temperaturecontrolledcabinetheater',
1004
521
  code: 0x71,
@@ -1007,11 +524,6 @@ export const temperatureControlledCabinetHeater = DeviceTypeDefinition({
1007
524
  requiredServerClusters: [TemperatureControl.Cluster.id, OvenMode.Cluster.id, OvenCavityOperationalState.Cluster.id],
1008
525
  optionalServerClusters: [TemperatureMeasurement.Cluster.id],
1009
526
  });
1010
- /**
1011
- * Cluster Restrictions:
1012
- * On/Off Cluster: the DF (Dead Front) feature is required
1013
- * Operational State Event OperationCompletion
1014
- */
1015
527
  export const dishwasher = DeviceTypeDefinition({
1016
528
  name: 'MA-dishwasher',
1017
529
  code: 0x75,
@@ -1020,11 +532,6 @@ export const dishwasher = DeviceTypeDefinition({
1020
532
  requiredServerClusters: [OperationalState.Cluster.id],
1021
533
  optionalServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, TemperatureControl.Cluster.id, DishwasherMode.Cluster.id, DishwasherAlarm.Cluster.id],
1022
534
  });
1023
- /**
1024
- * Cluster Restrictions:
1025
- * On/Off Cluster: the DF (Dead Front) feature is required
1026
- * Operational State Event OperationCompletion
1027
- */
1028
535
  export const laundryDryer = DeviceTypeDefinition({
1029
536
  name: 'MA-laundrydryer',
1030
537
  code: 0x7c,
@@ -1033,14 +540,6 @@ export const laundryDryer = DeviceTypeDefinition({
1033
540
  requiredServerClusters: [OperationalState.Cluster.id],
1034
541
  optionalServerClusters: [Identify.Cluster.id, LaundryWasherMode.Cluster.id, OnOff.Cluster.id, LaundryDryerControls.Cluster.id, TemperatureControl.Cluster.id],
1035
542
  });
1036
- /**
1037
- * A Cook Surface device type represents a heating object on a cooktop or other similar device. It
1038
- * SHALL only be used when composed as part of another device type (cooktop).
1039
- *
1040
- * Cluster Restrictions:
1041
- * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements. OnOff Cluster is optional.
1042
- * The TemperatureLevel feature is the only valid temperature control feature.
1043
- */
1044
543
  export const cookSurface = DeviceTypeDefinition({
1045
544
  name: 'MA-cooksurface',
1046
545
  code: 0x77,
@@ -1049,18 +548,6 @@ export const cookSurface = DeviceTypeDefinition({
1049
548
  requiredServerClusters: [],
1050
549
  optionalServerClusters: [TemperatureControl.Cluster.id, TemperatureMeasurement.Cluster.id, OnOff.Cluster.id],
1051
550
  });
1052
- /**
1053
- * A cooktop is a cooking surface that heats food either by transferring currents from an electromagnetic
1054
- * field located below the glass surface directly to the magnetic induction cookware placed
1055
- * above or through traditional gas or electric burners.
1056
- *
1057
- * Device Type Requirements:
1058
- * A Cooktop SHALL be composed of zero or more endpoints with the Cook Surface device type as defined by the conformance below.
1059
- * 0x0077 Cook Surface min 1 O
1060
- *
1061
- * Cluster Restrictions:
1062
- * The OffOnly feature is required for the On/Off cluster in this device type due to safety requirements.
1063
- */
1064
551
  export const cooktop = DeviceTypeDefinition({
1065
552
  name: 'MA-cooktop',
1066
553
  code: 0x78,
@@ -1069,15 +556,6 @@ export const cooktop = DeviceTypeDefinition({
1069
556
  requiredServerClusters: [OnOff.Cluster.id],
1070
557
  optionalServerClusters: [Identify.Cluster.id],
1071
558
  });
1072
- /**
1073
- * An oven represents a device that contains one or more cabinets, and optionally a single cooktop, that are all capable of heating food.
1074
- * An oven is always defined via endpoint composition.
1075
- * Conditions:
1076
- * An Oven SHALL have the Heater condition applied to at least one endpoint containing the Temperature Control Cluster.
1077
- * Device Type Requirements:
1078
- * - 0x0071 Temperature Controlled Cabinet min 1
1079
- * - 0x0078 Cooktop max 1 Optional
1080
- */
1081
559
  export const oven = DeviceTypeDefinition({
1082
560
  name: 'MA-oven',
1083
561
  code: 0x7b,
@@ -1086,18 +564,6 @@ export const oven = DeviceTypeDefinition({
1086
564
  requiredServerClusters: [],
1087
565
  optionalServerClusters: [Identify.Cluster.id],
1088
566
  });
1089
- /**
1090
- * An Extractor Hood is a device that is generally installed above a cooking surface in residential kitchens.
1091
- * Additional device types not listed in this table MAY also be included in device compositions.
1092
- * Device Type Requirements:
1093
- * 0x0100+ On/Off Light+ O
1094
- *
1095
- *
1096
- * Element Requirements:
1097
- * - 0x0202 Fan Control Feature Rocking X
1098
- * - 0x0202 Fan Control Feature Wind X
1099
- * - 0x0202 Fan Control Feature AirflowDirection X
1100
- */
1101
567
  export const extractorHood = DeviceTypeDefinition({
1102
568
  name: 'MA-extractorhood',
1103
569
  code: 0x7a,
@@ -1106,14 +572,6 @@ export const extractorHood = DeviceTypeDefinition({
1106
572
  requiredServerClusters: [FanControl.Cluster.id],
1107
573
  optionalServerClusters: [Identify.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
1108
574
  });
1109
- /**
1110
- * A Microwave Oven is a device with the primary function of heating foods and beverages using a magnetron.
1111
- * A Microwave Oven is a device which at a minimum is capable of being started and stopped and of setting a power level.
1112
- * A Microwave Oven MAY also support additional capabilities via endpoint composition.
1113
- *
1114
- * Element Requirements:
1115
- * Operational State Event OperationCompletion
1116
- */
1117
575
  export const microwaveOven = DeviceTypeDefinition({
1118
576
  name: 'MA-microwaveoven',
1119
577
  code: 0x79,
@@ -1122,26 +580,6 @@ export const microwaveOven = DeviceTypeDefinition({
1122
580
  requiredServerClusters: [OperationalState.Cluster.id, MicrowaveOvenMode.Cluster.id, MicrowaveOvenControl.Cluster.id],
1123
581
  optionalServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
1124
582
  });
1125
- // Chapter 14. Energy Device Types
1126
- /**
1127
- * An EVSE (Electric Vehicle Supply Equipment) is a device that allows an EV (Electric Vehicle) to be
1128
- * connected to the mains electricity supply to allow it to be charged (or discharged in case of Vehicle
1129
- * to Grid / Vehicle to Home applications).
1130
- *
1131
- * 14.1.5. Device Type Requirements
1132
- * An EVSE SHALL be composed of at least one endpoint with device types as defined by the conformance
1133
- * below. There MAY be more endpoints with other device types existing in the EVSE.
1134
- * - ID Name Constraint Conformance
1135
- * - 0x0011 Power Source min 1 M
1136
- * - 0x0510 Electrical Sensor min 1 M
1137
- * - 0x050D Device Energy Management min 1 M
1138
- *
1139
- * The Electrical Sensor device SHALL include both the Electrical Energy Measurement and Electrical
1140
- * Power Measurement clusters, measuring the total energy and power of the EVSE.
1141
- *
1142
- * The Device Energy Management cluster included in the Device Energy Management device SHALL
1143
- * support the Power Forecast Reporting (PFR) feature.
1144
- */
1145
583
  export const evse = DeviceTypeDefinition({
1146
584
  name: 'MA-evse',
1147
585
  code: 0x050c,
@@ -1150,39 +588,6 @@ export const evse = DeviceTypeDefinition({
1150
588
  requiredServerClusters: [EnergyEvse.Cluster.id, EnergyEvseMode.Cluster.id],
1151
589
  optionalServerClusters: [Identify.Cluster.id, TemperatureMeasurement.Cluster.id],
1152
590
  });
1153
- /**
1154
- * A water heater is a device that is generally installed in properties to heat water for showers, baths etc.
1155
- * A Water Heater is always defined via endpoint composition.
1156
- *
1157
- * 14.2.5. Device Type Requirements
1158
- * A Water Heater SHALL be composed of at least one endpoint with device types as defined by the
1159
- * conformance below. There MAY be more endpoints with other device types existing in the Water Heater.
1160
- * - ID Name Constraint Conformance
1161
- * - 0x0011 Power Source O
1162
- * - 0x0302 Temperature Sensor O
1163
- * - 0x0510 Electrical Sensor desc
1164
- * - 0x050D Device Energy Management O
1165
- *
1166
- * 14.2.7. Element Requirements
1167
- * 0x0201 Thermostat Feature Heating M
1168
- *
1169
- * The Energy Management feature of the Water Heater cluster SHALL be supported if the Device
1170
- * Energy Management device type is included.
1171
- * If Off is a supported SystemMode in the Thermostat cluster, setting the SystemMode of the Thermostat
1172
- * cluster to Off SHALL set the CurrentMode attribute of the Water Heater Mode cluster to a mode
1173
- * having the Off mode tag value and vice versa.
1174
- * At least one entry in the SupportedModes attribute of the Water Heater Mode cluster SHALL
1175
- * include the Timed mode tag in the ModeTags field list.
1176
- *
1177
- * WaterHeaterMode Cluster
1178
- * 9.6.6.1. SupportedModes Attribute
1179
- * At least one entry in the SupportedModes attribute SHALL include the Manual mode tag in the
1180
- * ModeTags field list.
1181
- * At least one entry in the SupportedModes attribute SHALL include the Off mode tag in the ModeTags
1182
- * field list.
1183
- * An entry in the SupportedModes attribute that includes one of an Off, Manual, or Timed tag SHALL
1184
- * NOT also include an additional instance of any one of these tag types.
1185
- */
1186
591
  export const waterHeater = DeviceTypeDefinition({
1187
592
  name: 'MA-waterheater',
1188
593
  code: 0x050f,
@@ -1191,99 +596,27 @@ export const waterHeater = DeviceTypeDefinition({
1191
596
  requiredServerClusters: [Thermostat.Cluster.id, WaterHeaterManagement.Cluster.id, WaterHeaterMode.Cluster.id],
1192
597
  optionalServerClusters: [Identify.Cluster.id],
1193
598
  });
1194
- /**
1195
- * A Solar Power device is a device that allows a solar panel array, which can optionally be comprised
1196
- * of a set parallel strings of solar panels, and its associated controller and, if appropriate, inverter, to
1197
- * be monitored and controlled by an Energy Management System.
1198
- *
1199
- * 14.3.5. Device Type Requirements
1200
- * A Solar Power device SHALL be composed of at least one endpoint with device types as defined by
1201
- * the conformance below. There MAY be more endpoints with additional instances of these device
1202
- * types or additional device types existing in the Solar Power device.
1203
- *
1204
- * - ID Name Constraint Conformance
1205
- * - 0x0011 Power Source min 1 M
1206
- * - 0x0510 Electrical Sensor min 1 M
1207
- * - 0x050D Device Energy Management O
1208
- * - 0x0302 Temperature Sensor O
1209
- *
1210
- * 14.3.5.1. Cluster Requirements on Composing Device Types
1211
- *
1212
- * - 0x0011 Power Source 0x002F Power Source Feature Wired M
1213
- * - 0x0011 Power Source 0x001D Descriptor Feature TagList M
1214
- * - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement M
1215
- * - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute Voltage M
1216
- * - 0x0510 Electrical Sensor 0x0090 Electrical Power Measurement Attribute ActiveCurrent M
1217
- * - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement M
1218
- * - 0x0510 Electrical Sensor 0x0091 Electrical Energy Measurement Feature ExportedEnergy M
1219
- * - 0x050D Device Energy Management 0x0098 Device Energy Management Feature PowerAdjustment M
1220
- * - 0x0302 Temperature Sensor 0x001D Descriptor Feature TagList M
1221
- */
1222
599
  export const solarPower = DeviceTypeDefinition({
1223
600
  name: 'MA-solarpower',
1224
601
  code: 0x0017,
1225
602
  deviceClass: DeviceClasses.Simple,
1226
603
  revision: 1,
1227
- requiredServerClusters: [], // See 14.3.5.1. Cluster Requirements on Composing Device Types
604
+ requiredServerClusters: [],
1228
605
  optionalServerClusters: [Identify.Cluster.id],
1229
606
  });
1230
- /**
1231
- * A Battery Storage device is a device that allows a DC battery, which can optionally be comprised of
1232
- * a set parallel strings of battery packs and associated controller, and an AC inverter, to be monitored
1233
- * and controlled by an Energy Management System in order to manage the peaks and troughs of supply
1234
- * and demand, and/or to optimize cost of the energy consumed in premises. It is not intended to
1235
- * be used for a UPS directly supplying a set of appliances, nor for portable battery storage devices.
1236
- *
1237
- * 14.4.5. Device Type Requirements
1238
- * A Battery Storage device SHALL be composed of at least one endpoint with device types as defined by
1239
- * the conformance below. There MAY be more endpoints with additional instances of these device
1240
- * types or additional device types existing in the Battery Storage device.
1241
- * - ID Name Constraint Conformance
1242
- * - 0x0011 Power Source min 1 M
1243
- * - 0x0510 Electrical Sensor min 1 M
1244
- * - 0x050D Device Energy Management M
1245
- * - 0x0302 Temperature Sensor O
1246
- * - 0x0017 Solar Power O
1247
- *
1248
- * See 14.4.5.1. Cluster Requirements on Composing Device Types
1249
- */
1250
607
  export const batteryStorage = DeviceTypeDefinition({
1251
608
  name: 'MA-batterystorage',
1252
609
  code: 0x0018,
1253
610
  deviceClass: DeviceClasses.Simple,
1254
611
  revision: 1,
1255
- requiredServerClusters: [], // See 14.4.5.1. Cluster Requirements on Composing Device Types
612
+ requiredServerClusters: [],
1256
613
  optionalServerClusters: [Identify.Cluster.id],
1257
614
  });
1258
- /**
1259
- * A Heat Pump device is a device that uses electrical energy to heat either spaces or water tanks using
1260
- * ground, water or air as the heat source. These typically can heat the air or can pump water via central
1261
- * heating radiators or underfloor heating systems. It is typical to also heat hot water and store
1262
- * the heat in a hot water tank.
1263
- *
1264
- * 14.5.1. Heat Pump Architecture
1265
- * A Heat Pump device is always defined via endpoint composition.
1266
- *
1267
- * 14.5.5. Device Type Requirements
1268
- * A Heat Pump device SHALL be composed of at least one endpoint with device types as defined by
1269
- * the conformance below. There MAY be more endpoints with additional instances of these device
1270
- * types or additional device types existing in the Heat Pump device.
1271
- * - ID Name Constraint Conformance
1272
- * - 0x0011 Power Source M
1273
- * - 0x0510 Electrical Sensor min 1 M
1274
- * - 0x050D Device Energy Management M
1275
- * - 0x0301 Thermostat O
1276
- * - 0x050f Water Heater O
1277
- * - 0x0302 Temperature Sensor O
1278
- *
1279
- * See 14.5.5.1. Cluster Requirements on Composing Device Types
1280
- */
1281
615
  export const heatPump = DeviceTypeDefinition({
1282
616
  name: 'MA-heatpump',
1283
617
  code: 0x0309,
1284
618
  deviceClass: DeviceClasses.Simple,
1285
619
  revision: 1,
1286
- requiredServerClusters: [], // See 14.5.5.1. Cluster Requirements on Composing Device Types
620
+ requiredServerClusters: [],
1287
621
  optionalServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
1288
622
  });
1289
- //# sourceMappingURL=matterbridgeDeviceTypes.js.map