matterbridge 3.3.3 → 3.3.4-dev-20251020-df40d12

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