@zwave-js/cc 15.0.0-beta.0 → 15.0.0-beta.1

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 (376) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +79 -161
  2. package/build/cjs/cc/AlarmSensorCC.js +12 -50
  3. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  4. package/build/cjs/cc/AssociationCC.d.ts +63 -199
  5. package/build/cjs/cc/AssociationCC.js +9 -22
  6. package/build/cjs/cc/AssociationCC.js.map +2 -2
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +66 -166
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +86 -294
  11. package/build/cjs/cc/BarrierOperatorCC.js +12 -44
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  13. package/build/cjs/cc/BasicCC.d.ts +85 -331
  14. package/build/cjs/cc/BasicCC.js +15 -46
  15. package/build/cjs/cc/BasicCC.js.map +2 -2
  16. package/build/cjs/cc/BatteryCC.d.ts +237 -835
  17. package/build/cjs/cc/BatteryCC.js +7 -84
  18. package/build/cjs/cc/BatteryCC.js.map +2 -2
  19. package/build/cjs/cc/BinarySensorCC.d.ts +34 -99
  20. package/build/cjs/cc/BinarySensorCC.js +9 -29
  21. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +45 -197
  23. package/build/cjs/cc/BinarySwitchCC.js +6 -22
  24. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  25. package/build/cjs/cc/CentralSceneCC.d.ts +77 -296
  26. package/build/cjs/cc/CentralSceneCC.js +7 -30
  27. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  28. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +45 -160
  29. package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
  30. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  31. package/build/cjs/cc/ColorSwitchCC.d.ts +130 -457
  32. package/build/cjs/cc/ColorSwitchCC.js +23 -75
  33. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  34. package/build/cjs/cc/ConfigurationCC.d.ts +32 -100
  35. package/build/cjs/cc/ConfigurationCC.js +11 -31
  36. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  37. package/build/cjs/cc/DoorLockCC.d.ts +512 -1823
  38. package/build/cjs/cc/DoorLockCC.js +51 -156
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +11 -63
  41. package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
  42. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  43. package/build/cjs/cc/EnergyProductionCC.d.ts +14 -29
  44. package/build/cjs/cc/EnergyProductionCC.js +5 -17
  45. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  46. package/build/cjs/cc/EntryControlCC.d.ts +73 -324
  47. package/build/cjs/cc/EntryControlCC.js +9 -36
  48. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  49. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +5 -26
  51. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -131
  53. package/build/cjs/cc/HumidityControlModeCC.js +6 -15
  54. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  55. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +17 -65
  56. package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
  57. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  58. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +51 -128
  59. package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
  60. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  61. package/build/cjs/cc/IndicatorCC.d.ts +123 -365
  62. package/build/cjs/cc/IndicatorCC.js +15 -61
  63. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  64. package/build/cjs/cc/IrrigationCC.d.ts +826 -2317
  65. package/build/cjs/cc/IrrigationCC.js +29 -233
  66. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  67. package/build/cjs/cc/LanguageCC.d.ts +31 -133
  68. package/build/cjs/cc/LanguageCC.js +4 -15
  69. package/build/cjs/cc/LanguageCC.js.map +2 -2
  70. package/build/cjs/cc/LockCC.d.ts +14 -64
  71. package/build/cjs/cc/LockCC.js +4 -12
  72. package/build/cjs/cc/LockCC.js.map +2 -2
  73. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  74. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +77 -239
  75. package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
  76. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  77. package/build/cjs/cc/MeterCC.d.ts +119 -393
  78. package/build/cjs/cc/MeterCC.js +25 -69
  79. package/build/cjs/cc/MeterCC.js.map +2 -2
  80. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +66 -166
  81. package/build/cjs/cc/MultiChannelAssociationCC.js +10 -23
  82. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  83. package/build/cjs/cc/MultiChannelCC.d.ts +119 -499
  84. package/build/cjs/cc/MultiChannelCC.js +18 -46
  85. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  86. package/build/cjs/cc/MultilevelSensorCC.d.ts +46 -130
  87. package/build/cjs/cc/MultilevelSensorCC.js +12 -33
  88. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  89. package/build/cjs/cc/MultilevelSwitchCC.d.ts +160 -525
  90. package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
  91. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  92. package/build/cjs/cc/NodeNamingCC.d.ts +33 -135
  93. package/build/cjs/cc/NodeNamingCC.js +5 -16
  94. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  95. package/build/cjs/cc/NotificationCC.d.ts +262 -702
  96. package/build/cjs/cc/NotificationCC.js +29 -112
  97. package/build/cjs/cc/NotificationCC.js.map +2 -2
  98. package/build/cjs/cc/ProtectionCC.d.ts +118 -524
  99. package/build/cjs/cc/ProtectionCC.js +15 -50
  100. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  101. package/build/cjs/cc/SceneActivationCC.d.ts +33 -132
  102. package/build/cjs/cc/SceneActivationCC.js +4 -17
  103. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  104. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +34 -61
  105. package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
  106. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  107. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +34 -61
  108. package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
  109. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  110. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +95 -299
  111. package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
  112. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  113. package/build/cjs/cc/SoundSwitchCC.d.ts +72 -261
  114. package/build/cjs/cc/SoundSwitchCC.js +11 -43
  115. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  116. package/build/cjs/cc/SupervisionCC.d.ts +17 -33
  117. package/build/cjs/cc/SupervisionCC.js +4 -9
  118. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  119. package/build/cjs/cc/ThermostatFanModeCC.d.ts +44 -195
  120. package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
  121. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  122. package/build/cjs/cc/ThermostatFanStateCC.d.ts +17 -65
  123. package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
  124. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  125. package/build/cjs/cc/ThermostatModeCC.d.ts +44 -195
  126. package/build/cjs/cc/ThermostatModeCC.js +8 -21
  127. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  128. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +17 -65
  129. package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
  130. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  131. package/build/cjs/cc/ThermostatSetpointCC.d.ts +49 -129
  132. package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
  133. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  134. package/build/cjs/cc/TimeParametersCC.d.ts +12 -63
  135. package/build/cjs/cc/TimeParametersCC.js +4 -11
  136. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  137. package/build/cjs/cc/UserCodeCC.d.ts +311 -1066
  138. package/build/cjs/cc/UserCodeCC.js +33 -98
  139. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  140. package/build/cjs/cc/VersionCC.d.ts +289 -1003
  141. package/build/cjs/cc/VersionCC.js +7 -98
  142. package/build/cjs/cc/VersionCC.js.map +2 -2
  143. package/build/cjs/cc/WakeUpCC.d.ts +49 -201
  144. package/build/cjs/cc/WakeUpCC.js +6 -26
  145. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  146. package/build/cjs/cc/WindowCoveringCC.d.ts +126 -220
  147. package/build/cjs/cc/WindowCoveringCC.js +16 -128
  148. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  149. package/build/cjs/cc/ZWavePlusCC.d.ts +69 -329
  150. package/build/cjs/cc/ZWavePlusCC.js +4 -25
  151. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  152. package/build/cjs/cc/_CCValues.generated.d.ts +15814 -0
  153. package/build/cjs/cc/_CCValues.generated.js +8723 -0
  154. package/build/cjs/cc/_CCValues.generated.js.map +7 -0
  155. package/build/cjs/lib/CCValueUtils.d.ts +14 -0
  156. package/build/cjs/lib/CCValueUtils.js +93 -0
  157. package/build/cjs/lib/CCValueUtils.js.map +7 -0
  158. package/build/cjs/lib/Values.d.ts +6 -105
  159. package/build/cjs/lib/Values.js +13 -107
  160. package/build/cjs/lib/Values.js.map +3 -3
  161. package/build/esm/cc/AlarmSensorCC.d.ts +79 -161
  162. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  163. package/build/esm/cc/AlarmSensorCC.js +2 -39
  164. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  165. package/build/esm/cc/AssociationCC.d.ts +63 -199
  166. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  167. package/build/esm/cc/AssociationCC.js +2 -14
  168. package/build/esm/cc/AssociationCC.js.map +1 -1
  169. package/build/esm/cc/AssociationGroupInfoCC.d.ts +66 -166
  170. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  171. package/build/esm/cc/AssociationGroupInfoCC.js +2 -13
  172. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  173. package/build/esm/cc/BarrierOperatorCC.d.ts +86 -294
  174. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  175. package/build/esm/cc/BarrierOperatorCC.js +2 -34
  176. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  177. package/build/esm/cc/BasicCC.d.ts +85 -331
  178. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  179. package/build/esm/cc/BasicCC.js +2 -32
  180. package/build/esm/cc/BasicCC.js.map +1 -1
  181. package/build/esm/cc/BatteryCC.d.ts +237 -835
  182. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  183. package/build/esm/cc/BatteryCC.js +2 -78
  184. package/build/esm/cc/BatteryCC.js.map +1 -1
  185. package/build/esm/cc/BinarySensorCC.d.ts +34 -99
  186. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  187. package/build/esm/cc/BinarySensorCC.js +2 -16
  188. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  189. package/build/esm/cc/BinarySwitchCC.d.ts +45 -197
  190. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  191. package/build/esm/cc/BinarySwitchCC.js +2 -17
  192. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  193. package/build/esm/cc/CentralSceneCC.d.ts +77 -296
  194. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  195. package/build/esm/cc/CentralSceneCC.js +2 -26
  196. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  197. package/build/esm/cc/ClimateControlScheduleCC.d.ts +45 -160
  198. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  199. package/build/esm/cc/ClimateControlScheduleCC.js +2 -23
  200. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  201. package/build/esm/cc/ColorSwitchCC.d.ts +130 -457
  202. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  203. package/build/esm/cc/ColorSwitchCC.js +2 -52
  204. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  205. package/build/esm/cc/ConfigurationCC.d.ts +32 -100
  206. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  207. package/build/esm/cc/ConfigurationCC.js +2 -15
  208. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  209. package/build/esm/cc/DoorLockCC.d.ts +512 -1823
  210. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  211. package/build/esm/cc/DoorLockCC.js +9 -127
  212. package/build/esm/cc/DoorLockCC.js.map +1 -1
  213. package/build/esm/cc/DoorLockLoggingCC.d.ts +11 -63
  214. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  215. package/build/esm/cc/DoorLockLoggingCC.js +2 -5
  216. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  217. package/build/esm/cc/EnergyProductionCC.d.ts +14 -29
  218. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  219. package/build/esm/cc/EnergyProductionCC.js +2 -13
  220. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  221. package/build/esm/cc/EntryControlCC.d.ts +73 -324
  222. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  223. package/build/esm/cc/EntryControlCC.js +2 -28
  224. package/build/esm/cc/EntryControlCC.js.map +1 -1
  225. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
  226. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  227. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -23
  228. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  229. package/build/esm/cc/HumidityControlModeCC.d.ts +31 -131
  230. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  231. package/build/esm/cc/HumidityControlModeCC.js +2 -10
  232. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  233. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +17 -65
  234. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  235. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -9
  236. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  237. package/build/esm/cc/HumidityControlSetpointCC.d.ts +51 -128
  238. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  239. package/build/esm/cc/HumidityControlSetpointCC.js +2 -19
  240. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  241. package/build/esm/cc/IndicatorCC.d.ts +123 -365
  242. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  243. package/build/esm/cc/IndicatorCC.js +2 -43
  244. package/build/esm/cc/IndicatorCC.js.map +1 -1
  245. package/build/esm/cc/IrrigationCC.d.ts +826 -2317
  246. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  247. package/build/esm/cc/IrrigationCC.js +3 -222
  248. package/build/esm/cc/IrrigationCC.js.map +1 -1
  249. package/build/esm/cc/LanguageCC.d.ts +31 -133
  250. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  251. package/build/esm/cc/LanguageCC.js +2 -12
  252. package/build/esm/cc/LanguageCC.js.map +1 -1
  253. package/build/esm/cc/LockCC.d.ts +14 -64
  254. package/build/esm/cc/LockCC.d.ts.map +1 -1
  255. package/build/esm/cc/LockCC.js +2 -9
  256. package/build/esm/cc/LockCC.js.map +1 -1
  257. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  258. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  259. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  260. package/build/esm/cc/ManufacturerSpecificCC.d.ts +77 -239
  261. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  262. package/build/esm/cc/ManufacturerSpecificCC.js +2 -24
  263. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  264. package/build/esm/cc/MeterCC.d.ts +119 -393
  265. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  266. package/build/esm/cc/MeterCC.js +3 -49
  267. package/build/esm/cc/MeterCC.js.map +1 -1
  268. package/build/esm/cc/MultiChannelAssociationCC.d.ts +66 -166
  269. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  270. package/build/esm/cc/MultiChannelAssociationCC.js +2 -14
  271. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  272. package/build/esm/cc/MultiChannelCC.d.ts +119 -499
  273. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  274. package/build/esm/cc/MultiChannelCC.js +2 -30
  275. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  276. package/build/esm/cc/MultilevelSensorCC.d.ts +46 -130
  277. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  278. package/build/esm/cc/MultilevelSensorCC.js +2 -22
  279. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  280. package/build/esm/cc/MultilevelSwitchCC.d.ts +160 -525
  281. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  282. package/build/esm/cc/MultilevelSwitchCC.js +5 -101
  283. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  284. package/build/esm/cc/NodeNamingCC.d.ts +33 -135
  285. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  286. package/build/esm/cc/NodeNamingCC.js +2 -12
  287. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  288. package/build/esm/cc/NotificationCC.d.ts +262 -702
  289. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  290. package/build/esm/cc/NotificationCC.js +3 -85
  291. package/build/esm/cc/NotificationCC.js.map +1 -1
  292. package/build/esm/cc/ProtectionCC.d.ts +118 -524
  293. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  294. package/build/esm/cc/ProtectionCC.js +2 -36
  295. package/build/esm/cc/ProtectionCC.js.map +1 -1
  296. package/build/esm/cc/SceneActivationCC.d.ts +33 -132
  297. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  298. package/build/esm/cc/SceneActivationCC.js +2 -14
  299. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  300. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +34 -61
  301. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  302. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -14
  303. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  304. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +34 -61
  305. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  306. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -14
  307. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  308. package/build/esm/cc/ScheduleEntryLockCC.d.ts +95 -299
  309. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  310. package/build/esm/cc/ScheduleEntryLockCC.js +2 -17
  311. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  312. package/build/esm/cc/SoundSwitchCC.d.ts +72 -261
  313. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  314. package/build/esm/cc/SoundSwitchCC.js +2 -33
  315. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  316. package/build/esm/cc/SupervisionCC.d.ts +17 -33
  317. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  318. package/build/esm/cc/SupervisionCC.js +2 -7
  319. package/build/esm/cc/SupervisionCC.js.map +1 -1
  320. package/build/esm/cc/ThermostatFanModeCC.d.ts +44 -195
  321. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  322. package/build/esm/cc/ThermostatFanModeCC.js +2 -14
  323. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  324. package/build/esm/cc/ThermostatFanStateCC.d.ts +17 -65
  325. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  326. package/build/esm/cc/ThermostatFanStateCC.js +2 -9
  327. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  328. package/build/esm/cc/ThermostatModeCC.d.ts +44 -195
  329. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  330. package/build/esm/cc/ThermostatModeCC.js +2 -14
  331. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  332. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +17 -65
  333. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  334. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -9
  335. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  336. package/build/esm/cc/ThermostatSetpointCC.d.ts +49 -129
  337. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  338. package/build/esm/cc/ThermostatSetpointCC.js +2 -16
  339. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  340. package/build/esm/cc/TimeParametersCC.d.ts +12 -63
  341. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  342. package/build/esm/cc/TimeParametersCC.js +2 -8
  343. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  344. package/build/esm/cc/UserCodeCC.d.ts +311 -1066
  345. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  346. package/build/esm/cc/UserCodeCC.js +2 -60
  347. package/build/esm/cc/UserCodeCC.js.map +1 -1
  348. package/build/esm/cc/VersionCC.d.ts +289 -1003
  349. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  350. package/build/esm/cc/VersionCC.js +2 -92
  351. package/build/esm/cc/VersionCC.js.map +1 -1
  352. package/build/esm/cc/WakeUpCC.d.ts +49 -201
  353. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  354. package/build/esm/cc/WakeUpCC.js +2 -21
  355. package/build/esm/cc/WakeUpCC.js.map +1 -1
  356. package/build/esm/cc/WindowCoveringCC.d.ts +126 -220
  357. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  358. package/build/esm/cc/WindowCoveringCC.js +3 -103
  359. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  360. package/build/esm/cc/ZWavePlusCC.d.ts +69 -329
  361. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  362. package/build/esm/cc/ZWavePlusCC.js +2 -25
  363. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  364. package/build/esm/cc/_CCValues.generated.d.ts +15814 -0
  365. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -0
  366. package/build/esm/cc/_CCValues.generated.js +9187 -0
  367. package/build/esm/cc/_CCValues.generated.js.map +1 -0
  368. package/build/esm/lib/CCValueUtils.d.ts +14 -0
  369. package/build/esm/lib/CCValueUtils.d.ts.map +1 -0
  370. package/build/esm/lib/CCValueUtils.js +62 -0
  371. package/build/esm/lib/CCValueUtils.js.map +1 -0
  372. package/build/esm/lib/Values.d.ts +6 -105
  373. package/build/esm/lib/Values.d.ts.map +1 -1
  374. package/build/esm/lib/Values.js +7 -104
  375. package/build/esm/lib/Values.js.map +1 -1
  376. package/package.json +9 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/FirmwareUpdateMetaDataCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\ttype AllOrNone,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tFirmwareDownloadStatus,\n\tFirmwareUpdateActivationStatus,\n\ttype FirmwareUpdateMetaData,\n\tFirmwareUpdateMetaDataCommand,\n\tFirmwareUpdateRequestStatus,\n\tFirmwareUpdateStatus,\n} from \"../lib/_Types.js\";\n\n// @noSetValueAPI There are no values to set here\n\nexport const FirmwareUpdateMetaDataCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Firmware Update Meta Data\"], {\n\t\t...V.staticProperty(\"supportsActivation\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"firmwareUpgradable\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"additionalFirmwareIDs\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"continuesToFunction\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsResuming\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsNonSecureTransfer\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t}),\n});\n\n@API(CommandClasses[\"Firmware Update Meta Data\"])\nexport class FirmwareUpdateMetaDataCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: FirmwareUpdateMetaDataCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.Report:\n\t\t\tcase FirmwareUpdateMetaDataCommand.StatusReport:\n\t\t\t\treturn true;\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.ActivationSet:\n\t\t\t\treturn (\n\t\t\t\t\tthis.version >= 4\n\t\t\t\t\t&& (this.version < 7\n\t\t\t\t\t\t|| this.tryGetValueDB()?.getValue(\n\t\t\t\t\t\t\t\tFirmwareUpdateMetaDataCCValues\n\t\t\t\t\t\t\t\t\t.supportsActivation.endpoint(\n\t\t\t\t\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t) === true)\n\t\t\t\t);\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareReport:\n\t\t\t\treturn this.version >= 5;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Requests information about the current firmware on the device\n\t */\n\tpublic async getMetaData(): Promise<MaybeNotKnown<FirmwareUpdateMetaData>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.MetaDataGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCMetaDataReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"manufacturerId\",\n\t\t\t\t\"firmwareId\",\n\t\t\t\t\"checksum\",\n\t\t\t\t\"firmwareUpgradable\",\n\t\t\t\t\"maxFragmentSize\",\n\t\t\t\t\"additionalFirmwareIDs\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t\t\"continuesToFunction\",\n\t\t\t\t\"supportsActivation\",\n\t\t\t\t\"supportsResuming\",\n\t\t\t\t\"supportsNonSecureTransfer\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportMetaData(\n\t\toptions: FirmwareUpdateMetaDataCCMetaDataReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Requests the device to start the firmware update process and waits for a response.\n\t * This response may time out on some devices, in which case the caller of this method\n\t * should wait manually.\n\t */\n\t@validateArgs()\n\tpublic requestUpdate(\n\t\toptions: FirmwareUpdateMetaDataCCRequestGetOptions,\n\t): Promise<FirmwareUpdateMetaDataCCRequestReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Responds to a firmware update request\n\t */\n\t@validateArgs()\n\tpublic async respondToUpdateRequest(\n\t\toptions: FirmwareUpdateMetaDataCCRequestReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Responds to a firmware download request\n\t */\n\t@validateArgs()\n\tpublic async respondToDownloadRequest(\n\t\toptions: FirmwareUpdateMetaDataCCPrepareReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.PrepareReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCPrepareReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Sends a fragment of the new firmware to the device\n\t */\n\t@validateArgs()\n\tpublic async sendFirmwareFragment(\n\t\tfragmentNumber: number,\n\t\tisLastFragment: boolean,\n\t\tdata: Uint8Array,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\treportNumber: fragmentNumber,\n\t\t\tisLast: isLastFragment,\n\t\t\tfirmwareData: data,\n\t\t});\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/** Activates a previously transferred firmware image */\n\t@validateArgs()\n\tpublic async activateFirmware(\n\t\toptions: FirmwareUpdateMetaDataCCActivationSetOptions,\n\t): Promise<MaybeNotKnown<FirmwareUpdateActivationStatus>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.ActivationSet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCActivationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCActivationReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.activationStatus;\n\t}\n}\n\n@commandClass(CommandClasses[\"Firmware Update Meta Data\"])\n@implementedVersion(8)\n@ccValues(FirmwareUpdateMetaDataCCValues)\nexport class FirmwareUpdateMetaDataCC extends CommandClass {\n\tdeclare ccCommand: FirmwareUpdateMetaDataCommand;\n\n\tpublic skipEndpointInterview(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Firmware Update Meta Data\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying firmware update capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst caps = await api.getMetaData();\n\t\tif (caps) {\n\t\t\tlet logMessage = `Received firmware update capabilities:`;\n\t\t\tif (caps.firmwareUpgradable) {\n\t\t\t\tlogMessage += `\n firmware targets: ${[0, ...caps.additionalFirmwareIDs].join(\", \")}\n continues to function: ${caps.continuesToFunction}\n supports activation: ${caps.supportsActivation}`;\n\t\t\t\tif (caps.supportsResuming != undefined) {\n\t\t\t\t\tlogMessage += `\n supports resuming: ${caps.supportsResuming}`;\n\t\t\t\t}\n\t\t\t\tif (caps.supportsNonSecureTransfer != undefined) {\n\t\t\t\t\tlogMessage += `\n supports non-secure transfer: ${caps.supportsNonSecureTransfer}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogMessage += `\\nfirmware upgradeable: false`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Firmware update capability query timed out\",\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCMetaDataReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId?: number;\n\tchecksum?: number;\n\tfirmwareUpgradable: boolean;\n\tmaxFragmentSize?: number;\n\tadditionalFirmwareIDs?: readonly number[];\n\thardwareVersion?: number;\n\tcontinuesToFunction?: MaybeNotKnown<boolean>;\n\tsupportsActivation?: MaybeNotKnown<boolean>;\n\tsupportsResuming?: MaybeNotKnown<boolean>;\n\tsupportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataReport)\n@ccValueProperty(\n\t\"firmwareUpgradable\",\n\tFirmwareUpdateMetaDataCCValues.firmwareUpgradable,\n)\n@ccValueProperty(\n\t\"additionalFirmwareIDs\",\n\tFirmwareUpdateMetaDataCCValues.additionalFirmwareIDs,\n)\n@ccValueProperty(\n\t\"continuesToFunction\",\n\tFirmwareUpdateMetaDataCCValues.continuesToFunction,\n)\n@ccValueProperty(\n\t\"supportsActivation\",\n\tFirmwareUpdateMetaDataCCValues.supportsActivation,\n)\n@ccValueProperty(\n\t\"supportsResuming\",\n\tFirmwareUpdateMetaDataCCValues.supportsResuming,\n)\n@ccValueProperty(\n\t\"supportsNonSecureTransfer\",\n\tFirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer,\n)\nexport class FirmwareUpdateMetaDataCCMetaDataReport\n\textends FirmwareUpdateMetaDataCC\n\timplements FirmwareUpdateMetaData\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId ?? 0;\n\t\tthis.checksum = options.checksum ?? 0;\n\t\tthis.firmwareUpgradable = options.firmwareUpgradable;\n\t\tthis.maxFragmentSize = options.maxFragmentSize;\n\t\tthis.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\tthis.continuesToFunction = options.continuesToFunction;\n\t\tthis.supportsActivation = options.supportsActivation;\n\t\tthis.supportsResuming = options.supportsResuming;\n\t\tthis.supportsNonSecureTransfer = options.supportsNonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCMetaDataReport {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\t// V1/V2 only have a single firmware which must be upgradable\n\t\tconst firmwareUpgradable = raw.payload[6] === 0xff\n\t\t\t|| raw.payload[6] == undefined;\n\n\t\tlet maxFragmentSize: number | undefined;\n\t\tlet additionalFirmwareIDs: number[] | undefined;\n\t\tlet hardwareVersion: number | undefined;\n\t\tlet continuesToFunction: MaybeNotKnown<boolean>;\n\t\tlet supportsActivation: MaybeNotKnown<boolean>;\n\t\tlet supportsResuming: MaybeNotKnown<boolean>;\n\t\tlet supportsNonSecureTransfer: MaybeNotKnown<boolean>;\n\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V3+\n\t\t\tmaxFragmentSize = raw.payload.readUInt16BE(8);\n\t\t\t// Read variable length list of additional firmwares\n\t\t\tconst numAdditionalFirmwares = raw.payload[7];\n\t\t\tadditionalFirmwareIDs = [];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 10 + 2 * numAdditionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < numAdditionalFirmwares; i++) {\n\t\t\t\tadditionalFirmwareIDs.push(\n\t\t\t\t\traw.payload.readUInt16BE(10 + 2 * i),\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Read hardware version (if it exists)\n\t\t\tlet offset = 10 + 2 * numAdditionalFirmwares;\n\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t// V5+\n\t\t\t\thardwareVersion = raw.payload[offset];\n\t\t\t\toffset++;\n\t\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t\t// V6+\n\t\t\t\t\tconst capabilities = raw.payload[offset];\n\t\t\t\t\toffset++;\n\n\t\t\t\t\tcontinuesToFunction = !!(capabilities & 0b1);\n\t\t\t\t\t// V7+\n\t\t\t\t\tsupportsActivation = !!(capabilities & 0b10);\n\t\t\t\t\t// V8+\n\t\t\t\t\tsupportsResuming = !!(capabilities & 0b1000);\n\t\t\t\t\tsupportsNonSecureTransfer = !!(capabilities & 0b100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareUpgradable,\n\t\t\tmaxFragmentSize,\n\t\t\tadditionalFirmwareIDs,\n\t\t\thardwareVersion,\n\t\t\tcontinuesToFunction,\n\t\t\tsupportsActivation,\n\t\t\tsupportsResuming,\n\t\t\tsupportsNonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\n\tpublic readonly firmwareUpgradable: boolean;\n\tpublic readonly maxFragmentSize?: number;\n\n\tpublic readonly additionalFirmwareIDs: readonly number[] = [];\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic readonly continuesToFunction: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsActivation: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsResuming?: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(\n\t\t\t12 + 2 * this.additionalFirmwareIDs.length,\n\t\t);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareUpgradable ? 0xff : 0;\n\t\tthis.payload[7] = this.additionalFirmwareIDs.length;\n\t\tthis.payload.writeUInt16BE(this.maxFragmentSize ?? 0xff, 8);\n\t\tlet offset = 10;\n\t\tfor (const id of this.additionalFirmwareIDs) {\n\t\t\tthis.payload.writeUInt16BE(id, offset);\n\t\t\toffset += 2;\n\t\t}\n\t\tthis.payload[offset++] = this.hardwareVersion ?? 0xff;\n\t\tthis.payload[offset++] = (this.continuesToFunction ? 0b1 : 0)\n\t\t\t| (this.supportsActivation ? 0b10 : 0)\n\t\t\t| (this.supportsNonSecureTransfer ? 0b100 : 0)\n\t\t\t| (this.supportsResuming ? 0b1000 : 0);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": this.manufacturerId,\n\t\t\t\"firmware id\": this.firmwareId,\n\t\t\tchecksum: this.checksum,\n\t\t\t\"firmware upgradable\": this.firmwareUpgradable,\n\t\t};\n\t\tif (this.maxFragmentSize != undefined) {\n\t\t\tmessage[\"max fragment size\"] = this.maxFragmentSize;\n\t\t}\n\t\tif (this.additionalFirmwareIDs.length) {\n\t\t\tmessage[\"additional firmware IDs\"] = JSON.stringify(\n\t\t\t\tthis.additionalFirmwareIDs,\n\t\t\t);\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\tif (this.continuesToFunction != undefined) {\n\t\t\tmessage[\"continues to function\"] = this.continuesToFunction;\n\t\t}\n\t\tif (this.supportsActivation != undefined) {\n\t\t\tmessage[\"supports activation\"] = this.supportsActivation;\n\t\t}\n\t\tif (this.supportsResuming != undefined) {\n\t\t\tmessage[\"supports resuming\"] = this.supportsResuming;\n\t\t}\n\t\tif (this.supportsNonSecureTransfer != undefined) {\n\t\t\tmessage[\"supports non-secure transfer\"] =\n\t\t\t\tthis.supportsNonSecureTransfer;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCMetaDataReport)\nexport class FirmwareUpdateMetaDataCCMetaDataGet\n\textends FirmwareUpdateMetaDataCC\n{}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCRequestReportOptions {\n\tstatus: FirmwareUpdateRequestStatus;\n\tresume?: boolean;\n\tnonSecureTransfer?: boolean;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestReport)\nexport class FirmwareUpdateMetaDataCCRequestReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.resume = options.resume;\n\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateRequestStatus = raw.payload[0];\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tif (raw.payload.length >= 2) {\n\t\t\tresume = !!(raw.payload[1] & 0b100);\n\t\t\tnonSecureTransfer = !!(raw.payload[1] & 0b10);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateRequestStatus;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.status,\n\t\t\t(this.resume ? 0b100 : 0) | (this.nonSecureTransfer ? 0b10 : 0),\n\t\t]);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(\n\t\t\t\tFirmwareUpdateRequestStatus,\n\t\t\t\tthis.status,\n\t\t\t),\n\t\t};\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type FirmwareUpdateMetaDataCCRequestGetOptions =\n\t& {\n\t\tmanufacturerId: number;\n\t\tfirmwareId: number;\n\t\tchecksum: number;\n\t}\n\t& AllOrNone<{\n\t\t// V3+\n\t\tfirmwareTarget: number;\n\t\tfragmentSize: number;\n\t\t// V4+\n\t\tactivation?: boolean;\n\t\t// V5+\n\t\thardwareVersion?: number;\n\t\t// V8+\n\t\tresume?: boolean;\n\t\tnonSecureTransfer?: boolean;\n\t}>;\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestGet)\n// The response may take a while to be received on some devices, so manual waiting might be required\n@expectedCCResponse(FirmwareUpdateMetaDataCCRequestReport)\nexport class FirmwareUpdateMetaDataCCRequestGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tif (\"firmwareTarget\" in options) {\n\t\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\t\tthis.fragmentSize = options.fragmentSize;\n\t\t\tthis.activation = options.activation ?? false;\n\t\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\t\tthis.resume = options.resume;\n\t\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestGet {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\tif (raw.payload.length < 9) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmanufacturerId,\n\t\t\t\tfirmwareId,\n\t\t\t\tchecksum,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(7);\n\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tlet activation: boolean | undefined;\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V4+\n\t\t\tactivation = !!(raw.payload[9] & 0b1);\n\t\t\tnonSecureTransfer = !!(raw.payload[9] & 0b10);\n\t\t\tresume = !!(raw.payload[9] & 0b100);\n\t\t}\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 11) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[10];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\tactivation,\n\t\t\thardwareVersion,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget?: number;\n\tpublic fragmentSize?: number;\n\tpublic activation?: boolean;\n\tpublic hardwareVersion?: number;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(10, 0);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget ?? 0;\n\t\t// 32 seems like a reasonable default fragment size,\n\t\t// but it should be specified anyways\n\t\tthis.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);\n\t\tthis.payload[9] = (this.activation ? 0b1 : 0)\n\t\t\t| (this.nonSecureTransfer ? 0b10 : 0)\n\t\t\t| (this.resume ? 0b100 : 0);\n\t\t// Hardware version is not always set, but devices check it\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t};\n\t\tif (this.firmwareTarget != undefined) {\n\t\t\tmessage[\"firmware target\"] = this.firmwareTarget;\n\t\t}\n\t\tif (this.fragmentSize != undefined) {\n\t\t\tmessage[\"fragment size\"] = this.fragmentSize;\n\t\t}\n\t\tif (this.activation != undefined) {\n\t\t\tmessage.activation = this.activation;\n\t\t}\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCGetOptions {\n\tnumReports: number;\n\treportNumber: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Get)\n// This is sent to us from the node, so we expect no response\nexport class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.numReports = options.numReports;\n\t\tthis.reportNumber = options.reportNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst numReports = raw.payload[0];\n\t\tconst reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumReports,\n\t\t\treportNumber,\n\t\t});\n\t}\n\n\tpublic readonly numReports: number;\n\tpublic readonly reportNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.numReports;\n\t\tthis.payload.writeUInt16BE(this.reportNumber & 0x7fff, 1);\n\n\t\treturn super.serialize(ctx);\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\"total # of reports\": this.numReports,\n\t\t\t\t\"report number\": this.reportNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCReportOptions {\n\tisLast: boolean;\n\treportNumber: number;\n\tfirmwareData: Uint8Array;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Report)\n// We send this in reply to the Get command and expect no response\nexport class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reportNumber = options.reportNumber;\n\t\tthis.firmwareData = options.firmwareData;\n\t\tthis.isLast = options.isLast;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCReport {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCReport({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic isLast: boolean;\n\tpublic reportNumber: number;\n\tpublic firmwareData: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst commandBuffer = Bytes.concat([\n\t\t\tnew Bytes(2), // placeholder for report number\n\t\t\tthis.firmwareData,\n\t\t]);\n\t\tcommandBuffer.writeUInt16BE(\n\t\t\t(this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0),\n\t\t\t0,\n\t\t);\n\n\t\t// V1 devices would consider the checksum to be part of the firmware data\n\t\t// so it must not be included for those\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (ccVersion >= 2) {\n\t\t\t// Compute and save the CRC16 in the payload\n\t\t\t// The CC header is included in the CRC computation\n\t\t\tlet crc = CRC16_CCITT(Bytes.from([this.ccId, this.ccCommand]));\n\t\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tcommandBuffer,\n\t\t\t\tnew Bytes(2),\n\t\t\t]);\n\t\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\t\t} else {\n\t\t\tthis.payload = commandBuffer;\n\t\t}\n\n\t\treturn super.serialize(ctx);\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\"report #\": this.reportNumber,\n\t\t\t\t\"is last\": this.isLast,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCStatusReportOptions {\n\tstatus: FirmwareUpdateStatus;\n\twaitTime?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.StatusReport)\nexport class FirmwareUpdateMetaDataCCStatusReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.waitTime = options.waitTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCStatusReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateStatus = raw.payload[0];\n\t\tlet waitTime: number | undefined;\n\t\tif (raw.payload.length >= 3) {\n\t\t\twaitTime = raw.payload.readUInt16BE(1);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\twaitTime,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateStatus;\n\t/** The wait time in seconds before the node becomes available for communication after the update */\n\tpublic readonly waitTime?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.waitTime ?? 0, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(FirmwareUpdateStatus, this.status),\n\t\t};\n\t\tif (this.waitTime != undefined) {\n\t\t\tmessage[\"wait time\"] = `${this.waitTime} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\tactivationStatus: FirmwareUpdateActivationStatus;\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.activationStatus = options.activationStatus;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationReport {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst activationStatus: FirmwareUpdateActivationStatus = raw.payload[7];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 9) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[8];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tactivationStatus,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\tpublic readonly firmwareTarget: number;\n\tpublic readonly activationStatus: FirmwareUpdateActivationStatus;\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tthis.payload[7] = this.activationStatus;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\"activation status\": getEnumMemberName(\n\t\t\t\tFirmwareUpdateActivationStatus,\n\t\t\t\tthis.activationStatus,\n\t\t\t),\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage.hardwareVersion = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationSetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\t// V5+\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationSet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationSet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationSet {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 8) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[7];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget: number;\n\tpublic hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(7);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\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\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareReportOptions {\n\tstatus: FirmwareDownloadStatus;\n\tchecksum: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.checksum = options.checksum;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst status: FirmwareDownloadStatus = raw.payload[0];\n\t\tconst checksum = raw.payload.readUInt16BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tchecksum,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareDownloadStatus;\n\tpublic readonly checksum: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.checksum, 1);\n\n\t\treturn super.serialize(ctx);\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\tstatus: getEnumMemberName(FirmwareDownloadStatus, this.status),\n\t\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareGetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tfirmwareTarget: number;\n\tfragmentSize: number;\n\thardwareVersion: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCPrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.fragmentSize = options.fragmentSize;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareGet {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst firmwareTarget = raw.payload[4];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(5);\n\t\tconst hardwareVersion = raw.payload[7];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic firmwareTarget: number;\n\tpublic fragmentSize: number;\n\tpublic hardwareVersion: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload[4] = this.firmwareTarget;\n\t\tthis.payload.writeUInt16BE(this.fragmentSize, 5);\n\t\tthis.payload[7] = this.hardwareVersion;\n\t\treturn super.serialize(ctx);\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\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\t\"fragment size\": this.fragmentSize,\n\t\t\t\t\"hardware version\": this.hardwareVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCRC16_CCITT,\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\ttype AllOrNone,\n\tgetEnumMemberName,\n\tnum2hex,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tFirmwareDownloadStatus,\n\tFirmwareUpdateActivationStatus,\n\ttype FirmwareUpdateMetaData,\n\tFirmwareUpdateMetaDataCommand,\n\tFirmwareUpdateRequestStatus,\n\tFirmwareUpdateStatus,\n} from \"../lib/_Types.js\";\n\n// @noSetValueAPI There are no values to set here\n\nexport const FirmwareUpdateMetaDataCCValues = V.defineCCValues(\n\tCommandClasses[\"Firmware Update Meta Data\"],\n\t{\n\t\t...V.staticProperty(\"supportsActivation\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"firmwareUpgradable\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"additionalFirmwareIDs\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"continuesToFunction\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsResuming\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsNonSecureTransfer\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t},\n);\n\n@API(CommandClasses[\"Firmware Update Meta Data\"])\nexport class FirmwareUpdateMetaDataCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: FirmwareUpdateMetaDataCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.MetaDataReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.RequestReport:\n\t\t\tcase FirmwareUpdateMetaDataCommand.Report:\n\t\t\tcase FirmwareUpdateMetaDataCommand.StatusReport:\n\t\t\t\treturn true;\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.ActivationSet:\n\t\t\t\treturn (\n\t\t\t\t\tthis.version >= 4\n\t\t\t\t\t&& (this.version < 7\n\t\t\t\t\t\t|| this.tryGetValueDB()?.getValue(\n\t\t\t\t\t\t\t\tFirmwareUpdateMetaDataCCValues\n\t\t\t\t\t\t\t\t\t.supportsActivation.endpoint(\n\t\t\t\t\t\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t) === true)\n\t\t\t\t);\n\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareGet:\n\t\t\tcase FirmwareUpdateMetaDataCommand.PrepareReport:\n\t\t\t\treturn this.version >= 5;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Requests information about the current firmware on the device\n\t */\n\tpublic async getMetaData(): Promise<MaybeNotKnown<FirmwareUpdateMetaData>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.MetaDataGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCMetaDataReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"manufacturerId\",\n\t\t\t\t\"firmwareId\",\n\t\t\t\t\"checksum\",\n\t\t\t\t\"firmwareUpgradable\",\n\t\t\t\t\"maxFragmentSize\",\n\t\t\t\t\"additionalFirmwareIDs\",\n\t\t\t\t\"hardwareVersion\",\n\t\t\t\t\"continuesToFunction\",\n\t\t\t\t\"supportsActivation\",\n\t\t\t\t\"supportsResuming\",\n\t\t\t\t\"supportsNonSecureTransfer\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async reportMetaData(\n\t\toptions: FirmwareUpdateMetaDataCCMetaDataReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCMetaDataReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Requests the device to start the firmware update process and waits for a response.\n\t * This response may time out on some devices, in which case the caller of this method\n\t * should wait manually.\n\t */\n\t@validateArgs()\n\tpublic requestUpdate(\n\t\toptions: FirmwareUpdateMetaDataCCRequestGetOptions,\n\t): Promise<FirmwareUpdateMetaDataCCRequestReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestGet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Responds to a firmware update request\n\t */\n\t@validateArgs()\n\tpublic async respondToUpdateRequest(\n\t\toptions: FirmwareUpdateMetaDataCCRequestReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.RequestReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCRequestReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Responds to a firmware download request\n\t */\n\t@validateArgs()\n\tpublic async respondToDownloadRequest(\n\t\toptions: FirmwareUpdateMetaDataCCPrepareReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.PrepareReport,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCPrepareReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/**\n\t * Sends a fragment of the new firmware to the device\n\t */\n\t@validateArgs()\n\tpublic async sendFirmwareFragment(\n\t\tfragmentNumber: number,\n\t\tisLastFragment: boolean,\n\t\tdata: Uint8Array,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.Report,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\treportNumber: fragmentNumber,\n\t\t\tisLast: isLastFragment,\n\t\t\tfirmwareData: data,\n\t\t});\n\t\tawait this.host.sendCommand(cc, {\n\t\t\t...this.commandOptions,\n\t\t\t// Do not wait for Nonce Reports\n\t\t\ts2VerifyDelivery: false,\n\t\t});\n\t}\n\n\t/** Activates a previously transferred firmware image */\n\t@validateArgs()\n\tpublic async activateFirmware(\n\t\toptions: FirmwareUpdateMetaDataCCActivationSetOptions,\n\t): Promise<MaybeNotKnown<FirmwareUpdateActivationStatus>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tFirmwareUpdateMetaDataCommand,\n\t\t\tFirmwareUpdateMetaDataCommand.ActivationSet,\n\t\t);\n\n\t\tconst cc = new FirmwareUpdateMetaDataCCActivationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tFirmwareUpdateMetaDataCCActivationReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.activationStatus;\n\t}\n}\n\n@commandClass(CommandClasses[\"Firmware Update Meta Data\"])\n@implementedVersion(8)\n@ccValues(FirmwareUpdateMetaDataCCValues)\nexport class FirmwareUpdateMetaDataCC extends CommandClass {\n\tdeclare ccCommand: FirmwareUpdateMetaDataCommand;\n\n\tpublic skipEndpointInterview(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Firmware Update Meta Data\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying firmware update capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst caps = await api.getMetaData();\n\t\tif (caps) {\n\t\t\tlet logMessage = `Received firmware update capabilities:`;\n\t\t\tif (caps.firmwareUpgradable) {\n\t\t\t\tlogMessage += `\n firmware targets: ${[0, ...caps.additionalFirmwareIDs].join(\", \")}\n continues to function: ${caps.continuesToFunction}\n supports activation: ${caps.supportsActivation}`;\n\t\t\t\tif (caps.supportsResuming != undefined) {\n\t\t\t\t\tlogMessage += `\n supports resuming: ${caps.supportsResuming}`;\n\t\t\t\t}\n\t\t\t\tif (caps.supportsNonSecureTransfer != undefined) {\n\t\t\t\t\tlogMessage += `\n supports non-secure transfer: ${caps.supportsNonSecureTransfer}`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogMessage += `\\nfirmware upgradeable: false`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Firmware update capability query timed out\",\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCMetaDataReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId?: number;\n\tchecksum?: number;\n\tfirmwareUpgradable: boolean;\n\tmaxFragmentSize?: number;\n\tadditionalFirmwareIDs?: readonly number[];\n\thardwareVersion?: number;\n\tcontinuesToFunction?: MaybeNotKnown<boolean>;\n\tsupportsActivation?: MaybeNotKnown<boolean>;\n\tsupportsResuming?: MaybeNotKnown<boolean>;\n\tsupportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataReport)\n@ccValueProperty(\n\t\"firmwareUpgradable\",\n\tFirmwareUpdateMetaDataCCValues.firmwareUpgradable,\n)\n@ccValueProperty(\n\t\"additionalFirmwareIDs\",\n\tFirmwareUpdateMetaDataCCValues.additionalFirmwareIDs,\n)\n@ccValueProperty(\n\t\"continuesToFunction\",\n\tFirmwareUpdateMetaDataCCValues.continuesToFunction,\n)\n@ccValueProperty(\n\t\"supportsActivation\",\n\tFirmwareUpdateMetaDataCCValues.supportsActivation,\n)\n@ccValueProperty(\n\t\"supportsResuming\",\n\tFirmwareUpdateMetaDataCCValues.supportsResuming,\n)\n@ccValueProperty(\n\t\"supportsNonSecureTransfer\",\n\tFirmwareUpdateMetaDataCCValues.supportsNonSecureTransfer,\n)\nexport class FirmwareUpdateMetaDataCCMetaDataReport\n\textends FirmwareUpdateMetaDataCC\n\timplements FirmwareUpdateMetaData\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId ?? 0;\n\t\tthis.checksum = options.checksum ?? 0;\n\t\tthis.firmwareUpgradable = options.firmwareUpgradable;\n\t\tthis.maxFragmentSize = options.maxFragmentSize;\n\t\tthis.additionalFirmwareIDs = options.additionalFirmwareIDs ?? [];\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\tthis.continuesToFunction = options.continuesToFunction;\n\t\tthis.supportsActivation = options.supportsActivation;\n\t\tthis.supportsResuming = options.supportsResuming;\n\t\tthis.supportsNonSecureTransfer = options.supportsNonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCMetaDataReport {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\t// V1/V2 only have a single firmware which must be upgradable\n\t\tconst firmwareUpgradable = raw.payload[6] === 0xff\n\t\t\t|| raw.payload[6] == undefined;\n\n\t\tlet maxFragmentSize: number | undefined;\n\t\tlet additionalFirmwareIDs: number[] | undefined;\n\t\tlet hardwareVersion: number | undefined;\n\t\tlet continuesToFunction: MaybeNotKnown<boolean>;\n\t\tlet supportsActivation: MaybeNotKnown<boolean>;\n\t\tlet supportsResuming: MaybeNotKnown<boolean>;\n\t\tlet supportsNonSecureTransfer: MaybeNotKnown<boolean>;\n\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V3+\n\t\t\tmaxFragmentSize = raw.payload.readUInt16BE(8);\n\t\t\t// Read variable length list of additional firmwares\n\t\t\tconst numAdditionalFirmwares = raw.payload[7];\n\t\t\tadditionalFirmwareIDs = [];\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 10 + 2 * numAdditionalFirmwares,\n\t\t\t);\n\t\t\tfor (let i = 0; i < numAdditionalFirmwares; i++) {\n\t\t\t\tadditionalFirmwareIDs.push(\n\t\t\t\t\traw.payload.readUInt16BE(10 + 2 * i),\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Read hardware version (if it exists)\n\t\t\tlet offset = 10 + 2 * numAdditionalFirmwares;\n\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t// V5+\n\t\t\t\thardwareVersion = raw.payload[offset];\n\t\t\t\toffset++;\n\t\t\t\tif (raw.payload.length >= offset + 1) {\n\t\t\t\t\t// V6+\n\t\t\t\t\tconst capabilities = raw.payload[offset];\n\t\t\t\t\toffset++;\n\n\t\t\t\t\tcontinuesToFunction = !!(capabilities & 0b1);\n\t\t\t\t\t// V7+\n\t\t\t\t\tsupportsActivation = !!(capabilities & 0b10);\n\t\t\t\t\t// V8+\n\t\t\t\t\tsupportsResuming = !!(capabilities & 0b1000);\n\t\t\t\t\tsupportsNonSecureTransfer = !!(capabilities & 0b100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareUpgradable,\n\t\t\tmaxFragmentSize,\n\t\t\tadditionalFirmwareIDs,\n\t\t\thardwareVersion,\n\t\t\tcontinuesToFunction,\n\t\t\tsupportsActivation,\n\t\t\tsupportsResuming,\n\t\t\tsupportsNonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\n\tpublic readonly firmwareUpgradable: boolean;\n\tpublic readonly maxFragmentSize?: number;\n\n\tpublic readonly additionalFirmwareIDs: readonly number[] = [];\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic readonly continuesToFunction: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsActivation: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsResuming?: MaybeNotKnown<boolean>;\n\n\tpublic readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(\n\t\t\t12 + 2 * this.additionalFirmwareIDs.length,\n\t\t);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareUpgradable ? 0xff : 0;\n\t\tthis.payload[7] = this.additionalFirmwareIDs.length;\n\t\tthis.payload.writeUInt16BE(this.maxFragmentSize ?? 0xff, 8);\n\t\tlet offset = 10;\n\t\tfor (const id of this.additionalFirmwareIDs) {\n\t\t\tthis.payload.writeUInt16BE(id, offset);\n\t\t\toffset += 2;\n\t\t}\n\t\tthis.payload[offset++] = this.hardwareVersion ?? 0xff;\n\t\tthis.payload[offset++] = (this.continuesToFunction ? 0b1 : 0)\n\t\t\t| (this.supportsActivation ? 0b10 : 0)\n\t\t\t| (this.supportsNonSecureTransfer ? 0b100 : 0)\n\t\t\t| (this.supportsResuming ? 0b1000 : 0);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": this.manufacturerId,\n\t\t\t\"firmware id\": this.firmwareId,\n\t\t\tchecksum: this.checksum,\n\t\t\t\"firmware upgradable\": this.firmwareUpgradable,\n\t\t};\n\t\tif (this.maxFragmentSize != undefined) {\n\t\t\tmessage[\"max fragment size\"] = this.maxFragmentSize;\n\t\t}\n\t\tif (this.additionalFirmwareIDs.length) {\n\t\t\tmessage[\"additional firmware IDs\"] = JSON.stringify(\n\t\t\t\tthis.additionalFirmwareIDs,\n\t\t\t);\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\tif (this.continuesToFunction != undefined) {\n\t\t\tmessage[\"continues to function\"] = this.continuesToFunction;\n\t\t}\n\t\tif (this.supportsActivation != undefined) {\n\t\t\tmessage[\"supports activation\"] = this.supportsActivation;\n\t\t}\n\t\tif (this.supportsResuming != undefined) {\n\t\t\tmessage[\"supports resuming\"] = this.supportsResuming;\n\t\t}\n\t\tif (this.supportsNonSecureTransfer != undefined) {\n\t\t\tmessage[\"supports non-secure transfer\"] =\n\t\t\t\tthis.supportsNonSecureTransfer;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.MetaDataGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCMetaDataReport)\nexport class FirmwareUpdateMetaDataCCMetaDataGet\n\textends FirmwareUpdateMetaDataCC\n{}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCRequestReportOptions {\n\tstatus: FirmwareUpdateRequestStatus;\n\tresume?: boolean;\n\tnonSecureTransfer?: boolean;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestReport)\nexport class FirmwareUpdateMetaDataCCRequestReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.resume = options.resume;\n\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateRequestStatus = raw.payload[0];\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tif (raw.payload.length >= 2) {\n\t\t\tresume = !!(raw.payload[1] & 0b100);\n\t\t\tnonSecureTransfer = !!(raw.payload[1] & 0b10);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateRequestStatus;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.status,\n\t\t\t(this.resume ? 0b100 : 0) | (this.nonSecureTransfer ? 0b10 : 0),\n\t\t]);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(\n\t\t\t\tFirmwareUpdateRequestStatus,\n\t\t\t\tthis.status,\n\t\t\t),\n\t\t};\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type FirmwareUpdateMetaDataCCRequestGetOptions =\n\t& {\n\t\tmanufacturerId: number;\n\t\tfirmwareId: number;\n\t\tchecksum: number;\n\t}\n\t& AllOrNone<{\n\t\t// V3+\n\t\tfirmwareTarget: number;\n\t\tfragmentSize: number;\n\t\t// V4+\n\t\tactivation?: boolean;\n\t\t// V5+\n\t\thardwareVersion?: number;\n\t\t// V8+\n\t\tresume?: boolean;\n\t\tnonSecureTransfer?: boolean;\n\t}>;\n\n@CCCommand(FirmwareUpdateMetaDataCommand.RequestGet)\n// The response may take a while to be received on some devices, so manual waiting might be required\n@expectedCCResponse(FirmwareUpdateMetaDataCCRequestReport)\nexport class FirmwareUpdateMetaDataCCRequestGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tif (\"firmwareTarget\" in options) {\n\t\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\t\tthis.fragmentSize = options.fragmentSize;\n\t\t\tthis.activation = options.activation ?? false;\n\t\t\tthis.hardwareVersion = options.hardwareVersion;\n\t\t\tthis.resume = options.resume;\n\t\t\tthis.nonSecureTransfer = options.nonSecureTransfer;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCRequestGet {\n\t\tvalidatePayload(raw.payload.length >= 6);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\n\t\tif (raw.payload.length < 9) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmanufacturerId,\n\t\t\t\tfirmwareId,\n\t\t\t\tchecksum,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(7);\n\n\t\tlet resume: boolean | undefined;\n\t\tlet nonSecureTransfer: boolean | undefined;\n\t\tlet activation: boolean | undefined;\n\t\tif (raw.payload.length >= 10) {\n\t\t\t// V4+\n\t\t\tactivation = !!(raw.payload[9] & 0b1);\n\t\t\tnonSecureTransfer = !!(raw.payload[9] & 0b10);\n\t\t\tresume = !!(raw.payload[9] & 0b100);\n\t\t}\n\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 11) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[10];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\tactivation,\n\t\t\thardwareVersion,\n\t\t\tresume,\n\t\t\tnonSecureTransfer,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget?: number;\n\tpublic fragmentSize?: number;\n\tpublic activation?: boolean;\n\tpublic hardwareVersion?: number;\n\tpublic resume?: boolean;\n\tpublic nonSecureTransfer?: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.alloc(10, 0);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget ?? 0;\n\t\t// 32 seems like a reasonable default fragment size,\n\t\t// but it should be specified anyways\n\t\tthis.payload.writeUInt16BE(this.fragmentSize ?? 32, 7);\n\t\tthis.payload[9] = (this.activation ? 0b1 : 0)\n\t\t\t| (this.nonSecureTransfer ? 0b10 : 0)\n\t\t\t| (this.resume ? 0b100 : 0);\n\t\t// Hardware version is not always set, but devices check it\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t};\n\t\tif (this.firmwareTarget != undefined) {\n\t\t\tmessage[\"firmware target\"] = this.firmwareTarget;\n\t\t}\n\t\tif (this.fragmentSize != undefined) {\n\t\t\tmessage[\"fragment size\"] = this.fragmentSize;\n\t\t}\n\t\tif (this.activation != undefined) {\n\t\t\tmessage.activation = this.activation;\n\t\t}\n\t\tif (this.resume != undefined) {\n\t\t\tmessage.resume = this.resume;\n\t\t}\n\t\tif (this.nonSecureTransfer != undefined) {\n\t\t\tmessage[\"non-secure transfer\"] = this.nonSecureTransfer;\n\t\t}\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCGetOptions {\n\tnumReports: number;\n\treportNumber: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Get)\n// This is sent to us from the node, so we expect no response\nexport class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.numReports = options.numReports;\n\t\tthis.reportNumber = options.reportNumber;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCGet {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst numReports = raw.payload[0];\n\t\tconst reportNumber = raw.payload.readUInt16BE(1) & 0x7fff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnumReports,\n\t\t\treportNumber,\n\t\t});\n\t}\n\n\tpublic readonly numReports: number;\n\tpublic readonly reportNumber: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.numReports;\n\t\tthis.payload.writeUInt16BE(this.reportNumber & 0x7fff, 1);\n\n\t\treturn super.serialize(ctx);\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\"total # of reports\": this.numReports,\n\t\t\t\t\"report number\": this.reportNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCReportOptions {\n\tisLast: boolean;\n\treportNumber: number;\n\tfirmwareData: Uint8Array;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.Report)\n// We send this in reply to the Get command and expect no response\nexport class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.reportNumber = options.reportNumber;\n\t\tthis.firmwareData = options.firmwareData;\n\t\tthis.isLast = options.isLast;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCReport {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new FirmwareUpdateMetaDataCCReport({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic isLast: boolean;\n\tpublic reportNumber: number;\n\tpublic firmwareData: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst commandBuffer = Bytes.concat([\n\t\t\tnew Bytes(2), // placeholder for report number\n\t\t\tthis.firmwareData,\n\t\t]);\n\t\tcommandBuffer.writeUInt16BE(\n\t\t\t(this.reportNumber & 0x7fff) | (this.isLast ? 0x8000 : 0),\n\t\t\t0,\n\t\t);\n\n\t\t// V1 devices would consider the checksum to be part of the firmware data\n\t\t// so it must not be included for those\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (ccVersion >= 2) {\n\t\t\t// Compute and save the CRC16 in the payload\n\t\t\t// The CC header is included in the CRC computation\n\t\t\tlet crc = CRC16_CCITT(Bytes.from([this.ccId, this.ccCommand]));\n\t\t\tcrc = CRC16_CCITT(commandBuffer, crc);\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tcommandBuffer,\n\t\t\t\tnew Bytes(2),\n\t\t\t]);\n\t\t\tthis.payload.writeUInt16BE(crc, this.payload.length - 2);\n\t\t} else {\n\t\t\tthis.payload = commandBuffer;\n\t\t}\n\n\t\treturn super.serialize(ctx);\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\"report #\": this.reportNumber,\n\t\t\t\t\"is last\": this.isLast,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCStatusReportOptions {\n\tstatus: FirmwareUpdateStatus;\n\twaitTime?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.StatusReport)\nexport class FirmwareUpdateMetaDataCCStatusReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.waitTime = options.waitTime;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCStatusReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst status: FirmwareUpdateStatus = raw.payload[0];\n\t\tlet waitTime: number | undefined;\n\t\tif (raw.payload.length >= 3) {\n\t\t\twaitTime = raw.payload.readUInt16BE(1);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\twaitTime,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareUpdateStatus;\n\t/** The wait time in seconds before the node becomes available for communication after the update */\n\tpublic readonly waitTime?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.waitTime ?? 0, 1);\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tstatus: getEnumMemberName(FirmwareUpdateStatus, this.status),\n\t\t};\n\t\tif (this.waitTime != undefined) {\n\t\t\tmessage[\"wait time\"] = `${this.waitTime} seconds`;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationReportOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\tactivationStatus: FirmwareUpdateActivationStatus;\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.activationStatus = options.activationStatus;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationReport {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tconst activationStatus: FirmwareUpdateActivationStatus = raw.payload[7];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 9) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[8];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\tactivationStatus,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic readonly manufacturerId: number;\n\tpublic readonly firmwareId: number;\n\tpublic readonly checksum: number;\n\tpublic readonly firmwareTarget: number;\n\tpublic readonly activationStatus: FirmwareUpdateActivationStatus;\n\tpublic readonly hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tthis.payload[7] = this.activationStatus;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\n\t\t\t]);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\"activation status\": getEnumMemberName(\n\t\t\t\tFirmwareUpdateActivationStatus,\n\t\t\t\tthis.activationStatus,\n\t\t\t),\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage.hardwareVersion = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCActivationSetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tchecksum: number;\n\tfirmwareTarget: number;\n\t// V5+\n\thardwareVersion?: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.ActivationSet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCActivationReport)\nexport class FirmwareUpdateMetaDataCCActivationSet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.checksum = options.checksum;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCActivationSet {\n\t\tvalidatePayload(raw.payload.length >= 7);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst checksum = raw.payload.readUInt16BE(4);\n\t\tconst firmwareTarget = raw.payload[6];\n\t\tlet hardwareVersion: number | undefined;\n\t\tif (raw.payload.length >= 8) {\n\t\t\t// V5+\n\t\t\thardwareVersion = raw.payload[7];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tchecksum,\n\t\t\tfirmwareTarget,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic checksum: number;\n\tpublic firmwareTarget: number;\n\tpublic hardwareVersion?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(7);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload.writeUInt16BE(this.checksum, 4);\n\t\tthis.payload[6] = this.firmwareTarget;\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\t[this.hardwareVersion],\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\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t};\n\t\tif (this.hardwareVersion != undefined) {\n\t\t\tmessage[\"hardware version\"] = this.hardwareVersion;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareReportOptions {\n\tstatus: FirmwareDownloadStatus;\n\tchecksum: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareReport\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.status = options.status;\n\t\tthis.checksum = options.checksum;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst status: FirmwareDownloadStatus = raw.payload[0];\n\t\tconst checksum = raw.payload.readUInt16BE(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstatus,\n\t\t\tchecksum,\n\t\t});\n\t}\n\n\tpublic readonly status: FirmwareDownloadStatus;\n\tpublic readonly checksum: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(3);\n\t\tthis.payload[0] = this.status;\n\t\tthis.payload.writeUInt16BE(this.checksum, 1);\n\n\t\treturn super.serialize(ctx);\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\tstatus: getEnumMemberName(FirmwareDownloadStatus, this.status),\n\t\t\t\tchecksum: num2hex(this.checksum),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface FirmwareUpdateMetaDataCCPrepareGetOptions {\n\tmanufacturerId: number;\n\tfirmwareId: number;\n\tfirmwareTarget: number;\n\tfragmentSize: number;\n\thardwareVersion: number;\n}\n\n@CCCommand(FirmwareUpdateMetaDataCommand.PrepareGet)\n@expectedCCResponse(FirmwareUpdateMetaDataCCPrepareReport)\nexport class FirmwareUpdateMetaDataCCPrepareGet\n\textends FirmwareUpdateMetaDataCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.manufacturerId = options.manufacturerId;\n\t\tthis.firmwareId = options.firmwareId;\n\t\tthis.firmwareTarget = options.firmwareTarget;\n\t\tthis.fragmentSize = options.fragmentSize;\n\t\tthis.hardwareVersion = options.hardwareVersion;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): FirmwareUpdateMetaDataCCPrepareGet {\n\t\tvalidatePayload(raw.payload.length >= 8);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\tconst firmwareId = raw.payload.readUInt16BE(2);\n\t\tconst firmwareTarget = raw.payload[4];\n\t\tconst fragmentSize = raw.payload.readUInt16BE(5);\n\t\tconst hardwareVersion = raw.payload[7];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t\tfirmwareId,\n\t\t\tfirmwareTarget,\n\t\t\tfragmentSize,\n\t\t\thardwareVersion,\n\t\t});\n\t}\n\n\tpublic manufacturerId: number;\n\tpublic firmwareId: number;\n\tpublic firmwareTarget: number;\n\tpublic fragmentSize: number;\n\tpublic hardwareVersion: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = new Bytes(8);\n\t\tthis.payload.writeUInt16BE(this.manufacturerId, 0);\n\t\tthis.payload.writeUInt16BE(this.firmwareId, 2);\n\t\tthis.payload[4] = this.firmwareTarget;\n\t\tthis.payload.writeUInt16BE(this.fragmentSize, 5);\n\t\tthis.payload[7] = this.hardwareVersion;\n\t\treturn super.serialize(ctx);\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\"manufacturer id\": num2hex(this.manufacturerId),\n\t\t\t\t\"firmware id\": num2hex(this.firmwareId),\n\t\t\t\t\"firmware target\": this.firmwareTarget,\n\t\t\t\t\"fragment size\": this.fragmentSize,\n\t\t\t\t\"hardware version\": this.hardwareVersion,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,163 +1,63 @@
1
1
  import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
- import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, ValueMetadata, type WithAddress } from "@zwave-js/core/safe";
2
+ import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core/safe";
3
3
  import { Bytes } from "@zwave-js/shared/safe";
4
4
  import { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, type SetValueImplementation } from "../lib/API.js";
5
5
  import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext } from "../lib/CommandClass.js";
6
6
  import { HumidityControlMode, HumidityControlModeCommand } from "../lib/_Types.js";
7
7
  export declare const HumidityControlModeCCValues: Readonly<{
8
- supportedModes: {
9
- readonly id: ValueIDBase;
10
- readonly endpoint: (endpoint?: number | undefined) => {
8
+ mode: {
9
+ id: {
10
+ readonly commandClass: (typeof CommandClasses)["Humidity Control Mode"];
11
+ readonly property: "mode";
12
+ };
13
+ endpoint: (endpoint?: number) => {
11
14
  readonly commandClass: (typeof CommandClasses)["Humidity Control Mode"];
12
15
  readonly endpoint: number;
13
- readonly property: "supportedModes";
16
+ readonly property: "mode";
14
17
  };
15
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
16
- readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
17
- readonly type: "any";
18
- readonly readable: true;
19
- readonly writeable: true;
20
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
21
- readonly type: "any";
22
- readonly readable: true;
23
- readonly writeable: true;
24
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
25
- readonly type: "any";
18
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
19
+ readonly meta: {
20
+ readonly states: Record<number, string>;
21
+ readonly label: "Humidity control mode";
22
+ readonly min: 0;
23
+ readonly max: 255;
24
+ readonly type: "number";
26
25
  readonly readable: true;
27
26
  readonly writeable: true;
28
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
29
- readonly type: "any";
30
- readonly readable: true;
31
- readonly writeable: true;
32
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
33
- readonly type: "any";
34
- readonly readable: true;
35
- readonly writeable: true;
36
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
37
- readonly type: "any";
38
- readonly readable: true;
39
- readonly writeable: true;
40
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
41
- readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
42
- readonly internal: false;
43
- readonly minVersion: 1;
44
- readonly secret: false;
45
- readonly stateful: true;
46
- readonly supportsEndpoints: true;
47
- readonly autoCreate: true;
48
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
49
- readonly internal: false;
50
- readonly minVersion: 1;
51
- readonly secret: false;
52
- readonly stateful: true;
53
- readonly supportsEndpoints: true;
54
- readonly autoCreate: true;
55
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
56
- readonly internal: false;
57
- readonly minVersion: 1;
58
- readonly secret: false;
59
- readonly stateful: true;
60
- readonly supportsEndpoints: true;
61
- readonly autoCreate: true;
62
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
63
- readonly internal: false;
64
- readonly minVersion: 1;
65
- readonly secret: false;
66
- readonly stateful: true;
67
- readonly supportsEndpoints: true;
68
- readonly autoCreate: true;
69
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
70
- readonly internal: false;
71
- readonly minVersion: 1;
72
- readonly secret: false;
73
- readonly stateful: true;
74
- readonly supportsEndpoints: true;
75
- readonly autoCreate: true;
76
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
27
+ };
28
+ options: {
77
29
  readonly internal: false;
78
30
  readonly minVersion: 1;
79
31
  readonly secret: false;
80
32
  readonly stateful: true;
81
33
  readonly supportsEndpoints: true;
82
34
  readonly autoCreate: true;
83
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
35
+ };
84
36
  };
85
- mode: {
86
- readonly id: ValueIDBase;
87
- readonly endpoint: (endpoint?: number | undefined) => {
37
+ supportedModes: {
38
+ id: {
39
+ readonly commandClass: (typeof CommandClasses)["Humidity Control Mode"];
40
+ readonly property: "supportedModes";
41
+ };
42
+ endpoint: (endpoint?: number) => {
88
43
  readonly commandClass: (typeof CommandClasses)["Humidity Control Mode"];
89
44
  readonly endpoint: number;
90
- readonly property: "mode";
45
+ readonly property: "supportedModes";
91
46
  };
92
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
93
- readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
47
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
48
+ readonly meta: Readonly<{
94
49
  readonly type: "any";
95
50
  readonly readable: true;
96
51
  readonly writeable: true;
97
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
98
- readonly type: "any";
99
- readonly readable: true;
100
- readonly writeable: true;
101
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
102
- readonly type: "any";
103
- readonly readable: true;
104
- readonly writeable: true;
105
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
106
- readonly type: "any";
107
- readonly readable: true;
108
- readonly writeable: true;
109
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
110
- readonly type: "any";
111
- readonly readable: true;
112
- readonly writeable: true;
113
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
114
- readonly type: "any";
115
- readonly readable: true;
116
- readonly writeable: true;
117
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
118
- readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
119
- readonly internal: false;
120
- readonly minVersion: 1;
121
- readonly secret: false;
122
- readonly stateful: true;
123
- readonly supportsEndpoints: true;
124
- readonly autoCreate: true;
125
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
126
- readonly internal: false;
127
- readonly minVersion: 1;
128
- readonly secret: false;
129
- readonly stateful: true;
130
- readonly supportsEndpoints: true;
131
- readonly autoCreate: true;
132
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
133
- readonly internal: false;
134
- readonly minVersion: 1;
135
- readonly secret: false;
136
- readonly stateful: true;
137
- readonly supportsEndpoints: true;
138
- readonly autoCreate: true;
139
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
140
- readonly internal: false;
52
+ }>;
53
+ options: {
54
+ readonly internal: true;
141
55
  readonly minVersion: 1;
142
56
  readonly secret: false;
143
57
  readonly stateful: true;
144
58
  readonly supportsEndpoints: true;
145
59
  readonly autoCreate: true;
146
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
147
- readonly internal: false;
148
- readonly minVersion: 1;
149
- readonly secret: false;
150
- readonly stateful: true;
151
- readonly supportsEndpoints: true;
152
- readonly autoCreate: true;
153
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
154
- readonly internal: false;
155
- readonly minVersion: 1;
156
- readonly secret: false;
157
- readonly stateful: true;
158
- readonly supportsEndpoints: true;
159
- readonly autoCreate: true;
160
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
60
+ };
161
61
  };
162
62
  }>;
163
63
  export declare class HumidityControlModeCCAPI extends CCAPI {
@@ -36,7 +36,7 @@ __export(HumidityControlModeCC_exports, {
36
36
  HumidityControlModeCCSet: () => HumidityControlModeCCSet,
37
37
  HumidityControlModeCCSupportedGet: () => HumidityControlModeCCSupportedGet,
38
38
  HumidityControlModeCCSupportedReport: () => HumidityControlModeCCSupportedReport,
39
- HumidityControlModeCCValues: () => HumidityControlModeCCValues
39
+ HumidityControlModeCCValues: () => import_CCValues_generated.HumidityControlModeCCValues
40
40
  });
41
41
  module.exports = __toCommonJS(HumidityControlModeCC_exports);
42
42
  var __validateArgs = __toESM(require("./HumidityControlModeCC._validateArgs.js"), 1);
@@ -48,6 +48,7 @@ var import_CommandClass = require("../lib/CommandClass.js");
48
48
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
49
49
  var import_Values = require("../lib/Values.js");
50
50
  var import_Types = require("../lib/_Types.js");
51
+ var import_CCValues_generated = require("./_CCValues.generated.js");
51
52
  var __runInitializers = function(thisArg, initializers, value) {
52
53
  var useValue = arguments.length > 2;
53
54
  for (var i = 0; i < initializers.length; i++) {
@@ -89,16 +90,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
89
90
  done = true;
90
91
  };
91
92
  const { validateArgs_HumidityControlModeCCAPI_set } = __validateArgs;
92
- const HumidityControlModeCCValues = Object.freeze({
93
- ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Humidity Control Mode"], {
94
- ...import_Values.V.staticProperty("mode", {
95
- ...import_safe.ValueMetadata.UInt8,
96
- states: (0, import_safe.enumValuesToMetadataStates)(import_Types.HumidityControlMode),
97
- label: "Humidity control mode"
98
- }),
99
- ...import_Values.V.staticProperty("supportedModes", void 0, { internal: true })
100
- })
101
- });
102
93
  let HumidityControlModeCCAPI = (() => {
103
94
  let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Humidity Control Mode"])];
104
95
  let _classDescriptor;
@@ -196,7 +187,7 @@ let HumidityControlModeCCAPI = (() => {
196
187
  return HumidityControlModeCCAPI2 = _classThis;
197
188
  })();
198
189
  let HumidityControlModeCC = (() => {
199
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Humidity Control Mode"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(HumidityControlModeCCValues)];
190
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Humidity Control Mode"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.HumidityControlModeCCValues)];
200
191
  let _classDescriptor;
201
192
  let _classExtraInitializers = [];
202
193
  let _classThis;
@@ -318,7 +309,7 @@ let HumidityControlModeCCSet = (() => {
318
309
  return HumidityControlModeCCSet2 = _classThis;
319
310
  })();
320
311
  let HumidityControlModeCCReport = (() => {
321
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.HumidityControlModeCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("mode", HumidityControlModeCCValues.mode)];
312
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.HumidityControlModeCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("mode", import_CCValues_generated.HumidityControlModeCCValues.mode)];
322
313
  let _classDescriptor;
323
314
  let _classExtraInitializers = [];
324
315
  let _classThis;
@@ -385,7 +376,7 @@ let HumidityControlModeCCGet = (() => {
385
376
  return HumidityControlModeCCGet2 = _classThis;
386
377
  })();
387
378
  let HumidityControlModeCCSupportedReport = (() => {
388
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.HumidityControlModeCommand.SupportedReport), (0, import_CommandClassDecorators.ccValueProperty)("supportedModes", HumidityControlModeCCValues.supportedModes)];
379
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.HumidityControlModeCommand.SupportedReport), (0, import_CommandClassDecorators.ccValueProperty)("supportedModes", import_CCValues_generated.HumidityControlModeCCValues.supportedModes)];
389
380
  let _classDescriptor;
390
381
  let _classExtraInitializers = [];
391
382
  let _classThis;
@@ -422,7 +413,7 @@ let HumidityControlModeCCSupportedReport = (() => {
422
413
  persistValues(ctx) {
423
414
  if (!super.persistValues(ctx))
424
415
  return false;
425
- const modeValue = HumidityControlModeCCValues.mode;
416
+ const modeValue = import_CCValues_generated.HumidityControlModeCCValues.mode;
426
417
  this.setMetadata(ctx, modeValue, {
427
418
  ...modeValue.meta,
428
419
  states: (0, import_safe.enumValuesToMetadataStates)(import_Types.HumidityControlMode, this.supportedModes)