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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +139 -57
  2. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  3. package/build/cjs/cc/AssociationCC.d.ts +178 -43
  4. package/build/cjs/cc/AssociationCC.js +0 -4
  5. package/build/cjs/cc/AssociationCC.js.map +2 -2
  6. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +138 -38
  7. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  8. package/build/cjs/cc/BarrierOperatorCC.d.ts +275 -73
  9. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  10. package/build/cjs/cc/BasicCC.d.ts +316 -71
  11. package/build/cjs/cc/BasicCC.js.map +2 -2
  12. package/build/cjs/cc/BatteryCC.d.ts +759 -164
  13. package/build/cjs/cc/BatteryCC.js.map +2 -2
  14. package/build/cjs/cc/BinarySensorCC.d.ts +91 -26
  15. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  16. package/build/cjs/cc/BinarySwitchCC.d.ts +190 -38
  17. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  18. package/build/cjs/cc/CRC16CC.d.ts +4 -8
  19. package/build/cjs/cc/CRC16CC.js +4 -27
  20. package/build/cjs/cc/CRC16CC.js.map +2 -2
  21. package/build/cjs/cc/CentralSceneCC.d.ts +272 -53
  22. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  23. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +150 -37
  24. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  25. package/build/cjs/cc/ClockCC.d.ts +3 -3
  26. package/build/cjs/cc/ClockCC.js.map +2 -2
  27. package/build/cjs/cc/ColorSwitchCC.d.ts +423 -96
  28. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  29. package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
  30. package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
  31. package/build/cjs/cc/ConfigurationCC.d.ts +101 -37
  32. package/build/cjs/cc/ConfigurationCC.js +0 -8
  33. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  34. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
  35. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  36. package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
  37. package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
  38. package/build/cjs/cc/DoorLockCC.d.ts +1731 -419
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +64 -12
  41. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  42. package/build/cjs/cc/EnergyProductionCC.d.ts +29 -14
  43. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  44. package/build/cjs/cc/EntryControlCC.d.ts +308 -57
  45. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  46. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  47. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
  48. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  49. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +154 -8
  51. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlModeCC.d.ts +125 -27
  53. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  54. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  55. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  56. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +116 -39
  57. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  58. package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
  59. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  60. package/build/cjs/cc/IndicatorCC.d.ts +325 -83
  61. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  62. package/build/cjs/cc/IrrigationCC.d.ts +2170 -683
  63. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  64. package/build/cjs/cc/LanguageCC.d.ts +128 -26
  65. package/build/cjs/cc/LanguageCC.js.map +2 -2
  66. package/build/cjs/cc/LockCC.d.ts +64 -14
  67. package/build/cjs/cc/LockCC.js.map +2 -2
  68. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
  69. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  70. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +219 -57
  71. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  72. package/build/cjs/cc/MeterCC.d.ts +364 -89
  73. package/build/cjs/cc/MeterCC.js.map +2 -2
  74. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +138 -40
  75. package/build/cjs/cc/MultiChannelAssociationCC.js +0 -5
  76. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  77. package/build/cjs/cc/MultiChannelCC.d.ts +469 -99
  78. package/build/cjs/cc/MultiChannelCC.js +8 -72
  79. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  80. package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
  81. package/build/cjs/cc/MultiCommandCC.js +4 -37
  82. package/build/cjs/cc/MultiCommandCC.js.map +2 -2
  83. package/build/cjs/cc/MultilevelSensorCC.d.ts +118 -33
  84. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  85. package/build/cjs/cc/MultilevelSwitchCC.d.ts +490 -125
  86. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  87. package/build/cjs/cc/NodeNamingCC.d.ts +128 -26
  88. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  89. package/build/cjs/cc/NotificationCC.d.ts +603 -161
  90. package/build/cjs/cc/NotificationCC.js +12 -1
  91. package/build/cjs/cc/NotificationCC.js.map +2 -2
  92. package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
  93. package/build/cjs/cc/PowerlevelCC.js.map +2 -2
  94. package/build/cjs/cc/ProtectionCC.d.ts +496 -94
  95. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  96. package/build/cjs/cc/SceneActivationCC.d.ts +127 -28
  97. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  98. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  99. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  100. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +53 -25
  101. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  102. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +268 -64
  103. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  104. package/build/cjs/cc/Security2CC.d.ts +15 -21
  105. package/build/cjs/cc/Security2CC.js +32 -347
  106. package/build/cjs/cc/Security2CC.js.map +3 -3
  107. package/build/cjs/cc/SecurityCC.d.ts +12 -19
  108. package/build/cjs/cc/SecurityCC.js +12 -106
  109. package/build/cjs/cc/SecurityCC.js.map +2 -2
  110. package/build/cjs/cc/SoundSwitchCC.d.ts +253 -64
  111. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  112. package/build/cjs/cc/SupervisionCC.d.ts +28 -16
  113. package/build/cjs/cc/SupervisionCC.js +4 -29
  114. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  115. package/build/cjs/cc/ThermostatFanModeCC.d.ts +187 -38
  116. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  117. package/build/cjs/cc/ThermostatFanStateCC.d.ts +64 -18
  118. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  119. package/build/cjs/cc/ThermostatModeCC.d.ts +189 -40
  120. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  121. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +65 -19
  122. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  123. package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
  124. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  125. package/build/cjs/cc/ThermostatSetpointCC.d.ts +116 -36
  126. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  127. package/build/cjs/cc/TimeCC.d.ts +6 -6
  128. package/build/cjs/cc/TimeCC.js.map +2 -2
  129. package/build/cjs/cc/TimeParametersCC.d.ts +63 -12
  130. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  131. package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
  132. package/build/cjs/cc/TransportServiceCC.js +3 -20
  133. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  134. package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
  135. package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
  136. package/build/cjs/cc/UserCodeCC.d.ts +931 -176
  137. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  138. package/build/cjs/cc/VersionCC.d.ts +897 -185
  139. package/build/cjs/cc/VersionCC.js.map +2 -2
  140. package/build/cjs/cc/WakeUpCC.d.ts +190 -38
  141. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  142. package/build/cjs/cc/WindowCoveringCC.d.ts +193 -103
  143. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  144. package/build/cjs/cc/ZWavePlusCC.d.ts +311 -51
  145. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  146. package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
  147. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  148. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  149. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  150. package/build/cjs/index.d.ts +1 -0
  151. package/build/cjs/index.js.map +1 -1
  152. package/build/cjs/index_browser.d.ts +9 -0
  153. package/build/cjs/index_browser.js +41 -1
  154. package/build/cjs/index_browser.js.map +2 -2
  155. package/build/cjs/lib/API.d.ts +7 -5
  156. package/build/cjs/lib/API.js +1 -1
  157. package/build/cjs/lib/API.js.map +2 -2
  158. package/build/cjs/lib/CommandClass.d.ts +10 -21
  159. package/build/cjs/lib/CommandClass.js +51 -106
  160. package/build/cjs/lib/CommandClass.js.map +3 -3
  161. package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
  162. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  163. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  164. package/build/cjs/lib/Values.d.ts +2 -2
  165. package/build/cjs/lib/Values.js.map +2 -2
  166. package/build/cjs/lib/traits.d.ts +94 -0
  167. package/build/cjs/lib/traits.js +17 -0
  168. package/build/cjs/lib/traits.js.map +7 -0
  169. package/build/cjs/lib/utils.d.ts +2 -2
  170. package/build/cjs/lib/utils.js.map +2 -2
  171. package/build/esm/cc/AlarmSensorCC.d.ts +139 -57
  172. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  173. package/build/esm/cc/AlarmSensorCC.js +0 -1
  174. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  175. package/build/esm/cc/AssociationCC.d.ts +178 -43
  176. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  177. package/build/esm/cc/AssociationCC.js +0 -13
  178. package/build/esm/cc/AssociationCC.js.map +1 -1
  179. package/build/esm/cc/AssociationGroupInfoCC.d.ts +138 -38
  180. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  181. package/build/esm/cc/AssociationGroupInfoCC.js +0 -6
  182. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  183. package/build/esm/cc/BarrierOperatorCC.d.ts +275 -73
  184. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  185. package/build/esm/cc/BarrierOperatorCC.js +0 -3
  186. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  187. package/build/esm/cc/BasicCC.d.ts +316 -71
  188. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  189. package/build/esm/cc/BasicCC.js +0 -2
  190. package/build/esm/cc/BasicCC.js.map +1 -1
  191. package/build/esm/cc/BatteryCC.d.ts +759 -164
  192. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  193. package/build/esm/cc/BatteryCC.js +1 -2
  194. package/build/esm/cc/BatteryCC.js.map +1 -1
  195. package/build/esm/cc/BinarySensorCC.d.ts +91 -26
  196. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  197. package/build/esm/cc/BinarySensorCC.js +0 -3
  198. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  199. package/build/esm/cc/BinarySwitchCC.d.ts +190 -38
  200. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  201. package/build/esm/cc/BinarySwitchCC.js +0 -2
  202. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  203. package/build/esm/cc/CRC16CC.d.ts +4 -8
  204. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  205. package/build/esm/cc/CRC16CC.js +4 -34
  206. package/build/esm/cc/CRC16CC.js.map +1 -1
  207. package/build/esm/cc/CentralSceneCC.d.ts +272 -53
  208. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  209. package/build/esm/cc/CentralSceneCC.js +0 -1
  210. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  211. package/build/esm/cc/ClimateControlScheduleCC.d.ts +150 -37
  212. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  213. package/build/esm/cc/ClimateControlScheduleCC.js +0 -3
  214. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  215. package/build/esm/cc/ClockCC.d.ts +3 -3
  216. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  217. package/build/esm/cc/ClockCC.js +0 -1
  218. package/build/esm/cc/ClockCC.js.map +1 -1
  219. package/build/esm/cc/ColorSwitchCC.d.ts +423 -96
  220. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  221. package/build/esm/cc/ColorSwitchCC.js +0 -6
  222. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  223. package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
  224. package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
  225. package/build/esm/cc/ConfigurationCC.d.ts +101 -37
  226. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  227. package/build/esm/cc/ConfigurationCC.js +0 -25
  228. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  229. package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
  230. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  231. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  232. package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
  233. package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
  234. package/build/esm/cc/DoorLockCC.d.ts +1731 -419
  235. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  236. package/build/esm/cc/DoorLockCC.js +0 -2
  237. package/build/esm/cc/DoorLockCC.js.map +1 -1
  238. package/build/esm/cc/DoorLockLoggingCC.d.ts +64 -12
  239. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  240. package/build/esm/cc/DoorLockLoggingCC.js +0 -1
  241. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  242. package/build/esm/cc/EnergyProductionCC.d.ts +29 -14
  243. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  244. package/build/esm/cc/EnergyProductionCC.js +0 -2
  245. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  246. package/build/esm/cc/EntryControlCC.d.ts +308 -57
  247. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  248. package/build/esm/cc/EntryControlCC.js +0 -1
  249. package/build/esm/cc/EntryControlCC.js.map +1 -1
  250. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  251. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  252. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
  253. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  254. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
  255. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  256. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +158 -30
  257. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  258. package/build/esm/cc/HumidityControlModeCC.d.ts +125 -27
  259. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  260. package/build/esm/cc/HumidityControlModeCC.js +0 -1
  261. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  262. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  263. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  264. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  265. package/build/esm/cc/HumidityControlSetpointCC.d.ts +116 -39
  266. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  267. package/build/esm/cc/HumidityControlSetpointCC.js +0 -4
  268. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  269. package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
  270. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  271. package/build/esm/cc/InclusionControllerCC.js +0 -2
  272. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  273. package/build/esm/cc/IndicatorCC.d.ts +325 -83
  274. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  275. package/build/esm/cc/IndicatorCC.js +0 -7
  276. package/build/esm/cc/IndicatorCC.js.map +1 -1
  277. package/build/esm/cc/IrrigationCC.d.ts +2170 -683
  278. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  279. package/build/esm/cc/IrrigationCC.js +0 -9
  280. package/build/esm/cc/IrrigationCC.js.map +1 -1
  281. package/build/esm/cc/LanguageCC.d.ts +128 -26
  282. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  283. package/build/esm/cc/LanguageCC.js +0 -1
  284. package/build/esm/cc/LanguageCC.js.map +1 -1
  285. package/build/esm/cc/LockCC.d.ts +64 -14
  286. package/build/esm/cc/LockCC.d.ts.map +1 -1
  287. package/build/esm/cc/LockCC.js +0 -1
  288. package/build/esm/cc/LockCC.js.map +1 -1
  289. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
  290. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  291. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  292. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  293. package/build/esm/cc/ManufacturerSpecificCC.d.ts +219 -57
  294. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  295. package/build/esm/cc/ManufacturerSpecificCC.js +0 -2
  296. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  297. package/build/esm/cc/MeterCC.d.ts +364 -89
  298. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  299. package/build/esm/cc/MeterCC.js +0 -4
  300. package/build/esm/cc/MeterCC.js.map +1 -1
  301. package/build/esm/cc/MultiChannelAssociationCC.d.ts +138 -40
  302. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  303. package/build/esm/cc/MultiChannelAssociationCC.js +0 -16
  304. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  305. package/build/esm/cc/MultiChannelCC.d.ts +469 -99
  306. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  307. package/build/esm/cc/MultiChannelCC.js +8 -101
  308. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  309. package/build/esm/cc/MultiCommandCC.d.ts +4 -8
  310. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  311. package/build/esm/cc/MultiCommandCC.js +4 -38
  312. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  313. package/build/esm/cc/MultilevelSensorCC.d.ts +118 -33
  314. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  315. package/build/esm/cc/MultilevelSensorCC.js +0 -5
  316. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  317. package/build/esm/cc/MultilevelSwitchCC.d.ts +490 -125
  318. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  319. package/build/esm/cc/MultilevelSwitchCC.js +0 -4
  320. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  321. package/build/esm/cc/NodeNamingCC.d.ts +128 -26
  322. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  323. package/build/esm/cc/NodeNamingCC.js +0 -2
  324. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  325. package/build/esm/cc/NotificationCC.d.ts +603 -161
  326. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  327. package/build/esm/cc/NotificationCC.js +18 -12
  328. package/build/esm/cc/NotificationCC.js.map +1 -1
  329. package/build/esm/cc/PowerlevelCC.d.ts +6 -6
  330. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  331. package/build/esm/cc/PowerlevelCC.js +0 -4
  332. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  333. package/build/esm/cc/ProtectionCC.d.ts +496 -94
  334. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  335. package/build/esm/cc/ProtectionCC.js +0 -3
  336. package/build/esm/cc/ProtectionCC.js.map +1 -1
  337. package/build/esm/cc/SceneActivationCC.d.ts +127 -28
  338. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  339. package/build/esm/cc/SceneActivationCC.js +0 -1
  340. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  341. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  342. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  343. package/build/esm/cc/SceneActuatorConfigurationCC.js +0 -2
  344. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  345. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +53 -25
  346. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  347. package/build/esm/cc/SceneControllerConfigurationCC.js +0 -2
  348. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  349. package/build/esm/cc/ScheduleEntryLockCC.d.ts +268 -64
  350. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  351. package/build/esm/cc/ScheduleEntryLockCC.js +0 -14
  352. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  353. package/build/esm/cc/Security2CC.d.ts +15 -21
  354. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  355. package/build/esm/cc/Security2CC.js +27 -475
  356. package/build/esm/cc/Security2CC.js.map +1 -1
  357. package/build/esm/cc/SecurityCC.d.ts +12 -19
  358. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  359. package/build/esm/cc/SecurityCC.js +13 -138
  360. package/build/esm/cc/SecurityCC.js.map +1 -1
  361. package/build/esm/cc/SoundSwitchCC.d.ts +253 -64
  362. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  363. package/build/esm/cc/SoundSwitchCC.js +0 -7
  364. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  365. package/build/esm/cc/SupervisionCC.d.ts +28 -16
  366. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  367. package/build/esm/cc/SupervisionCC.js +4 -34
  368. package/build/esm/cc/SupervisionCC.js.map +1 -1
  369. package/build/esm/cc/ThermostatFanModeCC.d.ts +187 -38
  370. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  371. package/build/esm/cc/ThermostatFanModeCC.js +0 -1
  372. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  373. package/build/esm/cc/ThermostatFanStateCC.d.ts +64 -18
  374. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  375. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  376. package/build/esm/cc/ThermostatModeCC.d.ts +189 -40
  377. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  378. package/build/esm/cc/ThermostatModeCC.js +0 -3
  379. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  380. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +65 -19
  381. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  382. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  383. package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
  384. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  385. package/build/esm/cc/ThermostatSetbackCC.js +0 -2
  386. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  387. package/build/esm/cc/ThermostatSetpointCC.d.ts +116 -36
  388. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  389. package/build/esm/cc/ThermostatSetpointCC.js +0 -6
  390. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  391. package/build/esm/cc/TimeCC.d.ts +6 -6
  392. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  393. package/build/esm/cc/TimeCC.js +0 -4
  394. package/build/esm/cc/TimeCC.js.map +1 -1
  395. package/build/esm/cc/TimeParametersCC.d.ts +63 -12
  396. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  397. package/build/esm/cc/TimeParametersCC.js +0 -1
  398. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  399. package/build/esm/cc/TransportServiceCC.d.ts +7 -12
  400. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  401. package/build/esm/cc/TransportServiceCC.js +5 -38
  402. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  403. package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
  404. package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
  405. package/build/esm/cc/UserCodeCC.d.ts +931 -176
  406. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  407. package/build/esm/cc/UserCodeCC.js +0 -12
  408. package/build/esm/cc/UserCodeCC.js.map +1 -1
  409. package/build/esm/cc/VersionCC.d.ts +897 -185
  410. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  411. package/build/esm/cc/VersionCC.js +0 -4
  412. package/build/esm/cc/VersionCC.js.map +1 -1
  413. package/build/esm/cc/WakeUpCC.d.ts +190 -38
  414. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  415. package/build/esm/cc/WakeUpCC.js +0 -1
  416. package/build/esm/cc/WakeUpCC.js.map +1 -1
  417. package/build/esm/cc/WindowCoveringCC.d.ts +193 -103
  418. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  419. package/build/esm/cc/WindowCoveringCC.js +0 -5
  420. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  421. package/build/esm/cc/ZWavePlusCC.d.ts +311 -51
  422. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  423. package/build/esm/cc/ZWavePlusCC.js +0 -1
  424. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  425. package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
  426. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  427. package/build/esm/cc/ZWaveProtocolCC.js +0 -27
  428. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  429. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  430. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  431. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
  432. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  433. package/build/esm/index.d.ts +1 -0
  434. package/build/esm/index.d.ts.map +1 -1
  435. package/build/esm/index_browser.d.ts +9 -0
  436. package/build/esm/index_browser.d.ts.map +1 -1
  437. package/build/esm/index_browser.js +8 -1
  438. package/build/esm/index_browser.js.map +1 -1
  439. package/build/esm/lib/API.d.ts +7 -5
  440. package/build/esm/lib/API.d.ts.map +1 -1
  441. package/build/esm/lib/API.js +1 -1
  442. package/build/esm/lib/API.js.map +1 -1
  443. package/build/esm/lib/CommandClass.d.ts +10 -21
  444. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  445. package/build/esm/lib/CommandClass.js +8 -101
  446. package/build/esm/lib/CommandClass.js.map +1 -1
  447. package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
  448. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  449. package/build/esm/lib/CommandClassDecorators.js +1 -1
  450. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  451. package/build/esm/lib/Values.d.ts +2 -2
  452. package/build/esm/lib/Values.d.ts.map +1 -1
  453. package/build/esm/lib/Values.js.map +1 -1
  454. package/build/esm/lib/traits.d.ts +94 -0
  455. package/build/esm/lib/traits.d.ts.map +1 -0
  456. package/build/esm/lib/traits.js +2 -0
  457. package/build/esm/lib/traits.js.map +1 -0
  458. package/build/esm/lib/utils.d.ts +2 -2
  459. package/build/esm/lib/utils.d.ts.map +1 -1
  460. package/build/esm/lib/utils.js.map +1 -1
  461. package/package.json +13 -13
@@ -1,24 +1,37 @@
1
- import { CommandClasses, type MaybeNotKnown, type MessageOrCCLogEntry, type Scale, type SupervisionResult, type WithAddress } from "@zwave-js/core/safe";
2
- import type { CCEncodingContext, CCParsingContext, GetValueDB } from "@zwave-js/host/safe";
1
+ import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
+ import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type Scale, type SupervisionResult, ValueMetadata, 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 { type HumidityControlSetpointCapabilities, HumidityControlSetpointCommand, HumidityControlSetpointType, type HumidityControlSetpointValue } from "../lib/_Types.js";
7
7
  export declare const HumidityControlSetpointCCValues: Readonly<{
8
8
  setpointScale: ((setpointType: number) => {
9
- readonly meta: {
10
- readonly label: `Setpoint scale (${string})`;
11
- readonly writeable: false;
12
- readonly min: 0;
13
- readonly max: 255;
14
- readonly type: "number";
9
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
10
+ readonly type: "any";
15
11
  readonly readable: true;
16
- };
17
- readonly id: {
18
- commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
19
- property: "setpointScale";
20
- propertyKey: number;
21
- };
12
+ readonly writeable: true;
13
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
14
+ readonly type: "any";
15
+ readonly readable: true;
16
+ readonly writeable: true;
17
+ }>, ("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<{
18
+ readonly type: "any";
19
+ readonly readable: true;
20
+ readonly writeable: true;
21
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
22
+ readonly type: "any";
23
+ readonly readable: true;
24
+ readonly writeable: true;
25
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
26
+ readonly type: "any";
27
+ readonly readable: true;
28
+ readonly writeable: true;
29
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
30
+ readonly type: "any";
31
+ readonly readable: true;
32
+ readonly writeable: true;
33
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
34
+ readonly id: ValueIDBase;
22
35
  readonly endpoint: (endpoint?: number | undefined) => {
23
36
  readonly commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
24
37
  readonly endpoint: number;
@@ -37,20 +50,32 @@ export declare const HumidityControlSetpointCCValues: Readonly<{
37
50
  };
38
51
  };
39
52
  setpoint: ((setpointType: number) => {
40
- readonly meta: {
41
- readonly label: `Setpoint (${string})`;
42
- readonly ccSpecific: {
43
- readonly setpointType: number;
44
- };
45
- readonly type: "number";
53
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
54
+ readonly type: "any";
46
55
  readonly readable: true;
47
56
  readonly writeable: true;
48
- };
49
- readonly id: {
50
- commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
51
- property: "setpoint";
52
- propertyKey: number;
53
- };
57
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
58
+ readonly type: "any";
59
+ readonly readable: true;
60
+ readonly writeable: true;
61
+ }>, ("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<{
62
+ readonly type: "any";
63
+ readonly readable: true;
64
+ readonly writeable: true;
65
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
66
+ readonly type: "any";
67
+ readonly readable: true;
68
+ readonly writeable: true;
69
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
70
+ readonly type: "any";
71
+ readonly readable: true;
72
+ readonly writeable: true;
73
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
74
+ readonly type: "any";
75
+ readonly readable: true;
76
+ readonly writeable: true;
77
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
78
+ readonly id: ValueIDBase;
54
79
  readonly endpoint: (endpoint?: number | undefined) => {
55
80
  readonly commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
56
81
  readonly endpoint: number;
@@ -69,29 +94,81 @@ export declare const HumidityControlSetpointCCValues: Readonly<{
69
94
  };
70
95
  };
71
96
  supportedSetpointTypes: {
72
- readonly id: {
73
- commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
74
- property: "supportedSetpointTypes";
75
- };
97
+ readonly id: ValueIDBase;
76
98
  readonly endpoint: (endpoint?: number | undefined) => {
77
99
  readonly commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
78
100
  readonly endpoint: number;
79
101
  readonly property: "supportedSetpointTypes";
80
102
  };
81
103
  readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
82
- readonly meta: {
104
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
83
105
  readonly type: "any";
84
106
  readonly readable: true;
85
107
  readonly writeable: true;
86
- };
87
- readonly options: {
108
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
109
+ readonly type: "any";
110
+ readonly readable: true;
111
+ readonly writeable: true;
112
+ }>, ("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<{
113
+ readonly type: "any";
114
+ readonly readable: true;
115
+ readonly writeable: true;
116
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
117
+ readonly type: "any";
118
+ readonly readable: true;
119
+ readonly writeable: true;
120
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
121
+ readonly type: "any";
122
+ readonly readable: true;
123
+ readonly writeable: true;
124
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
125
+ readonly type: "any";
126
+ readonly readable: true;
127
+ readonly writeable: true;
128
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
129
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
130
+ readonly internal: false;
131
+ readonly minVersion: 1;
132
+ readonly secret: false;
88
133
  readonly stateful: true;
134
+ readonly supportsEndpoints: true;
135
+ readonly autoCreate: true;
136
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
137
+ readonly internal: false;
138
+ readonly minVersion: 1;
89
139
  readonly secret: false;
140
+ readonly stateful: true;
141
+ readonly supportsEndpoints: true;
142
+ readonly autoCreate: true;
143
+ }, ("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"]> ? {
144
+ readonly internal: false;
90
145
  readonly minVersion: 1;
146
+ readonly secret: false;
147
+ readonly stateful: true;
91
148
  readonly supportsEndpoints: true;
92
149
  readonly autoCreate: true;
93
- readonly internal: true;
94
- };
150
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
151
+ readonly internal: false;
152
+ readonly minVersion: 1;
153
+ readonly secret: false;
154
+ readonly stateful: true;
155
+ readonly supportsEndpoints: true;
156
+ readonly autoCreate: true;
157
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
158
+ readonly internal: false;
159
+ readonly minVersion: 1;
160
+ readonly secret: false;
161
+ readonly stateful: true;
162
+ readonly supportsEndpoints: true;
163
+ readonly autoCreate: true;
164
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
165
+ readonly internal: false;
166
+ readonly minVersion: 1;
167
+ readonly secret: false;
168
+ readonly stateful: true;
169
+ readonly supportsEndpoints: true;
170
+ readonly autoCreate: true;
171
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
95
172
  };
96
173
  }>;
97
174
  export declare class HumidityControlSetpointCCAPI extends CCAPI {
@@ -121,7 +198,7 @@ export declare class HumidityControlSetpointCCSet extends HumidityControlSetpoin
121
198
  setpointType: HumidityControlSetpointType;
122
199
  value: number;
123
200
  scale: number;
124
- serialize(ctx: CCEncodingContext): Bytes;
201
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
125
202
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
126
203
  }
127
204
  export interface HumidityControlSetpointCCReportOptions {
@@ -145,7 +222,7 @@ export declare class HumidityControlSetpointCCGet extends HumidityControlSetpoin
145
222
  constructor(options: WithAddress<HumidityControlSetpointCCGetOptions>);
146
223
  static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCGet;
147
224
  setpointType: HumidityControlSetpointType;
148
- serialize(ctx: CCEncodingContext): Bytes;
225
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
149
226
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
150
227
  }
151
228
  export interface HumidityControlSetpointCCSupportedReportOptions {
@@ -175,7 +252,7 @@ export declare class HumidityControlSetpointCCScaleSupportedGet extends Humidity
175
252
  constructor(options: WithAddress<HumidityControlSetpointCCScaleSupportedGetOptions>);
176
253
  static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCScaleSupportedGet;
177
254
  setpointType: HumidityControlSetpointType;
178
- serialize(ctx: CCEncodingContext): Bytes;
255
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
179
256
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
180
257
  }
181
258
  export interface HumidityControlSetpointCCCapabilitiesReportOptions {
@@ -203,7 +280,7 @@ export declare class HumidityControlSetpointCCCapabilitiesGet extends HumidityCo
203
280
  constructor(options: WithAddress<HumidityControlSetpointCCCapabilitiesGetOptions>);
204
281
  static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCCapabilitiesGet;
205
282
  setpointType: HumidityControlSetpointType;
206
- serialize(ctx: CCEncodingContext): Bytes;
283
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
207
284
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
208
285
  }
209
286
  //# sourceMappingURL=HumidityControlSetpointCC.d.ts.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/HumidityControlSetpointCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype Scale,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype ValueMetadataNumeric,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeFloatWithScale,\n\tgetNamedScale,\n\tgetUnknownScale,\n\tparseBitMask,\n\tparseFloatWithScale,\n\tsupervisedCommandSucceeded,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\ttype HumidityControlSetpointCapabilities,\n\tHumidityControlSetpointCommand,\n\tHumidityControlSetpointType,\n\ttype HumidityControlSetpointValue,\n} from \"../lib/_Types.js\";\n\nexport const HumidityControlSetpointCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Humidity Control Setpoint\"], {\n\t\t...V.staticProperty(\"supportedSetpointTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses[\"Humidity Control Setpoint\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"setpoint\",\n\t\t\t\"setpoint\",\n\t\t\t(setpointType: number) => setpointType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"setpoint\" && typeof propertyKey === \"number\",\n\t\t\t(setpointType: number) => ({\n\t\t\t\t// This is the base metadata that will be extended on the fly\n\t\t\t\t...ValueMetadata.Number,\n\t\t\t\tlabel: `Setpoint (${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\t\tsetpointType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t\tccSpecific: { setpointType },\n\t\t\t} as const),\n\t\t),\n\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"setpointScale\",\n\t\t\t\"setpointScale\",\n\t\t\t(setpointType: number) => setpointType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"setpointScale\" && typeof propertyKey === \"number\",\n\t\t\t(setpointType: number) => ({\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: `Setpoint scale (${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\t\tsetpointType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t} as const),\n\t\t),\n\t}),\n});\n\nfunction getScale(scale: number): Scale {\n\treturn getNamedScale(\"humidity\", scale as any) ?? getUnknownScale(scale);\n}\nfunction getSetpointUnit(scale: number): string {\n\treturn getScale(scale).unit ?? \"\";\n}\n\n@API(CommandClasses[\"Humidity Control Setpoint\"])\nexport class HumidityControlSetpointCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: HumidityControlSetpointCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase HumidityControlSetpointCommand.Get:\n\t\t\tcase HumidityControlSetpointCommand.SupportedGet:\n\t\t\tcase HumidityControlSetpointCommand.CapabilitiesGet:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase HumidityControlSetpointCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: HumidityControlSetpointCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t) {\n\t\t\tif (property !== \"setpoint\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof propertyKey !== \"number\") {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`${\n\t\t\t\t\t\tCommandClasses[this.ccId]\n\t\t\t\t\t}: \"${property}\" must be further specified by a numeric property key`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof value !== \"number\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"number\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst scaleValueId = HumidityControlSetpointCCValues.setpointScale(\n\t\t\t\tpropertyKey,\n\t\t\t).endpoint(this.endpoint.index);\n\t\t\tconst preferredScale = this.tryGetValueDB()?.getValue<number>(\n\t\t\t\tscaleValueId,\n\t\t\t);\n\n\t\t\tconst result = await this.set(\n\t\t\t\tpropertyKey,\n\t\t\t\tvalue,\n\t\t\t\tpreferredScale ?? 0,\n\t\t\t);\n\n\t\t\t// Verify the change after a delay, unless the command was supervised and successful\n\t\t\tif (this.isSinglecast() && !supervisedCommandSucceeded(result)) {\n\t\t\t\tthis.schedulePoll({ property, propertyKey }, value);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: HumidityControlSetpointCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"setpoint\":\n\t\t\t\t\tif (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\tCommandClasses[this.ccId]\n\t\t\t\t\t\t\t}: \"${property}\" must be further specified by a numeric property key`,\n\t\t\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (await this.get(propertyKey))?.value;\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async get(\n\t\tsetpointType: HumidityControlSetpointType,\n\t): Promise<MaybeNotKnown<HumidityControlSetpointValue>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.Get,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tHumidityControlSetpointCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (!response) return;\n\t\treturn response.type === HumidityControlSetpointType[\"N/A\"]\n\t\t\t// not supported\n\t\t\t? undefined\n\t\t\t// supported\n\t\t\t: {\n\t\t\t\tvalue: response.value,\n\t\t\t\tscale: response.scale,\n\t\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tsetpointType: HumidityControlSetpointType,\n\t\tvalue: number,\n\t\tscale: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.Set,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t\tvalue,\n\t\t\tscale,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async getCapabilities(\n\t\tsetpointType: HumidityControlSetpointType,\n\t): Promise<MaybeNotKnown<HumidityControlSetpointCapabilities>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.CapabilitiesGet,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCCapabilitiesGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tHumidityControlSetpointCCCapabilitiesReport\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\"minValue\",\n\t\t\t\t\"maxValue\",\n\t\t\t\t\"minValueScale\",\n\t\t\t\t\"maxValueScale\",\n\t\t\t]);\n\t\t}\n\t}\n\n\tpublic async getSupportedSetpointTypes(): Promise<\n\t\tMaybeNotKnown<readonly HumidityControlSetpointType[]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCSupportedGet({\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\tHumidityControlSetpointCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedSetpointTypes;\n\t}\n\n\t@validateArgs()\n\tpublic async getSupportedScales(\n\t\tsetpointType: HumidityControlSetpointType,\n\t): Promise<MaybeNotKnown<readonly Scale[]>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCScaleSupportedGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tHumidityControlSetpointCCScaleSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn response.supportedScales.map((scale) => getScale(scale));\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses[\"Humidity Control Setpoint\"])\n@implementedVersion(2)\n@ccValues(HumidityControlSetpointCCValues)\nexport class HumidityControlSetpointCC extends CommandClass {\n\tdeclare ccCommand: HumidityControlSetpointCommand;\n\n\tpublic translatePropertyKey(\n\t\tctx: GetValueDB,\n\t\tproperty: string | number,\n\t\tpropertyKey: string | number,\n\t): string | undefined {\n\t\tif (property === \"setpoint\") {\n\t\t\treturn getEnumMemberName(\n\t\t\t\tHumidityControlSetpointType,\n\t\t\t\tpropertyKey as any,\n\t\t\t);\n\t\t} else {\n\t\t\treturn super.translatePropertyKey(ctx, property, propertyKey);\n\t\t}\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[\"Humidity Control Setpoint\"],\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\t// Query the supported setpoint types\n\t\tlet setpointTypes: HumidityControlSetpointType[] = [];\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"retrieving supported setpoint types...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst resp = await api.getSupportedSetpointTypes();\n\t\tif (resp) {\n\t\t\tsetpointTypes = [...resp];\n\t\t\tconst logMessage = \"received supported setpoint types:\\n\"\n\t\t\t\t+ setpointTypes\n\t\t\t\t\t.map((type) =>\n\t\t\t\t\t\tgetEnumMemberName(HumidityControlSetpointType, type)\n\t\t\t\t\t)\n\t\t\t\t\t.map((name) => `\u00B7 ${name}`)\n\t\t\t\t\t.join(\"\\n\");\n\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:\n\t\t\t\t\t\"Querying supported setpoint types timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const type of setpointTypes) {\n\t\t\tconst setpointName = getEnumMemberName(\n\t\t\t\tHumidityControlSetpointType,\n\t\t\t\ttype,\n\t\t\t);\n\t\t\t// Find out the capabilities of this setpoint\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`retrieving capabilities for setpoint ${setpointName}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst setpointScaleSupported = await api.getSupportedScales(type);\n\t\t\tif (setpointScaleSupported) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received supported scales for setpoint ${setpointName}: \n${\n\t\t\t\t\t\tsetpointScaleSupported\n\t\t\t\t\t\t\t.map((t) => `\\n\u00B7 ${t.key} ${t.unit} - ${t.label}`)\n\t\t\t\t\t\t\t.join(\"\")\n\t\t\t\t\t}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\n\t\t\t\tconst scaleValue = HumidityControlSetpointCCValues\n\t\t\t\t\t.setpointScale(type);\n\t\t\t\tconst states: Record<number, string> = {};\n\t\t\t\tfor (const scale of setpointScaleSupported) {\n\t\t\t\t\tif (scale.unit) states[scale.key] = scale.unit;\n\t\t\t\t}\n\t\t\t\tthis.setMetadata(ctx, scaleValue, {\n\t\t\t\t\t...scaleValue.meta,\n\t\t\t\t\tstates,\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst setpointCaps = await api.getCapabilities(type);\n\t\t\tif (setpointCaps) {\n\t\t\t\tconst minValueUnit = getSetpointUnit(\n\t\t\t\t\tsetpointCaps.minValueScale,\n\t\t\t\t);\n\t\t\t\tconst maxValueUnit = getSetpointUnit(\n\t\t\t\t\tsetpointCaps.maxValueScale,\n\t\t\t\t);\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received capabilities for setpoint ${setpointName}:\nminimum value: ${setpointCaps.minValue} ${minValueUnit}\nmaximum value: ${setpointCaps.maxValue} ${maxValueUnit}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Query the current value for all setpoint types\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\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[\"Humidity Control Setpoint\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst setpointTypes: HumidityControlSetpointType[] = this.getValue(\n\t\t\tctx,\n\t\t\tHumidityControlSetpointCCValues.supportedSetpointTypes,\n\t\t) ?? [];\n\n\t\t// Query each setpoint's current value\n\t\tfor (const type of setpointTypes) {\n\t\t\tconst setpointName = getEnumMemberName(\n\t\t\t\tHumidityControlSetpointType,\n\t\t\t\ttype,\n\t\t\t);\n\t\t\t// Every time, query the current value\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`querying current value of setpoint ${setpointName}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst setpoint = await api.get(type);\n\t\t\tif (setpoint) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received current value of setpoint ${setpointName}: ${setpoint.value} ${\n\t\t\t\t\t\tgetScale(setpoint.scale).unit ?? \"\"\n\t\t\t\t\t}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCSetOptions {\n\tsetpointType: HumidityControlSetpointType;\n\tvalue: number;\n\tscale: number;\n}\n\n@CCCommand(HumidityControlSetpointCommand.Set)\n@useSupervision()\nexport class HumidityControlSetpointCCSet extends HumidityControlSetpointCC {\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t\tthis.value = options.value;\n\t\tthis.scale = options.scale;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCSet {\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 HumidityControlSetpointCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\tpublic value: number;\n\tpublic scale: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.setpointType & 0b1111]),\n\t\t\tencodeFloatWithScale(this.value, this.scale),\n\t\t]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst scale = getScale(this.scale);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\n\t\t\t\tvalue: `${this.value} ${scale.unit}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCReportOptions {\n\ttype: HumidityControlSetpointType;\n\tscale: number;\n\tvalue: number;\n}\n\n@CCCommand(HumidityControlSetpointCommand.Report)\nexport class HumidityControlSetpointCCReport extends HumidityControlSetpointCC {\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.type = options.type;\n\t\tthis.value = options.value;\n\t\tthis.scale = options.scale;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst type: HumidityControlSetpointType = raw.payload[0] & 0b1111;\n\n\t\t// Setpoint type 0 is not defined in the spec, prevent devices from using it.\n\t\tif (type === 0) {\n\t\t\t// Not supported\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\ttype,\n\t\t\t\tvalue: 0,\n\t\t\t\tscale: 0,\n\t\t\t});\n\t\t}\n\n\t\t// parseFloatWithScale does its own validation\n\t\tconst { value, scale } = parseFloatWithScale(raw.payload.subarray(1));\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\tscale,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tconst scale = getScale(this.scale);\n\n\t\tconst setpointValue = HumidityControlSetpointCCValues.setpoint(\n\t\t\tthis.type,\n\t\t);\n\t\tconst existingMetadata = this.getMetadata<ValueMetadataNumeric>(\n\t\t\tctx,\n\t\t\tsetpointValue,\n\t\t);\n\n\t\t// Update the metadata when it is missing or the unit has changed\n\t\tif (existingMetadata?.unit !== scale.unit) {\n\t\t\tthis.setMetadata(ctx, setpointValue, {\n\t\t\t\t...(existingMetadata ?? setpointValue.meta),\n\t\t\t\tunit: scale.unit,\n\t\t\t});\n\t\t}\n\t\tthis.setValue(ctx, setpointValue, this.value);\n\n\t\t// Remember the device-preferred setpoint scale so it can be used in SET commands\n\t\tthis.setValue(\n\t\t\tctx,\n\t\t\tHumidityControlSetpointCCValues.setpointScale(this.type),\n\t\t\tthis.scale,\n\t\t);\n\t\treturn true;\n\t}\n\n\tpublic type: HumidityControlSetpointType;\n\tpublic scale: number;\n\tpublic value: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst scale = getScale(this.scale);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.type,\n\t\t\t\t),\n\t\t\t\tvalue: `${this.value} ${scale.unit}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\nfunction testResponseForHumidityControlSetpointGet(\n\tsent: HumidityControlSetpointCCGet,\n\treceived: HumidityControlSetpointCCReport,\n) {\n\t// We expect a Humidity Control Setpoint Report that matches the requested setpoint type\n\treturn received.type === sent.setpointType;\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCGetOptions {\n\tsetpointType: HumidityControlSetpointType;\n}\n\n@CCCommand(HumidityControlSetpointCommand.Get)\n@expectedCCResponse(\n\tHumidityControlSetpointCCReport,\n\ttestResponseForHumidityControlSetpointGet,\n)\nexport class HumidityControlSetpointCCGet extends HumidityControlSetpointCC {\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCGet {\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 HumidityControlSetpointCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.setpointType & 0b1111]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\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\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCSupportedReportOptions {\n\tsupportedSetpointTypes: HumidityControlSetpointType[];\n}\n\n@CCCommand(HumidityControlSetpointCommand.SupportedReport)\n@ccValueProperty(\n\t\"supportedSetpointTypes\",\n\tHumidityControlSetpointCCValues.supportedSetpointTypes,\n)\nexport class HumidityControlSetpointCCSupportedReport\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedSetpointTypes = options.supportedSetpointTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst supportedSetpointTypes: HumidityControlSetpointType[] =\n\t\t\tparseBitMask(\n\t\t\t\traw.payload,\n\t\t\t\tHumidityControlSetpointType[\"N/A\"],\n\t\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedSetpointTypes,\n\t\t});\n\t}\n\n\tpublic readonly supportedSetpointTypes:\n\t\treadonly HumidityControlSetpointType[];\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\"supported setpoint types\": this.supportedSetpointTypes\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(t) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${\n\t\t\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}`,\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(HumidityControlSetpointCommand.SupportedGet)\n@expectedCCResponse(HumidityControlSetpointCCSupportedReport)\nexport class HumidityControlSetpointCCSupportedGet\n\textends HumidityControlSetpointCC\n{}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCScaleSupportedReportOptions {\n\tsupportedScales: number[];\n}\n\n@CCCommand(HumidityControlSetpointCommand.ScaleSupportedReport)\nexport class HumidityControlSetpointCCScaleSupportedReport\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tHumidityControlSetpointCCScaleSupportedReportOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedScales = options.supportedScales;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCScaleSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst supportedScales = parseBitMask(\n\t\t\tBytes.from([raw.payload[0] & 0b1111]),\n\t\t\t0,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedScales,\n\t\t});\n\t}\n\n\tpublic readonly supportedScales: readonly number[];\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst supportedScales = this.supportedScales.map((scale) =>\n\t\t\tgetScale(scale)\n\t\t);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"scale supported\": supportedScales\n\t\t\t\t\t.map((t) => `\\n\u00B7 ${t.key} ${t.unit} - ${t.label}`)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCScaleSupportedGetOptions {\n\tsetpointType: HumidityControlSetpointType;\n}\n\n@CCCommand(HumidityControlSetpointCommand.ScaleSupportedGet)\n@expectedCCResponse(HumidityControlSetpointCCScaleSupportedReport)\nexport class HumidityControlSetpointCCScaleSupportedGet\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCScaleSupportedGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCScaleSupportedGet {\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 HumidityControlSetpointCCScaleSupportedGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.setpointType & 0b1111]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\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\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCCapabilitiesReportOptions {\n\ttype: HumidityControlSetpointType;\n\tminValue: number;\n\tmaxValue: number;\n\tminValueScale: number;\n\tmaxValueScale: number;\n}\n\n@CCCommand(HumidityControlSetpointCommand.CapabilitiesReport)\nexport class HumidityControlSetpointCCCapabilitiesReport\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tHumidityControlSetpointCCCapabilitiesReportOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.type = options.type;\n\t\tthis.minValue = options.minValue;\n\t\tthis.maxValue = options.maxValue;\n\t\tthis.minValueScale = options.minValueScale;\n\t\tthis.maxValueScale = options.maxValueScale;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCCapabilitiesReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst type: HumidityControlSetpointType = raw.payload[0] & 0b1111;\n\n\t\t// parseFloatWithScale does its own validation\n\t\tconst {\n\t\t\tvalue: minValue,\n\t\t\tscale: minValueScale,\n\t\t\tbytesRead,\n\t\t} = parseFloatWithScale(raw.payload.subarray(1));\n\t\tconst { value: maxValue, scale: maxValueScale } = parseFloatWithScale(\n\t\t\traw.payload.subarray(1 + bytesRead),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttype,\n\t\t\tminValue,\n\t\t\tminValueScale,\n\t\t\tmaxValue,\n\t\t\tmaxValueScale,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Predefine the metadata\n\t\tconst setpointValue = HumidityControlSetpointCCValues.setpoint(\n\t\t\tthis.type,\n\t\t);\n\t\tthis.setMetadata(ctx, setpointValue, {\n\t\t\t...setpointValue.meta,\n\t\t\tmin: this.minValue,\n\t\t\tmax: this.maxValue,\n\t\t\tunit: getSetpointUnit(this.minValueScale)\n\t\t\t\t|| getSetpointUnit(this.maxValueScale),\n\t\t});\n\n\t\treturn true;\n\t}\n\n\tpublic type: HumidityControlSetpointType;\n\tpublic minValue: number;\n\tpublic maxValue: number;\n\tpublic minValueScale: number;\n\tpublic maxValueScale: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst minValueScale = getScale(this.minValueScale);\n\t\tconst maxValueScale = getScale(this.maxValueScale);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.type,\n\t\t\t\t),\n\t\t\t\t\"min value\": `${this.minValue} ${minValueScale.unit}`,\n\t\t\t\t\"max value\": `${this.maxValue} ${maxValueScale.unit}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCCapabilitiesGetOptions {\n\tsetpointType: HumidityControlSetpointType;\n}\n\n@CCCommand(HumidityControlSetpointCommand.CapabilitiesGet)\n@expectedCCResponse(HumidityControlSetpointCCCapabilitiesReport)\nexport class HumidityControlSetpointCCCapabilitiesGet\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCCapabilitiesGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCCapabilitiesGet {\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 HumidityControlSetpointCCCapabilitiesGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.setpointType & 0b1111]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\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\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\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\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype Scale,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype ValueMetadataNumeric,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeFloatWithScale,\n\tgetNamedScale,\n\tgetUnknownScale,\n\tparseBitMask,\n\tparseFloatWithScale,\n\tsupervisedCommandSucceeded,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\ttype HumidityControlSetpointCapabilities,\n\tHumidityControlSetpointCommand,\n\tHumidityControlSetpointType,\n\ttype HumidityControlSetpointValue,\n} from \"../lib/_Types.js\";\n\nexport const HumidityControlSetpointCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Humidity Control Setpoint\"], {\n\t\t...V.staticProperty(\"supportedSetpointTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses[\"Humidity Control Setpoint\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"setpoint\",\n\t\t\t\"setpoint\",\n\t\t\t(setpointType: number) => setpointType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"setpoint\" && typeof propertyKey === \"number\",\n\t\t\t(setpointType: number) => ({\n\t\t\t\t// This is the base metadata that will be extended on the fly\n\t\t\t\t...ValueMetadata.Number,\n\t\t\t\tlabel: `Setpoint (${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\t\tsetpointType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t\tccSpecific: { setpointType },\n\t\t\t} as const),\n\t\t),\n\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"setpointScale\",\n\t\t\t\"setpointScale\",\n\t\t\t(setpointType: number) => setpointType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"setpointScale\" && typeof propertyKey === \"number\",\n\t\t\t(setpointType: number) => ({\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: `Setpoint scale (${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\t\tsetpointType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t} as const),\n\t\t),\n\t}),\n});\n\nfunction getScale(scale: number): Scale {\n\treturn getNamedScale(\"humidity\", scale as any) ?? getUnknownScale(scale);\n}\nfunction getSetpointUnit(scale: number): string {\n\treturn getScale(scale).unit ?? \"\";\n}\n\n@API(CommandClasses[\"Humidity Control Setpoint\"])\nexport class HumidityControlSetpointCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: HumidityControlSetpointCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase HumidityControlSetpointCommand.Get:\n\t\t\tcase HumidityControlSetpointCommand.SupportedGet:\n\t\t\tcase HumidityControlSetpointCommand.CapabilitiesGet:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase HumidityControlSetpointCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: HumidityControlSetpointCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t) {\n\t\t\tif (property !== \"setpoint\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof propertyKey !== \"number\") {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`${\n\t\t\t\t\t\tCommandClasses[this.ccId]\n\t\t\t\t\t}: \"${property}\" must be further specified by a numeric property key`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof value !== \"number\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"number\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst scaleValueId = HumidityControlSetpointCCValues.setpointScale(\n\t\t\t\tpropertyKey,\n\t\t\t).endpoint(this.endpoint.index);\n\t\t\tconst preferredScale = this.tryGetValueDB()?.getValue<number>(\n\t\t\t\tscaleValueId,\n\t\t\t);\n\n\t\t\tconst result = await this.set(\n\t\t\t\tpropertyKey,\n\t\t\t\tvalue,\n\t\t\t\tpreferredScale ?? 0,\n\t\t\t);\n\n\t\t\t// Verify the change after a delay, unless the command was supervised and successful\n\t\t\tif (this.isSinglecast() && !supervisedCommandSucceeded(result)) {\n\t\t\t\tthis.schedulePoll({ property, propertyKey }, value);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: HumidityControlSetpointCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"setpoint\":\n\t\t\t\t\tif (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\tCommandClasses[this.ccId]\n\t\t\t\t\t\t\t}: \"${property}\" must be further specified by a numeric property key`,\n\t\t\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (await this.get(propertyKey))?.value;\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async get(\n\t\tsetpointType: HumidityControlSetpointType,\n\t): Promise<MaybeNotKnown<HumidityControlSetpointValue>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.Get,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tHumidityControlSetpointCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (!response) return;\n\t\treturn response.type === HumidityControlSetpointType[\"N/A\"]\n\t\t\t// not supported\n\t\t\t? undefined\n\t\t\t// supported\n\t\t\t: {\n\t\t\t\tvalue: response.value,\n\t\t\t\tscale: response.scale,\n\t\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tsetpointType: HumidityControlSetpointType,\n\t\tvalue: number,\n\t\tscale: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.Set,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t\tvalue,\n\t\t\tscale,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async getCapabilities(\n\t\tsetpointType: HumidityControlSetpointType,\n\t): Promise<MaybeNotKnown<HumidityControlSetpointCapabilities>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.CapabilitiesGet,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCCapabilitiesGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tHumidityControlSetpointCCCapabilitiesReport\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\"minValue\",\n\t\t\t\t\"maxValue\",\n\t\t\t\t\"minValueScale\",\n\t\t\t\t\"maxValueScale\",\n\t\t\t]);\n\t\t}\n\t}\n\n\tpublic async getSupportedSetpointTypes(): Promise<\n\t\tMaybeNotKnown<readonly HumidityControlSetpointType[]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCSupportedGet({\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\tHumidityControlSetpointCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedSetpointTypes;\n\t}\n\n\t@validateArgs()\n\tpublic async getSupportedScales(\n\t\tsetpointType: HumidityControlSetpointType,\n\t): Promise<MaybeNotKnown<readonly Scale[]>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tHumidityControlSetpointCommand,\n\t\t\tHumidityControlSetpointCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new HumidityControlSetpointCCScaleSupportedGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetpointType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tHumidityControlSetpointCCScaleSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn response.supportedScales.map((scale) => getScale(scale));\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses[\"Humidity Control Setpoint\"])\n@implementedVersion(2)\n@ccValues(HumidityControlSetpointCCValues)\nexport class HumidityControlSetpointCC extends CommandClass {\n\tdeclare ccCommand: HumidityControlSetpointCommand;\n\n\tpublic translatePropertyKey(\n\t\tctx: GetValueDB,\n\t\tproperty: string | number,\n\t\tpropertyKey: string | number,\n\t): string | undefined {\n\t\tif (property === \"setpoint\") {\n\t\t\treturn getEnumMemberName(\n\t\t\t\tHumidityControlSetpointType,\n\t\t\t\tpropertyKey as any,\n\t\t\t);\n\t\t} else {\n\t\t\treturn super.translatePropertyKey(ctx, property, propertyKey);\n\t\t}\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[\"Humidity Control Setpoint\"],\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\t// Query the supported setpoint types\n\t\tlet setpointTypes: HumidityControlSetpointType[] = [];\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"retrieving supported setpoint types...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst resp = await api.getSupportedSetpointTypes();\n\t\tif (resp) {\n\t\t\tsetpointTypes = [...resp];\n\t\t\tconst logMessage = \"received supported setpoint types:\\n\"\n\t\t\t\t+ setpointTypes\n\t\t\t\t\t.map((type) =>\n\t\t\t\t\t\tgetEnumMemberName(HumidityControlSetpointType, type)\n\t\t\t\t\t)\n\t\t\t\t\t.map((name) => `\u00B7 ${name}`)\n\t\t\t\t\t.join(\"\\n\");\n\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:\n\t\t\t\t\t\"Querying supported setpoint types timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const type of setpointTypes) {\n\t\t\tconst setpointName = getEnumMemberName(\n\t\t\t\tHumidityControlSetpointType,\n\t\t\t\ttype,\n\t\t\t);\n\t\t\t// Find out the capabilities of this setpoint\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`retrieving capabilities for setpoint ${setpointName}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst setpointScaleSupported = await api.getSupportedScales(type);\n\t\t\tif (setpointScaleSupported) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received supported scales for setpoint ${setpointName}: \n${\n\t\t\t\t\t\tsetpointScaleSupported\n\t\t\t\t\t\t\t.map((t) => `\\n\u00B7 ${t.key} ${t.unit} - ${t.label}`)\n\t\t\t\t\t\t\t.join(\"\")\n\t\t\t\t\t}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\n\t\t\t\tconst scaleValue = HumidityControlSetpointCCValues\n\t\t\t\t\t.setpointScale(type);\n\t\t\t\tconst states: Record<number, string> = {};\n\t\t\t\tfor (const scale of setpointScaleSupported) {\n\t\t\t\t\tif (scale.unit) states[scale.key] = scale.unit;\n\t\t\t\t}\n\t\t\t\tthis.setMetadata(ctx, scaleValue, {\n\t\t\t\t\t...scaleValue.meta,\n\t\t\t\t\tstates,\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst setpointCaps = await api.getCapabilities(type);\n\t\t\tif (setpointCaps) {\n\t\t\t\tconst minValueUnit = getSetpointUnit(\n\t\t\t\t\tsetpointCaps.minValueScale,\n\t\t\t\t);\n\t\t\t\tconst maxValueUnit = getSetpointUnit(\n\t\t\t\t\tsetpointCaps.maxValueScale,\n\t\t\t\t);\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received capabilities for setpoint ${setpointName}:\nminimum value: ${setpointCaps.minValue} ${minValueUnit}\nmaximum value: ${setpointCaps.maxValue} ${maxValueUnit}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Query the current value for all setpoint types\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\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[\"Humidity Control Setpoint\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst setpointTypes: HumidityControlSetpointType[] = this.getValue(\n\t\t\tctx,\n\t\t\tHumidityControlSetpointCCValues.supportedSetpointTypes,\n\t\t) ?? [];\n\n\t\t// Query each setpoint's current value\n\t\tfor (const type of setpointTypes) {\n\t\t\tconst setpointName = getEnumMemberName(\n\t\t\t\tHumidityControlSetpointType,\n\t\t\t\ttype,\n\t\t\t);\n\t\t\t// Every time, query the current value\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`querying current value of setpoint ${setpointName}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst setpoint = await api.get(type);\n\t\t\tif (setpoint) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received current value of setpoint ${setpointName}: ${setpoint.value} ${\n\t\t\t\t\t\tgetScale(setpoint.scale).unit ?? \"\"\n\t\t\t\t\t}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCSetOptions {\n\tsetpointType: HumidityControlSetpointType;\n\tvalue: number;\n\tscale: number;\n}\n\n@CCCommand(HumidityControlSetpointCommand.Set)\n@useSupervision()\nexport class HumidityControlSetpointCCSet extends HumidityControlSetpointCC {\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t\tthis.value = options.value;\n\t\tthis.scale = options.scale;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCSet {\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 HumidityControlSetpointCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\tpublic value: number;\n\tpublic scale: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.setpointType & 0b1111]),\n\t\t\tencodeFloatWithScale(this.value, this.scale),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst scale = getScale(this.scale);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\n\t\t\t\tvalue: `${this.value} ${scale.unit}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCReportOptions {\n\ttype: HumidityControlSetpointType;\n\tscale: number;\n\tvalue: number;\n}\n\n@CCCommand(HumidityControlSetpointCommand.Report)\nexport class HumidityControlSetpointCCReport extends HumidityControlSetpointCC {\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.type = options.type;\n\t\tthis.value = options.value;\n\t\tthis.scale = options.scale;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst type: HumidityControlSetpointType = raw.payload[0] & 0b1111;\n\n\t\t// Setpoint type 0 is not defined in the spec, prevent devices from using it.\n\t\tif (type === 0) {\n\t\t\t// Not supported\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\ttype,\n\t\t\t\tvalue: 0,\n\t\t\t\tscale: 0,\n\t\t\t});\n\t\t}\n\n\t\t// parseFloatWithScale does its own validation\n\t\tconst { value, scale } = parseFloatWithScale(raw.payload.subarray(1));\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\tscale,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tconst scale = getScale(this.scale);\n\n\t\tconst setpointValue = HumidityControlSetpointCCValues.setpoint(\n\t\t\tthis.type,\n\t\t);\n\t\tconst existingMetadata = this.getMetadata<ValueMetadataNumeric>(\n\t\t\tctx,\n\t\t\tsetpointValue,\n\t\t);\n\n\t\t// Update the metadata when it is missing or the unit has changed\n\t\tif (existingMetadata?.unit !== scale.unit) {\n\t\t\tthis.setMetadata(ctx, setpointValue, {\n\t\t\t\t...(existingMetadata ?? setpointValue.meta),\n\t\t\t\tunit: scale.unit,\n\t\t\t});\n\t\t}\n\t\tthis.setValue(ctx, setpointValue, this.value);\n\n\t\t// Remember the device-preferred setpoint scale so it can be used in SET commands\n\t\tthis.setValue(\n\t\t\tctx,\n\t\t\tHumidityControlSetpointCCValues.setpointScale(this.type),\n\t\t\tthis.scale,\n\t\t);\n\t\treturn true;\n\t}\n\n\tpublic type: HumidityControlSetpointType;\n\tpublic scale: number;\n\tpublic value: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst scale = getScale(this.scale);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.type,\n\t\t\t\t),\n\t\t\t\tvalue: `${this.value} ${scale.unit}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\nfunction testResponseForHumidityControlSetpointGet(\n\tsent: HumidityControlSetpointCCGet,\n\treceived: HumidityControlSetpointCCReport,\n) {\n\t// We expect a Humidity Control Setpoint Report that matches the requested setpoint type\n\treturn received.type === sent.setpointType;\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCGetOptions {\n\tsetpointType: HumidityControlSetpointType;\n}\n\n@CCCommand(HumidityControlSetpointCommand.Get)\n@expectedCCResponse(\n\tHumidityControlSetpointCCReport,\n\ttestResponseForHumidityControlSetpointGet,\n)\nexport class HumidityControlSetpointCCGet extends HumidityControlSetpointCC {\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCGet {\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 HumidityControlSetpointCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.setpointType & 0b1111]);\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\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCSupportedReportOptions {\n\tsupportedSetpointTypes: HumidityControlSetpointType[];\n}\n\n@CCCommand(HumidityControlSetpointCommand.SupportedReport)\n@ccValueProperty(\n\t\"supportedSetpointTypes\",\n\tHumidityControlSetpointCCValues.supportedSetpointTypes,\n)\nexport class HumidityControlSetpointCCSupportedReport\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedSetpointTypes = options.supportedSetpointTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst supportedSetpointTypes: HumidityControlSetpointType[] =\n\t\t\tparseBitMask(\n\t\t\t\traw.payload,\n\t\t\t\tHumidityControlSetpointType[\"N/A\"],\n\t\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedSetpointTypes,\n\t\t});\n\t}\n\n\tpublic readonly supportedSetpointTypes:\n\t\treadonly HumidityControlSetpointType[];\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\"supported setpoint types\": this.supportedSetpointTypes\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(t) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${\n\t\t\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}`,\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(HumidityControlSetpointCommand.SupportedGet)\n@expectedCCResponse(HumidityControlSetpointCCSupportedReport)\nexport class HumidityControlSetpointCCSupportedGet\n\textends HumidityControlSetpointCC\n{}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCScaleSupportedReportOptions {\n\tsupportedScales: number[];\n}\n\n@CCCommand(HumidityControlSetpointCommand.ScaleSupportedReport)\nexport class HumidityControlSetpointCCScaleSupportedReport\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tHumidityControlSetpointCCScaleSupportedReportOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedScales = options.supportedScales;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCScaleSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst supportedScales = parseBitMask(\n\t\t\tBytes.from([raw.payload[0] & 0b1111]),\n\t\t\t0,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedScales,\n\t\t});\n\t}\n\n\tpublic readonly supportedScales: readonly number[];\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst supportedScales = this.supportedScales.map((scale) =>\n\t\t\tgetScale(scale)\n\t\t);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"scale supported\": supportedScales\n\t\t\t\t\t.map((t) => `\\n\u00B7 ${t.key} ${t.unit} - ${t.label}`)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCScaleSupportedGetOptions {\n\tsetpointType: HumidityControlSetpointType;\n}\n\n@CCCommand(HumidityControlSetpointCommand.ScaleSupportedGet)\n@expectedCCResponse(HumidityControlSetpointCCScaleSupportedReport)\nexport class HumidityControlSetpointCCScaleSupportedGet\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCScaleSupportedGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCScaleSupportedGet {\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 HumidityControlSetpointCCScaleSupportedGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.setpointType & 0b1111]);\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\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCCapabilitiesReportOptions {\n\ttype: HumidityControlSetpointType;\n\tminValue: number;\n\tmaxValue: number;\n\tminValueScale: number;\n\tmaxValueScale: number;\n}\n\n@CCCommand(HumidityControlSetpointCommand.CapabilitiesReport)\nexport class HumidityControlSetpointCCCapabilitiesReport\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tHumidityControlSetpointCCCapabilitiesReportOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.type = options.type;\n\t\tthis.minValue = options.minValue;\n\t\tthis.maxValue = options.maxValue;\n\t\tthis.minValueScale = options.minValueScale;\n\t\tthis.maxValueScale = options.maxValueScale;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): HumidityControlSetpointCCCapabilitiesReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst type: HumidityControlSetpointType = raw.payload[0] & 0b1111;\n\n\t\t// parseFloatWithScale does its own validation\n\t\tconst {\n\t\t\tvalue: minValue,\n\t\t\tscale: minValueScale,\n\t\t\tbytesRead,\n\t\t} = parseFloatWithScale(raw.payload.subarray(1));\n\t\tconst { value: maxValue, scale: maxValueScale } = parseFloatWithScale(\n\t\t\traw.payload.subarray(1 + bytesRead),\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttype,\n\t\t\tminValue,\n\t\t\tminValueScale,\n\t\t\tmaxValue,\n\t\t\tmaxValueScale,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Predefine the metadata\n\t\tconst setpointValue = HumidityControlSetpointCCValues.setpoint(\n\t\t\tthis.type,\n\t\t);\n\t\tthis.setMetadata(ctx, setpointValue, {\n\t\t\t...setpointValue.meta,\n\t\t\tmin: this.minValue,\n\t\t\tmax: this.maxValue,\n\t\t\tunit: getSetpointUnit(this.minValueScale)\n\t\t\t\t|| getSetpointUnit(this.maxValueScale),\n\t\t});\n\n\t\treturn true;\n\t}\n\n\tpublic type: HumidityControlSetpointType;\n\tpublic minValue: number;\n\tpublic maxValue: number;\n\tpublic minValueScale: number;\n\tpublic maxValueScale: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst minValueScale = getScale(this.minValueScale);\n\t\tconst maxValueScale = getScale(this.maxValueScale);\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.type,\n\t\t\t\t),\n\t\t\t\t\"min value\": `${this.minValue} ${minValueScale.unit}`,\n\t\t\t\t\"max value\": `${this.maxValue} ${maxValueScale.unit}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface HumidityControlSetpointCCCapabilitiesGetOptions {\n\tsetpointType: HumidityControlSetpointType;\n}\n\n@CCCommand(HumidityControlSetpointCommand.CapabilitiesGet)\n@expectedCCResponse(HumidityControlSetpointCCCapabilitiesReport)\nexport class HumidityControlSetpointCCCapabilitiesGet\n\textends HumidityControlSetpointCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<HumidityControlSetpointCCCapabilitiesGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setpointType = options.setpointType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): HumidityControlSetpointCCCapabilitiesGet {\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 HumidityControlSetpointCCCapabilitiesGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic setpointType: HumidityControlSetpointType;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.setpointType & 0b1111]);\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\"setpoint type\": getEnumMemberName(\n\t\t\t\t\tHumidityControlSetpointType,\n\t\t\t\t\tthis.setpointType,\n\t\t\t\t),\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,6 +1,6 @@
1
- import { type MessageOrCCLogEntry, type WithAddress } from "@zwave-js/core";
1
+ import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
+ import { type GetValueDB, type MessageOrCCLogEntry, type WithAddress } from "@zwave-js/core";
2
3
  import { type MaybeNotKnown } from "@zwave-js/core/safe";
3
- import type { CCEncodingContext, CCParsingContext, GetValueDB } from "@zwave-js/host";
4
4
  import { Bytes } from "@zwave-js/shared";
5
5
  import { CCAPI } from "../lib/API.js";
6
6
  import { type CCRaw, CommandClass } from "../lib/CommandClass.js";
@@ -24,7 +24,7 @@ export declare class InclusionControllerCCComplete extends InclusionControllerCC
24
24
  static from(raw: CCRaw, ctx: CCParsingContext): InclusionControllerCCComplete;
25
25
  step: InclusionControllerStep;
26
26
  status: InclusionControllerStatus;
27
- serialize(ctx: CCEncodingContext): Bytes;
27
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
28
28
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
29
29
  }
30
30
  export interface InclusionControllerCCInitiateOptions {
@@ -36,7 +36,7 @@ export declare class InclusionControllerCCInitiate extends InclusionControllerCC
36
36
  static from(raw: CCRaw, ctx: CCParsingContext): InclusionControllerCCInitiate;
37
37
  includedNodeId: number;
38
38
  step: InclusionControllerStep;
39
- serialize(ctx: CCEncodingContext): Bytes;
39
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
40
40
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
41
41
  }
42
42
  //# sourceMappingURL=InclusionControllerCC.d.ts.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/InclusionControllerCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MessageOrCCLogEntry,\n\ttype WithAddress,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { type MaybeNotKnown } from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host\";\nimport { Bytes, getEnumMemberName } from \"@zwave-js/shared\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport {\n\tInclusionControllerCommand,\n\tInclusionControllerStatus,\n\tInclusionControllerStep,\n} from \"../lib/_Types.js\";\n\n// This CC should not be used directly from user code\n/* eslint-disable @zwave-js/ccapi-validate-args */\n\n@commandClass(CommandClasses[\"Inclusion Controller\"])\n@implementedVersion(1)\nexport class InclusionControllerCC extends CommandClass {\n\tdeclare ccCommand: InclusionControllerCommand;\n}\n\n@API(CommandClasses[\"Inclusion Controller\"])\nexport class InclusionControllerCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: InclusionControllerCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase InclusionControllerCommand.Initiate:\n\t\t\tcase InclusionControllerCommand.Complete:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/** Instruct the target to initiate the given inclusion step for the given node */\n\tpublic async initiateStep(\n\t\tnodeId: number,\n\t\tstep: InclusionControllerStep,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tInclusionControllerCommand,\n\t\t\tInclusionControllerCommand.Initiate,\n\t\t);\n\n\t\tconst cc = new InclusionControllerCCInitiate({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tincludedNodeId: nodeId,\n\t\t\tstep,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/** Indicate to the other node that the given inclusion step has been completed */\n\tpublic async completeStep(\n\t\tstep: InclusionControllerStep,\n\t\tstatus: InclusionControllerStatus,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tInclusionControllerCommand,\n\t\t\tInclusionControllerCommand.Complete,\n\t\t);\n\n\t\tconst cc = new InclusionControllerCCComplete({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tstep,\n\t\t\tstatus,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n// @publicAPI\nexport interface InclusionControllerCCCompleteOptions {\n\tstep: InclusionControllerStep;\n\tstatus: InclusionControllerStatus;\n}\n\n@CCCommand(InclusionControllerCommand.Complete)\nexport class InclusionControllerCCComplete extends InclusionControllerCC {\n\tpublic constructor(\n\t\toptions: WithAddress<InclusionControllerCCCompleteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.step = options.step;\n\t\tthis.status = options.status;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): InclusionControllerCCComplete {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst step: InclusionControllerStep = raw.payload[0];\n\n\t\tvalidatePayload.withReason(\"Invalid inclusion controller step\")(\n\t\t\tstep in InclusionControllerStep,\n\t\t);\n\t\tconst status: InclusionControllerStatus = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstep,\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic step: InclusionControllerStep;\n\tpublic status: InclusionControllerStatus;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.step, this.status]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\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\tstep: getEnumMemberName(InclusionControllerStep, this.step),\n\t\t\t\tstatus: getEnumMemberName(\n\t\t\t\t\tInclusionControllerStatus,\n\t\t\t\t\tthis.status,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface InclusionControllerCCInitiateOptions {\n\tincludedNodeId: number;\n\tstep: InclusionControllerStep;\n}\n\n@CCCommand(InclusionControllerCommand.Initiate)\nexport class InclusionControllerCCInitiate extends InclusionControllerCC {\n\tpublic constructor(\n\t\toptions: WithAddress<InclusionControllerCCInitiateOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.includedNodeId = options.includedNodeId;\n\t\tthis.step = options.step;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): InclusionControllerCCInitiate {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst includedNodeId = raw.payload[0];\n\t\tconst step: InclusionControllerStep = raw.payload[1];\n\n\t\tvalidatePayload.withReason(\"Invalid inclusion controller step\")(\n\t\t\tstep in InclusionControllerStep,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tincludedNodeId,\n\t\t\tstep,\n\t\t});\n\t}\n\n\tpublic includedNodeId: number;\n\tpublic step: InclusionControllerStep;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.includedNodeId, this.step]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\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\"included node id\": this.includedNodeId,\n\t\t\t\tstep: getEnumMemberName(InclusionControllerStep, this.step),\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\tCommandClasses,\n\ttype GetValueDB,\n\ttype MessageOrCCLogEntry,\n\ttype WithAddress,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { type MaybeNotKnown } from \"@zwave-js/core/safe\";\nimport { Bytes, getEnumMemberName } from \"@zwave-js/shared\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport {\n\tInclusionControllerCommand,\n\tInclusionControllerStatus,\n\tInclusionControllerStep,\n} from \"../lib/_Types.js\";\n\n// This CC should not be used directly from user code\n/* eslint-disable @zwave-js/ccapi-validate-args */\n\n@commandClass(CommandClasses[\"Inclusion Controller\"])\n@implementedVersion(1)\nexport class InclusionControllerCC extends CommandClass {\n\tdeclare ccCommand: InclusionControllerCommand;\n}\n\n@API(CommandClasses[\"Inclusion Controller\"])\nexport class InclusionControllerCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: InclusionControllerCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase InclusionControllerCommand.Initiate:\n\t\t\tcase InclusionControllerCommand.Complete:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/** Instruct the target to initiate the given inclusion step for the given node */\n\tpublic async initiateStep(\n\t\tnodeId: number,\n\t\tstep: InclusionControllerStep,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tInclusionControllerCommand,\n\t\t\tInclusionControllerCommand.Initiate,\n\t\t);\n\n\t\tconst cc = new InclusionControllerCCInitiate({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tincludedNodeId: nodeId,\n\t\t\tstep,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/** Indicate to the other node that the given inclusion step has been completed */\n\tpublic async completeStep(\n\t\tstep: InclusionControllerStep,\n\t\tstatus: InclusionControllerStatus,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tInclusionControllerCommand,\n\t\t\tInclusionControllerCommand.Complete,\n\t\t);\n\n\t\tconst cc = new InclusionControllerCCComplete({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tstep,\n\t\t\tstatus,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n// @publicAPI\nexport interface InclusionControllerCCCompleteOptions {\n\tstep: InclusionControllerStep;\n\tstatus: InclusionControllerStatus;\n}\n\n@CCCommand(InclusionControllerCommand.Complete)\nexport class InclusionControllerCCComplete extends InclusionControllerCC {\n\tpublic constructor(\n\t\toptions: WithAddress<InclusionControllerCCCompleteOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.step = options.step;\n\t\tthis.status = options.status;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): InclusionControllerCCComplete {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst step: InclusionControllerStep = raw.payload[0];\n\n\t\tvalidatePayload.withReason(\"Invalid inclusion controller step\")(\n\t\t\tstep in InclusionControllerStep,\n\t\t);\n\t\tconst status: InclusionControllerStatus = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstep,\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic step: InclusionControllerStep;\n\tpublic status: InclusionControllerStatus;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.step, this.status]);\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\tstep: getEnumMemberName(InclusionControllerStep, this.step),\n\t\t\t\tstatus: getEnumMemberName(\n\t\t\t\t\tInclusionControllerStatus,\n\t\t\t\t\tthis.status,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface InclusionControllerCCInitiateOptions {\n\tincludedNodeId: number;\n\tstep: InclusionControllerStep;\n}\n\n@CCCommand(InclusionControllerCommand.Initiate)\nexport class InclusionControllerCCInitiate extends InclusionControllerCC {\n\tpublic constructor(\n\t\toptions: WithAddress<InclusionControllerCCInitiateOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.includedNodeId = options.includedNodeId;\n\t\tthis.step = options.step;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): InclusionControllerCCInitiate {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst includedNodeId = raw.payload[0];\n\t\tconst step: InclusionControllerStep = raw.payload[1];\n\n\t\tvalidatePayload.withReason(\"Invalid inclusion controller step\")(\n\t\t\tstep in InclusionControllerStep,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tincludedNodeId,\n\t\t\tstep,\n\t\t});\n\t}\n\n\tpublic includedNodeId: number;\n\tpublic step: InclusionControllerStep;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.includedNodeId, this.step]);\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\"included node id\": this.includedNodeId,\n\t\t\t\tstep: getEnumMemberName(InclusionControllerStep, this.step),\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }