@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,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/ThermostatModeCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeBitMask,\n\tenumValuesToMetadataStates,\n\tparseBitMask,\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 { buffer2hex, 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 { ThermostatMode, ThermostatModeCommand } from \"../lib/_Types.js\";\n\nexport const ThermostatModeCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Thermostat Mode\"], {\n\t\t...V.staticPropertyWithName(\n\t\t\t\"thermostatMode\",\n\t\t\t\"mode\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tstates: enumValuesToMetadataStates(ThermostatMode),\n\t\t\t\tlabel: \"Thermostat mode\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"manufacturerData\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyBuffer,\n\t\t\t\tlabel: \"Manufacturer data\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\"supportedModes\", undefined, { internal: true }),\n\t}),\n});\n\n@API(CommandClasses[\"Thermostat Mode\"])\nexport class ThermostatModeCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: ThermostatModeCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ThermostatModeCommand.Get:\n\t\t\tcase ThermostatModeCommand.SupportedGet:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase ThermostatModeCommand.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(this: ThermostatModeCCAPI, { property }, value) {\n\t\t\tif (property !== \"mode\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\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\t\t\tconst result = await this.set(value);\n\n\t\t\t// Verify the current value after a delay, unless the command was supervised and successful\n\t\t\tif (this.isSinglecast() && !supervisedCommandSucceeded(result)) {\n\t\t\t\t// TODO: Ideally this would be a short delay, but some thermostats like Remotec ZXT-600\n\t\t\t\t// aren't able to handle the GET this quickly.\n\t\t\t\tthis.schedulePoll({ property }, 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(this: ThermostatModeCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"mode\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatModeCommand,\n\t\t\tThermostatModeCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatModeCCGet({\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\tThermostatModeCCReport\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, [\"mode\", \"manufacturerData\"]);\n\t\t}\n\t}\n\n\tpublic async set(\n\t\tmode: Exclude<\n\t\t\tThermostatMode,\n\t\t\t(typeof ThermostatMode)[\"Manufacturer specific\"]\n\t\t>,\n\t): Promise<SupervisionResult | undefined>;\n\tpublic async set(\n\t\tmode: (typeof ThermostatMode)[\"Manufacturer specific\"],\n\t\tmanufacturerData: Uint8Array | string,\n\t): Promise<SupervisionResult | undefined>;\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\tmode: ThermostatMode,\n\t\tmanufacturerData?: Uint8Array | string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatModeCommand,\n\t\t\tThermostatModeCommand.Set,\n\t\t);\n\n\t\tif (typeof manufacturerData === \"string\") {\n\t\t\t// We accept the manufacturer data as a hex string. Make sure it's valid\n\t\t\tif (\n\t\t\t\tmanufacturerData.length % 2 !== 0\n\t\t\t\t|| !/^[0-9a-f]+$/i.test(manufacturerData)\n\t\t\t) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`Manufacturer data must be represented as hexadecimal when passed as a string!`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t\tmanufacturerData = Bytes.from(manufacturerData, \"hex\");\n\t\t}\n\n\t\tconst cc = new ThermostatModeCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tmode,\n\t\t\tmanufacturerData: manufacturerData as any,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getSupportedModes(): Promise<\n\t\tMaybeNotKnown<readonly ThermostatMode[]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatModeCommand,\n\t\t\tThermostatModeCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new ThermostatModeCCSupportedGet({\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\tThermostatModeCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedModes;\n\t}\n}\n\n@commandClass(CommandClasses[\"Thermostat Mode\"])\n@implementedVersion(3)\n@ccValues(ThermostatModeCCValues)\nexport class ThermostatModeCC extends CommandClass {\n\tdeclare ccCommand: ThermostatModeCommand;\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[\"Thermostat Mode\"],\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// First query the possible modes to set the metadata\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying supported thermostat modes...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst supportedModes = await api.getSupportedModes();\n\t\tif (supportedModes) {\n\t\t\tconst logMessage = `received supported thermostat modes:${\n\t\t\t\tsupportedModes\n\t\t\t\t\t.map((mode) =>\n\t\t\t\t\t\t`\\n\u00B7 ${getEnumMemberName(ThermostatMode, mode)}`\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\")\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t\"Querying supported thermostat modes timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\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[\"Thermostat Mode\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the current status\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying current thermostat mode...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst currentStatus = await api.get();\n\t\tif (currentStatus) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"received current thermostat mode: \"\n\t\t\t\t\t+ getEnumMemberName(ThermostatMode, currentStatus.mode),\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport type ThermostatModeCCSetOptions =\n\t| {\n\t\tmode: Exclude<\n\t\t\tThermostatMode,\n\t\t\t(typeof ThermostatMode)[\"Manufacturer specific\"]\n\t\t>;\n\t}\n\t| {\n\t\tmode: (typeof ThermostatMode)[\"Manufacturer specific\"];\n\t\tmanufacturerData: Uint8Array;\n\t};\n\n@CCCommand(ThermostatModeCommand.Set)\n@useSupervision()\nexport class ThermostatModeCCSet extends ThermostatModeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatModeCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.mode = options.mode;\n\t\tif (\"manufacturerData\" in options) {\n\t\t\tthis.manufacturerData = options.manufacturerData;\n\t\t}\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): ThermostatModeCCSet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst mode: ThermostatMode = raw.payload[0] & 0b11111;\n\t\tif (mode !== ThermostatMode[\"Manufacturer specific\"]) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmode,\n\t\t\t});\n\t\t}\n\n\t\tconst manufacturerDataLength = (raw.payload[0] >>> 5) & 0b111;\n\t\tvalidatePayload(\n\t\t\traw.payload.length >= 1 + manufacturerDataLength,\n\t\t);\n\t\tconst manufacturerData = raw.payload.subarray(\n\t\t\t1,\n\t\t\t1 + manufacturerDataLength,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmode,\n\t\t\tmanufacturerData,\n\t\t});\n\t}\n\n\tpublic mode: ThermostatMode;\n\tpublic manufacturerData?: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst manufacturerData =\n\t\t\tthis.mode === ThermostatMode[\"Manufacturer specific\"]\n\t\t\t\t&& this.manufacturerData\n\t\t\t\t? this.manufacturerData\n\t\t\t\t: new Uint8Array();\n\t\tconst manufacturerDataLength = manufacturerData.length;\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t((manufacturerDataLength & 0b111) << 5) + (this.mode & 0b11111),\n\t\t\t]),\n\t\t\tmanufacturerData,\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 message: MessageRecord = {\n\t\t\tmode: getEnumMemberName(ThermostatMode, this.mode),\n\t\t};\n\t\tif (this.manufacturerData != undefined) {\n\t\t\tmessage[\"manufacturer data\"] = buffer2hex(this.manufacturerData);\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type ThermostatModeCCReportOptions =\n\t| {\n\t\tmode: Exclude<\n\t\t\tThermostatMode,\n\t\t\t(typeof ThermostatMode)[\"Manufacturer specific\"]\n\t\t>;\n\t\tmanufacturerData?: undefined;\n\t}\n\t| {\n\t\tmode: (typeof ThermostatMode)[\"Manufacturer specific\"];\n\t\tmanufacturerData?: Uint8Array;\n\t};\n\n@CCCommand(ThermostatModeCommand.Report)\n@ccValueProperty(\"mode\", ThermostatModeCCValues.thermostatMode)\n@ccValueProperty(\"manufacturerData\", ThermostatModeCCValues.manufacturerData)\nexport class ThermostatModeCCReport extends ThermostatModeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatModeCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.mode = options.mode;\n\t\tthis.manufacturerData = options.manufacturerData;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatModeCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst mode: ThermostatMode = raw.payload[0] & 0b11111;\n\n\t\tif (mode !== ThermostatMode[\"Manufacturer specific\"]) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmode,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst manufacturerDataLength = raw.payload[0] >>> 5;\n\t\tvalidatePayload(\n\t\t\traw.payload.length >= 1 + manufacturerDataLength,\n\t\t);\n\t\tconst manufacturerData = raw.payload.subarray(\n\t\t\t1,\n\t\t\t1 + manufacturerDataLength,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmode,\n\t\t\tmanufacturerData,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Update the supported modes if a mode is used that wasn't previously\n\t\t// reported to be supported. This shouldn't happen, but well... it does anyways\n\t\tconst thermostatModeValue = ThermostatModeCCValues.thermostatMode;\n\t\tconst supportedModesValue = ThermostatModeCCValues.supportedModes;\n\n\t\tconst supportedModes = this.getValue<ThermostatMode[]>(\n\t\t\tctx,\n\t\t\tsupportedModesValue,\n\t\t);\n\n\t\tif (\n\t\t\tsupportedModes\n\t\t\t&& this.mode in ThermostatMode\n\t\t\t&& !supportedModes.includes(this.mode)\n\t\t) {\n\t\t\tsupportedModes.push(this.mode);\n\t\t\tsupportedModes.sort();\n\n\t\t\tthis.setMetadata(ctx, thermostatModeValue, {\n\t\t\t\t...thermostatModeValue.meta,\n\t\t\t\tstates: enumValuesToMetadataStates(\n\t\t\t\t\tThermostatMode,\n\t\t\t\t\tsupportedModes,\n\t\t\t\t),\n\t\t\t});\n\t\t\tthis.setValue(ctx, supportedModesValue, supportedModes);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic readonly mode: ThermostatMode;\n\n\tpublic readonly manufacturerData: Uint8Array | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst manufacturerDataLength =\n\t\t\tthis.mode === ThermostatMode[\"Manufacturer specific\"]\n\t\t\t\t&& this.manufacturerData\n\t\t\t\t? Math.min(0b111, this.manufacturerData.length)\n\t\t\t\t: 0;\n\t\tthis.payload = new Bytes(1 + manufacturerDataLength);\n\t\tthis.payload[0] = (manufacturerDataLength << 5) + (this.mode & 0b11111);\n\t\tif (manufacturerDataLength && this.manufacturerData) {\n\t\t\tthis.payload.set(\n\t\t\t\tthis.manufacturerData.subarray(0, manufacturerDataLength),\n\t\t\t\t1,\n\t\t\t);\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 message: MessageRecord = {\n\t\t\tmode: getEnumMemberName(ThermostatMode, this.mode),\n\t\t};\n\t\tif (this.manufacturerData != undefined) {\n\t\t\tmessage[\"manufacturer data\"] = buffer2hex(this.manufacturerData);\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(ThermostatModeCommand.Get)\n@expectedCCResponse(ThermostatModeCCReport)\nexport class ThermostatModeCCGet extends ThermostatModeCC {}\n\n// @publicAPI\nexport interface ThermostatModeCCSupportedReportOptions {\n\tsupportedModes: ThermostatMode[];\n}\n\n@CCCommand(ThermostatModeCommand.SupportedReport)\n@ccValueProperty(\"supportedModes\", ThermostatModeCCValues.supportedModes)\nexport class ThermostatModeCCSupportedReport extends ThermostatModeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatModeCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.supportedModes = options.supportedModes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatModeCCSupportedReport {\n\t\tconst supportedModes: ThermostatMode[] = parseBitMask(\n\t\t\traw.payload,\n\t\t\tThermostatMode.Off,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedModes,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Use this information to create the metadata for the mode property\n\t\tconst thermostatModeValue = ThermostatModeCCValues.thermostatMode;\n\t\tthis.setMetadata(ctx, thermostatModeValue, {\n\t\t\t...thermostatModeValue.meta,\n\t\t\tstates: enumValuesToMetadataStates(\n\t\t\t\tThermostatMode,\n\t\t\t\tthis.supportedModes,\n\t\t\t),\n\t\t});\n\n\t\treturn true;\n\t}\n\n\tpublic readonly supportedModes: ThermostatMode[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = encodeBitMask(\n\t\t\tthis.supportedModes,\n\t\t\tThermostatMode[\"Manufacturer specific\"],\n\t\t\tThermostatMode.Off,\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\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"supported modes\": this.supportedModes\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(mode) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${getEnumMemberName(ThermostatMode, mode)}`,\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(ThermostatModeCommand.SupportedGet)\n@expectedCCResponse(ThermostatModeCCSupportedReport)\nexport class ThermostatModeCCSupportedGet extends ThermostatModeCC {}\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 MessageRecord,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeBitMask,\n\tenumValuesToMetadataStates,\n\tparseBitMask,\n\tsupervisedCommandSucceeded,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { buffer2hex, 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 { ThermostatMode, ThermostatModeCommand } from \"../lib/_Types.js\";\n\nexport const ThermostatModeCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Thermostat Mode\"], {\n\t\t...V.staticPropertyWithName(\n\t\t\t\"thermostatMode\",\n\t\t\t\"mode\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tstates: enumValuesToMetadataStates(ThermostatMode),\n\t\t\t\tlabel: \"Thermostat mode\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"manufacturerData\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyBuffer,\n\t\t\t\tlabel: \"Manufacturer data\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\"supportedModes\", undefined, { internal: true }),\n\t}),\n});\n\n@API(CommandClasses[\"Thermostat Mode\"])\nexport class ThermostatModeCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: ThermostatModeCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ThermostatModeCommand.Get:\n\t\t\tcase ThermostatModeCommand.SupportedGet:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase ThermostatModeCommand.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(this: ThermostatModeCCAPI, { property }, value) {\n\t\t\tif (property !== \"mode\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\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\t\t\tconst result = await this.set(value);\n\n\t\t\t// Verify the current value after a delay, unless the command was supervised and successful\n\t\t\tif (this.isSinglecast() && !supervisedCommandSucceeded(result)) {\n\t\t\t\t// TODO: Ideally this would be a short delay, but some thermostats like Remotec ZXT-600\n\t\t\t\t// aren't able to handle the GET this quickly.\n\t\t\t\tthis.schedulePoll({ property }, 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(this: ThermostatModeCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"mode\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatModeCommand,\n\t\t\tThermostatModeCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatModeCCGet({\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\tThermostatModeCCReport\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, [\"mode\", \"manufacturerData\"]);\n\t\t}\n\t}\n\n\tpublic async set(\n\t\tmode: Exclude<\n\t\t\tThermostatMode,\n\t\t\t(typeof ThermostatMode)[\"Manufacturer specific\"]\n\t\t>,\n\t): Promise<SupervisionResult | undefined>;\n\tpublic async set(\n\t\tmode: (typeof ThermostatMode)[\"Manufacturer specific\"],\n\t\tmanufacturerData: Uint8Array | string,\n\t): Promise<SupervisionResult | undefined>;\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\tmode: ThermostatMode,\n\t\tmanufacturerData?: Uint8Array | string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatModeCommand,\n\t\t\tThermostatModeCommand.Set,\n\t\t);\n\n\t\tif (typeof manufacturerData === \"string\") {\n\t\t\t// We accept the manufacturer data as a hex string. Make sure it's valid\n\t\t\tif (\n\t\t\t\tmanufacturerData.length % 2 !== 0\n\t\t\t\t|| !/^[0-9a-f]+$/i.test(manufacturerData)\n\t\t\t) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`Manufacturer data must be represented as hexadecimal when passed as a string!`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t\tmanufacturerData = Bytes.from(manufacturerData, \"hex\");\n\t\t}\n\n\t\tconst cc = new ThermostatModeCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tmode,\n\t\t\tmanufacturerData: manufacturerData as any,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getSupportedModes(): Promise<\n\t\tMaybeNotKnown<readonly ThermostatMode[]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatModeCommand,\n\t\t\tThermostatModeCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new ThermostatModeCCSupportedGet({\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\tThermostatModeCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedModes;\n\t}\n}\n\n@commandClass(CommandClasses[\"Thermostat Mode\"])\n@implementedVersion(3)\n@ccValues(ThermostatModeCCValues)\nexport class ThermostatModeCC extends CommandClass {\n\tdeclare ccCommand: ThermostatModeCommand;\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[\"Thermostat Mode\"],\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// First query the possible modes to set the metadata\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying supported thermostat modes...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst supportedModes = await api.getSupportedModes();\n\t\tif (supportedModes) {\n\t\t\tconst logMessage = `received supported thermostat modes:${\n\t\t\t\tsupportedModes\n\t\t\t\t\t.map((mode) =>\n\t\t\t\t\t\t`\\n\u00B7 ${getEnumMemberName(ThermostatMode, mode)}`\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\")\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t\"Querying supported thermostat modes timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\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[\"Thermostat Mode\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the current status\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying current thermostat mode...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst currentStatus = await api.get();\n\t\tif (currentStatus) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"received current thermostat mode: \"\n\t\t\t\t\t+ getEnumMemberName(ThermostatMode, currentStatus.mode),\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport type ThermostatModeCCSetOptions =\n\t| {\n\t\tmode: Exclude<\n\t\t\tThermostatMode,\n\t\t\t(typeof ThermostatMode)[\"Manufacturer specific\"]\n\t\t>;\n\t}\n\t| {\n\t\tmode: (typeof ThermostatMode)[\"Manufacturer specific\"];\n\t\tmanufacturerData: Uint8Array;\n\t};\n\n@CCCommand(ThermostatModeCommand.Set)\n@useSupervision()\nexport class ThermostatModeCCSet extends ThermostatModeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatModeCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.mode = options.mode;\n\t\tif (\"manufacturerData\" in options) {\n\t\t\tthis.manufacturerData = options.manufacturerData;\n\t\t}\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): ThermostatModeCCSet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst mode: ThermostatMode = raw.payload[0] & 0b11111;\n\t\tif (mode !== ThermostatMode[\"Manufacturer specific\"]) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmode,\n\t\t\t});\n\t\t}\n\n\t\tconst manufacturerDataLength = (raw.payload[0] >>> 5) & 0b111;\n\t\tvalidatePayload(\n\t\t\traw.payload.length >= 1 + manufacturerDataLength,\n\t\t);\n\t\tconst manufacturerData = raw.payload.subarray(\n\t\t\t1,\n\t\t\t1 + manufacturerDataLength,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmode,\n\t\t\tmanufacturerData,\n\t\t});\n\t}\n\n\tpublic mode: ThermostatMode;\n\tpublic manufacturerData?: Uint8Array;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst manufacturerData =\n\t\t\tthis.mode === ThermostatMode[\"Manufacturer specific\"]\n\t\t\t\t&& this.manufacturerData\n\t\t\t\t? this.manufacturerData\n\t\t\t\t: new Uint8Array();\n\t\tconst manufacturerDataLength = manufacturerData.length;\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t((manufacturerDataLength & 0b111) << 5) + (this.mode & 0b11111),\n\t\t\t]),\n\t\t\tmanufacturerData,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tmode: getEnumMemberName(ThermostatMode, this.mode),\n\t\t};\n\t\tif (this.manufacturerData != undefined) {\n\t\t\tmessage[\"manufacturer data\"] = buffer2hex(this.manufacturerData);\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type ThermostatModeCCReportOptions =\n\t| {\n\t\tmode: Exclude<\n\t\t\tThermostatMode,\n\t\t\t(typeof ThermostatMode)[\"Manufacturer specific\"]\n\t\t>;\n\t\tmanufacturerData?: undefined;\n\t}\n\t| {\n\t\tmode: (typeof ThermostatMode)[\"Manufacturer specific\"];\n\t\tmanufacturerData?: Uint8Array;\n\t};\n\n@CCCommand(ThermostatModeCommand.Report)\n@ccValueProperty(\"mode\", ThermostatModeCCValues.thermostatMode)\n@ccValueProperty(\"manufacturerData\", ThermostatModeCCValues.manufacturerData)\nexport class ThermostatModeCCReport extends ThermostatModeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatModeCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.mode = options.mode;\n\t\tthis.manufacturerData = options.manufacturerData;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatModeCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst mode: ThermostatMode = raw.payload[0] & 0b11111;\n\n\t\tif (mode !== ThermostatMode[\"Manufacturer specific\"]) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tmode,\n\t\t\t});\n\t\t}\n\n\t\t// V3+\n\t\tconst manufacturerDataLength = raw.payload[0] >>> 5;\n\t\tvalidatePayload(\n\t\t\traw.payload.length >= 1 + manufacturerDataLength,\n\t\t);\n\t\tconst manufacturerData = raw.payload.subarray(\n\t\t\t1,\n\t\t\t1 + manufacturerDataLength,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmode,\n\t\t\tmanufacturerData,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Update the supported modes if a mode is used that wasn't previously\n\t\t// reported to be supported. This shouldn't happen, but well... it does anyways\n\t\tconst thermostatModeValue = ThermostatModeCCValues.thermostatMode;\n\t\tconst supportedModesValue = ThermostatModeCCValues.supportedModes;\n\n\t\tconst supportedModes = this.getValue<ThermostatMode[]>(\n\t\t\tctx,\n\t\t\tsupportedModesValue,\n\t\t);\n\n\t\tif (\n\t\t\tsupportedModes\n\t\t\t&& this.mode in ThermostatMode\n\t\t\t&& !supportedModes.includes(this.mode)\n\t\t) {\n\t\t\tsupportedModes.push(this.mode);\n\t\t\tsupportedModes.sort();\n\n\t\t\tthis.setMetadata(ctx, thermostatModeValue, {\n\t\t\t\t...thermostatModeValue.meta,\n\t\t\t\tstates: enumValuesToMetadataStates(\n\t\t\t\t\tThermostatMode,\n\t\t\t\t\tsupportedModes,\n\t\t\t\t),\n\t\t\t});\n\t\t\tthis.setValue(ctx, supportedModesValue, supportedModes);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic readonly mode: ThermostatMode;\n\n\tpublic readonly manufacturerData: Uint8Array | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst manufacturerDataLength =\n\t\t\tthis.mode === ThermostatMode[\"Manufacturer specific\"]\n\t\t\t\t&& this.manufacturerData\n\t\t\t\t? Math.min(0b111, this.manufacturerData.length)\n\t\t\t\t: 0;\n\t\tthis.payload = new Bytes(1 + manufacturerDataLength);\n\t\tthis.payload[0] = (manufacturerDataLength << 5) + (this.mode & 0b11111);\n\t\tif (manufacturerDataLength && this.manufacturerData) {\n\t\t\tthis.payload.set(\n\t\t\t\tthis.manufacturerData.subarray(0, manufacturerDataLength),\n\t\t\t\t1,\n\t\t\t);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tmode: getEnumMemberName(ThermostatMode, this.mode),\n\t\t};\n\t\tif (this.manufacturerData != undefined) {\n\t\t\tmessage[\"manufacturer data\"] = buffer2hex(this.manufacturerData);\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(ThermostatModeCommand.Get)\n@expectedCCResponse(ThermostatModeCCReport)\nexport class ThermostatModeCCGet extends ThermostatModeCC {}\n\n// @publicAPI\nexport interface ThermostatModeCCSupportedReportOptions {\n\tsupportedModes: ThermostatMode[];\n}\n\n@CCCommand(ThermostatModeCommand.SupportedReport)\n@ccValueProperty(\"supportedModes\", ThermostatModeCCValues.supportedModes)\nexport class ThermostatModeCCSupportedReport extends ThermostatModeCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatModeCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.supportedModes = options.supportedModes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatModeCCSupportedReport {\n\t\tconst supportedModes: ThermostatMode[] = parseBitMask(\n\t\t\traw.payload,\n\t\t\tThermostatMode.Off,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedModes,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Use this information to create the metadata for the mode property\n\t\tconst thermostatModeValue = ThermostatModeCCValues.thermostatMode;\n\t\tthis.setMetadata(ctx, thermostatModeValue, {\n\t\t\t...thermostatModeValue.meta,\n\t\t\tstates: enumValuesToMetadataStates(\n\t\t\t\tThermostatMode,\n\t\t\t\tthis.supportedModes,\n\t\t\t),\n\t\t});\n\n\t\treturn true;\n\t}\n\n\tpublic readonly supportedModes: ThermostatMode[];\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = encodeBitMask(\n\t\t\tthis.supportedModes,\n\t\t\tThermostatMode[\"Manufacturer specific\"],\n\t\t\tThermostatMode.Off,\n\t\t);\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\"supported modes\": this.supportedModes\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(mode) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${getEnumMemberName(ThermostatMode, mode)}`,\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(ThermostatModeCommand.SupportedGet)\n@expectedCCResponse(ThermostatModeCCSupportedReport)\nexport class ThermostatModeCCSupportedGet extends ThermostatModeCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,40 +1,86 @@
1
- import type { MessageOrCCLogEntry, WithAddress } from "@zwave-js/core/safe";
2
- import { CommandClasses, type MaybeNotKnown } from "@zwave-js/core/safe";
3
- import type { CCParsingContext, GetValueDB } from "@zwave-js/host/safe";
1
+ import { type CCParsingContext } from "@zwave-js/cc";
2
+ import type { GetValueDB, MessageOrCCLogEntry, WithAddress } from "@zwave-js/core/safe";
3
+ import { CommandClasses, type MaybeNotKnown, ValueMetadata } from "@zwave-js/core/safe";
4
4
  import { POLL_VALUE, PhysicalCCAPI, type PollValueImplementation } from "../lib/API.js";
5
5
  import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
6
6
  import { ThermostatOperatingState, ThermostatOperatingStateCommand } from "../lib/_Types.js";
7
7
  export declare const ThermostatOperatingStateCCValues: Readonly<{
8
8
  operatingState: {
9
- readonly id: {
10
- commandClass: (typeof CommandClasses)["Thermostat Operating State"];
11
- property: "state";
12
- };
9
+ readonly id: ValueIDBase;
13
10
  readonly endpoint: (endpoint?: number | undefined) => {
14
11
  readonly commandClass: (typeof CommandClasses)["Thermostat Operating State"];
15
12
  readonly endpoint: number;
16
13
  readonly property: "state";
17
14
  };
18
15
  readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
19
- readonly meta: {
20
- readonly label: "Operating state";
21
- readonly states: {
22
- [x: number]: string;
23
- };
24
- readonly writeable: false;
25
- readonly min: 0;
26
- readonly max: 255;
27
- readonly type: "number";
16
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
17
+ readonly type: "any";
28
18
  readonly readable: true;
29
- };
30
- readonly options: {
19
+ readonly writeable: true;
20
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
21
+ readonly type: "any";
22
+ readonly readable: true;
23
+ readonly writeable: true;
24
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
25
+ readonly type: "any";
26
+ readonly readable: true;
27
+ readonly writeable: true;
28
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
29
+ readonly type: "any";
30
+ readonly readable: true;
31
+ readonly writeable: true;
32
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
33
+ readonly type: "any";
34
+ readonly readable: true;
35
+ readonly writeable: true;
36
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
37
+ readonly type: "any";
38
+ readonly readable: true;
39
+ readonly writeable: true;
40
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
41
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
31
42
  readonly internal: false;
32
43
  readonly minVersion: 1;
33
44
  readonly secret: false;
34
45
  readonly stateful: true;
35
46
  readonly supportsEndpoints: true;
36
47
  readonly autoCreate: true;
37
- };
48
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
49
+ readonly internal: false;
50
+ readonly minVersion: 1;
51
+ readonly secret: false;
52
+ readonly stateful: true;
53
+ readonly supportsEndpoints: true;
54
+ readonly autoCreate: true;
55
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
56
+ readonly internal: false;
57
+ readonly minVersion: 1;
58
+ readonly secret: false;
59
+ readonly stateful: true;
60
+ readonly supportsEndpoints: true;
61
+ readonly autoCreate: true;
62
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
63
+ readonly internal: false;
64
+ readonly minVersion: 1;
65
+ readonly secret: false;
66
+ readonly stateful: true;
67
+ readonly supportsEndpoints: true;
68
+ readonly autoCreate: true;
69
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
70
+ readonly internal: false;
71
+ readonly minVersion: 1;
72
+ readonly secret: false;
73
+ readonly stateful: true;
74
+ readonly supportsEndpoints: true;
75
+ readonly autoCreate: true;
76
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
77
+ readonly internal: false;
78
+ readonly minVersion: 1;
79
+ readonly secret: false;
80
+ readonly stateful: true;
81
+ readonly supportsEndpoints: true;
82
+ readonly autoCreate: true;
83
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
38
84
  };
39
85
  }>;
40
86
  export declare class ThermostatOperatingStateCCAPI extends PhysicalCCAPI {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/ThermostatOperatingStateCC.ts"],
4
- "sourcesContent": ["import type { MessageOrCCLogEntry, WithAddress } from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\tMessagePriority,\n\tValueMetadata,\n\tenumValuesToMetadataStates,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type { CCParsingContext, GetValueDB } from \"@zwave-js/host/safe\";\nimport { getEnumMemberName } from \"@zwave-js/shared/safe\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\tPhysicalCCAPI,\n\ttype PollValueImplementation,\n\tthrowUnsupportedProperty,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tThermostatOperatingState,\n\tThermostatOperatingStateCommand,\n} from \"../lib/_Types.js\";\n\nexport const ThermostatOperatingStateCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Thermostat Operating State\"], {\n\t\t...V.staticPropertyWithName(\n\t\t\t\"operatingState\",\n\t\t\t\"state\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Operating state\",\n\t\t\t\tstates: enumValuesToMetadataStates(ThermostatOperatingState),\n\t\t\t} as const,\n\t\t),\n\t}),\n});\n\n// @noSetValueAPI This CC is read-only\n\n@API(CommandClasses[\"Thermostat Operating State\"])\nexport class ThermostatOperatingStateCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: ThermostatOperatingStateCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ThermostatOperatingStateCommand.Get:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: ThermostatOperatingStateCCAPI,\n\t\t\t{ property },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"state\":\n\t\t\t\t\treturn this.get();\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\tpublic async get(): Promise<MaybeNotKnown<ThermostatOperatingState>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatOperatingStateCommand,\n\t\t\tThermostatOperatingStateCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatOperatingStateCCGet({\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\tThermostatOperatingStateCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.state;\n\t}\n}\n\n@commandClass(CommandClasses[\"Thermostat Operating State\"])\n@implementedVersion(2)\n@ccValues(ThermostatOperatingStateCCValues)\nexport class ThermostatOperatingStateCC extends CommandClass {\n\tdeclare ccCommand: ThermostatOperatingStateCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\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\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[\"Thermostat Operating State\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the current state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying thermostat operating state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst state = await api.get();\n\t\tif (state) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `received current thermostat operating state: ${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tThermostatOperatingState,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t)\n\t\t\t\t}`,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface ThermostatOperatingStateCCReportOptions {\n\tstate: ThermostatOperatingState;\n}\n\n@CCCommand(ThermostatOperatingStateCommand.Report)\n@ccValueProperty(\"state\", ThermostatOperatingStateCCValues.operatingState)\nexport class ThermostatOperatingStateCCReport\n\textends ThermostatOperatingStateCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatOperatingStateCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.state = options.state;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatOperatingStateCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst state: ThermostatOperatingState = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstate,\n\t\t});\n\t}\n\n\tpublic readonly state: ThermostatOperatingState;\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\tstate: getEnumMemberName(ThermostatOperatingState, this.state),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ThermostatOperatingStateCommand.Get)\n@expectedCCResponse(ThermostatOperatingStateCCReport)\nexport class ThermostatOperatingStateCCGet extends ThermostatOperatingStateCC {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCParsingContext } from \"@zwave-js/cc\";\nimport type {\n\tGetValueDB,\n\tMessageOrCCLogEntry,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\tMessagePriority,\n\tValueMetadata,\n\tenumValuesToMetadataStates,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { getEnumMemberName } from \"@zwave-js/shared/safe\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\tPhysicalCCAPI,\n\ttype PollValueImplementation,\n\tthrowUnsupportedProperty,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tThermostatOperatingState,\n\tThermostatOperatingStateCommand,\n} from \"../lib/_Types.js\";\n\nexport const ThermostatOperatingStateCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Thermostat Operating State\"], {\n\t\t...V.staticPropertyWithName(\n\t\t\t\"operatingState\",\n\t\t\t\"state\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Operating state\",\n\t\t\t\tstates: enumValuesToMetadataStates(ThermostatOperatingState),\n\t\t\t} as const,\n\t\t),\n\t}),\n});\n\n// @noSetValueAPI This CC is read-only\n\n@API(CommandClasses[\"Thermostat Operating State\"])\nexport class ThermostatOperatingStateCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(\n\t\tcmd: ThermostatOperatingStateCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ThermostatOperatingStateCommand.Get:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: ThermostatOperatingStateCCAPI,\n\t\t\t{ property },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"state\":\n\t\t\t\t\treturn this.get();\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\tpublic async get(): Promise<MaybeNotKnown<ThermostatOperatingState>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatOperatingStateCommand,\n\t\t\tThermostatOperatingStateCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatOperatingStateCCGet({\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\tThermostatOperatingStateCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.state;\n\t}\n}\n\n@commandClass(CommandClasses[\"Thermostat Operating State\"])\n@implementedVersion(2)\n@ccValues(ThermostatOperatingStateCCValues)\nexport class ThermostatOperatingStateCC extends CommandClass {\n\tdeclare ccCommand: ThermostatOperatingStateCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\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\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[\"Thermostat Operating State\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the current state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying thermostat operating state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst state = await api.get();\n\t\tif (state) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `received current thermostat operating state: ${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tThermostatOperatingState,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t)\n\t\t\t\t}`,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface ThermostatOperatingStateCCReportOptions {\n\tstate: ThermostatOperatingState;\n}\n\n@CCCommand(ThermostatOperatingStateCommand.Report)\n@ccValueProperty(\"state\", ThermostatOperatingStateCCValues.operatingState)\nexport class ThermostatOperatingStateCCReport\n\textends ThermostatOperatingStateCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatOperatingStateCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.state = options.state;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatOperatingStateCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst state: ThermostatOperatingState = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstate,\n\t\t});\n\t}\n\n\tpublic readonly state: ThermostatOperatingState;\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\tstate: getEnumMemberName(ThermostatOperatingState, this.state),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ThermostatOperatingStateCommand.Get)\n@expectedCCResponse(ThermostatOperatingStateCCReport)\nexport class ThermostatOperatingStateCCGet extends ThermostatOperatingStateCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,5 +1,5 @@
1
- import { type MaybeNotKnown, type MessageOrCCLogEntry, 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 { type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core/safe";
3
3
  import { Bytes } from "@zwave-js/shared/safe";
4
4
  import { CCAPI, POLL_VALUE, type PollValueImplementation } from "../lib/API.js";
5
5
  import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
@@ -25,7 +25,7 @@ export declare class ThermostatSetbackCCSet extends ThermostatSetbackCC {
25
25
  setbackType: SetbackType;
26
26
  /** The offset from the setpoint in 0.1 Kelvin or a special mode */
27
27
  setbackState: SetbackState;
28
- serialize(ctx: CCEncodingContext): Bytes;
28
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
29
29
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
30
30
  }
31
31
  export interface ThermostatSetbackCCReportOptions {
@@ -38,7 +38,7 @@ export declare class ThermostatSetbackCCReport extends ThermostatSetbackCC {
38
38
  readonly setbackType: SetbackType;
39
39
  /** The offset from the setpoint in 0.1 Kelvin or a special mode */
40
40
  readonly setbackState: SetbackState;
41
- serialize(ctx: CCEncodingContext): Bytes;
41
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
42
42
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
43
43
  }
44
44
  export declare class ThermostatSetbackCCGet extends ThermostatSetbackCC {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/ThermostatSetbackCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\ttype WithAddress,\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\tthrowUnsupportedProperty,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport {\n\ttype SetbackState,\n\tSetbackType,\n\tThermostatSetbackCommand,\n} from \"../lib/_Types.js\";\nimport { decodeSetbackState, encodeSetbackState } from \"../lib/serializers.js\";\n\n// @noSetValueAPI\n// The setback state consist of two values that must be set together\n\n@API(CommandClasses[\"Thermostat Setback\"])\nexport class ThermostatSetbackCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: ThermostatSetbackCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ThermostatSetbackCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase ThermostatSetbackCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: ThermostatSetbackCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"setbackType\":\n\t\t\t\tcase \"setbackState\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatSetbackCommand,\n\t\t\tThermostatSetbackCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatSetbackCCGet({\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\tThermostatSetbackCCReport\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, [\"setbackType\", \"setbackState\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tsetbackType: SetbackType,\n\t\tsetbackState: SetbackState,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatSetbackCommand,\n\t\t\tThermostatSetbackCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatSetbackCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetbackType,\n\t\t\tsetbackState,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"Thermostat Setback\"])\n@implementedVersion(1)\nexport class ThermostatSetbackCC extends CommandClass {\n\tdeclare ccCommand: ThermostatSetbackCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\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\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[\"Thermostat Setback\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the thermostat state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying the current thermostat state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst setbackResp = await api.get();\n\t\tif (setbackResp) {\n\t\t\tconst logMessage = `received current state:\nsetback type: ${getEnumMemberName(SetbackType, setbackResp.setbackType)}\nsetback state: ${setbackResp.setbackState}`;\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}\n\t}\n}\n\n// @publicAPI\nexport interface ThermostatSetbackCCSetOptions {\n\tsetbackType: SetbackType;\n\tsetbackState: SetbackState;\n}\n\n@CCCommand(ThermostatSetbackCommand.Set)\n@useSupervision()\nexport class ThermostatSetbackCCSet extends ThermostatSetbackCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatSetbackCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setbackType = options.setbackType;\n\t\tthis.setbackState = options.setbackState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatSetbackCCSet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst setbackType: SetbackType = raw.payload[0] & 0b11;\n\n\t\tconst setbackState: SetbackState = decodeSetbackState(raw.payload, 1)\n\t\t\t// If we receive an unknown setback state, return the raw value\n\t\t\t|| raw.payload.readInt8(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsetbackType,\n\t\t\tsetbackState,\n\t\t});\n\t}\n\n\tpublic setbackType: SetbackType;\n\t/** The offset from the setpoint in 0.1 Kelvin or a special mode */\n\tpublic setbackState: SetbackState;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.setbackType & 0b11],\n\t\t\tencodeSetbackState(this.setbackState),\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\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setback type\": getEnumMemberName(\n\t\t\t\t\tSetbackType,\n\t\t\t\t\tthis.setbackType,\n\t\t\t\t),\n\t\t\t\t\"setback state\": typeof this.setbackState === \"number\"\n\t\t\t\t\t? `${this.setbackState} K`\n\t\t\t\t\t: this.setbackState,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ThermostatSetbackCCReportOptions {\n\tsetbackType: SetbackType;\n\tsetbackState: SetbackState;\n}\n\n@CCCommand(ThermostatSetbackCommand.Report)\nexport class ThermostatSetbackCCReport extends ThermostatSetbackCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatSetbackCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.setbackType = options.setbackType;\n\t\tthis.setbackState = options.setbackState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatSetbackCCReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst setbackType: SetbackType = raw.payload[0] & 0b11;\n\n\t\tconst setbackState: SetbackState = decodeSetbackState(raw.payload, 1)\n\t\t\t// If we receive an unknown setback state, return the raw value\n\t\t\t|| raw.payload.readInt8(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsetbackType,\n\t\t\tsetbackState,\n\t\t});\n\t}\n\n\tpublic readonly setbackType: SetbackType;\n\t/** The offset from the setpoint in 0.1 Kelvin or a special mode */\n\tpublic readonly setbackState: SetbackState;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.setbackType & 0b11],\n\t\t\tencodeSetbackState(this.setbackState),\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\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"setback type\": getEnumMemberName(\n\t\t\t\t\tSetbackType,\n\t\t\t\t\tthis.setbackType,\n\t\t\t\t),\n\t\t\t\t\"setback state\": typeof this.setbackState === \"number\"\n\t\t\t\t\t? `${this.setbackState} K`\n\t\t\t\t\t: this.setbackState,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ThermostatSetbackCommand.Get)\n@expectedCCResponse(ThermostatSetbackCCReport)\nexport class ThermostatSetbackCCGet extends ThermostatSetbackCC {}\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 SupervisionResult,\n\ttype WithAddress,\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\tthrowUnsupportedProperty,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport {\n\ttype SetbackState,\n\tSetbackType,\n\tThermostatSetbackCommand,\n} from \"../lib/_Types.js\";\nimport { decodeSetbackState, encodeSetbackState } from \"../lib/serializers.js\";\n\n// @noSetValueAPI\n// The setback state consist of two values that must be set together\n\n@API(CommandClasses[\"Thermostat Setback\"])\nexport class ThermostatSetbackCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: ThermostatSetbackCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ThermostatSetbackCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase ThermostatSetbackCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: ThermostatSetbackCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"setbackType\":\n\t\t\t\tcase \"setbackState\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\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// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatSetbackCommand,\n\t\t\tThermostatSetbackCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatSetbackCCGet({\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\tThermostatSetbackCCReport\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, [\"setbackType\", \"setbackState\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tsetbackType: SetbackType,\n\t\tsetbackState: SetbackState,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tThermostatSetbackCommand,\n\t\t\tThermostatSetbackCommand.Get,\n\t\t);\n\n\t\tconst cc = new ThermostatSetbackCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsetbackType,\n\t\t\tsetbackState,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"Thermostat Setback\"])\n@implementedVersion(1)\nexport class ThermostatSetbackCC extends CommandClass {\n\tdeclare ccCommand: ThermostatSetbackCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\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\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[\"Thermostat Setback\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// Query the thermostat state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying the current thermostat state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst setbackResp = await api.get();\n\t\tif (setbackResp) {\n\t\t\tconst logMessage = `received current state:\nsetback type: ${getEnumMemberName(SetbackType, setbackResp.setbackType)}\nsetback state: ${setbackResp.setbackState}`;\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}\n\t}\n}\n\n// @publicAPI\nexport interface ThermostatSetbackCCSetOptions {\n\tsetbackType: SetbackType;\n\tsetbackState: SetbackState;\n}\n\n@CCCommand(ThermostatSetbackCommand.Set)\n@useSupervision()\nexport class ThermostatSetbackCCSet extends ThermostatSetbackCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatSetbackCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.setbackType = options.setbackType;\n\t\tthis.setbackState = options.setbackState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatSetbackCCSet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst setbackType: SetbackType = raw.payload[0] & 0b11;\n\n\t\tconst setbackState: SetbackState = decodeSetbackState(raw.payload, 1)\n\t\t\t// If we receive an unknown setback state, return the raw value\n\t\t\t|| raw.payload.readInt8(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsetbackType,\n\t\t\tsetbackState,\n\t\t});\n\t}\n\n\tpublic setbackType: SetbackType;\n\t/** The offset from the setpoint in 0.1 Kelvin or a special mode */\n\tpublic setbackState: SetbackState;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.setbackType & 0b11],\n\t\t\tencodeSetbackState(this.setbackState),\n\t\t]);\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\"setback type\": getEnumMemberName(\n\t\t\t\t\tSetbackType,\n\t\t\t\t\tthis.setbackType,\n\t\t\t\t),\n\t\t\t\t\"setback state\": typeof this.setbackState === \"number\"\n\t\t\t\t\t? `${this.setbackState} K`\n\t\t\t\t\t: this.setbackState,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ThermostatSetbackCCReportOptions {\n\tsetbackType: SetbackType;\n\tsetbackState: SetbackState;\n}\n\n@CCCommand(ThermostatSetbackCommand.Report)\nexport class ThermostatSetbackCCReport extends ThermostatSetbackCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ThermostatSetbackCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.setbackType = options.setbackType;\n\t\tthis.setbackState = options.setbackState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ThermostatSetbackCCReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst setbackType: SetbackType = raw.payload[0] & 0b11;\n\n\t\tconst setbackState: SetbackState = decodeSetbackState(raw.payload, 1)\n\t\t\t// If we receive an unknown setback state, return the raw value\n\t\t\t|| raw.payload.readInt8(1);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsetbackType,\n\t\t\tsetbackState,\n\t\t});\n\t}\n\n\tpublic readonly setbackType: SetbackType;\n\t/** The offset from the setpoint in 0.1 Kelvin or a special mode */\n\tpublic readonly setbackState: SetbackState;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.setbackType & 0b11],\n\t\t\tencodeSetbackState(this.setbackState),\n\t\t]);\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\"setback type\": getEnumMemberName(\n\t\t\t\t\tSetbackType,\n\t\t\t\t\tthis.setbackType,\n\t\t\t\t),\n\t\t\t\t\"setback state\": typeof this.setbackState === \"number\"\n\t\t\t\t\t? `${this.setbackState} K`\n\t\t\t\t\t: this.setbackState,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ThermostatSetbackCommand.Get)\n@expectedCCResponse(ThermostatSetbackCCReport)\nexport class ThermostatSetbackCCGet extends ThermostatSetbackCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,21 +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 { ThermostatSetpointCommand, ThermostatSetpointType } from "../lib/_Types.js";
7
7
  export declare const ThermostatSetpointCCValues: Readonly<{
8
8
  setpointScale: ((setpointType: ThermostatSetpointType) => {
9
- readonly meta: {
9
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
10
10
  readonly type: "any";
11
11
  readonly readable: true;
12
12
  readonly writeable: true;
13
- };
14
- readonly id: {
15
- commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
16
- property: "setpointScale";
17
- propertyKey: ThermostatSetpointType;
18
- };
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;
19
35
  readonly endpoint: (endpoint?: number | undefined) => {
20
36
  readonly commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
21
37
  readonly endpoint: number;
@@ -34,20 +50,32 @@ export declare const ThermostatSetpointCCValues: Readonly<{
34
50
  };
35
51
  };
36
52
  setpoint: ((setpointType: ThermostatSetpointType) => {
37
- readonly meta: {
38
- readonly label: `Setpoint (${string})`;
39
- readonly ccSpecific: {
40
- readonly setpointType: ThermostatSetpointType;
41
- };
42
- readonly type: "number";
53
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
54
+ readonly type: "any";
43
55
  readonly readable: true;
44
56
  readonly writeable: true;
45
- };
46
- readonly id: {
47
- commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
48
- property: "setpoint";
49
- propertyKey: ThermostatSetpointType;
50
- };
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;
51
79
  readonly endpoint: (endpoint?: number | undefined) => {
52
80
  readonly commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
53
81
  readonly endpoint: number;
@@ -66,29 +94,81 @@ export declare const ThermostatSetpointCCValues: Readonly<{
66
94
  };
67
95
  };
68
96
  supportedSetpointTypes: {
69
- readonly id: {
70
- commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
71
- property: "supportedSetpointTypes";
72
- };
97
+ readonly id: ValueIDBase;
73
98
  readonly endpoint: (endpoint?: number | undefined) => {
74
99
  readonly commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
75
100
  readonly endpoint: number;
76
101
  readonly property: "supportedSetpointTypes";
77
102
  };
78
103
  readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
79
- readonly meta: {
104
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
80
105
  readonly type: "any";
81
106
  readonly readable: true;
82
107
  readonly writeable: true;
83
- };
84
- 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;
85
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;
86
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;
87
145
  readonly minVersion: 1;
146
+ readonly secret: false;
147
+ readonly stateful: true;
88
148
  readonly supportsEndpoints: true;
89
149
  readonly autoCreate: true;
90
- readonly internal: true;
91
- };
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>;
92
172
  };
93
173
  }>;
94
174
  export declare class ThermostatSetpointCCAPI extends CCAPI {
@@ -125,7 +205,7 @@ export declare class ThermostatSetpointCCSet extends ThermostatSetpointCC {
125
205
  setpointType: ThermostatSetpointType;
126
206
  value: number;
127
207
  scale: number;
128
- serialize(ctx: CCEncodingContext): Bytes;
208
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
129
209
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
130
210
  }
131
211
  export interface ThermostatSetpointCCReportOptions {
@@ -140,7 +220,7 @@ export declare class ThermostatSetpointCCReport extends ThermostatSetpointCC {
140
220
  type: ThermostatSetpointType;
141
221
  scale: number;
142
222
  value: number;
143
- serialize(ctx: CCEncodingContext): Bytes;
223
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
144
224
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
145
225
  }
146
226
  export interface ThermostatSetpointCCGetOptions {
@@ -150,7 +230,7 @@ export declare class ThermostatSetpointCCGet extends ThermostatSetpointCC {
150
230
  constructor(options: WithAddress<ThermostatSetpointCCGetOptions>);
151
231
  static from(raw: CCRaw, ctx: CCParsingContext): ThermostatSetpointCCGet;
152
232
  setpointType: ThermostatSetpointType;
153
- serialize(ctx: CCEncodingContext): Bytes;
233
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
154
234
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
155
235
  }
156
236
  export interface ThermostatSetpointCCCapabilitiesReportOptions {
@@ -169,7 +249,7 @@ export declare class ThermostatSetpointCCCapabilitiesReport extends ThermostatSe
169
249
  maxValue: number;
170
250
  minValueScale: number;
171
251
  maxValueScale: number;
172
- serialize(ctx: CCEncodingContext): Bytes;
252
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
173
253
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
174
254
  }
175
255
  export interface ThermostatSetpointCCCapabilitiesGetOptions {
@@ -179,7 +259,7 @@ export declare class ThermostatSetpointCCCapabilitiesGet extends ThermostatSetpo
179
259
  constructor(options: WithAddress<ThermostatSetpointCCCapabilitiesGetOptions>);
180
260
  static from(raw: CCRaw, ctx: CCParsingContext): ThermostatSetpointCCCapabilitiesGet;
181
261
  setpointType: ThermostatSetpointType;
182
- serialize(ctx: CCEncodingContext): Bytes;
262
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
183
263
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
184
264
  }
185
265
  export interface ThermostatSetpointCCSupportedReportOptions {
@@ -189,7 +269,7 @@ export declare class ThermostatSetpointCCSupportedReport extends ThermostatSetpo
189
269
  constructor(options: WithAddress<ThermostatSetpointCCSupportedReportOptions>);
190
270
  static from(raw: CCRaw, ctx: CCParsingContext): ThermostatSetpointCCSupportedReport;
191
271
  readonly supportedSetpointTypes: readonly ThermostatSetpointType[];
192
- serialize(ctx: CCEncodingContext): Bytes;
272
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
193
273
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
194
274
  }
195
275
  export declare class ThermostatSetpointCCSupportedGet extends ThermostatSetpointCC {