@zwave-js/cc 14.0.0-beta.4 → 14.0.0

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 (331) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +381 -266
  2. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  3. package/build/cjs/cc/AssociationCC.js +669 -503
  4. package/build/cjs/cc/AssociationCC.js.map +3 -3
  5. package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
  6. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  7. package/build/cjs/cc/BarrierOperatorCC.js +595 -429
  8. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  9. package/build/cjs/cc/BasicCC.js +354 -260
  10. package/build/cjs/cc/BasicCC.js.map +3 -3
  11. package/build/cjs/cc/BatteryCC.js +427 -345
  12. package/build/cjs/cc/BatteryCC.js.map +3 -3
  13. package/build/cjs/cc/BinarySensorCC.js +391 -276
  14. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  15. package/build/cjs/cc/BinarySwitchCC.js +347 -253
  16. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  17. package/build/cjs/cc/CRC16CC.js +160 -85
  18. package/build/cjs/cc/CRC16CC.js.map +3 -3
  19. package/build/cjs/cc/CentralSceneCC.js +459 -324
  20. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  21. package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
  22. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  23. package/build/cjs/cc/ClockCC.js +254 -150
  24. package/build/cjs/cc/ClockCC.js.map +3 -3
  25. package/build/cjs/cc/ColorSwitchCC.js +758 -610
  26. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  27. package/build/cjs/cc/ConfigurationCC.js +1700 -1453
  28. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  29. package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
  30. package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
  31. package/build/cjs/cc/DoorLockCC.js +904 -777
  32. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  33. package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
  34. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  35. package/build/cjs/cc/EnergyProductionCC.js +249 -160
  36. package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
  37. package/build/cjs/cc/EntryControlCC.js +619 -458
  38. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  39. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
  40. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  41. package/build/cjs/cc/HailCC.js +57 -11
  42. package/build/cjs/cc/HailCC.js.map +2 -2
  43. package/build/cjs/cc/HumidityControlModeCC.js +359 -233
  44. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  45. package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
  46. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  47. package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
  48. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  49. package/build/cjs/cc/InclusionControllerCC.js +205 -114
  50. package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
  51. package/build/cjs/cc/IndicatorCC.js +897 -736
  52. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  53. package/build/cjs/cc/IrrigationCC.js +1651 -1405
  54. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  55. package/build/cjs/cc/LanguageCC.js +268 -171
  56. package/build/cjs/cc/LanguageCC.js.map +3 -3
  57. package/build/cjs/cc/LockCC.js +254 -154
  58. package/build/cjs/cc/LockCC.js.map +3 -3
  59. package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
  60. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  61. package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
  62. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  63. package/build/cjs/cc/MeterCC.js +827 -707
  64. package/build/cjs/cc/MeterCC.js.map +3 -3
  65. package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
  66. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  67. package/build/cjs/cc/MultiChannelCC.js +1037 -819
  68. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  69. package/build/cjs/cc/MultiCommandCC.js +172 -97
  70. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  71. package/build/cjs/cc/MultilevelSensorCC.js +589 -449
  72. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  73. package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
  74. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  75. package/build/cjs/cc/NoOperationCC.js +89 -27
  76. package/build/cjs/cc/NoOperationCC.js.map +2 -2
  77. package/build/cjs/cc/NodeNamingCC.js +417 -277
  78. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  79. package/build/cjs/cc/NotificationCC.js +972 -818
  80. package/build/cjs/cc/NotificationCC.js.map +3 -3
  81. package/build/cjs/cc/PowerlevelCC.js +450 -303
  82. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  83. package/build/cjs/cc/ProtectionCC.js +686 -494
  84. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  85. package/build/cjs/cc/SceneActivationCC.js +165 -97
  86. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  87. package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
  88. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  89. package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
  90. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  91. package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
  92. package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
  93. package/build/cjs/cc/Security2CC.js +1483 -1219
  94. package/build/cjs/cc/Security2CC.js.map +3 -3
  95. package/build/cjs/cc/SecurityCC.js +839 -619
  96. package/build/cjs/cc/SecurityCC.js.map +3 -3
  97. package/build/cjs/cc/SoundSwitchCC.js +707 -515
  98. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  99. package/build/cjs/cc/SupervisionCC.js +327 -237
  100. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  101. package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
  102. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  103. package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
  104. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  105. package/build/cjs/cc/ThermostatModeCC.js +425 -302
  106. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  107. package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
  108. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  109. package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
  110. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  111. package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
  112. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  113. package/build/cjs/cc/TimeCC.js +515 -353
  114. package/build/cjs/cc/TimeCC.js.map +3 -3
  115. package/build/cjs/cc/TimeParametersCC.js +302 -202
  116. package/build/cjs/cc/TimeParametersCC.js.map +3 -3
  117. package/build/cjs/cc/TransportServiceCC.js +433 -315
  118. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  119. package/build/cjs/cc/UserCodeCC.js +1385 -1102
  120. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  121. package/build/cjs/cc/VersionCC.js +696 -562
  122. package/build/cjs/cc/VersionCC.js.map +3 -3
  123. package/build/cjs/cc/WakeUpCC.js +499 -346
  124. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  125. package/build/cjs/cc/WindowCoveringCC.js +626 -478
  126. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  127. package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
  128. package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
  129. package/build/cjs/cc/ZWavePlusCC.js +233 -159
  130. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  131. package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
  132. package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
  133. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  134. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
  135. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
  136. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
  137. package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
  138. package/build/cjs/lib/CommandClassDecorators.js +19 -20
  139. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  140. package/build/cjs/lib/Security2/Extension.d.ts +1 -1
  141. package/build/cjs/lib/Security2/Extension.js +217 -126
  142. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  143. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  144. package/build/esm/cc/AlarmSensorCC.js +389 -291
  145. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  146. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  147. package/build/esm/cc/AssociationCC.js +678 -537
  148. package/build/esm/cc/AssociationCC.js.map +1 -1
  149. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  150. package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
  151. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  152. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  153. package/build/esm/cc/BarrierOperatorCC.js +634 -493
  154. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  155. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  156. package/build/esm/cc/BasicCC.js +380 -302
  157. package/build/esm/cc/BasicCC.js.map +1 -1
  158. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  159. package/build/esm/cc/BatteryCC.js +449 -384
  160. package/build/esm/cc/BatteryCC.js.map +1 -1
  161. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  162. package/build/esm/cc/BinarySensorCC.js +395 -297
  163. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  164. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  165. package/build/esm/cc/BinarySwitchCC.js +353 -274
  166. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  167. package/build/esm/cc/CRC16CC.js +162 -98
  168. package/build/esm/cc/CRC16CC.js.map +1 -1
  169. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  170. package/build/esm/cc/CentralSceneCC.js +465 -351
  171. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  172. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  173. package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
  174. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  175. package/build/esm/cc/ClockCC.js +248 -159
  176. package/build/esm/cc/ClockCC.js.map +1 -1
  177. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  178. package/build/esm/cc/ColorSwitchCC.js +802 -677
  179. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  180. package/build/esm/cc/ConfigurationCC.js +1899 -1687
  181. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  182. package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
  183. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  184. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  185. package/build/esm/cc/DoorLockCC.js +951 -849
  186. package/build/esm/cc/DoorLockCC.js.map +1 -1
  187. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  188. package/build/esm/cc/DoorLockLoggingCC.js +316 -218
  189. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  190. package/build/esm/cc/EnergyProductionCC.js +240 -164
  191. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  192. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  193. package/build/esm/cc/EntryControlCC.js +629 -493
  194. package/build/esm/cc/EntryControlCC.js.map +1 -1
  195. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  196. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
  197. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  198. package/build/esm/cc/HailCC.js +51 -12
  199. package/build/esm/cc/HailCC.js.map +1 -1
  200. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  201. package/build/esm/cc/HumidityControlModeCC.js +357 -250
  202. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  203. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  204. package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
  205. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  206. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  207. package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
  208. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  209. package/build/esm/cc/InclusionControllerCC.js +197 -119
  210. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  211. package/build/esm/cc/IndicatorCC.js +973 -835
  212. package/build/esm/cc/IndicatorCC.js.map +1 -1
  213. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  214. package/build/esm/cc/IrrigationCC.js +1697 -1496
  215. package/build/esm/cc/IrrigationCC.js.map +1 -1
  216. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  217. package/build/esm/cc/LanguageCC.js +266 -184
  218. package/build/esm/cc/LanguageCC.js.map +1 -1
  219. package/build/esm/cc/LockCC.d.ts.map +1 -1
  220. package/build/esm/cc/LockCC.js +247 -162
  221. package/build/esm/cc/LockCC.js.map +1 -1
  222. package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
  223. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  224. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  225. package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
  226. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  227. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  228. package/build/esm/cc/MeterCC.js +896 -795
  229. package/build/esm/cc/MeterCC.js.map +1 -1
  230. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  231. package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
  232. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  233. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  234. package/build/esm/cc/MultiChannelCC.js +1106 -921
  235. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  236. package/build/esm/cc/MultiCommandCC.js +166 -102
  237. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  238. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  239. package/build/esm/cc/MultilevelSensorCC.js +616 -497
  240. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  241. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  242. package/build/esm/cc/MultilevelSwitchCC.js +621 -496
  243. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  244. package/build/esm/cc/NoOperationCC.js +82 -29
  245. package/build/esm/cc/NoOperationCC.js.map +1 -1
  246. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  247. package/build/esm/cc/NodeNamingCC.js +413 -294
  248. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  249. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  250. package/build/esm/cc/NotificationCC.js +1097 -966
  251. package/build/esm/cc/NotificationCC.js.map +1 -1
  252. package/build/esm/cc/PowerlevelCC.js +437 -311
  253. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  254. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  255. package/build/esm/cc/ProtectionCC.js +704 -543
  256. package/build/esm/cc/ProtectionCC.js.map +1 -1
  257. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  258. package/build/esm/cc/SceneActivationCC.js +157 -100
  259. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  260. package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
  261. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  262. package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
  263. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  264. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  265. package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
  266. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  267. package/build/esm/cc/Security2CC.js +1633 -1406
  268. package/build/esm/cc/Security2CC.js.map +1 -1
  269. package/build/esm/cc/SecurityCC.js +876 -687
  270. package/build/esm/cc/SecurityCC.js.map +1 -1
  271. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  272. package/build/esm/cc/SoundSwitchCC.js +689 -526
  273. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  274. package/build/esm/cc/SupervisionCC.js +349 -272
  275. package/build/esm/cc/SupervisionCC.js.map +1 -1
  276. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  277. package/build/esm/cc/ThermostatFanModeCC.js +388 -284
  278. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  279. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  280. package/build/esm/cc/ThermostatFanStateCC.js +184 -111
  281. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  282. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  283. package/build/esm/cc/ThermostatModeCC.js +435 -331
  284. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  285. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  286. package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
  287. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  288. package/build/esm/cc/ThermostatSetbackCC.js +274 -185
  289. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  290. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  291. package/build/esm/cc/ThermostatSetpointCC.js +674 -543
  292. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  293. package/build/esm/cc/TimeCC.js +499 -360
  294. package/build/esm/cc/TimeCC.js.map +1 -1
  295. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  296. package/build/esm/cc/TimeParametersCC.js +296 -211
  297. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  298. package/build/esm/cc/TransportServiceCC.js +464 -363
  299. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  300. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  301. package/build/esm/cc/UserCodeCC.js +1443 -1205
  302. package/build/esm/cc/UserCodeCC.js.map +1 -1
  303. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  304. package/build/esm/cc/VersionCC.js +744 -635
  305. package/build/esm/cc/VersionCC.js.map +1 -1
  306. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  307. package/build/esm/cc/WakeUpCC.js +494 -364
  308. package/build/esm/cc/WakeUpCC.js.map +1 -1
  309. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  310. package/build/esm/cc/WindowCoveringCC.js +655 -530
  311. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  312. package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
  313. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
  314. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  315. package/build/esm/cc/ZWavePlusCC.js +223 -162
  316. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  317. package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
  318. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  319. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  320. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  321. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
  322. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  323. package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
  324. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  325. package/build/esm/lib/CommandClassDecorators.js +24 -24
  326. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  327. package/build/esm/lib/Security2/Extension.d.ts +1 -1
  328. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  329. package/build/esm/lib/Security2/Extension.js +207 -123
  330. package/build/esm/lib/Security2/Extension.js.map +1 -1
  331. package/package.json +6 -6
@@ -49,13 +49,45 @@ var import_Values = require("../lib/Values.js");
49
49
  var import_Types = require("../lib/_Types.js");
50
50
  var ccUtils = __toESM(require("../lib/utils.js"), 1);
51
51
  var import_AssociationCC = require("./AssociationCC.js");
52
- var __decorate = function(decorators, target, key, desc) {
53
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
54
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
55
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
56
- return c > 3 && r && Object.defineProperty(target, key, r), r;
52
+ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
53
+ function accept(f) {
54
+ if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
55
+ return f;
56
+ }
57
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
58
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
59
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
60
+ var _, done = false;
61
+ for (var i = decorators.length - 1; i >= 0; i--) {
62
+ var context = {};
63
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
64
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
65
+ context.addInitializer = function(f) {
66
+ if (done) throw new TypeError("Cannot add initializers after decoration has completed");
67
+ extraInitializers.push(accept(f || null));
68
+ };
69
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
70
+ if (kind === "accessor") {
71
+ if (result === void 0) continue;
72
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
73
+ if (_ = accept(result.get)) descriptor.get = _;
74
+ if (_ = accept(result.set)) descriptor.set = _;
75
+ if (_ = accept(result.init)) initializers.unshift(_);
76
+ } else if (_ = accept(result)) {
77
+ if (kind === "field") initializers.unshift(_);
78
+ else descriptor[key] = _;
79
+ }
80
+ }
81
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
82
+ done = true;
83
+ };
84
+ var __runInitializers = function(thisArg, initializers, value) {
85
+ var useValue = arguments.length > 2;
86
+ for (var i = 0; i < initializers.length; i++) {
87
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
88
+ }
89
+ return useValue ? value : void 0;
57
90
  };
58
- var MultiChannelAssociationCCSet_1, MultiChannelAssociationCCRemove_1, MultiChannelAssociationCCReport_1, MultiChannelAssociationCCGet_1, MultiChannelAssociationCCSupportedGroupingsReport_1;
59
91
  function __assertType(argName, typeName, boundHasError) {
60
92
  const { ZWaveError: ZWaveError2, ZWaveErrorCodes: ZWaveErrorCodes2 } = require("@zwave-js/core");
61
93
  if (boundHasError()) {
@@ -432,515 +464,617 @@ function deserializeMultiChannelAssociationDestination(data) {
432
464
  }
433
465
  return { nodeIds, endpoints };
434
466
  }
435
- let MultiChannelAssociationCCAPI = class MultiChannelAssociationCCAPI2 extends import_API.PhysicalCCAPI {
436
- supportsCommand(cmd) {
437
- switch (cmd) {
438
- case import_Types.MultiChannelAssociationCommand.Get:
439
- case import_Types.MultiChannelAssociationCommand.Set:
440
- case import_Types.MultiChannelAssociationCommand.Report:
441
- case import_Types.MultiChannelAssociationCommand.Remove:
442
- case import_Types.MultiChannelAssociationCommand.SupportedGroupingsGet:
443
- case import_Types.MultiChannelAssociationCommand.SupportedGroupingsReport:
444
- return true;
445
- }
446
- return super.supportsCommand(cmd);
447
- }
448
- /**
449
- * Returns the number of association groups a node supports.
450
- * Association groups are consecutive, starting at 1.
451
- */
452
- async getGroupCount() {
453
- this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.SupportedGroupingsGet);
454
- const cc = new MultiChannelAssociationCCSupportedGroupingsGet({
455
- nodeId: this.endpoint.nodeId,
456
- endpointIndex: this.endpoint.index
457
- });
458
- const response = await this.host.sendCommand(cc, this.commandOptions);
459
- return response?.groupCount;
460
- }
461
- async reportGroupCount(groupCount) {
462
- __assertType("groupCount", "number", __assertType__number.bind(void 0, groupCount));
463
- this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.SupportedGroupingsReport);
464
- const cc = new MultiChannelAssociationCCSupportedGroupingsReport({
465
- nodeId: this.endpoint.nodeId,
466
- endpointIndex: this.endpoint.index,
467
- groupCount
468
- });
469
- await this.host.sendCommand(cc, this.commandOptions);
470
- }
471
- /**
472
- * Returns information about an association group.
473
- */
474
- async getGroup(groupId) {
475
- __assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
476
- this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Get);
477
- const cc = new MultiChannelAssociationCCGet({
478
- nodeId: this.endpoint.nodeId,
479
- endpointIndex: this.endpoint.index,
480
- groupId
481
- });
482
- const response = await this.host.sendCommand(cc, this.commandOptions);
483
- if (response) {
484
- return (0, import_safe3.pick)(response, ["maxNodes", "nodeIds", "endpoints"]);
485
- }
486
- }
487
- async sendReport(options) {
488
- __assertType("options", "MultiChannelAssociationCCReportOptions", __assertType__MultiChannelAssociationCCReportOptions.bind(void 0, options));
489
- this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Report);
490
- const cc = new MultiChannelAssociationCCReport({
491
- nodeId: this.endpoint.nodeId,
492
- endpointIndex: this.endpoint.index,
493
- ...options
494
- });
495
- await this.host.sendCommand(cc, this.commandOptions);
496
- }
497
- /**
498
- * Adds new nodes or endpoints to an association group
499
- */
500
- async addDestinations(options) {
501
- __assertType("options", "MultiChannelAssociationCCSetOptions", __assertType__MultiChannelAssociationCCSetOptions.bind(void 0, options));
502
- this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Set);
503
- const cc = new MultiChannelAssociationCCSet({
504
- nodeId: this.endpoint.nodeId,
505
- endpointIndex: this.endpoint.index,
506
- ...options
507
- });
508
- return this.host.sendCommand(cc, this.commandOptions);
509
- }
510
- /**
511
- * Removes nodes or endpoints from an association group
512
- */
513
- async removeDestinations(options) {
514
- __assertType("options", "MultiChannelAssociationCCRemoveOptions", __assertType__MultiChannelAssociationCCRemoveOptions.bind(void 0, options));
515
- this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Remove);
516
- if (!options.groupId && this.version === 1) {
517
- const currentDestinations = MultiChannelAssociationCC.getAllDestinationsCached(this.host, this.endpoint);
518
- for (const [group, destinations] of currentDestinations) {
519
- const cc = new MultiChannelAssociationCCRemove({
520
- nodeId: this.endpoint.nodeId,
521
- endpointIndex: this.endpoint.index,
522
- groupId: group,
523
- nodeIds: destinations.filter((d) => d.endpoint != void 0).map((d) => d.nodeId),
524
- endpoints: destinations.filter((d) => d.endpoint != void 0)
525
- });
526
- await this.host.sendCommand(cc, this.commandOptions);
467
+ let MultiChannelAssociationCCAPI = (() => {
468
+ let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Multi Channel Association"])];
469
+ let _classDescriptor;
470
+ let _classExtraInitializers = [];
471
+ let _classThis;
472
+ let _classSuper = import_API.PhysicalCCAPI;
473
+ var MultiChannelAssociationCCAPI2 = class extends _classSuper {
474
+ static {
475
+ _classThis = this;
476
+ }
477
+ static {
478
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
479
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
480
+ MultiChannelAssociationCCAPI2 = _classThis = _classDescriptor.value;
481
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
482
+ __runInitializers(_classThis, _classExtraInitializers);
483
+ }
484
+ supportsCommand(cmd) {
485
+ switch (cmd) {
486
+ case import_Types.MultiChannelAssociationCommand.Get:
487
+ case import_Types.MultiChannelAssociationCommand.Set:
488
+ case import_Types.MultiChannelAssociationCommand.Report:
489
+ case import_Types.MultiChannelAssociationCommand.Remove:
490
+ case import_Types.MultiChannelAssociationCommand.SupportedGroupingsGet:
491
+ case import_Types.MultiChannelAssociationCommand.SupportedGroupingsReport:
492
+ return true;
527
493
  }
528
- } else if (options.groupId && options.groupId < 0) {
529
- throw new import_safe.ZWaveError("The group id must not be negative!", import_safe.ZWaveErrorCodes.Argument_Invalid);
530
- } else {
531
- const cc = new MultiChannelAssociationCCRemove({
494
+ return super.supportsCommand(cmd);
495
+ }
496
+ /**
497
+ * Returns the number of association groups a node supports.
498
+ * Association groups are consecutive, starting at 1.
499
+ */
500
+ async getGroupCount() {
501
+ this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.SupportedGroupingsGet);
502
+ const cc = new MultiChannelAssociationCCSupportedGroupingsGet({
503
+ nodeId: this.endpoint.nodeId,
504
+ endpointIndex: this.endpoint.index
505
+ });
506
+ const response = await this.host.sendCommand(cc, this.commandOptions);
507
+ return response?.groupCount;
508
+ }
509
+ async reportGroupCount(groupCount) {
510
+ __assertType("groupCount", "number", __assertType__number.bind(void 0, groupCount));
511
+ this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.SupportedGroupingsReport);
512
+ const cc = new MultiChannelAssociationCCSupportedGroupingsReport({
513
+ nodeId: this.endpoint.nodeId,
514
+ endpointIndex: this.endpoint.index,
515
+ groupCount
516
+ });
517
+ await this.host.sendCommand(cc, this.commandOptions);
518
+ }
519
+ /**
520
+ * Returns information about an association group.
521
+ */
522
+ async getGroup(groupId) {
523
+ __assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
524
+ this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Get);
525
+ const cc = new MultiChannelAssociationCCGet({
526
+ nodeId: this.endpoint.nodeId,
527
+ endpointIndex: this.endpoint.index,
528
+ groupId
529
+ });
530
+ const response = await this.host.sendCommand(cc, this.commandOptions);
531
+ if (response) {
532
+ return (0, import_safe3.pick)(response, ["maxNodes", "nodeIds", "endpoints"]);
533
+ }
534
+ }
535
+ async sendReport(options) {
536
+ __assertType("options", "MultiChannelAssociationCCReportOptions", __assertType__MultiChannelAssociationCCReportOptions.bind(void 0, options));
537
+ this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Report);
538
+ const cc = new MultiChannelAssociationCCReport({
539
+ nodeId: this.endpoint.nodeId,
540
+ endpointIndex: this.endpoint.index,
541
+ ...options
542
+ });
543
+ await this.host.sendCommand(cc, this.commandOptions);
544
+ }
545
+ /**
546
+ * Adds new nodes or endpoints to an association group
547
+ */
548
+ async addDestinations(options) {
549
+ __assertType("options", "MultiChannelAssociationCCSetOptions", __assertType__MultiChannelAssociationCCSetOptions.bind(void 0, options));
550
+ this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Set);
551
+ const cc = new MultiChannelAssociationCCSet({
532
552
  nodeId: this.endpoint.nodeId,
533
553
  endpointIndex: this.endpoint.index,
534
554
  ...options
535
555
  });
536
556
  return this.host.sendCommand(cc, this.commandOptions);
537
557
  }
538
- }
539
- };
540
- MultiChannelAssociationCCAPI = __decorate([
541
- (0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Multi Channel Association"])
542
- ], MultiChannelAssociationCCAPI);
543
- let MultiChannelAssociationCC = class MultiChannelAssociationCC2 extends import_CommandClass.CommandClass {
544
- determineRequiredCCInterviews() {
545
- return [
546
- ...super.determineRequiredCCInterviews(),
547
- import_safe.CommandClasses["Z-Wave Plus Info"],
548
- // We need information about endpoints to correctly configure the lifeline associations
549
- import_safe.CommandClasses["Multi Channel"],
550
- // AssociationCC will short-circuit if this CC is supported
551
- import_safe.CommandClasses.Association
552
- ];
553
- }
554
- /**
555
- * Returns the number of association groups reported by the node/endpoint.
556
- * This only works AFTER the interview process
557
- */
558
- static getGroupCountCached(ctx, endpoint) {
559
- return ctx.getValueDB(endpoint.nodeId).getValue(MultiChannelAssociationCCValues.groupCount.endpoint(endpoint.index)) || 0;
560
- }
561
- /**
562
- * Returns the number of nodes an association group supports.
563
- * This only works AFTER the interview process
564
- */
565
- static getMaxNodesCached(ctx, endpoint, groupId) {
566
- return ctx.getValueDB(endpoint.nodeId).getValue(MultiChannelAssociationCCValues.maxNodes(groupId).endpoint(endpoint.index)) ?? 0;
567
- }
568
- /**
569
- * Returns all the destinations of all association groups reported by the node/endpoint.
570
- * This only works AFTER the interview process
571
- */
572
- static getAllDestinationsCached(ctx, endpoint) {
573
- const ret = /* @__PURE__ */ new Map();
574
- const groupCount = this.getGroupCountCached(ctx, endpoint);
575
- const valueDB = ctx.getValueDB(endpoint.nodeId);
576
- for (let i = 1; i <= groupCount; i++) {
577
- const groupDestinations = [];
578
- const nodes = valueDB.getValue(MultiChannelAssociationCCValues.nodeIds(i).endpoint(endpoint.index)) ?? [];
579
- groupDestinations.push(...nodes.map((nodeId) => ({ nodeId })));
580
- const endpoints = valueDB.getValue(MultiChannelAssociationCCValues.endpoints(i).endpoint(endpoint.index)) ?? [];
581
- for (const ep of endpoints) {
582
- if (typeof ep.endpoint === "number") {
583
- groupDestinations.push({
584
- nodeId: ep.nodeId,
585
- endpoint: ep.endpoint
558
+ /**
559
+ * Removes nodes or endpoints from an association group
560
+ */
561
+ async removeDestinations(options) {
562
+ __assertType("options", "MultiChannelAssociationCCRemoveOptions", __assertType__MultiChannelAssociationCCRemoveOptions.bind(void 0, options));
563
+ this.assertSupportsCommand(import_Types.MultiChannelAssociationCommand, import_Types.MultiChannelAssociationCommand.Remove);
564
+ if (!options.groupId && this.version === 1) {
565
+ const currentDestinations = MultiChannelAssociationCC.getAllDestinationsCached(this.host, this.endpoint);
566
+ for (const [group, destinations] of currentDestinations) {
567
+ const cc = new MultiChannelAssociationCCRemove({
568
+ nodeId: this.endpoint.nodeId,
569
+ endpointIndex: this.endpoint.index,
570
+ groupId: group,
571
+ nodeIds: destinations.filter((d) => d.endpoint != void 0).map((d) => d.nodeId),
572
+ endpoints: destinations.filter((d) => d.endpoint != void 0)
586
573
  });
587
- } else {
588
- groupDestinations.push(...ep.endpoint.map((e) => ({
589
- nodeId: ep.nodeId,
590
- endpoint: e
591
- })));
574
+ await this.host.sendCommand(cc, this.commandOptions);
575
+ }
576
+ } else if (options.groupId && options.groupId < 0) {
577
+ throw new import_safe.ZWaveError("The group id must not be negative!", import_safe.ZWaveErrorCodes.Argument_Invalid);
578
+ } else {
579
+ const cc = new MultiChannelAssociationCCRemove({
580
+ nodeId: this.endpoint.nodeId,
581
+ endpointIndex: this.endpoint.index,
582
+ ...options
583
+ });
584
+ return this.host.sendCommand(cc, this.commandOptions);
585
+ }
586
+ }
587
+ };
588
+ return MultiChannelAssociationCCAPI2 = _classThis;
589
+ })();
590
+ let MultiChannelAssociationCC = (() => {
591
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Multi Channel Association"]), (0, import_CommandClassDecorators.implementedVersion)(5), (0, import_CommandClassDecorators.ccValues)(MultiChannelAssociationCCValues)];
592
+ let _classDescriptor;
593
+ let _classExtraInitializers = [];
594
+ let _classThis;
595
+ let _classSuper = import_CommandClass.CommandClass;
596
+ var MultiChannelAssociationCC2 = class extends _classSuper {
597
+ static {
598
+ _classThis = this;
599
+ }
600
+ static {
601
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
602
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
603
+ MultiChannelAssociationCC2 = _classThis = _classDescriptor.value;
604
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
605
+ __runInitializers(_classThis, _classExtraInitializers);
606
+ }
607
+ determineRequiredCCInterviews() {
608
+ return [
609
+ ...super.determineRequiredCCInterviews(),
610
+ import_safe.CommandClasses["Z-Wave Plus Info"],
611
+ // We need information about endpoints to correctly configure the lifeline associations
612
+ import_safe.CommandClasses["Multi Channel"],
613
+ // AssociationCC will short-circuit if this CC is supported
614
+ import_safe.CommandClasses.Association
615
+ ];
616
+ }
617
+ /**
618
+ * Returns the number of association groups reported by the node/endpoint.
619
+ * This only works AFTER the interview process
620
+ */
621
+ static getGroupCountCached(ctx, endpoint) {
622
+ return ctx.getValueDB(endpoint.nodeId).getValue(MultiChannelAssociationCCValues.groupCount.endpoint(endpoint.index)) || 0;
623
+ }
624
+ /**
625
+ * Returns the number of nodes an association group supports.
626
+ * This only works AFTER the interview process
627
+ */
628
+ static getMaxNodesCached(ctx, endpoint, groupId) {
629
+ return ctx.getValueDB(endpoint.nodeId).getValue(MultiChannelAssociationCCValues.maxNodes(groupId).endpoint(endpoint.index)) ?? 0;
630
+ }
631
+ /**
632
+ * Returns all the destinations of all association groups reported by the node/endpoint.
633
+ * This only works AFTER the interview process
634
+ */
635
+ static getAllDestinationsCached(ctx, endpoint) {
636
+ const ret = /* @__PURE__ */ new Map();
637
+ const groupCount = this.getGroupCountCached(ctx, endpoint);
638
+ const valueDB = ctx.getValueDB(endpoint.nodeId);
639
+ for (let i = 1; i <= groupCount; i++) {
640
+ const groupDestinations = [];
641
+ const nodes = valueDB.getValue(MultiChannelAssociationCCValues.nodeIds(i).endpoint(endpoint.index)) ?? [];
642
+ groupDestinations.push(...nodes.map((nodeId) => ({ nodeId })));
643
+ const endpoints = valueDB.getValue(MultiChannelAssociationCCValues.endpoints(i).endpoint(endpoint.index)) ?? [];
644
+ for (const ep of endpoints) {
645
+ if (typeof ep.endpoint === "number") {
646
+ groupDestinations.push({
647
+ nodeId: ep.nodeId,
648
+ endpoint: ep.endpoint
649
+ });
650
+ } else {
651
+ groupDestinations.push(...ep.endpoint.map((e) => ({
652
+ nodeId: ep.nodeId,
653
+ endpoint: e
654
+ })));
655
+ }
592
656
  }
657
+ ret.set(
658
+ i,
659
+ // Filter out duplicates
660
+ groupDestinations.filter((addr, index) => index === groupDestinations.findIndex(({ nodeId, endpoint: endpoint2 }) => nodeId === addr.nodeId && endpoint2 === addr.endpoint))
661
+ );
593
662
  }
594
- ret.set(
595
- i,
596
- // Filter out duplicates
597
- groupDestinations.filter((addr, index) => index === groupDestinations.findIndex(({ nodeId, endpoint: endpoint2 }) => nodeId === addr.nodeId && endpoint2 === addr.endpoint))
598
- );
599
- }
600
- return ret;
601
- }
602
- async interview(ctx) {
603
- const node = this.getNode(ctx);
604
- const endpoint = this.getEndpoint(ctx);
605
- const mcAPI = import_API.CCAPI.create(import_safe.CommandClasses["Multi Channel Association"], ctx, endpoint);
606
- ctx.logNode(node.id, {
607
- endpoint: this.endpointIndex,
608
- message: `Interviewing ${this.ccName}...`,
609
- direction: "none"
610
- });
611
- ctx.logNode(node.id, {
612
- endpoint: this.endpointIndex,
613
- message: "querying number of multi channel association groups...",
614
- direction: "outbound"
615
- });
616
- const mcGroupCount = await mcAPI.getGroupCount();
617
- if (mcGroupCount != void 0) {
618
- ctx.logNode(node.id, {
619
- endpoint: this.endpointIndex,
620
- message: `supports ${mcGroupCount} multi channel association groups`,
621
- direction: "inbound"
622
- });
623
- } else {
663
+ return ret;
664
+ }
665
+ async interview(ctx) {
666
+ const node = this.getNode(ctx);
667
+ const endpoint = this.getEndpoint(ctx);
668
+ const mcAPI = import_API.CCAPI.create(import_safe.CommandClasses["Multi Channel Association"], ctx, endpoint);
624
669
  ctx.logNode(node.id, {
625
670
  endpoint: this.endpointIndex,
626
- message: "Querying multi channel association groups timed out, skipping interview...",
627
- level: "warn"
671
+ message: `Interviewing ${this.ccName}...`,
672
+ direction: "none"
628
673
  });
629
- return;
630
- }
631
- await this.refreshValues(ctx);
632
- await ccUtils.configureLifelineAssociations(ctx, endpoint);
633
- this.setInterviewComplete(ctx, true);
634
- }
635
- async refreshValues(ctx) {
636
- const node = this.getNode(ctx);
637
- const endpoint = this.getEndpoint(ctx);
638
- const mcAPI = import_API.CCAPI.create(import_safe.CommandClasses["Multi Channel Association"], ctx, endpoint).withOptions({
639
- priority: import_safe.MessagePriority.NodeQuery
640
- });
641
- const assocAPI = import_API.CCAPI.create(import_safe.CommandClasses.Association, ctx, endpoint).withOptions({
642
- priority: import_safe.MessagePriority.NodeQuery
643
- });
644
- const mcGroupCount = this.getValue(ctx, MultiChannelAssociationCCValues.groupCount) ?? 0;
645
- const assocGroupCount = this.getValue(ctx, import_AssociationCC.AssociationCCValues.groupCount) || mcGroupCount;
646
- for (let groupId = 1; groupId <= mcGroupCount; groupId++) {
647
674
  ctx.logNode(node.id, {
648
675
  endpoint: this.endpointIndex,
649
- message: `querying multi channel association group #${groupId}...`,
676
+ message: "querying number of multi channel association groups...",
650
677
  direction: "outbound"
651
678
  });
652
- const group = await mcAPI.getGroup(groupId);
653
- if (!group)
654
- continue;
655
- const logMessage = `received information for multi channel association group #${groupId}:
656
- maximum # of nodes: ${group.maxNodes}
657
- currently assigned nodes: ${group.nodeIds.map(String).join(", ")}
658
- currently assigned endpoints: ${group.endpoints.map(({ nodeId, endpoint: endpoint2 }) => {
659
- if (typeof endpoint2 === "number") {
660
- return `${nodeId}:${endpoint2}`;
661
- } else {
662
- return `${nodeId}:[${endpoint2.map(String).join(", ")}]`;
663
- }
664
- }).join("")}`;
665
- ctx.logNode(node.id, {
666
- endpoint: this.endpointIndex,
667
- message: logMessage,
668
- direction: "inbound"
669
- });
679
+ const mcGroupCount = await mcAPI.getGroupCount();
680
+ if (mcGroupCount != void 0) {
681
+ ctx.logNode(node.id, {
682
+ endpoint: this.endpointIndex,
683
+ message: `supports ${mcGroupCount} multi channel association groups`,
684
+ direction: "inbound"
685
+ });
686
+ } else {
687
+ ctx.logNode(node.id, {
688
+ endpoint: this.endpointIndex,
689
+ message: "Querying multi channel association groups timed out, skipping interview...",
690
+ level: "warn"
691
+ });
692
+ return;
693
+ }
694
+ await this.refreshValues(ctx);
695
+ await ccUtils.configureLifelineAssociations(ctx, endpoint);
696
+ this.setInterviewComplete(ctx, true);
670
697
  }
671
- if (assocAPI.isSupported() && assocGroupCount > mcGroupCount) {
672
- ctx.logNode(node.id, {
673
- endpoint: this.endpointIndex,
674
- message: `querying additional non-multi-channel association groups...`,
675
- direction: "outbound"
698
+ async refreshValues(ctx) {
699
+ const node = this.getNode(ctx);
700
+ const endpoint = this.getEndpoint(ctx);
701
+ const mcAPI = import_API.CCAPI.create(import_safe.CommandClasses["Multi Channel Association"], ctx, endpoint).withOptions({
702
+ priority: import_safe.MessagePriority.NodeQuery
703
+ });
704
+ const assocAPI = import_API.CCAPI.create(import_safe.CommandClasses.Association, ctx, endpoint).withOptions({
705
+ priority: import_safe.MessagePriority.NodeQuery
676
706
  });
677
- for (let groupId = mcGroupCount + 1; groupId <= assocGroupCount; groupId++) {
707
+ const mcGroupCount = this.getValue(ctx, MultiChannelAssociationCCValues.groupCount) ?? 0;
708
+ const assocGroupCount = this.getValue(ctx, import_AssociationCC.AssociationCCValues.groupCount) || mcGroupCount;
709
+ for (let groupId = 1; groupId <= mcGroupCount; groupId++) {
678
710
  ctx.logNode(node.id, {
679
711
  endpoint: this.endpointIndex,
680
- message: `querying association group #${groupId}...`,
712
+ message: `querying multi channel association group #${groupId}...`,
681
713
  direction: "outbound"
682
714
  });
683
- const group = await assocAPI.getGroup(groupId);
715
+ const group = await mcAPI.getGroup(groupId);
684
716
  if (!group)
685
717
  continue;
686
- const logMessage = `received information for association group #${groupId}:
718
+ const logMessage = `received information for multi channel association group #${groupId}:
687
719
  maximum # of nodes: ${group.maxNodes}
688
- currently assigned nodes: ${group.nodeIds.map(String).join(", ")}`;
720
+ currently assigned nodes: ${group.nodeIds.map(String).join(", ")}
721
+ currently assigned endpoints: ${group.endpoints.map(({ nodeId, endpoint: endpoint2 }) => {
722
+ if (typeof endpoint2 === "number") {
723
+ return `${nodeId}:${endpoint2}`;
724
+ } else {
725
+ return `${nodeId}:[${endpoint2.map(String).join(", ")}]`;
726
+ }
727
+ }).join("")}`;
689
728
  ctx.logNode(node.id, {
690
729
  endpoint: this.endpointIndex,
691
730
  message: logMessage,
692
731
  direction: "inbound"
693
732
  });
694
733
  }
734
+ if (assocAPI.isSupported() && assocGroupCount > mcGroupCount) {
735
+ ctx.logNode(node.id, {
736
+ endpoint: this.endpointIndex,
737
+ message: `querying additional non-multi-channel association groups...`,
738
+ direction: "outbound"
739
+ });
740
+ for (let groupId = mcGroupCount + 1; groupId <= assocGroupCount; groupId++) {
741
+ ctx.logNode(node.id, {
742
+ endpoint: this.endpointIndex,
743
+ message: `querying association group #${groupId}...`,
744
+ direction: "outbound"
745
+ });
746
+ const group = await assocAPI.getGroup(groupId);
747
+ if (!group)
748
+ continue;
749
+ const logMessage = `received information for association group #${groupId}:
750
+ maximum # of nodes: ${group.maxNodes}
751
+ currently assigned nodes: ${group.nodeIds.map(String).join(", ")}`;
752
+ ctx.logNode(node.id, {
753
+ endpoint: this.endpointIndex,
754
+ message: logMessage,
755
+ direction: "inbound"
756
+ });
757
+ }
758
+ }
695
759
  }
696
- }
697
- };
698
- MultiChannelAssociationCC = __decorate([
699
- (0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Multi Channel Association"]),
700
- (0, import_CommandClassDecorators.implementedVersion)(5),
701
- (0, import_CommandClassDecorators.ccValues)(MultiChannelAssociationCCValues)
702
- ], MultiChannelAssociationCC);
703
- let MultiChannelAssociationCCSet = MultiChannelAssociationCCSet_1 = class MultiChannelAssociationCCSet2 extends MultiChannelAssociationCC {
704
- constructor(options) {
705
- super(options);
706
- if (options.groupId < 1) {
707
- throw new import_safe.ZWaveError("The group id must be positive!", import_safe.ZWaveErrorCodes.Argument_Invalid);
708
- }
709
- this.groupId = options.groupId;
710
- this.nodeIds = "nodeIds" in options && options.nodeIds || [];
711
- if (this.nodeIds.some((n) => n < 1 || n > import_safe.MAX_NODES)) {
712
- throw new import_safe.ZWaveError(`All node IDs must be between 1 and ${import_safe.MAX_NODES}!`, import_safe.ZWaveErrorCodes.Argument_Invalid);
713
- }
714
- this.endpoints = "endpoints" in options && options.endpoints || [];
715
- }
716
- static from(raw, ctx) {
717
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
718
- const groupId = raw.payload[0];
719
- const { nodeIds, endpoints } = deserializeMultiChannelAssociationDestination(raw.payload.subarray(1));
720
- return new MultiChannelAssociationCCSet_1({
721
- nodeId: ctx.sourceNodeId,
722
- groupId,
723
- nodeIds,
724
- endpoints
725
- });
726
- }
727
- groupId;
728
- nodeIds;
729
- endpoints;
730
- serialize(ctx) {
731
- this.payload = import_safe2.Bytes.concat([
732
- import_safe2.Bytes.from([this.groupId]),
733
- serializeMultiChannelAssociationDestination(this.nodeIds, this.endpoints)
734
- ]);
735
- return super.serialize(ctx);
736
- }
737
- toLogEntry(ctx) {
738
- return {
739
- ...super.toLogEntry(ctx),
740
- message: {
741
- "group id": this.groupId,
742
- "node ids": this.nodeIds.join(", "),
743
- endpoints: endpointAddressesToString(this.endpoints)
760
+ };
761
+ return MultiChannelAssociationCC2 = _classThis;
762
+ })();
763
+ let MultiChannelAssociationCCSet = (() => {
764
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Set), (0, import_CommandClassDecorators.useSupervision)()];
765
+ let _classDescriptor;
766
+ let _classExtraInitializers = [];
767
+ let _classThis;
768
+ let _classSuper = MultiChannelAssociationCC;
769
+ var MultiChannelAssociationCCSet2 = class extends _classSuper {
770
+ static {
771
+ _classThis = this;
772
+ }
773
+ static {
774
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
775
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
776
+ MultiChannelAssociationCCSet2 = _classThis = _classDescriptor.value;
777
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
778
+ __runInitializers(_classThis, _classExtraInitializers);
779
+ }
780
+ constructor(options) {
781
+ super(options);
782
+ if (options.groupId < 1) {
783
+ throw new import_safe.ZWaveError("The group id must be positive!", import_safe.ZWaveErrorCodes.Argument_Invalid);
744
784
  }
745
- };
746
- }
747
- };
748
- MultiChannelAssociationCCSet = MultiChannelAssociationCCSet_1 = __decorate([
749
- (0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Set),
750
- (0, import_CommandClassDecorators.useSupervision)()
751
- ], MultiChannelAssociationCCSet);
752
- let MultiChannelAssociationCCRemove = MultiChannelAssociationCCRemove_1 = class MultiChannelAssociationCCRemove2 extends MultiChannelAssociationCC {
753
- constructor(options) {
754
- super(options);
755
- this.groupId = options.groupId;
756
- this.nodeIds = options.nodeIds;
757
- this.endpoints = options.endpoints;
758
- }
759
- static from(raw, ctx) {
760
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
761
- const groupId = raw.payload[0];
762
- const { nodeIds, endpoints } = deserializeMultiChannelAssociationDestination(raw.payload.subarray(1));
763
- return new MultiChannelAssociationCCRemove_1({
764
- nodeId: ctx.sourceNodeId,
765
- groupId,
766
- nodeIds,
767
- endpoints
768
- });
769
- }
770
- groupId;
771
- nodeIds;
772
- endpoints;
773
- serialize(ctx) {
774
- this.payload = import_safe2.Bytes.concat([
775
- import_safe2.Bytes.from([this.groupId || 0]),
776
- serializeMultiChannelAssociationDestination(this.nodeIds || [], this.endpoints || [])
777
- ]);
778
- return super.serialize(ctx);
779
- }
780
- toLogEntry(ctx) {
781
- const message = {
782
- "group id": this.groupId || "(all groups)"
783
- };
784
- if (this.nodeIds) {
785
- message["node ids"] = this.nodeIds.join(", ");
785
+ this.groupId = options.groupId;
786
+ this.nodeIds = "nodeIds" in options && options.nodeIds || [];
787
+ if (this.nodeIds.some((n) => n < 1 || n > import_safe.MAX_NODES)) {
788
+ throw new import_safe.ZWaveError(`All node IDs must be between 1 and ${import_safe.MAX_NODES}!`, import_safe.ZWaveErrorCodes.Argument_Invalid);
789
+ }
790
+ this.endpoints = "endpoints" in options && options.endpoints || [];
786
791
  }
787
- if (this.endpoints) {
788
- message.endpoints = endpointAddressesToString(this.endpoints);
792
+ static from(raw, ctx) {
793
+ (0, import_safe.validatePayload)(raw.payload.length >= 1);
794
+ const groupId = raw.payload[0];
795
+ const { nodeIds, endpoints } = deserializeMultiChannelAssociationDestination(raw.payload.subarray(1));
796
+ return new this({
797
+ nodeId: ctx.sourceNodeId,
798
+ groupId,
799
+ nodeIds,
800
+ endpoints
801
+ });
789
802
  }
790
- return {
791
- ...super.toLogEntry(ctx),
792
- message
793
- };
794
- }
795
- };
796
- MultiChannelAssociationCCRemove = MultiChannelAssociationCCRemove_1 = __decorate([
797
- (0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Remove),
798
- (0, import_CommandClassDecorators.useSupervision)()
799
- ], MultiChannelAssociationCCRemove);
800
- let MultiChannelAssociationCCReport = MultiChannelAssociationCCReport_1 = class MultiChannelAssociationCCReport2 extends MultiChannelAssociationCC {
801
- constructor(options) {
802
- super(options);
803
- this.groupId = options.groupId;
804
- this.maxNodes = options.maxNodes;
805
- this.nodeIds = options.nodeIds;
806
- this.endpoints = options.endpoints;
807
- this.reportsToFollow = options.reportsToFollow;
808
- }
809
- static from(raw, ctx) {
810
- (0, import_safe.validatePayload)(raw.payload.length >= 3);
811
- const groupId = raw.payload[0];
812
- const maxNodes = raw.payload[1];
813
- const reportsToFollow = raw.payload[2];
814
- const { nodeIds, endpoints } = deserializeMultiChannelAssociationDestination(raw.payload.subarray(3));
815
- return new MultiChannelAssociationCCReport_1({
816
- nodeId: ctx.sourceNodeId,
817
- groupId,
818
- maxNodes,
819
- nodeIds,
820
- endpoints,
821
- reportsToFollow
822
- });
823
- }
824
- groupId;
825
- maxNodes;
826
- nodeIds;
827
- endpoints;
828
- reportsToFollow;
829
- getPartialCCSessionId() {
830
- return { groupId: this.groupId };
831
- }
832
- expectMoreMessages() {
833
- return this.reportsToFollow > 0;
834
- }
835
- mergePartialCCs(partials, _ctx) {
836
- this.nodeIds = [...partials, this].map((report) => [...report.nodeIds]).reduce((prev, cur) => prev.concat(...cur), []);
837
- this.endpoints = [...partials, this].map((report) => [...report.endpoints]).reduce((prev, cur) => prev.concat(...cur), []);
838
- }
839
- serialize(ctx) {
840
- const destinations = serializeMultiChannelAssociationDestination(this.nodeIds, this.endpoints);
841
- this.payload = import_safe2.Bytes.concat([
842
- import_safe2.Bytes.from([
843
- this.groupId,
844
- this.maxNodes,
845
- this.reportsToFollow
846
- ]),
847
- destinations
848
- ]);
849
- return super.serialize(ctx);
850
- }
851
- toLogEntry(ctx) {
852
- return {
853
- ...super.toLogEntry(ctx),
854
- message: {
855
- "group id": this.groupId,
856
- "maximum # of nodes": this.maxNodes,
857
- "node ids": this.nodeIds.join(", "),
858
- endpoints: endpointAddressesToString(this.endpoints)
803
+ groupId;
804
+ nodeIds;
805
+ endpoints;
806
+ serialize(ctx) {
807
+ this.payload = import_safe2.Bytes.concat([
808
+ import_safe2.Bytes.from([this.groupId]),
809
+ serializeMultiChannelAssociationDestination(this.nodeIds, this.endpoints)
810
+ ]);
811
+ return super.serialize(ctx);
812
+ }
813
+ toLogEntry(ctx) {
814
+ return {
815
+ ...super.toLogEntry(ctx),
816
+ message: {
817
+ "group id": this.groupId,
818
+ "node ids": this.nodeIds.join(", "),
819
+ endpoints: endpointAddressesToString(this.endpoints)
820
+ }
821
+ };
822
+ }
823
+ };
824
+ return MultiChannelAssociationCCSet2 = _classThis;
825
+ })();
826
+ let MultiChannelAssociationCCRemove = (() => {
827
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Remove), (0, import_CommandClassDecorators.useSupervision)()];
828
+ let _classDescriptor;
829
+ let _classExtraInitializers = [];
830
+ let _classThis;
831
+ let _classSuper = MultiChannelAssociationCC;
832
+ var MultiChannelAssociationCCRemove2 = class extends _classSuper {
833
+ static {
834
+ _classThis = this;
835
+ }
836
+ static {
837
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
838
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
839
+ MultiChannelAssociationCCRemove2 = _classThis = _classDescriptor.value;
840
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
841
+ __runInitializers(_classThis, _classExtraInitializers);
842
+ }
843
+ constructor(options) {
844
+ super(options);
845
+ this.groupId = options.groupId;
846
+ this.nodeIds = options.nodeIds;
847
+ this.endpoints = options.endpoints;
848
+ }
849
+ static from(raw, ctx) {
850
+ (0, import_safe.validatePayload)(raw.payload.length >= 1);
851
+ const groupId = raw.payload[0];
852
+ const { nodeIds, endpoints } = deserializeMultiChannelAssociationDestination(raw.payload.subarray(1));
853
+ return new this({
854
+ nodeId: ctx.sourceNodeId,
855
+ groupId,
856
+ nodeIds,
857
+ endpoints
858
+ });
859
+ }
860
+ groupId;
861
+ nodeIds;
862
+ endpoints;
863
+ serialize(ctx) {
864
+ this.payload = import_safe2.Bytes.concat([
865
+ import_safe2.Bytes.from([this.groupId || 0]),
866
+ serializeMultiChannelAssociationDestination(this.nodeIds || [], this.endpoints || [])
867
+ ]);
868
+ return super.serialize(ctx);
869
+ }
870
+ toLogEntry(ctx) {
871
+ const message = {
872
+ "group id": this.groupId || "(all groups)"
873
+ };
874
+ if (this.nodeIds) {
875
+ message["node ids"] = this.nodeIds.join(", ");
859
876
  }
860
- };
861
- }
862
- };
863
- __decorate([
864
- (0, import_CommandClassDecorators.ccValue)(MultiChannelAssociationCCValues.maxNodes, (self) => [self.groupId])
865
- ], MultiChannelAssociationCCReport.prototype, "maxNodes", void 0);
866
- __decorate([
867
- (0, import_CommandClassDecorators.ccValue)(MultiChannelAssociationCCValues.nodeIds, (self) => [self.groupId])
868
- ], MultiChannelAssociationCCReport.prototype, "nodeIds", void 0);
869
- __decorate([
870
- (0, import_CommandClassDecorators.ccValue)(MultiChannelAssociationCCValues.endpoints, (self) => [self.groupId])
871
- ], MultiChannelAssociationCCReport.prototype, "endpoints", void 0);
872
- MultiChannelAssociationCCReport = MultiChannelAssociationCCReport_1 = __decorate([
873
- (0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Report)
874
- ], MultiChannelAssociationCCReport);
875
- let MultiChannelAssociationCCGet = MultiChannelAssociationCCGet_1 = class MultiChannelAssociationCCGet2 extends MultiChannelAssociationCC {
876
- constructor(options) {
877
- super(options);
878
- if (options.groupId < 1) {
879
- throw new import_safe.ZWaveError("The group id must be positive!", import_safe.ZWaveErrorCodes.Argument_Invalid);
880
- }
881
- this.groupId = options.groupId;
882
- }
883
- static from(raw, ctx) {
884
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
885
- const groupId = raw.payload[0];
886
- return new MultiChannelAssociationCCGet_1({
887
- nodeId: ctx.sourceNodeId,
888
- groupId
889
- });
890
- }
891
- groupId;
892
- serialize(ctx) {
893
- this.payload = import_safe2.Bytes.from([this.groupId]);
894
- return super.serialize(ctx);
895
- }
896
- toLogEntry(ctx) {
897
- return {
898
- ...super.toLogEntry(ctx),
899
- message: { "group id": this.groupId }
900
- };
901
- }
902
- };
903
- MultiChannelAssociationCCGet = MultiChannelAssociationCCGet_1 = __decorate([
904
- (0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Get),
905
- (0, import_CommandClassDecorators.expectedCCResponse)(MultiChannelAssociationCCReport)
906
- ], MultiChannelAssociationCCGet);
907
- let MultiChannelAssociationCCSupportedGroupingsReport = MultiChannelAssociationCCSupportedGroupingsReport_1 = class MultiChannelAssociationCCSupportedGroupingsReport2 extends MultiChannelAssociationCC {
908
- constructor(options) {
909
- super(options);
910
- this.groupCount = options.groupCount;
911
- }
912
- static from(raw, ctx) {
913
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
914
- const groupCount = raw.payload[0];
915
- return new MultiChannelAssociationCCSupportedGroupingsReport_1({
916
- nodeId: ctx.sourceNodeId,
917
- groupCount
918
- });
919
- }
920
- groupCount;
921
- serialize(ctx) {
922
- this.payload = import_safe2.Bytes.from([this.groupCount]);
923
- return super.serialize(ctx);
924
- }
925
- toLogEntry(ctx) {
926
- return {
927
- ...super.toLogEntry(ctx),
928
- message: { "group count": this.groupCount }
929
- };
930
- }
931
- };
932
- __decorate([
933
- (0, import_CommandClassDecorators.ccValue)(MultiChannelAssociationCCValues.groupCount)
934
- ], MultiChannelAssociationCCSupportedGroupingsReport.prototype, "groupCount", void 0);
935
- MultiChannelAssociationCCSupportedGroupingsReport = MultiChannelAssociationCCSupportedGroupingsReport_1 = __decorate([
936
- (0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.SupportedGroupingsReport)
937
- ], MultiChannelAssociationCCSupportedGroupingsReport);
938
- let MultiChannelAssociationCCSupportedGroupingsGet = class MultiChannelAssociationCCSupportedGroupingsGet2 extends MultiChannelAssociationCC {
939
- };
940
- MultiChannelAssociationCCSupportedGroupingsGet = __decorate([
941
- (0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.SupportedGroupingsGet),
942
- (0, import_CommandClassDecorators.expectedCCResponse)(MultiChannelAssociationCCSupportedGroupingsReport)
943
- ], MultiChannelAssociationCCSupportedGroupingsGet);
877
+ if (this.endpoints) {
878
+ message.endpoints = endpointAddressesToString(this.endpoints);
879
+ }
880
+ return {
881
+ ...super.toLogEntry(ctx),
882
+ message
883
+ };
884
+ }
885
+ };
886
+ return MultiChannelAssociationCCRemove2 = _classThis;
887
+ })();
888
+ let MultiChannelAssociationCCReport = (() => {
889
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("maxNodes", MultiChannelAssociationCCValues.maxNodes, (self) => [self.groupId]), (0, import_CommandClassDecorators.ccValueProperty)("nodeIds", MultiChannelAssociationCCValues.nodeIds, (self) => [self.groupId]), (0, import_CommandClassDecorators.ccValueProperty)("endpoints", MultiChannelAssociationCCValues.endpoints, (self) => [self.groupId])];
890
+ let _classDescriptor;
891
+ let _classExtraInitializers = [];
892
+ let _classThis;
893
+ let _classSuper = MultiChannelAssociationCC;
894
+ var MultiChannelAssociationCCReport2 = class extends _classSuper {
895
+ static {
896
+ _classThis = this;
897
+ }
898
+ static {
899
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
900
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
901
+ MultiChannelAssociationCCReport2 = _classThis = _classDescriptor.value;
902
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
903
+ __runInitializers(_classThis, _classExtraInitializers);
904
+ }
905
+ constructor(options) {
906
+ super(options);
907
+ this.groupId = options.groupId;
908
+ this.maxNodes = options.maxNodes;
909
+ this.nodeIds = options.nodeIds;
910
+ this.endpoints = options.endpoints;
911
+ this.reportsToFollow = options.reportsToFollow;
912
+ }
913
+ static from(raw, ctx) {
914
+ (0, import_safe.validatePayload)(raw.payload.length >= 3);
915
+ const groupId = raw.payload[0];
916
+ const maxNodes = raw.payload[1];
917
+ const reportsToFollow = raw.payload[2];
918
+ const { nodeIds, endpoints } = deserializeMultiChannelAssociationDestination(raw.payload.subarray(3));
919
+ return new this({
920
+ nodeId: ctx.sourceNodeId,
921
+ groupId,
922
+ maxNodes,
923
+ nodeIds,
924
+ endpoints,
925
+ reportsToFollow
926
+ });
927
+ }
928
+ groupId;
929
+ maxNodes;
930
+ nodeIds;
931
+ endpoints;
932
+ reportsToFollow;
933
+ getPartialCCSessionId() {
934
+ return { groupId: this.groupId };
935
+ }
936
+ expectMoreMessages() {
937
+ return this.reportsToFollow > 0;
938
+ }
939
+ mergePartialCCs(partials, _ctx) {
940
+ this.nodeIds = [...partials, this].map((report) => [...report.nodeIds]).reduce((prev, cur) => prev.concat(...cur), []);
941
+ this.endpoints = [...partials, this].map((report) => [...report.endpoints]).reduce((prev, cur) => prev.concat(...cur), []);
942
+ }
943
+ serialize(ctx) {
944
+ const destinations = serializeMultiChannelAssociationDestination(this.nodeIds, this.endpoints);
945
+ this.payload = import_safe2.Bytes.concat([
946
+ import_safe2.Bytes.from([
947
+ this.groupId,
948
+ this.maxNodes,
949
+ this.reportsToFollow
950
+ ]),
951
+ destinations
952
+ ]);
953
+ return super.serialize(ctx);
954
+ }
955
+ toLogEntry(ctx) {
956
+ return {
957
+ ...super.toLogEntry(ctx),
958
+ message: {
959
+ "group id": this.groupId,
960
+ "maximum # of nodes": this.maxNodes,
961
+ "node ids": this.nodeIds.join(", "),
962
+ endpoints: endpointAddressesToString(this.endpoints)
963
+ }
964
+ };
965
+ }
966
+ };
967
+ return MultiChannelAssociationCCReport2 = _classThis;
968
+ })();
969
+ let MultiChannelAssociationCCGet = (() => {
970
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.Get), (0, import_CommandClassDecorators.expectedCCResponse)(MultiChannelAssociationCCReport)];
971
+ let _classDescriptor;
972
+ let _classExtraInitializers = [];
973
+ let _classThis;
974
+ let _classSuper = MultiChannelAssociationCC;
975
+ var MultiChannelAssociationCCGet2 = class extends _classSuper {
976
+ static {
977
+ _classThis = this;
978
+ }
979
+ static {
980
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
981
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
982
+ MultiChannelAssociationCCGet2 = _classThis = _classDescriptor.value;
983
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
984
+ __runInitializers(_classThis, _classExtraInitializers);
985
+ }
986
+ constructor(options) {
987
+ super(options);
988
+ if (options.groupId < 1) {
989
+ throw new import_safe.ZWaveError("The group id must be positive!", import_safe.ZWaveErrorCodes.Argument_Invalid);
990
+ }
991
+ this.groupId = options.groupId;
992
+ }
993
+ static from(raw, ctx) {
994
+ (0, import_safe.validatePayload)(raw.payload.length >= 1);
995
+ const groupId = raw.payload[0];
996
+ return new this({
997
+ nodeId: ctx.sourceNodeId,
998
+ groupId
999
+ });
1000
+ }
1001
+ groupId;
1002
+ serialize(ctx) {
1003
+ this.payload = import_safe2.Bytes.from([this.groupId]);
1004
+ return super.serialize(ctx);
1005
+ }
1006
+ toLogEntry(ctx) {
1007
+ return {
1008
+ ...super.toLogEntry(ctx),
1009
+ message: { "group id": this.groupId }
1010
+ };
1011
+ }
1012
+ };
1013
+ return MultiChannelAssociationCCGet2 = _classThis;
1014
+ })();
1015
+ let MultiChannelAssociationCCSupportedGroupingsReport = (() => {
1016
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.SupportedGroupingsReport), (0, import_CommandClassDecorators.ccValueProperty)("groupCount", MultiChannelAssociationCCValues.groupCount)];
1017
+ let _classDescriptor;
1018
+ let _classExtraInitializers = [];
1019
+ let _classThis;
1020
+ let _classSuper = MultiChannelAssociationCC;
1021
+ var MultiChannelAssociationCCSupportedGroupingsReport2 = class extends _classSuper {
1022
+ static {
1023
+ _classThis = this;
1024
+ }
1025
+ static {
1026
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1027
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1028
+ MultiChannelAssociationCCSupportedGroupingsReport2 = _classThis = _classDescriptor.value;
1029
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1030
+ __runInitializers(_classThis, _classExtraInitializers);
1031
+ }
1032
+ constructor(options) {
1033
+ super(options);
1034
+ this.groupCount = options.groupCount;
1035
+ }
1036
+ static from(raw, ctx) {
1037
+ (0, import_safe.validatePayload)(raw.payload.length >= 1);
1038
+ const groupCount = raw.payload[0];
1039
+ return new this({
1040
+ nodeId: ctx.sourceNodeId,
1041
+ groupCount
1042
+ });
1043
+ }
1044
+ groupCount;
1045
+ serialize(ctx) {
1046
+ this.payload = import_safe2.Bytes.from([this.groupCount]);
1047
+ return super.serialize(ctx);
1048
+ }
1049
+ toLogEntry(ctx) {
1050
+ return {
1051
+ ...super.toLogEntry(ctx),
1052
+ message: { "group count": this.groupCount }
1053
+ };
1054
+ }
1055
+ };
1056
+ return MultiChannelAssociationCCSupportedGroupingsReport2 = _classThis;
1057
+ })();
1058
+ let MultiChannelAssociationCCSupportedGroupingsGet = (() => {
1059
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.MultiChannelAssociationCommand.SupportedGroupingsGet), (0, import_CommandClassDecorators.expectedCCResponse)(MultiChannelAssociationCCSupportedGroupingsReport)];
1060
+ let _classDescriptor;
1061
+ let _classExtraInitializers = [];
1062
+ let _classThis;
1063
+ let _classSuper = MultiChannelAssociationCC;
1064
+ var MultiChannelAssociationCCSupportedGroupingsGet2 = class extends _classSuper {
1065
+ static {
1066
+ _classThis = this;
1067
+ }
1068
+ static {
1069
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1070
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1071
+ MultiChannelAssociationCCSupportedGroupingsGet2 = _classThis = _classDescriptor.value;
1072
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1073
+ __runInitializers(_classThis, _classExtraInitializers);
1074
+ }
1075
+ };
1076
+ return MultiChannelAssociationCCSupportedGroupingsGet2 = _classThis;
1077
+ })();
944
1078
  // Annotate the CommonJS export names for ESM import in node:
945
1079
  0 && (module.exports = {
946
1080
  MultiChannelAssociationCC,