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

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
@@ -1,10 +1,37 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- 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;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
6
34
  };
7
- var IndicatorCCSet_1, IndicatorCCReport_1, IndicatorCCGet_1, IndicatorCCSupportedReport_1, IndicatorCCSupportedGet_1, IndicatorCCDescriptionReport_1, IndicatorCCDescriptionGet_1;
8
35
  function __assertType(argName, typeName, boundHasError) {
9
36
  const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
10
37
  if (boundHasError()) {
@@ -402,916 +429,1027 @@ function getIndicatorName(indicatorId) {
402
429
  }
403
430
  }
404
431
  const MAX_INDICATOR_OBJECTS = 31;
405
- let IndicatorCCAPI = class IndicatorCCAPI extends CCAPI {
406
- supportsCommand(cmd) {
407
- switch (cmd) {
408
- case IndicatorCommand.Get:
409
- case IndicatorCommand.Report:
410
- return this.isSinglecast();
411
- case IndicatorCommand.Set:
412
- return true; // This is mandatory
413
- case IndicatorCommand.SupportedGet:
414
- case IndicatorCommand.SupportedReport:
415
- return this.version >= 2 && this.isSinglecast();
416
- case IndicatorCommand.DescriptionGet:
417
- case IndicatorCommand.DescriptionReport:
418
- return this.version >= 4 && this.isSinglecast();
419
- }
420
- return super.supportsCommand(cmd);
421
- }
422
- get [SET_VALUE]() {
423
- return async function ({ property, propertyKey }, value) {
424
- if (property === "value") {
425
- // V1 value
426
- if (typeof value !== "number") {
427
- throwWrongValueType(this.ccId, property, "number", typeof value);
428
- }
429
- return this.set(value);
432
+ let IndicatorCCAPI = (() => {
433
+ let _classDecorators = [API(CommandClasses.Indicator)];
434
+ let _classDescriptor;
435
+ let _classExtraInitializers = [];
436
+ let _classThis;
437
+ let _classSuper = CCAPI;
438
+ var IndicatorCCAPI = class extends _classSuper {
439
+ static { _classThis = this; }
440
+ static {
441
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
442
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
443
+ IndicatorCCAPI = _classThis = _classDescriptor.value;
444
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
445
+ __runInitializers(_classThis, _classExtraInitializers);
446
+ }
447
+ supportsCommand(cmd) {
448
+ switch (cmd) {
449
+ case IndicatorCommand.Get:
450
+ case IndicatorCommand.Report:
451
+ return this.isSinglecast();
452
+ case IndicatorCommand.Set:
453
+ return true; // This is mandatory
454
+ case IndicatorCommand.SupportedGet:
455
+ case IndicatorCommand.SupportedReport:
456
+ return this.version >= 2 && this.isSinglecast();
457
+ case IndicatorCommand.DescriptionGet:
458
+ case IndicatorCommand.DescriptionReport:
459
+ return this.version >= 4 && this.isSinglecast();
430
460
  }
431
- else if (typeof property === "number"
432
- && typeof propertyKey === "number") {
433
- const indicatorId = property;
434
- const propertyId = propertyKey;
435
- const expectedType = getIndicatorMetadata(indicatorId, propertyId).type;
436
- // V2+ value
437
- if (typeof value !== expectedType) {
438
- throwWrongValueType(this.ccId, property, expectedType, typeof value);
461
+ return super.supportsCommand(cmd);
462
+ }
463
+ get [SET_VALUE]() {
464
+ return async function ({ property, propertyKey }, value) {
465
+ if (property === "value") {
466
+ // V1 value
467
+ if (typeof value !== "number") {
468
+ throwWrongValueType(this.ccId, property, "number", typeof value);
469
+ }
470
+ return this.set(value);
439
471
  }
440
- return this.set([
441
- {
442
- indicatorId: property,
443
- propertyId: propertyKey,
444
- value: value,
445
- },
446
- ]);
447
- }
448
- else if (property === "identify") {
449
- if (typeof value !== "boolean") {
450
- throwWrongValueType(this.ccId, property, "boolean", typeof value);
472
+ else if (typeof property === "number"
473
+ && typeof propertyKey === "number") {
474
+ const indicatorId = property;
475
+ const propertyId = propertyKey;
476
+ const expectedType = getIndicatorMetadata(indicatorId, propertyId).type;
477
+ // V2+ value
478
+ if (typeof value !== expectedType) {
479
+ throwWrongValueType(this.ccId, property, expectedType, typeof value);
480
+ }
481
+ return this.set([
482
+ {
483
+ indicatorId: property,
484
+ propertyId: propertyKey,
485
+ value: value,
486
+ },
487
+ ]);
488
+ }
489
+ else if (property === "identify") {
490
+ if (typeof value !== "boolean") {
491
+ throwWrongValueType(this.ccId, property, "boolean", typeof value);
492
+ }
493
+ return this.identify();
494
+ }
495
+ else {
496
+ throwUnsupportedProperty(this.ccId, property);
497
+ }
498
+ };
499
+ }
500
+ get [POLL_VALUE]() {
501
+ return async function ({ property }) {
502
+ if (property === "value")
503
+ return this.get();
504
+ if (typeof property === "number") {
505
+ return this.get(property);
451
506
  }
452
- return this.identify();
453
- }
454
- else {
455
507
  throwUnsupportedProperty(this.ccId, property);
508
+ };
509
+ }
510
+ async get(indicatorId) {
511
+ __assertType("indicatorId", "(optional) number", __assertType__optional_number.bind(void 0, indicatorId));
512
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.Get);
513
+ const cc = new IndicatorCCGet({
514
+ nodeId: this.endpoint.nodeId,
515
+ endpointIndex: this.endpoint.index,
516
+ indicatorId,
517
+ });
518
+ const response = await this.host.sendCommand(cc, this.commandOptions);
519
+ if (!response)
520
+ return;
521
+ if (response.values)
522
+ return response.values;
523
+ return response.indicator0Value;
524
+ }
525
+ async set(value) {
526
+ __assertType("value", undefined, __assertType__su__number_sa__5_ea_5_5_5_eu.bind(void 0, value));
527
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.Set);
528
+ if (this.version === 1 && typeof value !== "number") {
529
+ throw new ZWaveError(`Node ${this.endpoint
530
+ .nodeId} only supports IndicatorCC V1 which requires a single value to be set`, ZWaveErrorCodes.Argument_Invalid);
456
531
  }
457
- };
458
- }
459
- get [POLL_VALUE]() {
460
- return async function ({ property }) {
461
- if (property === "value")
462
- return this.get();
463
- if (typeof property === "number") {
464
- return this.get(property);
532
+ else if (this.version >= 2
533
+ && isArray(value)
534
+ && value.length > MAX_INDICATOR_OBJECTS) {
535
+ throw new ZWaveError(`Only ${MAX_INDICATOR_OBJECTS} indicator values can be set at a time!`, ZWaveErrorCodes.Argument_Invalid);
465
536
  }
466
- throwUnsupportedProperty(this.ccId, property);
467
- };
468
- }
469
- async get(indicatorId) {
470
- __assertType("indicatorId", "(optional) number", __assertType__optional_number.bind(void 0, indicatorId));
471
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.Get);
472
- const cc = new IndicatorCCGet({
473
- nodeId: this.endpoint.nodeId,
474
- endpointIndex: this.endpoint.index,
475
- indicatorId,
476
- });
477
- const response = await this.host.sendCommand(cc, this.commandOptions);
478
- if (!response)
479
- return;
480
- if (response.values)
481
- return response.values;
482
- return response.indicator0Value;
483
- }
484
- async set(value) {
485
- __assertType("value", undefined, __assertType__su__number_sa__5_ea_5_5_5_eu.bind(void 0, value));
486
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.Set);
487
- if (this.version === 1 && typeof value !== "number") {
488
- throw new ZWaveError(`Node ${this.endpoint
489
- .nodeId} only supports IndicatorCC V1 which requires a single value to be set`, ZWaveErrorCodes.Argument_Invalid);
490
- }
491
- else if (this.version >= 2
492
- && isArray(value)
493
- && value.length > MAX_INDICATOR_OBJECTS) {
494
- throw new ZWaveError(`Only ${MAX_INDICATOR_OBJECTS} indicator values can be set at a time!`, ZWaveErrorCodes.Argument_Invalid);
495
- }
496
- const cc = new IndicatorCCSet({
497
- nodeId: this.endpoint.nodeId,
498
- endpointIndex: this.endpoint.index,
499
- ...(typeof value === "number" ? { value } : { values: value }),
500
- });
501
- return this.host.sendCommand(cc, this.commandOptions);
502
- }
503
- async sendReport(options) {
504
- __assertType("options", "IndicatorCCReportOptions", __assertType__IndicatorCCReportOptions.bind(void 0, options));
505
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.Report);
506
- const cc = new IndicatorCCReport({
507
- nodeId: this.endpoint.nodeId,
508
- endpointIndex: this.endpoint.index,
509
- ...options,
510
- });
511
- await this.host.sendCommand(cc, this.commandOptions);
512
- }
513
- async getSupported(indicatorId) {
514
- __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
515
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.SupportedGet);
516
- const cc = new IndicatorCCSupportedGet({
517
- nodeId: this.endpoint.nodeId,
518
- endpointIndex: this.endpoint.index,
519
- indicatorId,
520
- });
521
- const response = await this.host.sendCommand(cc, this.commandOptions);
522
- if (response) {
523
- return {
524
- // Include the actual indicator ID if 0x00 was requested
525
- ...(indicatorId === 0x00
526
- ? { indicatorId: response.indicatorId }
527
- : undefined),
528
- supportedProperties: response.supportedProperties,
529
- nextIndicatorId: response.nextIndicatorId,
530
- };
537
+ const cc = new IndicatorCCSet({
538
+ nodeId: this.endpoint.nodeId,
539
+ endpointIndex: this.endpoint.index,
540
+ ...(typeof value === "number" ? { value } : { values: value }),
541
+ });
542
+ return this.host.sendCommand(cc, this.commandOptions);
531
543
  }
532
- }
533
- async reportSupported(indicatorId, supportedProperties, nextIndicatorId) {
534
- __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
535
- __assertType("supportedProperties", undefined, __assertType__sa__number_ea_2.bind(void 0, supportedProperties));
536
- __assertType("nextIndicatorId", "number", __assertType__number.bind(void 0, nextIndicatorId));
537
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.SupportedReport);
538
- const cc = new IndicatorCCSupportedReport({
539
- nodeId: this.endpoint.nodeId,
540
- endpointIndex: this.endpoint.index,
541
- indicatorId,
542
- supportedProperties,
543
- nextIndicatorId,
544
- });
545
- await this.host.sendCommand(cc, this.commandOptions);
546
- }
547
- async reportDescription(indicatorId, description) {
548
- __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
549
- __assertType("description", "string", __assertType__string.bind(void 0, description));
550
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.DescriptionReport);
551
- const cc = new IndicatorCCDescriptionReport({
552
- nodeId: this.endpoint.nodeId,
553
- endpointIndex: this.endpoint.index,
554
- indicatorId,
555
- description,
556
- });
557
- await this.host.sendCommand(cc, this.commandOptions);
558
- }
559
- /**
560
- * Instructs the node to identify itself. Available starting with V3 of this CC.
561
- */
562
- async identify() {
563
- if (this.version < 3) {
564
- throw new ZWaveError(`The identify command is only supported in Indicator CC version 3 and above`, ZWaveErrorCodes.CC_NotSupported);
565
- }
566
- return this.set([
567
- {
568
- indicatorId: 0x50,
569
- propertyId: 0x03,
570
- value: 0x08,
571
- },
572
- {
573
- indicatorId: 0x50,
574
- propertyId: 0x04,
575
- value: 0x03,
576
- },
577
- {
578
- indicatorId: 0x50,
579
- propertyId: 0x05,
580
- value: 0x06,
581
- },
582
- ]);
583
- }
584
- /**
585
- * Set a timeout for a given indicator ID after which the indicator will be turned off.
586
- * @param timeout The timeout in one of the supported forms:
587
- * - a timeout string in the form `12h18m17.59s`. All parts (hours, minutes, seconds, hundredths) are optional, but must be specified in this order. An empty string will be treated like `undefined`.
588
- * - an object specifying the timeout parts. An empty object will be treated like `undefined`.
589
- * - `undefined` to disable the timeout.
590
- */
591
- async setTimeout(indicatorId, timeout) {
592
- __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
593
- __assertType("timeout", undefined, __assertType__su__undefined__string__3_eu.bind(void 0, timeout));
594
- this.assertPhysicalEndpoint(this.endpoint);
595
- if (this.version < 3) {
596
- throw new ZWaveError(`The setTimeout command is only supported in Indicator CC version 3 and above`, ZWaveErrorCodes.CC_NotSupported);
597
- }
598
- if (typeof timeout === "string") {
599
- if (timeout === "") {
600
- timeout = undefined;
544
+ async sendReport(options) {
545
+ __assertType("options", "IndicatorCCReportOptions", __assertType__IndicatorCCReportOptions.bind(void 0, options));
546
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.Report);
547
+ const cc = new IndicatorCCReport({
548
+ nodeId: this.endpoint.nodeId,
549
+ endpointIndex: this.endpoint.index,
550
+ ...options,
551
+ });
552
+ await this.host.sendCommand(cc, this.commandOptions);
553
+ }
554
+ async getSupported(indicatorId) {
555
+ __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
556
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.SupportedGet);
557
+ const cc = new IndicatorCCSupportedGet({
558
+ nodeId: this.endpoint.nodeId,
559
+ endpointIndex: this.endpoint.index,
560
+ indicatorId,
561
+ });
562
+ const response = await this.host.sendCommand(cc, this.commandOptions);
563
+ if (response) {
564
+ return {
565
+ // Include the actual indicator ID if 0x00 was requested
566
+ ...(indicatorId === 0x00
567
+ ? { indicatorId: response.indicatorId }
568
+ : undefined),
569
+ supportedProperties: response.supportedProperties,
570
+ nextIndicatorId: response.nextIndicatorId,
571
+ };
601
572
  }
602
- else {
603
- const parsed = parseIndicatorTimeoutString(timeout);
604
- if (!parsed) {
605
- throw new ZWaveError(`The timeout string "${timeout}" is not valid`, ZWaveErrorCodes.Argument_Invalid);
606
- }
607
- timeout = parsed;
573
+ }
574
+ async reportSupported(indicatorId, supportedProperties, nextIndicatorId) {
575
+ __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
576
+ __assertType("supportedProperties", undefined, __assertType__sa__number_ea_2.bind(void 0, supportedProperties));
577
+ __assertType("nextIndicatorId", "number", __assertType__number.bind(void 0, nextIndicatorId));
578
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.SupportedReport);
579
+ const cc = new IndicatorCCSupportedReport({
580
+ nodeId: this.endpoint.nodeId,
581
+ endpointIndex: this.endpoint.index,
582
+ indicatorId,
583
+ supportedProperties,
584
+ nextIndicatorId,
585
+ });
586
+ await this.host.sendCommand(cc, this.commandOptions);
587
+ }
588
+ async reportDescription(indicatorId, description) {
589
+ __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
590
+ __assertType("description", "string", __assertType__string.bind(void 0, description));
591
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.DescriptionReport);
592
+ const cc = new IndicatorCCDescriptionReport({
593
+ nodeId: this.endpoint.nodeId,
594
+ endpointIndex: this.endpoint.index,
595
+ indicatorId,
596
+ description,
597
+ });
598
+ await this.host.sendCommand(cc, this.commandOptions);
599
+ }
600
+ /**
601
+ * Instructs the node to identify itself. Available starting with V3 of this CC.
602
+ */
603
+ async identify() {
604
+ if (this.version < 3) {
605
+ throw new ZWaveError(`The identify command is only supported in Indicator CC version 3 and above`, ZWaveErrorCodes.CC_NotSupported);
608
606
  }
607
+ return this.set([
608
+ {
609
+ indicatorId: 0x50,
610
+ propertyId: 0x03,
611
+ value: 0x08,
612
+ },
613
+ {
614
+ indicatorId: 0x50,
615
+ propertyId: 0x04,
616
+ value: 0x03,
617
+ },
618
+ {
619
+ indicatorId: 0x50,
620
+ propertyId: 0x05,
621
+ value: 0x06,
622
+ },
623
+ ]);
609
624
  }
610
- const supportedPropertyIDs = IndicatorCC.getSupportedPropertyIDsCached(this.host, this.endpoint, indicatorId);
611
- const objects = [];
612
- if (timeout) {
613
- const hours = timeout.hours ?? 0;
614
- const minutes = timeout.minutes ?? 0;
615
- const seconds = Math.floor(timeout.seconds ?? 0);
616
- const hundredths = Math.round(((timeout.seconds ?? 0) % 1) * 100);
617
- if (hours) {
618
- if (!supportedPropertyIDs?.includes(0x0a)) {
619
- throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in hours`, ZWaveErrorCodes.Argument_Invalid);
620
- }
621
- objects.push({
622
- indicatorId,
623
- propertyId: 0x0a,
624
- value: hours,
625
- });
625
+ /**
626
+ * Set a timeout for a given indicator ID after which the indicator will be turned off.
627
+ * @param timeout The timeout in one of the supported forms:
628
+ * - a timeout string in the form `12h18m17.59s`. All parts (hours, minutes, seconds, hundredths) are optional, but must be specified in this order. An empty string will be treated like `undefined`.
629
+ * - an object specifying the timeout parts. An empty object will be treated like `undefined`.
630
+ * - `undefined` to disable the timeout.
631
+ */
632
+ async setTimeout(indicatorId, timeout) {
633
+ __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
634
+ __assertType("timeout", undefined, __assertType__su__undefined__string__3_eu.bind(void 0, timeout));
635
+ this.assertPhysicalEndpoint(this.endpoint);
636
+ if (this.version < 3) {
637
+ throw new ZWaveError(`The setTimeout command is only supported in Indicator CC version 3 and above`, ZWaveErrorCodes.CC_NotSupported);
626
638
  }
627
- if (minutes) {
628
- if (!supportedPropertyIDs?.includes(0x06)) {
629
- throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in minutes`, ZWaveErrorCodes.Argument_Invalid);
639
+ if (typeof timeout === "string") {
640
+ if (timeout === "") {
641
+ timeout = undefined;
630
642
  }
631
- objects.push({
632
- indicatorId,
633
- propertyId: 0x06,
634
- value: minutes,
635
- });
636
- }
637
- if (seconds) {
638
- if (!supportedPropertyIDs?.includes(0x07)) {
639
- throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in seconds`, ZWaveErrorCodes.Argument_Invalid);
643
+ else {
644
+ const parsed = parseIndicatorTimeoutString(timeout);
645
+ if (!parsed) {
646
+ throw new ZWaveError(`The timeout string "${timeout}" is not valid`, ZWaveErrorCodes.Argument_Invalid);
647
+ }
648
+ timeout = parsed;
640
649
  }
641
- objects.push({
642
- indicatorId,
643
- propertyId: 0x07,
644
- value: seconds,
645
- });
646
650
  }
647
- if (hundredths) {
648
- if (!supportedPropertyIDs?.includes(0x08)) {
649
- throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in 1/100 seconds`, ZWaveErrorCodes.Argument_Invalid);
651
+ const supportedPropertyIDs = IndicatorCC.getSupportedPropertyIDsCached(this.host, this.endpoint, indicatorId);
652
+ const objects = [];
653
+ if (timeout) {
654
+ const hours = timeout.hours ?? 0;
655
+ const minutes = timeout.minutes ?? 0;
656
+ const seconds = Math.floor(timeout.seconds ?? 0);
657
+ const hundredths = Math.round(((timeout.seconds ?? 0) % 1) * 100);
658
+ if (hours) {
659
+ if (!supportedPropertyIDs?.includes(0x0a)) {
660
+ throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in hours`, ZWaveErrorCodes.Argument_Invalid);
661
+ }
662
+ objects.push({
663
+ indicatorId,
664
+ propertyId: 0x0a,
665
+ value: hours,
666
+ });
667
+ }
668
+ if (minutes) {
669
+ if (!supportedPropertyIDs?.includes(0x06)) {
670
+ throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in minutes`, ZWaveErrorCodes.Argument_Invalid);
671
+ }
672
+ objects.push({
673
+ indicatorId,
674
+ propertyId: 0x06,
675
+ value: minutes,
676
+ });
677
+ }
678
+ if (seconds) {
679
+ if (!supportedPropertyIDs?.includes(0x07)) {
680
+ throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in seconds`, ZWaveErrorCodes.Argument_Invalid);
681
+ }
682
+ objects.push({
683
+ indicatorId,
684
+ propertyId: 0x07,
685
+ value: seconds,
686
+ });
687
+ }
688
+ if (hundredths) {
689
+ if (!supportedPropertyIDs?.includes(0x08)) {
690
+ throw new ZWaveError(`The indicator ${indicatorId} does not support setting the timeout in 1/100 seconds`, ZWaveErrorCodes.Argument_Invalid);
691
+ }
692
+ objects.push({
693
+ indicatorId,
694
+ propertyId: 0x08,
695
+ value: hundredths,
696
+ });
650
697
  }
651
- objects.push({
698
+ }
699
+ if (!objects.length) {
700
+ objects.push(...(supportedPropertyIDs ?? []).map((p) => ({
652
701
  indicatorId,
653
- propertyId: 0x08,
654
- value: hundredths,
655
- });
702
+ propertyId: p,
703
+ value: 0,
704
+ })));
656
705
  }
706
+ return this.set(objects);
707
+ }
708
+ /**
709
+ * Returns the timeout after which the given indicator will be turned off.
710
+ */
711
+ async getTimeout(indicatorId) {
712
+ __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
713
+ const values = await this.get(indicatorId);
714
+ if (!isArray(values))
715
+ return;
716
+ return indicatorObjectsToTimeout(values);
657
717
  }
658
- if (!objects.length) {
659
- objects.push(...(supportedPropertyIDs ?? []).map((p) => ({
718
+ async getDescription(indicatorId) {
719
+ __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
720
+ this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.DescriptionGet);
721
+ const cc = new IndicatorCCDescriptionGet({
722
+ nodeId: this.endpoint.nodeId,
723
+ endpointIndex: this.endpoint.index,
660
724
  indicatorId,
661
- propertyId: p,
662
- value: 0,
663
- })));
725
+ });
726
+ const response = await this.host.sendCommand(cc, this.commandOptions);
727
+ return response?.description;
664
728
  }
665
- return this.set(objects);
666
- }
667
- /**
668
- * Returns the timeout after which the given indicator will be turned off.
669
- */
670
- async getTimeout(indicatorId) {
671
- __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
672
- const values = await this.get(indicatorId);
673
- if (!isArray(values))
674
- return;
675
- return indicatorObjectsToTimeout(values);
676
- }
677
- async getDescription(indicatorId) {
678
- __assertType("indicatorId", "number", __assertType__number.bind(void 0, indicatorId));
679
- this.assertSupportsCommand(IndicatorCommand, IndicatorCommand.DescriptionGet);
680
- const cc = new IndicatorCCDescriptionGet({
681
- nodeId: this.endpoint.nodeId,
682
- endpointIndex: this.endpoint.index,
683
- indicatorId,
684
- });
685
- const response = await this.host.sendCommand(cc, this.commandOptions);
686
- return response?.description;
687
- }
688
- };
689
- IndicatorCCAPI = __decorate([
690
- API(CommandClasses.Indicator)
691
- ], IndicatorCCAPI);
729
+ };
730
+ return IndicatorCCAPI = _classThis;
731
+ })();
692
732
  export { IndicatorCCAPI };
693
- let IndicatorCC = class IndicatorCC extends CommandClass {
694
- async interview(ctx) {
695
- const node = this.getNode(ctx);
696
- const endpoint = this.getEndpoint(ctx);
697
- const api = CCAPI.create(CommandClasses.Indicator, ctx, endpoint).withOptions({
698
- priority: MessagePriority.NodeQuery,
699
- });
700
- ctx.logNode(node.id, {
701
- endpoint: this.endpointIndex,
702
- message: `Interviewing ${this.ccName}...`,
703
- direction: "none",
704
- });
705
- if (api.version > 1) {
706
- ctx.logNode(node.id, {
707
- endpoint: this.endpointIndex,
708
- message: "scanning supported indicator IDs...",
709
- direction: "outbound",
733
+ let IndicatorCC = (() => {
734
+ let _classDecorators = [commandClass(CommandClasses.Indicator), implementedVersion(4), ccValues(IndicatorCCValues)];
735
+ let _classDescriptor;
736
+ let _classExtraInitializers = [];
737
+ let _classThis;
738
+ let _classSuper = CommandClass;
739
+ var IndicatorCC = class extends _classSuper {
740
+ static { _classThis = this; }
741
+ static {
742
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
743
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
744
+ IndicatorCC = _classThis = _classDescriptor.value;
745
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
746
+ __runInitializers(_classThis, _classExtraInitializers);
747
+ }
748
+ async interview(ctx) {
749
+ const node = this.getNode(ctx);
750
+ const endpoint = this.getEndpoint(ctx);
751
+ const api = CCAPI.create(CommandClasses.Indicator, ctx, endpoint).withOptions({
752
+ priority: MessagePriority.NodeQuery,
710
753
  });
711
- // Query ID 0 to get the first supported ID
712
- let curId = 0x00;
713
- const supportedIndicatorIds = [];
714
- do {
715
- const supportedResponse = await api.getSupported(curId);
716
- if (!supportedResponse) {
717
- ctx.logNode(node.id, {
718
- endpoint: this.endpointIndex,
719
- message: "Time out while scanning supported indicator IDs, skipping interview...",
720
- level: "warn",
721
- });
722
- return;
723
- }
724
- supportedIndicatorIds.push(supportedResponse.indicatorId ?? curId);
725
- curId = supportedResponse.nextIndicatorId;
726
- } while (curId !== 0x00);
727
- // The IDs are not stored by the report CCs so store them here once we have all of them
728
- this.setValue(ctx, IndicatorCCValues.supportedIndicatorIds, supportedIndicatorIds);
729
- const logMessage = `supported indicator IDs: ${supportedIndicatorIds.join(", ")}`;
730
754
  ctx.logNode(node.id, {
731
755
  endpoint: this.endpointIndex,
732
- message: logMessage,
733
- direction: "inbound",
756
+ message: `Interviewing ${this.ccName}...`,
757
+ direction: "none",
734
758
  });
735
- if (api.version >= 4) {
736
- const manufacturerDefinedIndicatorIds = supportedIndicatorIds
737
- .filter((id) => isManufacturerDefinedIndicator(id));
738
- if (manufacturerDefinedIndicatorIds.length > 0) {
739
- ctx.logNode(node.id, {
740
- endpoint: this.endpointIndex,
741
- message: "retrieving description for manufacturer-defined indicator IDs...",
742
- direction: "outbound",
743
- });
744
- for (const id of manufacturerDefinedIndicatorIds) {
745
- await api.getDescription(id);
759
+ if (api.version > 1) {
760
+ ctx.logNode(node.id, {
761
+ endpoint: this.endpointIndex,
762
+ message: "scanning supported indicator IDs...",
763
+ direction: "outbound",
764
+ });
765
+ // Query ID 0 to get the first supported ID
766
+ let curId = 0x00;
767
+ const supportedIndicatorIds = [];
768
+ do {
769
+ const supportedResponse = await api.getSupported(curId);
770
+ if (!supportedResponse) {
771
+ ctx.logNode(node.id, {
772
+ endpoint: this.endpointIndex,
773
+ message: "Time out while scanning supported indicator IDs, skipping interview...",
774
+ level: "warn",
775
+ });
776
+ return;
777
+ }
778
+ supportedIndicatorIds.push(supportedResponse.indicatorId ?? curId);
779
+ curId = supportedResponse.nextIndicatorId;
780
+ } while (curId !== 0x00);
781
+ // The IDs are not stored by the report CCs so store them here once we have all of them
782
+ this.setValue(ctx, IndicatorCCValues.supportedIndicatorIds, supportedIndicatorIds);
783
+ const logMessage = `supported indicator IDs: ${supportedIndicatorIds.join(", ")}`;
784
+ ctx.logNode(node.id, {
785
+ endpoint: this.endpointIndex,
786
+ message: logMessage,
787
+ direction: "inbound",
788
+ });
789
+ if (api.version >= 4) {
790
+ const manufacturerDefinedIndicatorIds = supportedIndicatorIds
791
+ .filter((id) => isManufacturerDefinedIndicator(id));
792
+ if (manufacturerDefinedIndicatorIds.length > 0) {
793
+ ctx.logNode(node.id, {
794
+ endpoint: this.endpointIndex,
795
+ message: "retrieving description for manufacturer-defined indicator IDs...",
796
+ direction: "outbound",
797
+ });
798
+ for (const id of manufacturerDefinedIndicatorIds) {
799
+ await api.getDescription(id);
800
+ }
746
801
  }
747
802
  }
748
803
  }
804
+ // Query current values
805
+ await this.refreshValues(ctx);
806
+ // Remember that the interview is complete
807
+ this.setInterviewComplete(ctx, true);
749
808
  }
750
- // Query current values
751
- await this.refreshValues(ctx);
752
- // Remember that the interview is complete
753
- this.setInterviewComplete(ctx, true);
754
- }
755
- async refreshValues(ctx) {
756
- const node = this.getNode(ctx);
757
- const endpoint = this.getEndpoint(ctx);
758
- const api = CCAPI.create(CommandClasses.Indicator, ctx, endpoint).withOptions({
759
- priority: MessagePriority.NodeQuery,
760
- });
761
- if (api.version === 1) {
762
- ctx.logNode(node.id, {
763
- endpoint: this.endpointIndex,
764
- message: "requesting current indicator value...",
765
- direction: "outbound",
809
+ async refreshValues(ctx) {
810
+ const node = this.getNode(ctx);
811
+ const endpoint = this.getEndpoint(ctx);
812
+ const api = CCAPI.create(CommandClasses.Indicator, ctx, endpoint).withOptions({
813
+ priority: MessagePriority.NodeQuery,
766
814
  });
767
- await api.get();
768
- }
769
- else {
770
- const supportedIndicatorIds = this.getValue(ctx, IndicatorCCValues.supportedIndicatorIds) ?? [];
771
- for (const indicatorId of supportedIndicatorIds) {
815
+ if (api.version === 1) {
772
816
  ctx.logNode(node.id, {
773
817
  endpoint: this.endpointIndex,
774
- message: `requesting current indicator value (id = ${num2hex(indicatorId)})...`,
818
+ message: "requesting current indicator value...",
775
819
  direction: "outbound",
776
820
  });
777
- await api.get(indicatorId);
821
+ await api.get();
822
+ }
823
+ else {
824
+ const supportedIndicatorIds = this.getValue(ctx, IndicatorCCValues.supportedIndicatorIds) ?? [];
825
+ for (const indicatorId of supportedIndicatorIds) {
826
+ ctx.logNode(node.id, {
827
+ endpoint: this.endpointIndex,
828
+ message: `requesting current indicator value (id = ${num2hex(indicatorId)})...`,
829
+ direction: "outbound",
830
+ });
831
+ await api.get(indicatorId);
832
+ }
778
833
  }
779
834
  }
780
- }
781
- translatePropertyKey(ctx, property, propertyKey) {
782
- if (property === "value") {
783
- // CC version 1 only has a single value that doesn't need to be translated
784
- return undefined;
785
- }
786
- else if (typeof property === "number"
787
- && typeof propertyKey === "number") {
788
- // The indicator property is our property key
789
- const prop = getIndicatorProperty(propertyKey);
790
- if (prop)
791
- return prop.label;
792
- }
793
- return super.translatePropertyKey(ctx, property, propertyKey);
794
- }
795
- translateProperty(ctx, property, propertyKey) {
796
- if (typeof property === "number" && typeof propertyKey === "number") {
797
- // The indicator corresponds to our property
798
- if (property in Indicator)
799
- return Indicator[property];
835
+ translatePropertyKey(ctx, property, propertyKey) {
836
+ if (property === "value") {
837
+ // CC version 1 only has a single value that doesn't need to be translated
838
+ return undefined;
839
+ }
840
+ else if (typeof property === "number"
841
+ && typeof propertyKey === "number") {
842
+ // The indicator property is our property key
843
+ const prop = getIndicatorProperty(propertyKey);
844
+ if (prop)
845
+ return prop.label;
846
+ }
847
+ return super.translatePropertyKey(ctx, property, propertyKey);
800
848
  }
801
- return super.translateProperty(ctx, property, propertyKey);
802
- }
803
- supportsV2Indicators(ctx) {
804
- // First test if there are any indicator ids defined
805
- const supportedIndicatorIds = this.getValue(ctx, IndicatorCCValues.supportedIndicatorIds);
806
- if (!supportedIndicatorIds?.length)
807
- return false;
808
- // Then test if there are any property ids defined
809
- return supportedIndicatorIds.some((indicatorId) => !!this.getValue(ctx, IndicatorCCValues.supportedPropertyIDs(indicatorId))?.length);
810
- }
811
- static getSupportedPropertyIDsCached(ctx, endpoint, indicatorId) {
812
- return ctx
813
- .getValueDB(endpoint.nodeId)
814
- .getValue(IndicatorCCValues.supportedPropertyIDs(indicatorId).endpoint(endpoint.index));
815
- }
816
- };
817
- IndicatorCC = __decorate([
818
- commandClass(CommandClasses.Indicator),
819
- implementedVersion(4),
820
- ccValues(IndicatorCCValues)
821
- ], IndicatorCC);
822
- export { IndicatorCC };
823
- let IndicatorCCSet = IndicatorCCSet_1 = class IndicatorCCSet extends IndicatorCC {
824
- constructor(options) {
825
- super(options);
826
- if ("value" in options) {
827
- this.indicator0Value = options.value;
849
+ translateProperty(ctx, property, propertyKey) {
850
+ if (typeof property === "number" && typeof propertyKey === "number") {
851
+ // The indicator corresponds to our property
852
+ if (property in Indicator)
853
+ return Indicator[property];
854
+ }
855
+ return super.translateProperty(ctx, property, propertyKey);
828
856
  }
829
- else {
830
- this.values = options.values;
857
+ supportsV2Indicators(ctx) {
858
+ // First test if there are any indicator ids defined
859
+ const supportedIndicatorIds = this.getValue(ctx, IndicatorCCValues.supportedIndicatorIds);
860
+ if (!supportedIndicatorIds?.length)
861
+ return false;
862
+ // Then test if there are any property ids defined
863
+ return supportedIndicatorIds.some((indicatorId) => !!this.getValue(ctx, IndicatorCCValues.supportedPropertyIDs(indicatorId))?.length);
831
864
  }
832
- }
833
- static from(raw, ctx) {
834
- validatePayload(raw.payload.length >= 1);
835
- const objCount = raw.payload.length >= 2
836
- ? raw.payload[1] & 0b11111
837
- : 0;
838
- if (objCount === 0) {
839
- const indicator0Value = raw.payload[0];
840
- return new IndicatorCCSet_1({
841
- nodeId: ctx.sourceNodeId,
842
- value: indicator0Value,
843
- });
865
+ static getSupportedPropertyIDsCached(ctx, endpoint, indicatorId) {
866
+ return ctx
867
+ .getValueDB(endpoint.nodeId)
868
+ .getValue(IndicatorCCValues.supportedPropertyIDs(indicatorId).endpoint(endpoint.index));
844
869
  }
845
- validatePayload(raw.payload.length >= 2 + 3 * objCount);
846
- const values = [];
847
- for (let i = 0; i < objCount; i++) {
848
- const offset = 2 + 3 * i;
849
- const value = {
850
- indicatorId: raw.payload[offset],
851
- propertyId: raw.payload[offset + 1],
852
- value: raw.payload[offset + 2],
853
- };
854
- values.push(value);
870
+ };
871
+ return IndicatorCC = _classThis;
872
+ })();
873
+ export { IndicatorCC };
874
+ let IndicatorCCSet = (() => {
875
+ let _classDecorators = [CCCommand(IndicatorCommand.Set), useSupervision()];
876
+ let _classDescriptor;
877
+ let _classExtraInitializers = [];
878
+ let _classThis;
879
+ let _classSuper = IndicatorCC;
880
+ var IndicatorCCSet = class extends _classSuper {
881
+ static { _classThis = this; }
882
+ static {
883
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
884
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
885
+ IndicatorCCSet = _classThis = _classDescriptor.value;
886
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
887
+ __runInitializers(_classThis, _classExtraInitializers);
855
888
  }
856
- return new IndicatorCCSet_1({
857
- nodeId: ctx.sourceNodeId,
858
- values,
859
- });
860
- }
861
- indicator0Value;
862
- values;
863
- serialize(ctx) {
864
- if (this.values != undefined) {
865
- // V2+
866
- this.payload = Bytes.alloc(2 + 3 * this.values.length, 0);
867
- // Byte 0 is the legacy value
868
- const objCount = this.values.length & MAX_INDICATOR_OBJECTS;
869
- this.payload[1] = objCount;
889
+ constructor(options) {
890
+ super(options);
891
+ if ("value" in options) {
892
+ this.indicator0Value = options.value;
893
+ }
894
+ else {
895
+ this.values = options.values;
896
+ }
897
+ }
898
+ static from(raw, ctx) {
899
+ validatePayload(raw.payload.length >= 1);
900
+ const objCount = raw.payload.length >= 2
901
+ ? raw.payload[1] & 0b11111
902
+ : 0;
903
+ if (objCount === 0) {
904
+ const indicator0Value = raw.payload[0];
905
+ return new this({
906
+ nodeId: ctx.sourceNodeId,
907
+ value: indicator0Value,
908
+ });
909
+ }
910
+ validatePayload(raw.payload.length >= 2 + 3 * objCount);
911
+ const values = [];
870
912
  for (let i = 0; i < objCount; i++) {
871
913
  const offset = 2 + 3 * i;
872
- this.payload[offset] = this.values[i].indicatorId;
873
- this.payload[offset + 1] = this.values[i].propertyId;
874
- const value = this.values[i].value;
875
- this.payload[offset + 2] = value === true
876
- ? 0xff
877
- : value === false
878
- ? 0x00
879
- : value;
914
+ const value = {
915
+ indicatorId: raw.payload[offset],
916
+ propertyId: raw.payload[offset + 1],
917
+ value: raw.payload[offset + 2],
918
+ };
919
+ values.push(value);
880
920
  }
921
+ return new this({
922
+ nodeId: ctx.sourceNodeId,
923
+ values,
924
+ });
881
925
  }
882
- else {
883
- // V1
884
- this.payload = Bytes.from([this.indicator0Value ?? 0]);
926
+ indicator0Value;
927
+ values;
928
+ serialize(ctx) {
929
+ if (this.values != undefined) {
930
+ // V2+
931
+ this.payload = Bytes.alloc(2 + 3 * this.values.length, 0);
932
+ // Byte 0 is the legacy value
933
+ const objCount = this.values.length & MAX_INDICATOR_OBJECTS;
934
+ this.payload[1] = objCount;
935
+ for (let i = 0; i < objCount; i++) {
936
+ const offset = 2 + 3 * i;
937
+ this.payload[offset] = this.values[i].indicatorId;
938
+ this.payload[offset + 1] = this.values[i].propertyId;
939
+ const value = this.values[i].value;
940
+ this.payload[offset + 2] = value === true
941
+ ? 0xff
942
+ : value === false
943
+ ? 0x00
944
+ : value;
945
+ }
946
+ }
947
+ else {
948
+ // V1
949
+ this.payload = Bytes.from([this.indicator0Value ?? 0]);
950
+ }
951
+ return super.serialize(ctx);
885
952
  }
886
- return super.serialize(ctx);
887
- }
888
- toLogEntry(ctx) {
889
- const message = {};
890
- if (this.indicator0Value != undefined) {
891
- message["indicator 0 value"] = this.indicator0Value;
892
- }
893
- if (this.values != undefined) {
894
- message.values = `${this.values
895
- .map((v) => `
953
+ toLogEntry(ctx) {
954
+ const message = {};
955
+ if (this.indicator0Value != undefined) {
956
+ message["indicator 0 value"] = this.indicator0Value;
957
+ }
958
+ if (this.values != undefined) {
959
+ message.values = `${this.values
960
+ .map((v) => `
896
961
  · indicatorId: ${v.indicatorId}
897
962
  propertyId: ${v.propertyId}
898
963
  value: ${v.value}`)
899
- .join("")}`;
964
+ .join("")}`;
965
+ }
966
+ return {
967
+ ...super.toLogEntry(ctx),
968
+ message,
969
+ };
900
970
  }
901
- return {
902
- ...super.toLogEntry(ctx),
903
- message,
904
- };
905
- }
906
- };
907
- IndicatorCCSet = IndicatorCCSet_1 = __decorate([
908
- CCCommand(IndicatorCommand.Set),
909
- useSupervision()
910
- ], IndicatorCCSet);
971
+ };
972
+ return IndicatorCCSet = _classThis;
973
+ })();
911
974
  export { IndicatorCCSet };
912
- let IndicatorCCReport = IndicatorCCReport_1 = class IndicatorCCReport extends IndicatorCC {
913
- constructor(options) {
914
- super(options);
915
- if ("value" in options) {
916
- this.indicator0Value = options.value;
917
- }
918
- else if ("values" in options) {
919
- if (options.values.length > MAX_INDICATOR_OBJECTS) {
920
- throw new ZWaveError(`Only ${MAX_INDICATOR_OBJECTS} indicator values can be set at a time!`, ZWaveErrorCodes.Argument_Invalid);
975
+ let IndicatorCCReport = (() => {
976
+ let _classDecorators = [CCCommand(IndicatorCommand.Report)];
977
+ let _classDescriptor;
978
+ let _classExtraInitializers = [];
979
+ let _classThis;
980
+ let _classSuper = IndicatorCC;
981
+ var IndicatorCCReport = class extends _classSuper {
982
+ static { _classThis = this; }
983
+ static {
984
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
985
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
986
+ IndicatorCCReport = _classThis = _classDescriptor.value;
987
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
988
+ __runInitializers(_classThis, _classExtraInitializers);
989
+ }
990
+ constructor(options) {
991
+ super(options);
992
+ if ("value" in options) {
993
+ this.indicator0Value = options.value;
994
+ }
995
+ else if ("values" in options) {
996
+ if (options.values.length > MAX_INDICATOR_OBJECTS) {
997
+ throw new ZWaveError(`Only ${MAX_INDICATOR_OBJECTS} indicator values can be set at a time!`, ZWaveErrorCodes.Argument_Invalid);
998
+ }
999
+ this.values = options.values;
921
1000
  }
922
- this.values = options.values;
923
1001
  }
924
- }
925
- static from(raw, ctx) {
926
- validatePayload(raw.payload.length >= 1);
927
- const objCount = raw.payload.length >= 2
928
- ? raw.payload[1] & 0b11111
929
- : 0;
930
- if (objCount === 0) {
931
- const indicator0Value = raw.payload[0];
932
- return new IndicatorCCReport_1({
1002
+ static from(raw, ctx) {
1003
+ validatePayload(raw.payload.length >= 1);
1004
+ const objCount = raw.payload.length >= 2
1005
+ ? raw.payload[1] & 0b11111
1006
+ : 0;
1007
+ if (objCount === 0) {
1008
+ const indicator0Value = raw.payload[0];
1009
+ return new this({
1010
+ nodeId: ctx.sourceNodeId,
1011
+ value: indicator0Value,
1012
+ });
1013
+ }
1014
+ validatePayload(raw.payload.length >= 2 + 3 * objCount);
1015
+ const values = [];
1016
+ for (let i = 0; i < objCount; i++) {
1017
+ const offset = 2 + 3 * i;
1018
+ const value = {
1019
+ indicatorId: raw.payload[offset],
1020
+ propertyId: raw.payload[offset + 1],
1021
+ value: raw.payload[offset + 2],
1022
+ };
1023
+ values.push(value);
1024
+ }
1025
+ return new this({
933
1026
  nodeId: ctx.sourceNodeId,
934
- value: indicator0Value,
1027
+ values,
935
1028
  });
1029
+ // TODO: Think if we want this:
1030
+ // // If not all Property IDs are included in the command for the actual Indicator ID,
1031
+ // // a controlling node MUST assume non-specified Property IDs values to be 0x00.
1032
+ // const indicatorId = this.values[0].indicatorId;
1033
+ // const supportedIndicatorProperties =
1034
+ // valueDB.getValue<number[]>(
1035
+ // getSupportedPropertyIDsValueID(
1036
+ // this.endpointIndex,
1037
+ // indicatorId,
1038
+ // ),
1039
+ // ) ?? [];
1040
+ // // Find out which ones are missing
1041
+ // const missingIndicatorProperties = supportedIndicatorProperties.filter(
1042
+ // prop =>
1043
+ // !this.values!.find(({ propertyId }) => prop === propertyId),
1044
+ // );
1045
+ // // And assume they are 0 (false)
1046
+ // for (const missing of missingIndicatorProperties) {
1047
+ // this.setIndicatorValue({
1048
+ // indicatorId,
1049
+ // propertyId: missing,
1050
+ // value: 0,
1051
+ // });
1052
+ // }
936
1053
  }
937
- validatePayload(raw.payload.length >= 2 + 3 * objCount);
938
- const values = [];
939
- for (let i = 0; i < objCount; i++) {
940
- const offset = 2 + 3 * i;
941
- const value = {
942
- indicatorId: raw.payload[offset],
943
- propertyId: raw.payload[offset + 1],
944
- value: raw.payload[offset + 2],
945
- };
946
- values.push(value);
947
- }
948
- return new IndicatorCCReport_1({
949
- nodeId: ctx.sourceNodeId,
950
- values,
951
- });
952
- // TODO: Think if we want this:
953
- // // If not all Property IDs are included in the command for the actual Indicator ID,
954
- // // a controlling node MUST assume non-specified Property IDs values to be 0x00.
955
- // const indicatorId = this.values[0].indicatorId;
956
- // const supportedIndicatorProperties =
957
- // valueDB.getValue<number[]>(
958
- // getSupportedPropertyIDsValueID(
959
- // this.endpointIndex,
960
- // indicatorId,
961
- // ),
962
- // ) ?? [];
963
- // // Find out which ones are missing
964
- // const missingIndicatorProperties = supportedIndicatorProperties.filter(
965
- // prop =>
966
- // !this.values!.find(({ propertyId }) => prop === propertyId),
967
- // );
968
- // // And assume they are 0 (false)
969
- // for (const missing of missingIndicatorProperties) {
970
- // this.setIndicatorValue({
971
- // indicatorId,
972
- // propertyId: missing,
973
- // value: 0,
974
- // });
975
- // }
976
- }
977
- persistValues(ctx) {
978
- if (!super.persistValues(ctx))
979
- return false;
980
- if (this.indicator0Value != undefined) {
981
- if (!this.supportsV2Indicators(ctx)) {
982
- // Publish the value
983
- const valueV1 = IndicatorCCValues.valueV1;
984
- this.setMetadata(ctx, valueV1);
985
- this.setValue(ctx, valueV1, this.indicator0Value);
1054
+ persistValues(ctx) {
1055
+ if (!super.persistValues(ctx))
1056
+ return false;
1057
+ if (this.indicator0Value != undefined) {
1058
+ if (!this.supportsV2Indicators(ctx)) {
1059
+ // Publish the value
1060
+ const valueV1 = IndicatorCCValues.valueV1;
1061
+ this.setMetadata(ctx, valueV1);
1062
+ this.setValue(ctx, valueV1, this.indicator0Value);
1063
+ }
1064
+ else {
1065
+ if (this.isSinglecast()) {
1066
+ // Don't!
1067
+ ctx.logNode(this.nodeId, {
1068
+ message: `ignoring V1 indicator report because the node supports V2 indicators`,
1069
+ direction: "none",
1070
+ endpoint: this.endpointIndex,
1071
+ });
1072
+ }
1073
+ }
986
1074
  }
987
- else {
988
- if (this.isSinglecast()) {
989
- // Don't!
990
- ctx.logNode(this.nodeId, {
991
- message: `ignoring V1 indicator report because the node supports V2 indicators`,
992
- direction: "none",
993
- endpoint: this.endpointIndex,
994
- });
1075
+ else if (this.values) {
1076
+ // Store the simple values first
1077
+ for (const value of this.values) {
1078
+ this.setIndicatorValue(ctx, value);
1079
+ }
1080
+ // Then group values into the convenience properties
1081
+ // ... timeout
1082
+ const timeout = indicatorObjectsToTimeout(this.values);
1083
+ if (timeout) {
1084
+ let timeoutString = "";
1085
+ if (timeout?.hours)
1086
+ timeoutString += `${timeout.hours}h`;
1087
+ if (timeout?.minutes)
1088
+ timeoutString += `${timeout.minutes}m`;
1089
+ if (timeout?.seconds)
1090
+ timeoutString += `${timeout.seconds}s`;
1091
+ this.setValue(ctx, IndicatorCCValues.timeout, timeoutString);
995
1092
  }
996
1093
  }
1094
+ return true;
997
1095
  }
998
- else if (this.values) {
999
- // Store the simple values first
1000
- for (const value of this.values) {
1001
- this.setIndicatorValue(ctx, value);
1002
- }
1003
- // Then group values into the convenience properties
1004
- // ... timeout
1005
- const timeout = indicatorObjectsToTimeout(this.values);
1006
- if (timeout) {
1007
- let timeoutString = "";
1008
- if (timeout?.hours)
1009
- timeoutString += `${timeout.hours}h`;
1010
- if (timeout?.minutes)
1011
- timeoutString += `${timeout.minutes}m`;
1012
- if (timeout?.seconds)
1013
- timeoutString += `${timeout.seconds}s`;
1014
- this.setValue(ctx, IndicatorCCValues.timeout, timeoutString);
1096
+ indicator0Value;
1097
+ values;
1098
+ setIndicatorValue(ctx, value) {
1099
+ // Manufacturer-defined indicators may need a custom label
1100
+ const overrideIndicatorLabel = isManufacturerDefinedIndicator(value.indicatorId)
1101
+ ? this.getValue(ctx, IndicatorCCValues.indicatorDescription(value.indicatorId))
1102
+ : undefined;
1103
+ const metadata = getIndicatorMetadata(value.indicatorId, value.propertyId, overrideIndicatorLabel);
1104
+ // Some values need to be converted
1105
+ if (metadata.type === "boolean") {
1106
+ value.value = !!value.value;
1015
1107
  }
1108
+ // Publish the value
1109
+ const valueV2 = IndicatorCCValues.valueV2(value.indicatorId, value.propertyId);
1110
+ this.setMetadata(ctx, valueV2, metadata);
1111
+ this.setValue(ctx, valueV2, value.value);
1016
1112
  }
1017
- return true;
1018
- }
1019
- indicator0Value;
1020
- values;
1021
- setIndicatorValue(ctx, value) {
1022
- // Manufacturer-defined indicators may need a custom label
1023
- const overrideIndicatorLabel = isManufacturerDefinedIndicator(value.indicatorId)
1024
- ? this.getValue(ctx, IndicatorCCValues.indicatorDescription(value.indicatorId))
1025
- : undefined;
1026
- const metadata = getIndicatorMetadata(value.indicatorId, value.propertyId, overrideIndicatorLabel);
1027
- // Some values need to be converted
1028
- if (metadata.type === "boolean") {
1029
- value.value = !!value.value;
1030
- }
1031
- // Publish the value
1032
- const valueV2 = IndicatorCCValues.valueV2(value.indicatorId, value.propertyId);
1033
- this.setMetadata(ctx, valueV2, metadata);
1034
- this.setValue(ctx, valueV2, value.value);
1035
- }
1036
- serialize(ctx) {
1037
- if (this.values != undefined) {
1038
- // V2+
1039
- this.payload = Bytes.alloc(2 + 3 * this.values.length, 0);
1040
- // Byte 0 is the legacy value
1041
- const objCount = this.values.length & MAX_INDICATOR_OBJECTS;
1042
- this.payload[1] = objCount;
1043
- for (let i = 0; i < objCount; i++) {
1044
- const offset = 2 + 3 * i;
1045
- this.payload[offset] = this.values[i].indicatorId;
1046
- this.payload[offset + 1] = this.values[i].propertyId;
1047
- const value = this.values[i].value;
1048
- this.payload[offset + 2] = value === true
1049
- ? 0xff
1050
- : value === false
1051
- ? 0x00
1052
- : value;
1113
+ serialize(ctx) {
1114
+ if (this.values != undefined) {
1115
+ // V2+
1116
+ this.payload = Bytes.alloc(2 + 3 * this.values.length, 0);
1117
+ // Byte 0 is the legacy value
1118
+ const objCount = this.values.length & MAX_INDICATOR_OBJECTS;
1119
+ this.payload[1] = objCount;
1120
+ for (let i = 0; i < objCount; i++) {
1121
+ const offset = 2 + 3 * i;
1122
+ this.payload[offset] = this.values[i].indicatorId;
1123
+ this.payload[offset + 1] = this.values[i].propertyId;
1124
+ const value = this.values[i].value;
1125
+ this.payload[offset + 2] = value === true
1126
+ ? 0xff
1127
+ : value === false
1128
+ ? 0x00
1129
+ : value;
1130
+ }
1053
1131
  }
1132
+ else {
1133
+ // V1
1134
+ this.payload = Bytes.from([this.indicator0Value ?? 0]);
1135
+ }
1136
+ return super.serialize(ctx);
1054
1137
  }
1055
- else {
1056
- // V1
1057
- this.payload = Bytes.from([this.indicator0Value ?? 0]);
1058
- }
1059
- return super.serialize(ctx);
1060
- }
1061
- toLogEntry(ctx) {
1062
- const message = {};
1063
- if (this.indicator0Value != undefined) {
1064
- message["indicator 0 value"] = this.indicator0Value;
1065
- }
1066
- if (this.values != undefined) {
1067
- message.values = `${this.values
1068
- .map((v) => `
1138
+ toLogEntry(ctx) {
1139
+ const message = {};
1140
+ if (this.indicator0Value != undefined) {
1141
+ message["indicator 0 value"] = this.indicator0Value;
1142
+ }
1143
+ if (this.values != undefined) {
1144
+ message.values = `${this.values
1145
+ .map((v) => `
1069
1146
  · indicatorId: ${v.indicatorId}
1070
1147
  propertyId: ${v.propertyId}
1071
1148
  value: ${v.value}`)
1072
- .join("")}`;
1149
+ .join("")}`;
1150
+ }
1151
+ return {
1152
+ ...super.toLogEntry(ctx),
1153
+ message,
1154
+ };
1073
1155
  }
1074
- return {
1075
- ...super.toLogEntry(ctx),
1076
- message,
1077
- };
1078
- }
1079
- };
1080
- IndicatorCCReport = IndicatorCCReport_1 = __decorate([
1081
- CCCommand(IndicatorCommand.Report)
1082
- ], IndicatorCCReport);
1156
+ };
1157
+ return IndicatorCCReport = _classThis;
1158
+ })();
1083
1159
  export { IndicatorCCReport };
1084
- let IndicatorCCGet = IndicatorCCGet_1 = class IndicatorCCGet extends IndicatorCC {
1085
- constructor(options) {
1086
- super(options);
1087
- this.indicatorId = options.indicatorId;
1088
- }
1089
- static from(raw, ctx) {
1090
- let indicatorId;
1091
- if (raw.payload.length > 0) {
1092
- indicatorId = raw.payload[0];
1093
- }
1094
- return new IndicatorCCGet_1({
1095
- nodeId: ctx.sourceNodeId,
1096
- indicatorId,
1097
- });
1098
- }
1099
- indicatorId;
1100
- serialize(ctx) {
1101
- if (this.indicatorId != undefined) {
1102
- this.payload = Bytes.from([this.indicatorId]);
1160
+ let IndicatorCCGet = (() => {
1161
+ let _classDecorators = [CCCommand(IndicatorCommand.Get), expectedCCResponse(IndicatorCCReport)];
1162
+ let _classDescriptor;
1163
+ let _classExtraInitializers = [];
1164
+ let _classThis;
1165
+ let _classSuper = IndicatorCC;
1166
+ var IndicatorCCGet = class extends _classSuper {
1167
+ static { _classThis = this; }
1168
+ static {
1169
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1170
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1171
+ IndicatorCCGet = _classThis = _classDescriptor.value;
1172
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1173
+ __runInitializers(_classThis, _classExtraInitializers);
1103
1174
  }
1104
- return super.serialize(ctx);
1105
- }
1106
- toLogEntry(ctx) {
1107
- return {
1108
- ...super.toLogEntry(ctx),
1109
- message: {
1110
- indicator: getIndicatorName(this.indicatorId),
1111
- },
1112
- };
1113
- }
1114
- };
1115
- IndicatorCCGet = IndicatorCCGet_1 = __decorate([
1116
- CCCommand(IndicatorCommand.Get),
1117
- expectedCCResponse(IndicatorCCReport)
1118
- ], IndicatorCCGet);
1175
+ constructor(options) {
1176
+ super(options);
1177
+ this.indicatorId = options.indicatorId;
1178
+ }
1179
+ static from(raw, ctx) {
1180
+ let indicatorId;
1181
+ if (raw.payload.length > 0) {
1182
+ indicatorId = raw.payload[0];
1183
+ }
1184
+ return new this({
1185
+ nodeId: ctx.sourceNodeId,
1186
+ indicatorId,
1187
+ });
1188
+ }
1189
+ indicatorId;
1190
+ serialize(ctx) {
1191
+ if (this.indicatorId != undefined) {
1192
+ this.payload = Bytes.from([this.indicatorId]);
1193
+ }
1194
+ return super.serialize(ctx);
1195
+ }
1196
+ toLogEntry(ctx) {
1197
+ return {
1198
+ ...super.toLogEntry(ctx),
1199
+ message: {
1200
+ indicator: getIndicatorName(this.indicatorId),
1201
+ },
1202
+ };
1203
+ }
1204
+ };
1205
+ return IndicatorCCGet = _classThis;
1206
+ })();
1119
1207
  export { IndicatorCCGet };
1120
- let IndicatorCCSupportedReport = IndicatorCCSupportedReport_1 = class IndicatorCCSupportedReport extends IndicatorCC {
1121
- constructor(options) {
1122
- super(options);
1123
- this.indicatorId = options.indicatorId;
1124
- this.nextIndicatorId = options.nextIndicatorId;
1125
- this.supportedProperties = options.supportedProperties;
1126
- }
1127
- static from(raw, ctx) {
1128
- validatePayload(raw.payload.length >= 3);
1129
- const indicatorId = raw.payload[0];
1130
- const nextIndicatorId = raw.payload[1];
1131
- const bitMaskLength = raw.payload[2] & 0b11111;
1132
- let supportedProperties;
1133
- if (bitMaskLength === 0) {
1134
- supportedProperties = [];
1208
+ let IndicatorCCSupportedReport = (() => {
1209
+ let _classDecorators = [CCCommand(IndicatorCommand.SupportedReport)];
1210
+ let _classDescriptor;
1211
+ let _classExtraInitializers = [];
1212
+ let _classThis;
1213
+ let _classSuper = IndicatorCC;
1214
+ var IndicatorCCSupportedReport = class extends _classSuper {
1215
+ static { _classThis = this; }
1216
+ static {
1217
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1218
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1219
+ IndicatorCCSupportedReport = _classThis = _classDescriptor.value;
1220
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1221
+ __runInitializers(_classThis, _classExtraInitializers);
1135
1222
  }
1136
- else {
1137
- validatePayload(raw.payload.length >= 3 + bitMaskLength);
1138
- // The bit mask starts at 0, but bit 0 is not used
1139
- supportedProperties = parseBitMask(raw.payload.subarray(3, 3 + bitMaskLength), 0).filter((v) => v !== 0);
1140
- }
1141
- return new IndicatorCCSupportedReport_1({
1142
- nodeId: ctx.sourceNodeId,
1143
- indicatorId,
1144
- nextIndicatorId,
1145
- supportedProperties,
1146
- });
1147
- }
1148
- persistValues(ctx) {
1149
- if (!super.persistValues(ctx))
1150
- return false;
1151
- if (this.indicatorId !== 0x00) {
1152
- // Remember which property IDs are supported
1153
- this.setValue(ctx, IndicatorCCValues.supportedPropertyIDs(this.indicatorId), this.supportedProperties);
1154
- }
1155
- return true;
1156
- }
1157
- indicatorId;
1158
- nextIndicatorId;
1159
- supportedProperties;
1160
- serialize(ctx) {
1161
- const bitmask = this.supportedProperties.length > 0
1162
- ? encodeBitMask(this.supportedProperties, undefined, 0)
1163
- : new Bytes();
1164
- this.payload = Bytes.concat([
1165
- Bytes.from([
1166
- this.indicatorId,
1167
- this.nextIndicatorId,
1168
- bitmask.length,
1169
- ]),
1170
- bitmask,
1171
- ]);
1172
- return super.serialize(ctx);
1173
- }
1174
- toLogEntry(ctx) {
1175
- return {
1176
- ...super.toLogEntry(ctx),
1177
- message: {
1178
- indicator: getIndicatorName(this.indicatorId),
1179
- "supported properties": `${this.supportedProperties
1180
- .map((id) => getIndicatorProperty(id)?.label
1181
- ?? `Unknown (${num2hex(id)})`)
1182
- .join(", ")}`,
1183
- "next indicator": getIndicatorName(this.nextIndicatorId),
1184
- },
1185
- };
1186
- }
1187
- };
1188
- IndicatorCCSupportedReport = IndicatorCCSupportedReport_1 = __decorate([
1189
- CCCommand(IndicatorCommand.SupportedReport)
1190
- ], IndicatorCCSupportedReport);
1223
+ constructor(options) {
1224
+ super(options);
1225
+ this.indicatorId = options.indicatorId;
1226
+ this.nextIndicatorId = options.nextIndicatorId;
1227
+ this.supportedProperties = options.supportedProperties;
1228
+ }
1229
+ static from(raw, ctx) {
1230
+ validatePayload(raw.payload.length >= 3);
1231
+ const indicatorId = raw.payload[0];
1232
+ const nextIndicatorId = raw.payload[1];
1233
+ const bitMaskLength = raw.payload[2] & 0b11111;
1234
+ let supportedProperties;
1235
+ if (bitMaskLength === 0) {
1236
+ supportedProperties = [];
1237
+ }
1238
+ else {
1239
+ validatePayload(raw.payload.length >= 3 + bitMaskLength);
1240
+ // The bit mask starts at 0, but bit 0 is not used
1241
+ supportedProperties = parseBitMask(raw.payload.subarray(3, 3 + bitMaskLength), 0).filter((v) => v !== 0);
1242
+ }
1243
+ return new this({
1244
+ nodeId: ctx.sourceNodeId,
1245
+ indicatorId,
1246
+ nextIndicatorId,
1247
+ supportedProperties,
1248
+ });
1249
+ }
1250
+ persistValues(ctx) {
1251
+ if (!super.persistValues(ctx))
1252
+ return false;
1253
+ if (this.indicatorId !== 0x00) {
1254
+ // Remember which property IDs are supported
1255
+ this.setValue(ctx, IndicatorCCValues.supportedPropertyIDs(this.indicatorId), this.supportedProperties);
1256
+ }
1257
+ return true;
1258
+ }
1259
+ indicatorId;
1260
+ nextIndicatorId;
1261
+ supportedProperties;
1262
+ serialize(ctx) {
1263
+ const bitmask = this.supportedProperties.length > 0
1264
+ ? encodeBitMask(this.supportedProperties, undefined, 0)
1265
+ : new Bytes();
1266
+ this.payload = Bytes.concat([
1267
+ Bytes.from([
1268
+ this.indicatorId,
1269
+ this.nextIndicatorId,
1270
+ bitmask.length,
1271
+ ]),
1272
+ bitmask,
1273
+ ]);
1274
+ return super.serialize(ctx);
1275
+ }
1276
+ toLogEntry(ctx) {
1277
+ return {
1278
+ ...super.toLogEntry(ctx),
1279
+ message: {
1280
+ indicator: getIndicatorName(this.indicatorId),
1281
+ "supported properties": `${this.supportedProperties
1282
+ .map((id) => getIndicatorProperty(id)?.label
1283
+ ?? `Unknown (${num2hex(id)})`)
1284
+ .join(", ")}`,
1285
+ "next indicator": getIndicatorName(this.nextIndicatorId),
1286
+ },
1287
+ };
1288
+ }
1289
+ };
1290
+ return IndicatorCCSupportedReport = _classThis;
1291
+ })();
1191
1292
  export { IndicatorCCSupportedReport };
1192
1293
  function testResponseForIndicatorSupportedGet(sent, received) {
1193
1294
  return sent.indicatorId === 0 || received.indicatorId === sent.indicatorId;
1194
1295
  }
1195
- let IndicatorCCSupportedGet = IndicatorCCSupportedGet_1 = class IndicatorCCSupportedGet extends IndicatorCC {
1196
- constructor(options) {
1197
- super(options);
1198
- this.indicatorId = options.indicatorId;
1199
- }
1200
- static from(raw, ctx) {
1201
- validatePayload(raw.payload.length >= 1);
1202
- const indicatorId = raw.payload[0];
1203
- return new IndicatorCCSupportedGet_1({
1204
- nodeId: ctx.sourceNodeId,
1205
- indicatorId,
1206
- });
1207
- }
1208
- indicatorId;
1209
- serialize(ctx) {
1210
- this.payload = Bytes.from([this.indicatorId]);
1211
- return super.serialize(ctx);
1212
- }
1213
- toLogEntry(ctx) {
1214
- return {
1215
- ...super.toLogEntry(ctx),
1216
- message: {
1217
- indicator: getIndicatorName(this.indicatorId),
1218
- },
1219
- };
1220
- }
1221
- };
1222
- IndicatorCCSupportedGet = IndicatorCCSupportedGet_1 = __decorate([
1223
- CCCommand(IndicatorCommand.SupportedGet),
1224
- expectedCCResponse(IndicatorCCSupportedReport, testResponseForIndicatorSupportedGet)
1225
- ], IndicatorCCSupportedGet);
1296
+ let IndicatorCCSupportedGet = (() => {
1297
+ let _classDecorators = [CCCommand(IndicatorCommand.SupportedGet), expectedCCResponse(IndicatorCCSupportedReport, testResponseForIndicatorSupportedGet)];
1298
+ let _classDescriptor;
1299
+ let _classExtraInitializers = [];
1300
+ let _classThis;
1301
+ let _classSuper = IndicatorCC;
1302
+ var IndicatorCCSupportedGet = class extends _classSuper {
1303
+ static { _classThis = this; }
1304
+ static {
1305
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1306
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1307
+ IndicatorCCSupportedGet = _classThis = _classDescriptor.value;
1308
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1309
+ __runInitializers(_classThis, _classExtraInitializers);
1310
+ }
1311
+ constructor(options) {
1312
+ super(options);
1313
+ this.indicatorId = options.indicatorId;
1314
+ }
1315
+ static from(raw, ctx) {
1316
+ validatePayload(raw.payload.length >= 1);
1317
+ const indicatorId = raw.payload[0];
1318
+ return new this({
1319
+ nodeId: ctx.sourceNodeId,
1320
+ indicatorId,
1321
+ });
1322
+ }
1323
+ indicatorId;
1324
+ serialize(ctx) {
1325
+ this.payload = Bytes.from([this.indicatorId]);
1326
+ return super.serialize(ctx);
1327
+ }
1328
+ toLogEntry(ctx) {
1329
+ return {
1330
+ ...super.toLogEntry(ctx),
1331
+ message: {
1332
+ indicator: getIndicatorName(this.indicatorId),
1333
+ },
1334
+ };
1335
+ }
1336
+ };
1337
+ return IndicatorCCSupportedGet = _classThis;
1338
+ })();
1226
1339
  export { IndicatorCCSupportedGet };
1227
- let IndicatorCCDescriptionReport = IndicatorCCDescriptionReport_1 = class IndicatorCCDescriptionReport extends IndicatorCC {
1228
- constructor(options) {
1229
- super(options);
1230
- this.indicatorId = options.indicatorId;
1231
- this.description = options.description;
1232
- }
1233
- static from(raw, ctx) {
1234
- validatePayload(raw.payload.length >= 2);
1235
- const indicatorId = raw.payload[0];
1236
- const descrptionLength = raw.payload[1];
1237
- validatePayload(raw.payload.length >= 2 + descrptionLength);
1238
- const description = raw.payload
1239
- .subarray(2, 2 + descrptionLength)
1240
- .toString("utf8");
1241
- return new IndicatorCCDescriptionReport_1({
1242
- nodeId: ctx.sourceNodeId,
1243
- indicatorId,
1244
- description,
1245
- });
1246
- }
1247
- indicatorId;
1248
- description;
1249
- persistValues(ctx) {
1250
- if (!super.persistValues(ctx))
1251
- return false;
1252
- if (this.description) {
1253
- this.setValue(ctx, IndicatorCCValues.indicatorDescription(this.indicatorId), this.description);
1254
- }
1255
- return true;
1256
- }
1257
- serialize(ctx) {
1258
- const description = Bytes.from(this.description, "utf8");
1259
- this.payload = Bytes.concat([
1260
- Bytes.from([this.indicatorId, description.length]),
1261
- description,
1262
- ]);
1263
- return super.serialize(ctx);
1264
- }
1265
- toLogEntry(ctx) {
1266
- return {
1267
- ...super.toLogEntry(ctx),
1268
- message: {
1269
- "indicator ID": this.indicatorId,
1270
- description: this.description || "(none)",
1271
- },
1272
- };
1273
- }
1274
- };
1275
- IndicatorCCDescriptionReport = IndicatorCCDescriptionReport_1 = __decorate([
1276
- CCCommand(IndicatorCommand.DescriptionReport)
1277
- ], IndicatorCCDescriptionReport);
1340
+ let IndicatorCCDescriptionReport = (() => {
1341
+ let _classDecorators = [CCCommand(IndicatorCommand.DescriptionReport)];
1342
+ let _classDescriptor;
1343
+ let _classExtraInitializers = [];
1344
+ let _classThis;
1345
+ let _classSuper = IndicatorCC;
1346
+ var IndicatorCCDescriptionReport = class extends _classSuper {
1347
+ static { _classThis = this; }
1348
+ static {
1349
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1350
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1351
+ IndicatorCCDescriptionReport = _classThis = _classDescriptor.value;
1352
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1353
+ __runInitializers(_classThis, _classExtraInitializers);
1354
+ }
1355
+ constructor(options) {
1356
+ super(options);
1357
+ this.indicatorId = options.indicatorId;
1358
+ this.description = options.description;
1359
+ }
1360
+ static from(raw, ctx) {
1361
+ validatePayload(raw.payload.length >= 2);
1362
+ const indicatorId = raw.payload[0];
1363
+ const descrptionLength = raw.payload[1];
1364
+ validatePayload(raw.payload.length >= 2 + descrptionLength);
1365
+ const description = raw.payload
1366
+ .subarray(2, 2 + descrptionLength)
1367
+ .toString("utf8");
1368
+ return new this({
1369
+ nodeId: ctx.sourceNodeId,
1370
+ indicatorId,
1371
+ description,
1372
+ });
1373
+ }
1374
+ indicatorId;
1375
+ description;
1376
+ persistValues(ctx) {
1377
+ if (!super.persistValues(ctx))
1378
+ return false;
1379
+ if (this.description) {
1380
+ this.setValue(ctx, IndicatorCCValues.indicatorDescription(this.indicatorId), this.description);
1381
+ }
1382
+ return true;
1383
+ }
1384
+ serialize(ctx) {
1385
+ const description = Bytes.from(this.description, "utf8");
1386
+ this.payload = Bytes.concat([
1387
+ Bytes.from([this.indicatorId, description.length]),
1388
+ description,
1389
+ ]);
1390
+ return super.serialize(ctx);
1391
+ }
1392
+ toLogEntry(ctx) {
1393
+ return {
1394
+ ...super.toLogEntry(ctx),
1395
+ message: {
1396
+ "indicator ID": this.indicatorId,
1397
+ description: this.description || "(none)",
1398
+ },
1399
+ };
1400
+ }
1401
+ };
1402
+ return IndicatorCCDescriptionReport = _classThis;
1403
+ })();
1278
1404
  export { IndicatorCCDescriptionReport };
1279
1405
  function testResponseForIndicatorDescriptionGet(sent, received) {
1280
1406
  return received.indicatorId === sent.indicatorId;
1281
1407
  }
1282
- let IndicatorCCDescriptionGet = IndicatorCCDescriptionGet_1 = class IndicatorCCDescriptionGet extends IndicatorCC {
1283
- constructor(options) {
1284
- super(options);
1285
- this.indicatorId = options.indicatorId;
1286
- if (!isManufacturerDefinedIndicator(this.indicatorId)) {
1287
- throw new ZWaveError("The indicator ID must be between 0x80 and 0x9f", ZWaveErrorCodes.Argument_Invalid);
1408
+ let IndicatorCCDescriptionGet = (() => {
1409
+ let _classDecorators = [CCCommand(IndicatorCommand.DescriptionGet), expectedCCResponse(IndicatorCCDescriptionReport, testResponseForIndicatorDescriptionGet)];
1410
+ let _classDescriptor;
1411
+ let _classExtraInitializers = [];
1412
+ let _classThis;
1413
+ let _classSuper = IndicatorCC;
1414
+ var IndicatorCCDescriptionGet = class extends _classSuper {
1415
+ static { _classThis = this; }
1416
+ static {
1417
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1418
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1419
+ IndicatorCCDescriptionGet = _classThis = _classDescriptor.value;
1420
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1421
+ __runInitializers(_classThis, _classExtraInitializers);
1288
1422
  }
1289
- }
1290
- static from(raw, ctx) {
1291
- validatePayload(raw.payload.length >= 1);
1292
- const indicatorId = raw.payload[0];
1293
- return new IndicatorCCDescriptionGet_1({
1294
- nodeId: ctx.sourceNodeId,
1295
- indicatorId,
1296
- });
1297
- }
1298
- indicatorId;
1299
- serialize(ctx) {
1300
- this.payload = Bytes.from([this.indicatorId]);
1301
- return super.serialize(ctx);
1302
- }
1303
- toLogEntry(ctx) {
1304
- return {
1305
- ...super.toLogEntry(ctx),
1306
- message: {
1307
- "indicator ID": this.indicatorId,
1308
- },
1309
- };
1310
- }
1311
- };
1312
- IndicatorCCDescriptionGet = IndicatorCCDescriptionGet_1 = __decorate([
1313
- CCCommand(IndicatorCommand.DescriptionGet),
1314
- expectedCCResponse(IndicatorCCDescriptionReport, testResponseForIndicatorDescriptionGet)
1315
- ], IndicatorCCDescriptionGet);
1423
+ constructor(options) {
1424
+ super(options);
1425
+ this.indicatorId = options.indicatorId;
1426
+ if (!isManufacturerDefinedIndicator(this.indicatorId)) {
1427
+ throw new ZWaveError("The indicator ID must be between 0x80 and 0x9f", ZWaveErrorCodes.Argument_Invalid);
1428
+ }
1429
+ }
1430
+ static from(raw, ctx) {
1431
+ validatePayload(raw.payload.length >= 1);
1432
+ const indicatorId = raw.payload[0];
1433
+ return new this({
1434
+ nodeId: ctx.sourceNodeId,
1435
+ indicatorId,
1436
+ });
1437
+ }
1438
+ indicatorId;
1439
+ serialize(ctx) {
1440
+ this.payload = Bytes.from([this.indicatorId]);
1441
+ return super.serialize(ctx);
1442
+ }
1443
+ toLogEntry(ctx) {
1444
+ return {
1445
+ ...super.toLogEntry(ctx),
1446
+ message: {
1447
+ "indicator ID": this.indicatorId,
1448
+ },
1449
+ };
1450
+ }
1451
+ };
1452
+ return IndicatorCCDescriptionGet = _classThis;
1453
+ })();
1316
1454
  export { IndicatorCCDescriptionGet };
1317
1455
  //# sourceMappingURL=IndicatorCC.js.map