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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +79 -161
  2. package/build/cjs/cc/AlarmSensorCC.js +12 -50
  3. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  4. package/build/cjs/cc/AssociationCC.d.ts +63 -199
  5. package/build/cjs/cc/AssociationCC.js +9 -22
  6. package/build/cjs/cc/AssociationCC.js.map +2 -2
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +66 -166
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +86 -294
  11. package/build/cjs/cc/BarrierOperatorCC.js +12 -44
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  13. package/build/cjs/cc/BasicCC.d.ts +85 -331
  14. package/build/cjs/cc/BasicCC.js +15 -46
  15. package/build/cjs/cc/BasicCC.js.map +2 -2
  16. package/build/cjs/cc/BatteryCC.d.ts +237 -835
  17. package/build/cjs/cc/BatteryCC.js +7 -84
  18. package/build/cjs/cc/BatteryCC.js.map +2 -2
  19. package/build/cjs/cc/BinarySensorCC.d.ts +34 -99
  20. package/build/cjs/cc/BinarySensorCC.js +9 -29
  21. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +45 -197
  23. package/build/cjs/cc/BinarySwitchCC.js +6 -22
  24. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  25. package/build/cjs/cc/CentralSceneCC.d.ts +77 -296
  26. package/build/cjs/cc/CentralSceneCC.js +7 -30
  27. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  28. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +45 -160
  29. package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
  30. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  31. package/build/cjs/cc/ColorSwitchCC.d.ts +130 -457
  32. package/build/cjs/cc/ColorSwitchCC.js +23 -75
  33. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  34. package/build/cjs/cc/ConfigurationCC.d.ts +32 -100
  35. package/build/cjs/cc/ConfigurationCC.js +11 -31
  36. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  37. package/build/cjs/cc/DoorLockCC.d.ts +512 -1823
  38. package/build/cjs/cc/DoorLockCC.js +51 -156
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +11 -63
  41. package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
  42. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  43. package/build/cjs/cc/EnergyProductionCC.d.ts +14 -29
  44. package/build/cjs/cc/EnergyProductionCC.js +5 -17
  45. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  46. package/build/cjs/cc/EntryControlCC.d.ts +73 -324
  47. package/build/cjs/cc/EntryControlCC.js +9 -36
  48. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  49. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +5 -26
  51. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -131
  53. package/build/cjs/cc/HumidityControlModeCC.js +6 -15
  54. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  55. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +17 -65
  56. package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
  57. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  58. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +51 -128
  59. package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
  60. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  61. package/build/cjs/cc/IndicatorCC.d.ts +123 -365
  62. package/build/cjs/cc/IndicatorCC.js +15 -61
  63. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  64. package/build/cjs/cc/IrrigationCC.d.ts +826 -2317
  65. package/build/cjs/cc/IrrigationCC.js +29 -233
  66. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  67. package/build/cjs/cc/LanguageCC.d.ts +31 -133
  68. package/build/cjs/cc/LanguageCC.js +4 -15
  69. package/build/cjs/cc/LanguageCC.js.map +2 -2
  70. package/build/cjs/cc/LockCC.d.ts +14 -64
  71. package/build/cjs/cc/LockCC.js +4 -12
  72. package/build/cjs/cc/LockCC.js.map +2 -2
  73. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  74. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +77 -239
  75. package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
  76. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  77. package/build/cjs/cc/MeterCC.d.ts +119 -393
  78. package/build/cjs/cc/MeterCC.js +25 -69
  79. package/build/cjs/cc/MeterCC.js.map +2 -2
  80. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +66 -166
  81. package/build/cjs/cc/MultiChannelAssociationCC.js +10 -23
  82. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  83. package/build/cjs/cc/MultiChannelCC.d.ts +119 -499
  84. package/build/cjs/cc/MultiChannelCC.js +18 -46
  85. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  86. package/build/cjs/cc/MultilevelSensorCC.d.ts +46 -130
  87. package/build/cjs/cc/MultilevelSensorCC.js +12 -33
  88. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  89. package/build/cjs/cc/MultilevelSwitchCC.d.ts +160 -525
  90. package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
  91. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  92. package/build/cjs/cc/NodeNamingCC.d.ts +33 -135
  93. package/build/cjs/cc/NodeNamingCC.js +5 -16
  94. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  95. package/build/cjs/cc/NotificationCC.d.ts +262 -702
  96. package/build/cjs/cc/NotificationCC.js +29 -112
  97. package/build/cjs/cc/NotificationCC.js.map +2 -2
  98. package/build/cjs/cc/ProtectionCC.d.ts +118 -524
  99. package/build/cjs/cc/ProtectionCC.js +15 -50
  100. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  101. package/build/cjs/cc/SceneActivationCC.d.ts +33 -132
  102. package/build/cjs/cc/SceneActivationCC.js +4 -17
  103. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  104. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +34 -61
  105. package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
  106. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  107. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +34 -61
  108. package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
  109. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  110. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +95 -299
  111. package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
  112. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  113. package/build/cjs/cc/SoundSwitchCC.d.ts +72 -261
  114. package/build/cjs/cc/SoundSwitchCC.js +11 -43
  115. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  116. package/build/cjs/cc/SupervisionCC.d.ts +17 -33
  117. package/build/cjs/cc/SupervisionCC.js +4 -9
  118. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  119. package/build/cjs/cc/ThermostatFanModeCC.d.ts +44 -195
  120. package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
  121. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  122. package/build/cjs/cc/ThermostatFanStateCC.d.ts +17 -65
  123. package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
  124. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  125. package/build/cjs/cc/ThermostatModeCC.d.ts +44 -195
  126. package/build/cjs/cc/ThermostatModeCC.js +8 -21
  127. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  128. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +17 -65
  129. package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
  130. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  131. package/build/cjs/cc/ThermostatSetpointCC.d.ts +49 -129
  132. package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
  133. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  134. package/build/cjs/cc/TimeParametersCC.d.ts +12 -63
  135. package/build/cjs/cc/TimeParametersCC.js +4 -11
  136. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  137. package/build/cjs/cc/UserCodeCC.d.ts +311 -1066
  138. package/build/cjs/cc/UserCodeCC.js +33 -98
  139. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  140. package/build/cjs/cc/VersionCC.d.ts +289 -1003
  141. package/build/cjs/cc/VersionCC.js +7 -98
  142. package/build/cjs/cc/VersionCC.js.map +2 -2
  143. package/build/cjs/cc/WakeUpCC.d.ts +49 -201
  144. package/build/cjs/cc/WakeUpCC.js +6 -26
  145. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  146. package/build/cjs/cc/WindowCoveringCC.d.ts +126 -220
  147. package/build/cjs/cc/WindowCoveringCC.js +16 -128
  148. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  149. package/build/cjs/cc/ZWavePlusCC.d.ts +69 -329
  150. package/build/cjs/cc/ZWavePlusCC.js +4 -25
  151. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  152. package/build/cjs/cc/_CCValues.generated.d.ts +15814 -0
  153. package/build/cjs/cc/_CCValues.generated.js +8723 -0
  154. package/build/cjs/cc/_CCValues.generated.js.map +7 -0
  155. package/build/cjs/lib/CCValueUtils.d.ts +14 -0
  156. package/build/cjs/lib/CCValueUtils.js +93 -0
  157. package/build/cjs/lib/CCValueUtils.js.map +7 -0
  158. package/build/cjs/lib/Values.d.ts +6 -105
  159. package/build/cjs/lib/Values.js +13 -107
  160. package/build/cjs/lib/Values.js.map +3 -3
  161. package/build/esm/cc/AlarmSensorCC.d.ts +79 -161
  162. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  163. package/build/esm/cc/AlarmSensorCC.js +2 -39
  164. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  165. package/build/esm/cc/AssociationCC.d.ts +63 -199
  166. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  167. package/build/esm/cc/AssociationCC.js +2 -14
  168. package/build/esm/cc/AssociationCC.js.map +1 -1
  169. package/build/esm/cc/AssociationGroupInfoCC.d.ts +66 -166
  170. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  171. package/build/esm/cc/AssociationGroupInfoCC.js +2 -13
  172. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  173. package/build/esm/cc/BarrierOperatorCC.d.ts +86 -294
  174. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  175. package/build/esm/cc/BarrierOperatorCC.js +2 -34
  176. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  177. package/build/esm/cc/BasicCC.d.ts +85 -331
  178. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  179. package/build/esm/cc/BasicCC.js +2 -32
  180. package/build/esm/cc/BasicCC.js.map +1 -1
  181. package/build/esm/cc/BatteryCC.d.ts +237 -835
  182. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  183. package/build/esm/cc/BatteryCC.js +2 -78
  184. package/build/esm/cc/BatteryCC.js.map +1 -1
  185. package/build/esm/cc/BinarySensorCC.d.ts +34 -99
  186. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  187. package/build/esm/cc/BinarySensorCC.js +2 -16
  188. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  189. package/build/esm/cc/BinarySwitchCC.d.ts +45 -197
  190. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  191. package/build/esm/cc/BinarySwitchCC.js +2 -17
  192. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  193. package/build/esm/cc/CentralSceneCC.d.ts +77 -296
  194. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  195. package/build/esm/cc/CentralSceneCC.js +2 -26
  196. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  197. package/build/esm/cc/ClimateControlScheduleCC.d.ts +45 -160
  198. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  199. package/build/esm/cc/ClimateControlScheduleCC.js +2 -23
  200. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  201. package/build/esm/cc/ColorSwitchCC.d.ts +130 -457
  202. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  203. package/build/esm/cc/ColorSwitchCC.js +2 -52
  204. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  205. package/build/esm/cc/ConfigurationCC.d.ts +32 -100
  206. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  207. package/build/esm/cc/ConfigurationCC.js +2 -15
  208. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  209. package/build/esm/cc/DoorLockCC.d.ts +512 -1823
  210. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  211. package/build/esm/cc/DoorLockCC.js +9 -127
  212. package/build/esm/cc/DoorLockCC.js.map +1 -1
  213. package/build/esm/cc/DoorLockLoggingCC.d.ts +11 -63
  214. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  215. package/build/esm/cc/DoorLockLoggingCC.js +2 -5
  216. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  217. package/build/esm/cc/EnergyProductionCC.d.ts +14 -29
  218. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  219. package/build/esm/cc/EnergyProductionCC.js +2 -13
  220. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  221. package/build/esm/cc/EntryControlCC.d.ts +73 -324
  222. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  223. package/build/esm/cc/EntryControlCC.js +2 -28
  224. package/build/esm/cc/EntryControlCC.js.map +1 -1
  225. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
  226. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  227. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -23
  228. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  229. package/build/esm/cc/HumidityControlModeCC.d.ts +31 -131
  230. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  231. package/build/esm/cc/HumidityControlModeCC.js +2 -10
  232. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  233. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +17 -65
  234. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  235. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -9
  236. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  237. package/build/esm/cc/HumidityControlSetpointCC.d.ts +51 -128
  238. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  239. package/build/esm/cc/HumidityControlSetpointCC.js +2 -19
  240. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  241. package/build/esm/cc/IndicatorCC.d.ts +123 -365
  242. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  243. package/build/esm/cc/IndicatorCC.js +2 -43
  244. package/build/esm/cc/IndicatorCC.js.map +1 -1
  245. package/build/esm/cc/IrrigationCC.d.ts +826 -2317
  246. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  247. package/build/esm/cc/IrrigationCC.js +3 -222
  248. package/build/esm/cc/IrrigationCC.js.map +1 -1
  249. package/build/esm/cc/LanguageCC.d.ts +31 -133
  250. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  251. package/build/esm/cc/LanguageCC.js +2 -12
  252. package/build/esm/cc/LanguageCC.js.map +1 -1
  253. package/build/esm/cc/LockCC.d.ts +14 -64
  254. package/build/esm/cc/LockCC.d.ts.map +1 -1
  255. package/build/esm/cc/LockCC.js +2 -9
  256. package/build/esm/cc/LockCC.js.map +1 -1
  257. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  258. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  259. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  260. package/build/esm/cc/ManufacturerSpecificCC.d.ts +77 -239
  261. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  262. package/build/esm/cc/ManufacturerSpecificCC.js +2 -24
  263. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  264. package/build/esm/cc/MeterCC.d.ts +119 -393
  265. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  266. package/build/esm/cc/MeterCC.js +3 -49
  267. package/build/esm/cc/MeterCC.js.map +1 -1
  268. package/build/esm/cc/MultiChannelAssociationCC.d.ts +66 -166
  269. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  270. package/build/esm/cc/MultiChannelAssociationCC.js +2 -14
  271. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  272. package/build/esm/cc/MultiChannelCC.d.ts +119 -499
  273. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  274. package/build/esm/cc/MultiChannelCC.js +2 -30
  275. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  276. package/build/esm/cc/MultilevelSensorCC.d.ts +46 -130
  277. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  278. package/build/esm/cc/MultilevelSensorCC.js +2 -22
  279. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  280. package/build/esm/cc/MultilevelSwitchCC.d.ts +160 -525
  281. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  282. package/build/esm/cc/MultilevelSwitchCC.js +5 -101
  283. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  284. package/build/esm/cc/NodeNamingCC.d.ts +33 -135
  285. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  286. package/build/esm/cc/NodeNamingCC.js +2 -12
  287. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  288. package/build/esm/cc/NotificationCC.d.ts +262 -702
  289. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  290. package/build/esm/cc/NotificationCC.js +3 -85
  291. package/build/esm/cc/NotificationCC.js.map +1 -1
  292. package/build/esm/cc/ProtectionCC.d.ts +118 -524
  293. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  294. package/build/esm/cc/ProtectionCC.js +2 -36
  295. package/build/esm/cc/ProtectionCC.js.map +1 -1
  296. package/build/esm/cc/SceneActivationCC.d.ts +33 -132
  297. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  298. package/build/esm/cc/SceneActivationCC.js +2 -14
  299. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  300. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +34 -61
  301. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  302. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -14
  303. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  304. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +34 -61
  305. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  306. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -14
  307. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  308. package/build/esm/cc/ScheduleEntryLockCC.d.ts +95 -299
  309. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  310. package/build/esm/cc/ScheduleEntryLockCC.js +2 -17
  311. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  312. package/build/esm/cc/SoundSwitchCC.d.ts +72 -261
  313. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  314. package/build/esm/cc/SoundSwitchCC.js +2 -33
  315. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  316. package/build/esm/cc/SupervisionCC.d.ts +17 -33
  317. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  318. package/build/esm/cc/SupervisionCC.js +2 -7
  319. package/build/esm/cc/SupervisionCC.js.map +1 -1
  320. package/build/esm/cc/ThermostatFanModeCC.d.ts +44 -195
  321. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  322. package/build/esm/cc/ThermostatFanModeCC.js +2 -14
  323. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  324. package/build/esm/cc/ThermostatFanStateCC.d.ts +17 -65
  325. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  326. package/build/esm/cc/ThermostatFanStateCC.js +2 -9
  327. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  328. package/build/esm/cc/ThermostatModeCC.d.ts +44 -195
  329. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  330. package/build/esm/cc/ThermostatModeCC.js +2 -14
  331. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  332. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +17 -65
  333. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  334. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -9
  335. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  336. package/build/esm/cc/ThermostatSetpointCC.d.ts +49 -129
  337. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  338. package/build/esm/cc/ThermostatSetpointCC.js +2 -16
  339. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  340. package/build/esm/cc/TimeParametersCC.d.ts +12 -63
  341. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  342. package/build/esm/cc/TimeParametersCC.js +2 -8
  343. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  344. package/build/esm/cc/UserCodeCC.d.ts +311 -1066
  345. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  346. package/build/esm/cc/UserCodeCC.js +2 -60
  347. package/build/esm/cc/UserCodeCC.js.map +1 -1
  348. package/build/esm/cc/VersionCC.d.ts +289 -1003
  349. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  350. package/build/esm/cc/VersionCC.js +2 -92
  351. package/build/esm/cc/VersionCC.js.map +1 -1
  352. package/build/esm/cc/WakeUpCC.d.ts +49 -201
  353. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  354. package/build/esm/cc/WakeUpCC.js +2 -21
  355. package/build/esm/cc/WakeUpCC.js.map +1 -1
  356. package/build/esm/cc/WindowCoveringCC.d.ts +126 -220
  357. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  358. package/build/esm/cc/WindowCoveringCC.js +3 -103
  359. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  360. package/build/esm/cc/ZWavePlusCC.d.ts +69 -329
  361. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  362. package/build/esm/cc/ZWavePlusCC.js +2 -25
  363. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  364. package/build/esm/cc/_CCValues.generated.d.ts +15814 -0
  365. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -0
  366. package/build/esm/cc/_CCValues.generated.js +9187 -0
  367. package/build/esm/cc/_CCValues.generated.js.map +1 -0
  368. package/build/esm/lib/CCValueUtils.d.ts +14 -0
  369. package/build/esm/lib/CCValueUtils.d.ts.map +1 -0
  370. package/build/esm/lib/CCValueUtils.js +62 -0
  371. package/build/esm/lib/CCValueUtils.js.map +1 -0
  372. package/build/esm/lib/Values.d.ts +6 -105
  373. package/build/esm/lib/Values.d.ts.map +1 -1
  374. package/build/esm/lib/Values.js +7 -104
  375. package/build/esm/lib/Values.js.map +1 -1
  376. package/package.json +9 -7
@@ -40,7 +40,7 @@ __export(HumidityControlSetpointCC_exports, {
40
40
  HumidityControlSetpointCCSet: () => HumidityControlSetpointCCSet,
41
41
  HumidityControlSetpointCCSupportedGet: () => HumidityControlSetpointCCSupportedGet,
42
42
  HumidityControlSetpointCCSupportedReport: () => HumidityControlSetpointCCSupportedReport,
43
- HumidityControlSetpointCCValues: () => HumidityControlSetpointCCValues
43
+ HumidityControlSetpointCCValues: () => import_CCValues_generated.HumidityControlSetpointCCValues
44
44
  });
45
45
  module.exports = __toCommonJS(HumidityControlSetpointCC_exports);
46
46
  var __validateArgs = __toESM(require("./HumidityControlSetpointCC._validateArgs.js"), 1);
@@ -52,6 +52,7 @@ var import_CommandClass = require("../lib/CommandClass.js");
52
52
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
53
53
  var import_Values = require("../lib/Values.js");
54
54
  var import_Types = require("../lib/_Types.js");
55
+ var import_CCValues_generated = require("./_CCValues.generated.js");
55
56
  var __runInitializers = function(thisArg, initializers, value) {
56
57
  var useValue = arguments.length > 2;
57
58
  for (var i = 0; i < initializers.length; i++) {
@@ -93,25 +94,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
93
94
  done = true;
94
95
  };
95
96
  const { validateArgs_HumidityControlSetpointCCAPI_get, validateArgs_HumidityControlSetpointCCAPI_set, validateArgs_HumidityControlSetpointCCAPI_getCapabilities, validateArgs_HumidityControlSetpointCCAPI_getSupportedScales } = __validateArgs;
96
- const HumidityControlSetpointCCValues = Object.freeze({
97
- ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Humidity Control Setpoint"], {
98
- ...import_Values.V.staticProperty("supportedSetpointTypes", void 0, {
99
- internal: true
100
- })
101
- }),
102
- ...import_Values.V.defineDynamicCCValues(import_safe.CommandClasses["Humidity Control Setpoint"], {
103
- ...import_Values.V.dynamicPropertyAndKeyWithName("setpoint", "setpoint", (setpointType) => setpointType, ({ property, propertyKey }) => property === "setpoint" && typeof propertyKey === "number", (setpointType) => ({
104
- // This is the base metadata that will be extended on the fly
105
- ...import_safe.ValueMetadata.Number,
106
- label: `Setpoint (${(0, import_safe3.getEnumMemberName)(import_Types.HumidityControlSetpointType, setpointType)})`,
107
- ccSpecific: { setpointType }
108
- })),
109
- ...import_Values.V.dynamicPropertyAndKeyWithName("setpointScale", "setpointScale", (setpointType) => setpointType, ({ property, propertyKey }) => property === "setpointScale" && typeof propertyKey === "number", (setpointType) => ({
110
- ...import_safe.ValueMetadata.ReadOnlyUInt8,
111
- label: `Setpoint scale (${(0, import_safe3.getEnumMemberName)(import_Types.HumidityControlSetpointType, setpointType)})`
112
- }))
113
- })
114
- });
115
97
  function getScale(scale) {
116
98
  return (0, import_safe.getNamedScale)("humidity", scale) ?? (0, import_safe.getUnknownScale)(scale);
117
99
  }
@@ -175,7 +157,7 @@ let HumidityControlSetpointCCAPI = (() => {
175
157
  if (typeof value !== "number") {
176
158
  (0, import_API.throwWrongValueType)(this.ccId, property, "number", typeof value);
177
159
  }
178
- const scaleValueId = HumidityControlSetpointCCValues.setpointScale(propertyKey).endpoint(this.endpoint.index);
160
+ const scaleValueId = import_CCValues_generated.HumidityControlSetpointCCValues.setpointScale(propertyKey).endpoint(this.endpoint.index);
179
161
  const preferredScale = this.tryGetValueDB()?.getValue(scaleValueId);
180
162
  const result = await this.set(propertyKey, value, preferredScale ?? 0);
181
163
  if (this.isSinglecast() && !(0, import_safe.supervisedCommandSucceeded)(result)) {
@@ -269,7 +251,7 @@ let HumidityControlSetpointCCAPI = (() => {
269
251
  return HumidityControlSetpointCCAPI2 = _classThis;
270
252
  })();
271
253
  let HumidityControlSetpointCC = (() => {
272
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Humidity Control Setpoint"]), (0, import_CommandClassDecorators.implementedVersion)(2), (0, import_CommandClassDecorators.ccValues)(HumidityControlSetpointCCValues)];
254
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Humidity Control Setpoint"]), (0, import_CommandClassDecorators.implementedVersion)(2), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.HumidityControlSetpointCCValues)];
273
255
  let _classDescriptor;
274
256
  let _classExtraInitializers = [];
275
257
  let _classThis;
@@ -346,7 +328,7 @@ ${setpointScaleSupported.map((t) => `
346
328
  message: logMessage,
347
329
  direction: "inbound"
348
330
  });
349
- const scaleValue = HumidityControlSetpointCCValues.setpointScale(type);
331
+ const scaleValue = import_CCValues_generated.HumidityControlSetpointCCValues.setpointScale(type);
350
332
  const states = {};
351
333
  for (const scale of setpointScaleSupported) {
352
334
  if (scale.unit)
@@ -380,7 +362,7 @@ maximum value: ${setpointCaps.maxValue} ${maxValueUnit}`;
380
362
  const api = import_API.CCAPI.create(import_safe.CommandClasses["Humidity Control Setpoint"], ctx, endpoint).withOptions({
381
363
  priority: import_safe.MessagePriority.NodeQuery
382
364
  });
383
- const setpointTypes = this.getValue(ctx, HumidityControlSetpointCCValues.supportedSetpointTypes) ?? [];
365
+ const setpointTypes = this.getValue(ctx, import_CCValues_generated.HumidityControlSetpointCCValues.supportedSetpointTypes) ?? [];
384
366
  for (const type of setpointTypes) {
385
367
  const setpointName = (0, import_safe3.getEnumMemberName)(import_Types.HumidityControlSetpointType, type);
386
368
  ctx.logNode(node.id, {
@@ -503,7 +485,7 @@ let HumidityControlSetpointCCReport = (() => {
503
485
  if (!super.persistValues(ctx))
504
486
  return false;
505
487
  const scale = getScale(this.scale);
506
- const setpointValue = HumidityControlSetpointCCValues.setpoint(this.type);
488
+ const setpointValue = import_CCValues_generated.HumidityControlSetpointCCValues.setpoint(this.type);
507
489
  const existingMetadata = this.getMetadata(ctx, setpointValue);
508
490
  if (existingMetadata?.unit !== scale.unit) {
509
491
  this.setMetadata(ctx, setpointValue, {
@@ -512,7 +494,7 @@ let HumidityControlSetpointCCReport = (() => {
512
494
  });
513
495
  }
514
496
  this.setValue(ctx, setpointValue, this.value);
515
- this.setValue(ctx, HumidityControlSetpointCCValues.setpointScale(this.type), this.scale);
497
+ this.setValue(ctx, import_CCValues_generated.HumidityControlSetpointCCValues.setpointScale(this.type), this.scale);
516
498
  return true;
517
499
  }
518
500
  type;
@@ -579,7 +561,7 @@ let HumidityControlSetpointCCGet = (() => {
579
561
  return HumidityControlSetpointCCGet2 = _classThis;
580
562
  })();
581
563
  let HumidityControlSetpointCCSupportedReport = (() => {
582
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.HumidityControlSetpointCommand.SupportedReport), (0, import_CommandClassDecorators.ccValueProperty)("supportedSetpointTypes", HumidityControlSetpointCCValues.supportedSetpointTypes)];
564
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.HumidityControlSetpointCommand.SupportedReport), (0, import_CommandClassDecorators.ccValueProperty)("supportedSetpointTypes", import_CCValues_generated.HumidityControlSetpointCCValues.supportedSetpointTypes)];
583
565
  let _classDescriptor;
584
566
  let _classExtraInitializers = [];
585
567
  let _classThis;
@@ -780,7 +762,7 @@ let HumidityControlSetpointCCCapabilitiesReport = (() => {
780
762
  persistValues(ctx) {
781
763
  if (!super.persistValues(ctx))
782
764
  return false;
783
- const setpointValue = HumidityControlSetpointCCValues.setpoint(this.type);
765
+ const setpointValue = import_CCValues_generated.HumidityControlSetpointCCValues.setpoint(this.type);
784
766
  this.setMetadata(ctx, setpointValue, {
785
767
  ...setpointValue.meta,
786
768
  min: this.minValue,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/HumidityControlSetpointCC.ts"],
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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",
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 = V.defineCCValues(\n\tCommandClasses[\"Humidity Control Setpoint\"],\n\t{\n\t\t...V.staticProperty(\"supportedSetpointTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\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\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
  }