@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,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/SupervisionCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\tDuration,\n\tEncapsulationFlags,\n\ttype EndpointId,\n\ttype GetEndpoint,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype NodeId,\n\ttype SinglecastCC,\n\ttype SupervisionResult,\n\tSupervisionStatus,\n\ttype SupportsCC,\n\tTransmitOptions,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tisTransmissionError,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetNode,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName } from \"@zwave-js/shared/safe\";\nimport { PhysicalCCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tshouldUseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { SupervisionCommand } from \"../lib/_Types.js\";\n\nexport const SupervisionCCValues = Object.freeze({\n\t...V.defineDynamicCCValues(CommandClasses.Supervision, {\n\t\t// Used to remember whether a node supports supervision-encapsulation of the given CC\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"ccSupported\",\n\t\t\t\"ccSupported\",\n\t\t\t(ccId: CommandClasses) => ccId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"commandSupported\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true, supportsEndpoints: false },\n\t\t),\n\t}),\n});\n\n// @noSetValueAPI - This CC has no values to set\n// @noInterview - This CC is only used for encapsulation\n\n// Encapsulation CCs are used internally and too frequently that we\n// want to pay the cost of validating each call\n/* eslint-disable @zwave-js/ccapi-validate-args */\n\n@API(CommandClasses.Supervision)\nexport class SupervisionCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: SupervisionCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase SupervisionCommand.Get:\n\t\t\tcase SupervisionCommand.Report:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tpublic async sendReport(\n\t\toptions: SupervisionCCReportOptions & {\n\t\t\tencapsulationFlags?: EncapsulationFlags;\n\t\t\tlowPriority?: boolean;\n\t\t},\n\t): Promise<void> {\n\t\t// Here we don't assert support - some devices only half-support Supervision, so we treat them\n\t\t// as if they don't support it. We still need to be able to respond to the Get command though.\n\n\t\tconst {\n\t\t\tencapsulationFlags = EncapsulationFlags.None,\n\t\t\tlowPriority = false,\n\t\t\t...cmdOptions\n\t\t} = options;\n\t\tconst cc = new SupervisionCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...cmdOptions,\n\t\t});\n\n\t\t// The report must be sent back with the same encapsulation order\n\t\tcc.encapsulationFlags = encapsulationFlags;\n\n\t\ttry {\n\t\t\tawait this.host.sendCommand(cc, {\n\t\t\t\t...this.commandOptions,\n\t\t\t\t// Supervision Reports must be prioritized over normal messages\n\t\t\t\tpriority: lowPriority\n\t\t\t\t\t? MessagePriority.ImmediateLow\n\t\t\t\t\t: MessagePriority.Immediate,\n\t\t\t\t// But we don't want to wait for an ACK because this can lock up the network for seconds\n\t\t\t\t// if the target node is asleep or unreachable\n\t\t\t\ttransmitOptions: TransmitOptions.DEFAULT_NOACK,\n\t\t\t\t// Only try sending the report once. If it fails, the node will ask again\n\t\t\t\tmaxSendAttempts: 1,\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (isTransmissionError(e)) {\n\t\t\t\t// Swallow errors related to transmission failures\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// Pass other errors through\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses.Supervision)\n@implementedVersion(2)\nexport class SupervisionCC extends CommandClass {\n\tdeclare ccCommand: SupervisionCommand;\n\t// Force singlecast for the supervision CC\n\tdeclare nodeId: number;\n\n\t/** Tests if a command should be supervised and thus requires encapsulation */\n\tpublic static requiresEncapsulation(cc: CommandClass): boolean {\n\t\treturn (\n\t\t\t!!(cc.encapsulationFlags & EncapsulationFlags.Supervision)\n\t\t\t&& !(cc instanceof SupervisionCCGet)\n\t\t\t&& !(cc instanceof SupervisionCCReport)\n\t\t);\n\t}\n\n\t/** Encapsulates a command that targets a specific endpoint */\n\tpublic static encapsulate(\n\t\tcc: CommandClass,\n\t\tsessionId: number,\n\t\trequestStatusUpdates: boolean = true,\n\t): SupervisionCCGet {\n\t\tif (!cc.isSinglecast()) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`Supervision is only possible for singlecast commands!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst ret = new SupervisionCCGet({\n\t\t\tnodeId: cc.nodeId,\n\t\t\t// Supervision CC is wrapped inside MultiChannel CCs, so the endpoint must be copied\n\t\t\tendpointIndex: cc.endpointIndex,\n\t\t\tencapsulated: cc,\n\t\t\tsessionId,\n\t\t\trequestStatusUpdates,\n\t\t});\n\n\t\t// Copy the encapsulation flags from the encapsulated command\n\t\t// but omit Supervision, since we're doing that right now\n\t\tret.encapsulationFlags = cc.encapsulationFlags\n\t\t\t& ~EncapsulationFlags.Supervision;\n\n\t\treturn ret;\n\t}\n\n\t/**\n\t * Given a CC instance, this returns the Supervision session ID which is used for this command.\n\t * Returns `undefined` when there is no session ID or the command was sent as multicast.\n\t */\n\tpublic static getSessionId(command: CommandClass): number | undefined {\n\t\tif (\n\t\t\tcommand.isEncapsulatedWith(\n\t\t\t\tCommandClasses.Supervision,\n\t\t\t\tSupervisionCommand.Get,\n\t\t\t)\n\t\t) {\n\t\t\tconst supervisionEncapsulation = command.getEncapsulatingCC(\n\t\t\t\tCommandClasses.Supervision,\n\t\t\t\tSupervisionCommand.Get,\n\t\t\t) as SupervisionCCGet;\n\t\t\tif (\n\t\t\t\tsupervisionEncapsulation.frameType !== \"broadcast\"\n\t\t\t\t&& supervisionEncapsulation.frameType !== \"multicast\"\n\t\t\t) {\n\t\t\t\treturn supervisionEncapsulation.sessionId;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns whether a node supports the given CC with Supervision encapsulation.\n\t */\n\tpublic static getCCSupportedWithSupervision(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tccId: CommandClasses,\n\t): boolean {\n\t\t// By default assume supervision is supported for all CCs, unless we've remembered one not to be\n\t\treturn (\n\t\t\tctx\n\t\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t\t.getValue(\n\t\t\t\t\tSupervisionCCValues.ccSupported(ccId).endpoint(\n\t\t\t\t\t\tendpoint.index,\n\t\t\t\t\t),\n\t\t\t\t) ?? true\n\t\t);\n\t}\n\n\t/**\n\t * Remembers whether a node supports the given CC with Supervision encapsulation.\n\t */\n\tpublic static setCCSupportedWithSupervision(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tccId: CommandClasses,\n\t\tsupported: boolean,\n\t): void {\n\t\tctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.setValue(\n\t\t\t\tSupervisionCCValues.ccSupported(ccId).endpoint(endpoint.index),\n\t\t\t\tsupported,\n\t\t\t);\n\t}\n\n\t/** Returns whether this is a valid command to send supervised */\n\tpublic static mayUseSupervision<T extends CommandClass>(\n\t\tctx:\n\t\t\t& GetValueDB\n\t\t\t& GetNode<\n\t\t\t\tNodeId & SupportsCC & GetEndpoint<EndpointId>\n\t\t\t>,\n\t\tcommand: T,\n\t): command is SinglecastCC<T> {\n\t\t// Supervision may only be used for singlecast CCs that expect no response\n\t\t// The specs mention that Supervision CAN be used for S2 multicast, but conveniently fail to explain how to respond to that.\n\t\tif (!command.isSinglecast()) return false;\n\t\tif (command.expectsCCResponse()) return false;\n\n\t\t// with a valid node and endpoint\n\t\tconst node = command.getNode(ctx);\n\t\tif (!node) return false;\n\t\tconst endpoint = command.getEndpoint(ctx);\n\t\tif (!endpoint) return false;\n\n\t\t// and only if ...\n\t\treturn (\n\t\t\t// ... the node supports it\n\t\t\tnode.supportsCC(CommandClasses.Supervision)\n\t\t\t// ... the command is marked as \"should use supervision\"\n\t\t\t&& shouldUseSupervision(command)\n\t\t\t// ... and we haven't previously determined that the node doesn't properly support it\n\t\t\t&& SupervisionCC.getCCSupportedWithSupervision(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tcommand.ccId,\n\t\t\t)\n\t\t);\n\t}\n}\n\n// @publicAPI\nexport type SupervisionCCReportOptions =\n\t& {\n\t\tmoreUpdatesFollow: boolean;\n\t\trequestWakeUpOnDemand?: boolean;\n\t\tsessionId: number;\n\t}\n\t& (\n\t\t| {\n\t\t\tstatus: SupervisionStatus.Working;\n\t\t\tduration: Duration;\n\t\t}\n\t\t| {\n\t\t\tstatus:\n\t\t\t\t| SupervisionStatus.NoSupport\n\t\t\t\t| SupervisionStatus.Fail\n\t\t\t\t| SupervisionStatus.Success;\n\t\t}\n\t);\n\n@CCCommand(SupervisionCommand.Report)\nexport class SupervisionCCReport extends SupervisionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<SupervisionCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.moreUpdatesFollow = options.moreUpdatesFollow;\n\t\tthis.requestWakeUpOnDemand = !!options.requestWakeUpOnDemand;\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.status = options.status;\n\t\tif (options.status === SupervisionStatus.Working) {\n\t\t\tthis.duration = options.duration;\n\t\t} else {\n\t\t\tthis.duration = new Duration(0, \"seconds\");\n\t\t}\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): SupervisionCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst moreUpdatesFollow = !!(raw.payload[0] & 0b1_0_000000);\n\t\tconst requestWakeUpOnDemand = !!(raw.payload[0] & 0b0_1_000000);\n\t\tconst sessionId = raw.payload[0] & 0b111111;\n\t\tconst status: SupervisionStatus = raw.payload[1];\n\n\t\tif (status === SupervisionStatus.Working) {\n\t\t\tconst duration = Duration.parseReport(raw.payload[2])\n\t\t\t\t?? new Duration(0, \"seconds\");\n\t\t\treturn new SupervisionCCReport({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmoreUpdatesFollow,\n\t\t\t\trequestWakeUpOnDemand,\n\t\t\t\tsessionId,\n\t\t\t\tstatus,\n\t\t\t\tduration,\n\t\t\t});\n\t\t} else {\n\t\t\treturn new SupervisionCCReport({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmoreUpdatesFollow,\n\t\t\t\trequestWakeUpOnDemand,\n\t\t\t\tsessionId,\n\t\t\t\tstatus,\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic readonly moreUpdatesFollow: boolean;\n\tpublic readonly requestWakeUpOnDemand: boolean;\n\tpublic readonly sessionId: number;\n\tpublic readonly status: SupervisionStatus;\n\tpublic readonly duration: Duration | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t(this.moreUpdatesFollow ? 0b1_0_000000 : 0)\n\t\t\t\t| (this.requestWakeUpOnDemand ? 0b0_1_000000 : 0)\n\t\t\t\t| (this.sessionId & 0b111111),\n\t\t\t\tthis.status,\n\t\t\t]),\n\t\t]);\n\n\t\tif (this.duration) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([this.duration.serializeReport()]),\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"session id\": this.sessionId,\n\t\t\t\"more updates follow\": this.moreUpdatesFollow,\n\t\t\tstatus: getEnumMemberName(SupervisionStatus, this.status),\n\t\t};\n\t\tif (this.duration) {\n\t\t\tmessage.duration = this.duration.toString();\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n\n\tpublic toSupervisionResult(): SupervisionResult {\n\t\tif (this.status === SupervisionStatus.Working) {\n\t\t\treturn {\n\t\t\t\tstatus: this.status,\n\t\t\t\tremainingDuration: this.duration!,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tstatus: this.status,\n\t\t\t};\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface SupervisionCCGetOptions {\n\trequestStatusUpdates: boolean;\n\tencapsulated: CommandClass;\n\tsessionId: number;\n}\n\nfunction testResponseForSupervisionCCGet(\n\tsent: SupervisionCCGet,\n\treceived: SupervisionCCReport,\n) {\n\treturn received.sessionId === sent.sessionId;\n}\n\n@CCCommand(SupervisionCommand.Get)\n@expectedCCResponse(SupervisionCCReport, testResponseForSupervisionCCGet)\nexport class SupervisionCCGet extends SupervisionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<SupervisionCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.requestStatusUpdates = options.requestStatusUpdates;\n\t\tthis.encapsulated = options.encapsulated;\n\t\t// Supervision is inside MultiChannel CCs, so the endpoint must be copied\n\t\tthis.encapsulated.endpointIndex = this.endpointIndex;\n\t\tthis.encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): SupervisionCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst requestStatusUpdates = !!(raw.payload[0] & 0b1_0_000000);\n\t\tconst sessionId = raw.payload[0] & 0b111111;\n\n\t\tconst encapsulated = CommandClass.parse(raw.payload.subarray(2), ctx);\n\t\treturn new SupervisionCCGet({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trequestStatusUpdates,\n\t\t\tsessionId,\n\t\t\tencapsulated,\n\t\t});\n\t}\n\n\tpublic requestStatusUpdates: boolean;\n\tpublic sessionId: number;\n\tpublic encapsulated: CommandClass;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst encapCC = this.encapsulated.serialize(ctx);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t(this.requestStatusUpdates ? 0b10_000000 : 0)\n\t\t\t\t| (this.sessionId & 0b111111),\n\t\t\t\tencapCC.length,\n\t\t\t]),\n\t\t\tencapCC,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// Supervision CC adds two bytes (control byte + cc length)\n\t\treturn super.computeEncapsulationOverhead() + 2;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session id\": this.sessionId,\n\t\t\t\t\"request updates\": this.requestStatusUpdates,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_safe", "SupervisionCCAPI", "SupervisionCC", "SupervisionCCReport", "SupervisionCCGet"]
4
+ "sourcesContent": ["import {\n\tCommandClasses,\n\tDuration,\n\tEncapsulationFlags,\n\ttype EndpointId,\n\ttype GetEndpoint,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype NodeId,\n\ttype SinglecastCC,\n\ttype SupervisionResult,\n\tSupervisionStatus,\n\ttype SupportsCC,\n\tTransmitOptions,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tisTransmissionError,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetNode,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName } from \"@zwave-js/shared/safe\";\nimport { PhysicalCCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tshouldUseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { SupervisionCommand } from \"../lib/_Types.js\";\n\nexport const SupervisionCCValues = Object.freeze({\n\t...V.defineDynamicCCValues(CommandClasses.Supervision, {\n\t\t// Used to remember whether a node supports supervision-encapsulation of the given CC\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"ccSupported\",\n\t\t\t\"ccSupported\",\n\t\t\t(ccId: CommandClasses) => ccId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"commandSupported\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true, supportsEndpoints: false },\n\t\t),\n\t}),\n});\n\n// @noSetValueAPI - This CC has no values to set\n// @noInterview - This CC is only used for encapsulation\n\n// Encapsulation CCs are used internally and too frequently that we\n// want to pay the cost of validating each call\n/* eslint-disable @zwave-js/ccapi-validate-args */\n\n@API(CommandClasses.Supervision)\nexport class SupervisionCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: SupervisionCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase SupervisionCommand.Get:\n\t\t\tcase SupervisionCommand.Report:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tpublic async sendReport(\n\t\toptions: SupervisionCCReportOptions & {\n\t\t\tencapsulationFlags?: EncapsulationFlags;\n\t\t\tlowPriority?: boolean;\n\t\t},\n\t): Promise<void> {\n\t\t// Here we don't assert support - some devices only half-support Supervision, so we treat them\n\t\t// as if they don't support it. We still need to be able to respond to the Get command though.\n\n\t\tconst {\n\t\t\tencapsulationFlags = EncapsulationFlags.None,\n\t\t\tlowPriority = false,\n\t\t\t...cmdOptions\n\t\t} = options;\n\t\tconst cc = new SupervisionCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...cmdOptions,\n\t\t});\n\n\t\t// The report must be sent back with the same encapsulation order\n\t\tcc.encapsulationFlags = encapsulationFlags;\n\n\t\ttry {\n\t\t\tawait this.host.sendCommand(cc, {\n\t\t\t\t...this.commandOptions,\n\t\t\t\t// Supervision Reports must be prioritized over normal messages\n\t\t\t\tpriority: lowPriority\n\t\t\t\t\t? MessagePriority.ImmediateLow\n\t\t\t\t\t: MessagePriority.Immediate,\n\t\t\t\t// But we don't want to wait for an ACK because this can lock up the network for seconds\n\t\t\t\t// if the target node is asleep or unreachable\n\t\t\t\ttransmitOptions: TransmitOptions.DEFAULT_NOACK,\n\t\t\t\t// Only try sending the report once. If it fails, the node will ask again\n\t\t\t\tmaxSendAttempts: 1,\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (isTransmissionError(e)) {\n\t\t\t\t// Swallow errors related to transmission failures\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// Pass other errors through\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses.Supervision)\n@implementedVersion(2)\nexport class SupervisionCC extends CommandClass {\n\tdeclare ccCommand: SupervisionCommand;\n\t// Force singlecast for the supervision CC\n\tdeclare nodeId: number;\n\n\t/** Tests if a command should be supervised and thus requires encapsulation */\n\tpublic static requiresEncapsulation(cc: CommandClass): boolean {\n\t\treturn (\n\t\t\t!!(cc.encapsulationFlags & EncapsulationFlags.Supervision)\n\t\t\t&& !(cc instanceof SupervisionCCGet)\n\t\t\t&& !(cc instanceof SupervisionCCReport)\n\t\t);\n\t}\n\n\t/** Encapsulates a command that targets a specific endpoint */\n\tpublic static encapsulate(\n\t\tcc: CommandClass,\n\t\tsessionId: number,\n\t\trequestStatusUpdates: boolean = true,\n\t): SupervisionCCGet {\n\t\tif (!cc.isSinglecast()) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`Supervision is only possible for singlecast commands!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst ret = new SupervisionCCGet({\n\t\t\tnodeId: cc.nodeId,\n\t\t\t// Supervision CC is wrapped inside MultiChannel CCs, so the endpoint must be copied\n\t\t\tendpointIndex: cc.endpointIndex,\n\t\t\tencapsulated: cc,\n\t\t\tsessionId,\n\t\t\trequestStatusUpdates,\n\t\t});\n\n\t\t// Copy the encapsulation flags from the encapsulated command\n\t\t// but omit Supervision, since we're doing that right now\n\t\tret.encapsulationFlags = cc.encapsulationFlags\n\t\t\t& ~EncapsulationFlags.Supervision;\n\n\t\treturn ret;\n\t}\n\n\t/**\n\t * Given a CC instance, this returns the Supervision session ID which is used for this command.\n\t * Returns `undefined` when there is no session ID or the command was sent as multicast.\n\t */\n\tpublic static getSessionId(command: CommandClass): number | undefined {\n\t\tif (\n\t\t\tcommand.isEncapsulatedWith(\n\t\t\t\tCommandClasses.Supervision,\n\t\t\t\tSupervisionCommand.Get,\n\t\t\t)\n\t\t) {\n\t\t\tconst supervisionEncapsulation = command.getEncapsulatingCC(\n\t\t\t\tCommandClasses.Supervision,\n\t\t\t\tSupervisionCommand.Get,\n\t\t\t) as SupervisionCCGet;\n\t\t\tif (\n\t\t\t\tsupervisionEncapsulation.frameType !== \"broadcast\"\n\t\t\t\t&& supervisionEncapsulation.frameType !== \"multicast\"\n\t\t\t) {\n\t\t\t\treturn supervisionEncapsulation.sessionId;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns whether a node supports the given CC with Supervision encapsulation.\n\t */\n\tpublic static getCCSupportedWithSupervision(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tccId: CommandClasses,\n\t): boolean {\n\t\t// By default assume supervision is supported for all CCs, unless we've remembered one not to be\n\t\treturn (\n\t\t\tctx\n\t\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t\t.getValue(\n\t\t\t\t\tSupervisionCCValues.ccSupported(ccId).endpoint(\n\t\t\t\t\t\tendpoint.index,\n\t\t\t\t\t),\n\t\t\t\t) ?? true\n\t\t);\n\t}\n\n\t/**\n\t * Remembers whether a node supports the given CC with Supervision encapsulation.\n\t */\n\tpublic static setCCSupportedWithSupervision(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t\tccId: CommandClasses,\n\t\tsupported: boolean,\n\t): void {\n\t\tctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.setValue(\n\t\t\t\tSupervisionCCValues.ccSupported(ccId).endpoint(endpoint.index),\n\t\t\t\tsupported,\n\t\t\t);\n\t}\n\n\t/** Returns whether this is a valid command to send supervised */\n\tpublic static mayUseSupervision<T extends CommandClass>(\n\t\tctx:\n\t\t\t& GetValueDB\n\t\t\t& GetNode<\n\t\t\t\tNodeId & SupportsCC & GetEndpoint<EndpointId>\n\t\t\t>,\n\t\tcommand: T,\n\t): command is SinglecastCC<T> {\n\t\t// Supervision may only be used for singlecast CCs that expect no response\n\t\t// The specs mention that Supervision CAN be used for S2 multicast, but conveniently fail to explain how to respond to that.\n\t\tif (!command.isSinglecast()) return false;\n\t\tif (command.expectsCCResponse()) return false;\n\n\t\t// with a valid node and endpoint\n\t\tconst node = command.getNode(ctx);\n\t\tif (!node) return false;\n\t\tconst endpoint = command.getEndpoint(ctx);\n\t\tif (!endpoint) return false;\n\n\t\t// and only if ...\n\t\treturn (\n\t\t\t// ... the node supports it\n\t\t\tnode.supportsCC(CommandClasses.Supervision)\n\t\t\t// ... the command is marked as \"should use supervision\"\n\t\t\t&& shouldUseSupervision(command)\n\t\t\t// ... and we haven't previously determined that the node doesn't properly support it\n\t\t\t&& SupervisionCC.getCCSupportedWithSupervision(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tcommand.ccId,\n\t\t\t)\n\t\t);\n\t}\n}\n\n// @publicAPI\nexport type SupervisionCCReportOptions =\n\t& {\n\t\tmoreUpdatesFollow: boolean;\n\t\trequestWakeUpOnDemand?: boolean;\n\t\tsessionId: number;\n\t}\n\t& (\n\t\t| {\n\t\t\tstatus: SupervisionStatus.Working;\n\t\t\tduration: Duration;\n\t\t}\n\t\t| {\n\t\t\tstatus:\n\t\t\t\t| SupervisionStatus.NoSupport\n\t\t\t\t| SupervisionStatus.Fail\n\t\t\t\t| SupervisionStatus.Success;\n\t\t}\n\t);\n\n@CCCommand(SupervisionCommand.Report)\nexport class SupervisionCCReport extends SupervisionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<SupervisionCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.moreUpdatesFollow = options.moreUpdatesFollow;\n\t\tthis.requestWakeUpOnDemand = !!options.requestWakeUpOnDemand;\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.status = options.status;\n\t\tif (options.status === SupervisionStatus.Working) {\n\t\t\tthis.duration = options.duration;\n\t\t} else {\n\t\t\tthis.duration = new Duration(0, \"seconds\");\n\t\t}\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): SupervisionCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst moreUpdatesFollow = !!(raw.payload[0] & 0b1_0_000000);\n\t\tconst requestWakeUpOnDemand = !!(raw.payload[0] & 0b0_1_000000);\n\t\tconst sessionId = raw.payload[0] & 0b111111;\n\t\tconst status: SupervisionStatus = raw.payload[1];\n\n\t\tif (status === SupervisionStatus.Working) {\n\t\t\tconst duration = Duration.parseReport(raw.payload[2])\n\t\t\t\t?? new Duration(0, \"seconds\");\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmoreUpdatesFollow,\n\t\t\t\trequestWakeUpOnDemand,\n\t\t\t\tsessionId,\n\t\t\t\tstatus,\n\t\t\t\tduration,\n\t\t\t});\n\t\t} else {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmoreUpdatesFollow,\n\t\t\t\trequestWakeUpOnDemand,\n\t\t\t\tsessionId,\n\t\t\t\tstatus,\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic readonly moreUpdatesFollow: boolean;\n\tpublic readonly requestWakeUpOnDemand: boolean;\n\tpublic readonly sessionId: number;\n\tpublic readonly status: SupervisionStatus;\n\tpublic readonly duration: Duration | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t(this.moreUpdatesFollow ? 0b1_0_000000 : 0)\n\t\t\t\t| (this.requestWakeUpOnDemand ? 0b0_1_000000 : 0)\n\t\t\t\t| (this.sessionId & 0b111111),\n\t\t\t\tthis.status,\n\t\t\t]),\n\t\t]);\n\n\t\tif (this.duration) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from([this.duration.serializeReport()]),\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"session id\": this.sessionId,\n\t\t\t\"more updates follow\": this.moreUpdatesFollow,\n\t\t\tstatus: getEnumMemberName(SupervisionStatus, this.status),\n\t\t};\n\t\tif (this.duration) {\n\t\t\tmessage.duration = this.duration.toString();\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n\n\tpublic toSupervisionResult(): SupervisionResult {\n\t\tif (this.status === SupervisionStatus.Working) {\n\t\t\treturn {\n\t\t\t\tstatus: this.status,\n\t\t\t\tremainingDuration: this.duration!,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tstatus: this.status,\n\t\t\t};\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface SupervisionCCGetOptions {\n\trequestStatusUpdates: boolean;\n\tencapsulated: CommandClass;\n\tsessionId: number;\n}\n\nfunction testResponseForSupervisionCCGet(\n\tsent: SupervisionCCGet,\n\treceived: SupervisionCCReport,\n) {\n\treturn received.sessionId === sent.sessionId;\n}\n\n@CCCommand(SupervisionCommand.Get)\n@expectedCCResponse(SupervisionCCReport, testResponseForSupervisionCCGet)\nexport class SupervisionCCGet extends SupervisionCC {\n\tpublic constructor(\n\t\toptions: WithAddress<SupervisionCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.requestStatusUpdates = options.requestStatusUpdates;\n\t\tthis.encapsulated = options.encapsulated;\n\t\t// Supervision is inside MultiChannel CCs, so the endpoint must be copied\n\t\tthis.encapsulated.endpointIndex = this.endpointIndex;\n\t\tthis.encapsulated.encapsulatingCC = this as any;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): SupervisionCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst requestStatusUpdates = !!(raw.payload[0] & 0b1_0_000000);\n\t\tconst sessionId = raw.payload[0] & 0b111111;\n\n\t\tconst encapsulated = CommandClass.parse(raw.payload.subarray(2), ctx);\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\trequestStatusUpdates,\n\t\t\tsessionId,\n\t\t\tencapsulated,\n\t\t});\n\t}\n\n\tpublic requestStatusUpdates: boolean;\n\tpublic sessionId: number;\n\tpublic encapsulated: CommandClass;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst encapCC = this.encapsulated.serialize(ctx);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t(this.requestStatusUpdates ? 0b10_000000 : 0)\n\t\t\t\t| (this.sessionId & 0b111111),\n\t\t\t\tencapCC.length,\n\t\t\t]),\n\t\t\tencapCC,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tprotected computeEncapsulationOverhead(): number {\n\t\t// Supervision CC adds two bytes (control byte + cc length)\n\t\treturn super.computeEncapsulationOverhead() + 2;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"session id\": this.sessionId,\n\t\t\t\t\"request updates\": this.requestStatusUpdates,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_safe", "SupervisionCC"]
7
7
  }