@zwave-js/cc 14.0.0-beta.4 → 14.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +381 -266
  2. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  3. package/build/cjs/cc/AssociationCC.js +669 -503
  4. package/build/cjs/cc/AssociationCC.js.map +3 -3
  5. package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
  6. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  7. package/build/cjs/cc/BarrierOperatorCC.js +595 -429
  8. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  9. package/build/cjs/cc/BasicCC.js +354 -260
  10. package/build/cjs/cc/BasicCC.js.map +3 -3
  11. package/build/cjs/cc/BatteryCC.js +427 -345
  12. package/build/cjs/cc/BatteryCC.js.map +3 -3
  13. package/build/cjs/cc/BinarySensorCC.js +391 -276
  14. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  15. package/build/cjs/cc/BinarySwitchCC.js +347 -253
  16. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  17. package/build/cjs/cc/CRC16CC.js +160 -85
  18. package/build/cjs/cc/CRC16CC.js.map +3 -3
  19. package/build/cjs/cc/CentralSceneCC.js +459 -324
  20. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  21. package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
  22. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  23. package/build/cjs/cc/ClockCC.js +254 -150
  24. package/build/cjs/cc/ClockCC.js.map +3 -3
  25. package/build/cjs/cc/ColorSwitchCC.js +758 -610
  26. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  27. package/build/cjs/cc/ConfigurationCC.js +1700 -1453
  28. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  29. package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
  30. package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
  31. package/build/cjs/cc/DoorLockCC.js +904 -777
  32. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  33. package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
  34. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  35. package/build/cjs/cc/EnergyProductionCC.js +249 -160
  36. package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
  37. package/build/cjs/cc/EntryControlCC.js +619 -458
  38. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  39. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
  40. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  41. package/build/cjs/cc/HailCC.js +57 -11
  42. package/build/cjs/cc/HailCC.js.map +2 -2
  43. package/build/cjs/cc/HumidityControlModeCC.js +359 -233
  44. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  45. package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
  46. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  47. package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
  48. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  49. package/build/cjs/cc/InclusionControllerCC.js +205 -114
  50. package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
  51. package/build/cjs/cc/IndicatorCC.js +897 -736
  52. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  53. package/build/cjs/cc/IrrigationCC.js +1651 -1405
  54. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  55. package/build/cjs/cc/LanguageCC.js +268 -171
  56. package/build/cjs/cc/LanguageCC.js.map +3 -3
  57. package/build/cjs/cc/LockCC.js +254 -154
  58. package/build/cjs/cc/LockCC.js.map +3 -3
  59. package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
  60. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  61. package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
  62. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  63. package/build/cjs/cc/MeterCC.js +827 -707
  64. package/build/cjs/cc/MeterCC.js.map +3 -3
  65. package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
  66. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  67. package/build/cjs/cc/MultiChannelCC.js +1037 -819
  68. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  69. package/build/cjs/cc/MultiCommandCC.js +172 -97
  70. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  71. package/build/cjs/cc/MultilevelSensorCC.js +589 -449
  72. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  73. package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
  74. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  75. package/build/cjs/cc/NoOperationCC.js +89 -27
  76. package/build/cjs/cc/NoOperationCC.js.map +2 -2
  77. package/build/cjs/cc/NodeNamingCC.js +417 -277
  78. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  79. package/build/cjs/cc/NotificationCC.js +972 -818
  80. package/build/cjs/cc/NotificationCC.js.map +3 -3
  81. package/build/cjs/cc/PowerlevelCC.js +450 -303
  82. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  83. package/build/cjs/cc/ProtectionCC.js +686 -494
  84. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  85. package/build/cjs/cc/SceneActivationCC.js +165 -97
  86. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  87. package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
  88. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  89. package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
  90. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  91. package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
  92. package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
  93. package/build/cjs/cc/Security2CC.js +1483 -1219
  94. package/build/cjs/cc/Security2CC.js.map +3 -3
  95. package/build/cjs/cc/SecurityCC.js +839 -619
  96. package/build/cjs/cc/SecurityCC.js.map +3 -3
  97. package/build/cjs/cc/SoundSwitchCC.js +707 -515
  98. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  99. package/build/cjs/cc/SupervisionCC.js +327 -237
  100. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  101. package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
  102. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  103. package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
  104. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  105. package/build/cjs/cc/ThermostatModeCC.js +425 -302
  106. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  107. package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
  108. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  109. package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
  110. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  111. package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
  112. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  113. package/build/cjs/cc/TimeCC.js +515 -353
  114. package/build/cjs/cc/TimeCC.js.map +3 -3
  115. package/build/cjs/cc/TimeParametersCC.js +302 -202
  116. package/build/cjs/cc/TimeParametersCC.js.map +3 -3
  117. package/build/cjs/cc/TransportServiceCC.js +433 -315
  118. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  119. package/build/cjs/cc/UserCodeCC.js +1385 -1102
  120. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  121. package/build/cjs/cc/VersionCC.js +696 -562
  122. package/build/cjs/cc/VersionCC.js.map +3 -3
  123. package/build/cjs/cc/WakeUpCC.js +499 -346
  124. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  125. package/build/cjs/cc/WindowCoveringCC.js +626 -478
  126. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  127. package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
  128. package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
  129. package/build/cjs/cc/ZWavePlusCC.js +233 -159
  130. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  131. package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
  132. package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
  133. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  134. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
  135. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
  136. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
  137. package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
  138. package/build/cjs/lib/CommandClassDecorators.js +19 -20
  139. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  140. package/build/cjs/lib/Security2/Extension.d.ts +1 -1
  141. package/build/cjs/lib/Security2/Extension.js +217 -126
  142. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  143. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  144. package/build/esm/cc/AlarmSensorCC.js +389 -291
  145. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  146. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  147. package/build/esm/cc/AssociationCC.js +678 -537
  148. package/build/esm/cc/AssociationCC.js.map +1 -1
  149. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  150. package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
  151. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  152. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  153. package/build/esm/cc/BarrierOperatorCC.js +634 -493
  154. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  155. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  156. package/build/esm/cc/BasicCC.js +380 -302
  157. package/build/esm/cc/BasicCC.js.map +1 -1
  158. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  159. package/build/esm/cc/BatteryCC.js +449 -384
  160. package/build/esm/cc/BatteryCC.js.map +1 -1
  161. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  162. package/build/esm/cc/BinarySensorCC.js +395 -297
  163. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  164. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  165. package/build/esm/cc/BinarySwitchCC.js +353 -274
  166. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  167. package/build/esm/cc/CRC16CC.js +162 -98
  168. package/build/esm/cc/CRC16CC.js.map +1 -1
  169. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  170. package/build/esm/cc/CentralSceneCC.js +465 -351
  171. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  172. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  173. package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
  174. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  175. package/build/esm/cc/ClockCC.js +248 -159
  176. package/build/esm/cc/ClockCC.js.map +1 -1
  177. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  178. package/build/esm/cc/ColorSwitchCC.js +802 -677
  179. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  180. package/build/esm/cc/ConfigurationCC.js +1899 -1687
  181. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  182. package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
  183. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  184. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  185. package/build/esm/cc/DoorLockCC.js +951 -849
  186. package/build/esm/cc/DoorLockCC.js.map +1 -1
  187. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  188. package/build/esm/cc/DoorLockLoggingCC.js +316 -218
  189. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  190. package/build/esm/cc/EnergyProductionCC.js +240 -164
  191. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  192. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  193. package/build/esm/cc/EntryControlCC.js +629 -493
  194. package/build/esm/cc/EntryControlCC.js.map +1 -1
  195. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  196. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
  197. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  198. package/build/esm/cc/HailCC.js +51 -12
  199. package/build/esm/cc/HailCC.js.map +1 -1
  200. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  201. package/build/esm/cc/HumidityControlModeCC.js +357 -250
  202. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  203. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  204. package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
  205. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  206. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  207. package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
  208. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  209. package/build/esm/cc/InclusionControllerCC.js +197 -119
  210. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  211. package/build/esm/cc/IndicatorCC.js +973 -835
  212. package/build/esm/cc/IndicatorCC.js.map +1 -1
  213. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  214. package/build/esm/cc/IrrigationCC.js +1697 -1496
  215. package/build/esm/cc/IrrigationCC.js.map +1 -1
  216. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  217. package/build/esm/cc/LanguageCC.js +266 -184
  218. package/build/esm/cc/LanguageCC.js.map +1 -1
  219. package/build/esm/cc/LockCC.d.ts.map +1 -1
  220. package/build/esm/cc/LockCC.js +247 -162
  221. package/build/esm/cc/LockCC.js.map +1 -1
  222. package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
  223. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  224. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  225. package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
  226. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  227. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  228. package/build/esm/cc/MeterCC.js +896 -795
  229. package/build/esm/cc/MeterCC.js.map +1 -1
  230. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  231. package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
  232. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  233. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  234. package/build/esm/cc/MultiChannelCC.js +1106 -921
  235. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  236. package/build/esm/cc/MultiCommandCC.js +166 -102
  237. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  238. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  239. package/build/esm/cc/MultilevelSensorCC.js +616 -497
  240. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  241. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  242. package/build/esm/cc/MultilevelSwitchCC.js +621 -496
  243. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  244. package/build/esm/cc/NoOperationCC.js +82 -29
  245. package/build/esm/cc/NoOperationCC.js.map +1 -1
  246. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  247. package/build/esm/cc/NodeNamingCC.js +413 -294
  248. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  249. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  250. package/build/esm/cc/NotificationCC.js +1097 -966
  251. package/build/esm/cc/NotificationCC.js.map +1 -1
  252. package/build/esm/cc/PowerlevelCC.js +437 -311
  253. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  254. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  255. package/build/esm/cc/ProtectionCC.js +704 -543
  256. package/build/esm/cc/ProtectionCC.js.map +1 -1
  257. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  258. package/build/esm/cc/SceneActivationCC.js +157 -100
  259. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  260. package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
  261. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  262. package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
  263. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  264. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  265. package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
  266. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  267. package/build/esm/cc/Security2CC.js +1633 -1406
  268. package/build/esm/cc/Security2CC.js.map +1 -1
  269. package/build/esm/cc/SecurityCC.js +876 -687
  270. package/build/esm/cc/SecurityCC.js.map +1 -1
  271. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  272. package/build/esm/cc/SoundSwitchCC.js +689 -526
  273. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  274. package/build/esm/cc/SupervisionCC.js +349 -272
  275. package/build/esm/cc/SupervisionCC.js.map +1 -1
  276. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  277. package/build/esm/cc/ThermostatFanModeCC.js +388 -284
  278. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  279. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  280. package/build/esm/cc/ThermostatFanStateCC.js +184 -111
  281. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  282. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  283. package/build/esm/cc/ThermostatModeCC.js +435 -331
  284. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  285. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  286. package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
  287. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  288. package/build/esm/cc/ThermostatSetbackCC.js +274 -185
  289. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  290. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  291. package/build/esm/cc/ThermostatSetpointCC.js +674 -543
  292. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  293. package/build/esm/cc/TimeCC.js +499 -360
  294. package/build/esm/cc/TimeCC.js.map +1 -1
  295. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  296. package/build/esm/cc/TimeParametersCC.js +296 -211
  297. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  298. package/build/esm/cc/TransportServiceCC.js +464 -363
  299. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  300. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  301. package/build/esm/cc/UserCodeCC.js +1443 -1205
  302. package/build/esm/cc/UserCodeCC.js.map +1 -1
  303. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  304. package/build/esm/cc/VersionCC.js +744 -635
  305. package/build/esm/cc/VersionCC.js.map +1 -1
  306. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  307. package/build/esm/cc/WakeUpCC.js +494 -364
  308. package/build/esm/cc/WakeUpCC.js.map +1 -1
  309. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  310. package/build/esm/cc/WindowCoveringCC.js +655 -530
  311. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  312. package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
  313. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
  314. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  315. package/build/esm/cc/ZWavePlusCC.js +223 -162
  316. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  317. package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
  318. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  319. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  320. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  321. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
  322. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  323. package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
  324. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  325. package/build/esm/lib/CommandClassDecorators.js +24 -24
  326. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  327. package/build/esm/lib/Security2/Extension.d.ts +1 -1
  328. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  329. package/build/esm/lib/Security2/Extension.js +207 -123
  330. package/build/esm/lib/Security2/Extension.js.map +1 -1
  331. package/package.json +6 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/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\tccValue,\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 ThermostatModeCCSet({\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 ThermostatModeCCSet({\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\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)\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 ThermostatModeCCReport({\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 ThermostatModeCCReport({\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\t@ccValue(ThermostatModeCCValues.thermostatMode)\n\tpublic readonly mode: ThermostatMode;\n\n\t@ccValue(ThermostatModeCCValues.manufacturerData)\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\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)\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 ThermostatModeCCSupportedReport({\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\t@ccValue(ThermostatModeCCValues.supportedModes)\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\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
- "names": ["import_safe", "ThermostatModeCCAPI", "ThermostatModeCC", "ThermostatModeCCSet", "ThermostatModeCCReport", "ThermostatModeCCGet", "ThermostatModeCCSupportedReport", "ThermostatModeCCSupportedGet"]
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\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\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\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAgBO;AAMP,IAAAA,eAAsB;AACtB,IAAAA,eAAoD;AAEpD,iBAQO;AACP,0BAMO;AACP,oCASO;AACP,oBAAkB;AAClB,mBAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/C,MAAM,yBAAyB,OAAO,OAAO;EACnD,GAAG,gBAAE,qBAAqB,2BAAe,iBAAiB,GAAG;IAC5D,GAAG,gBAAE,uBACJ,kBACA,QACA;MACC,GAAG,0BAAc;MACjB,YAAQ,wCAA2B,2BAAc;MACjD,OAAO;KACE;IAGX,GAAG,gBAAE,eACJ,oBACA;MACC,GAAG,0BAAc;MACjB,OAAO;KACE;IAGX,GAAG,gBAAE,eAAe,kBAAkB,QAAW,EAAE,UAAU,KAAI,CAAE;GACnE;CACD;IAGY,uBAAmB,MAAA;8BAD/B,mCAAI,2BAAe,iBAAiB,CAAC,CAAC;;;;oBACE;2CAAA,YAAK;;;;;;AAA9C,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACL,gBAAgB,KAA0B;AAChD,cAAQ,KAAK;QACZ,KAAK,mCAAsB;QAC3B,KAAK,mCAAsB;AAC1B,iBAAO,KAAK,aAAY;QACzB,KAAK,mCAAsB;AAC1B,iBAAO;MACT;AACA,aAAO,MAAM,gBAAgB,GAAG;IACjC;IAEA,KAAwB,oBAAS,IAAC;AACjC,aAAO,eAA0C,EAAE,SAAQ,GAAI,OAAK;AACnE,YAAI,aAAa,QAAQ;AACxB,mDAAyB,KAAK,MAAM,QAAQ;QAC7C;AACA,YAAI,OAAO,UAAU,UAAU;AAC9B,8CACC,KAAK,MACL,UACA,UACA,OAAO,KAAK;QAEd;AACA,cAAM,SAAS,MAAM,KAAK,IAAI,KAAK;AAGnC,YAAI,KAAK,aAAY,KAAM,KAAC,wCAA2B,MAAM,GAAG;AAG/D,eAAK,aAAa,EAAE,SAAQ,GAAI,KAAK;QACtC;AAEA,eAAO;MACR;IACD;IAEA,KAAe,qBAAU,IAAC;AACzB,aAAO,eAA0C,EAAE,SAAQ,GAAE;AAC5D,gBAAQ,UAAU;UACjB,KAAK;AACJ,oBAAQ,MAAM,KAAK,IAAG,KAAM,QAAQ;UAErC;AACC,qDAAyB,KAAK,MAAM,QAAQ;QAC9C;MACD;IACD;;IAGO,MAAM,MAAG;AACf,WAAK,sBACJ,oCACA,mCAAsB,GAAG;AAG1B,YAAM,KAAK,IAAI,oBAAoB;QAClC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,UAAI,UAAU;AACb,mBAAO,mBAAK,UAAU,CAAC,QAAQ,kBAAkB,CAAC;MACnD;IACD;IAcO,MAAM,IACZ,MACA,kBAAsC;;;AAEtC,WAAK,sBACJ,oCACA,mCAAsB,GAAG;AAG1B,UAAI,OAAO,qBAAqB,UAAU;AAEzC,YACC,iBAAiB,SAAS,MAAM,KAC7B,CAAC,eAAe,KAAK,gBAAgB,GACvC;AACD,gBAAM,IAAI,uBACT,iFACA,4BAAgB,gBAAgB;QAElC;AACA,2BAAmB,mBAAM,KAAK,kBAAkB,KAAK;MACtD;AAEA,YAAM,KAAK,IAAI,oBAAoB;QAClC,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;QACA;OACA;AACD,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;;IAG9C,MAAM,oBAAiB;AAG7B,WAAK,sBACJ,oCACA,mCAAsB,YAAY;AAGnC,YAAM,KAAK,IAAI,6BAA6B;QAC3C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,aAAO,UAAU;IAClB;;;;IAMY,oBAAgB,MAAA;8BAH5B,4CAAa,2BAAe,iBAAiB,CAAC,OAC9C,kDAAmB,CAAC,OACpB,wCAAS,sBAAsB,CAAC;;;;oBACK;wCAAA,YAAY;;;;;;AAAlD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGL,MAAM,UACZ,KAAqB;AAErB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OACjB,2BAAe,iBAAiB,GAChC,KACA,QAAQ,EACP,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAED,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACX;AAGD,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACX;AAED,YAAM,iBAAiB,MAAM,IAAI,kBAAiB;AAClD,UAAI,gBAAgB;AACnB,cAAM,aAAa,uCAClB,eACE,IAAI,CAAC,SACL;WAAO,gCAAkB,6BAAgB,IAAI,CAAC,EAAE,EAEhD,KAAK,EAAE,CACV;AACA,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS;UACT,WAAW;SACX;MACF,OAAO;AACN,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SACC;UACD,OAAO;SACP;AACD;MACD;AAEA,YAAM,KAAK,cAAc,GAAG;AAG5B,WAAK,qBAAqB,KAAK,IAAI;IACpC;IAEO,MAAM,cACZ,KAAyB;AAEzB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OACjB,2BAAe,iBAAiB,GAChC,KACA,QAAQ,EACP,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAGD,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACX;AACD,YAAM,gBAAgB,MAAM,IAAI,IAAG;AACnC,UAAI,eAAe;AAClB,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS,2CACN,gCAAkB,6BAAgB,cAAc,IAAI;UACvD,WAAW;SACX;MACF;IACD;;;;IAkBY,uBAAmB,MAAA;8BAF/B,yCAAU,mCAAsB,GAAG,OACnC,8CAAc,CAAE;;;;oBACwB;2CAAA,YAAgB;;;;;;AAAzD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAgD;AAEhD,YAAM,OAAO;AACb,WAAK,OAAO,QAAQ;AACpB,UAAI,sBAAsB,SAAS;AAClC,aAAK,mBAAmB,QAAQ;MACjC;IACD;IAEO,OAAO,KAAK,KAAY,KAAqB;AACnD,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,OAAuB,IAAI,QAAQ,CAAC,IAAI;AAC9C,UAAI,SAAS,4BAAe,uBAAuB,GAAG;AACrD,eAAO,IAAI,KAAK;UACf,QAAQ,IAAI;UACZ;SACA;MACF;AAEA,YAAM,yBAA0B,IAAI,QAAQ,CAAC,MAAM,IAAK;AACxD,uCACC,IAAI,QAAQ,UAAU,IAAI,sBAAsB;AAEjD,YAAM,mBAAmB,IAAI,QAAQ,SACpC,GACA,IAAI,sBAAsB;AAG3B,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO;IACA;IAEA,UAAU,KAAsB;AACtC,YAAM,mBACL,KAAK,SAAS,4BAAe,uBAAuB,KAChD,KAAK,mBACN,KAAK,mBACL,IAAI,WAAU;AAClB,YAAM,yBAAyB,iBAAiB;AAChD,WAAK,UAAU,mBAAM,OAAO;QAC3B,mBAAM,KAAK;YACR,yBAAyB,MAAU,MAAM,KAAK,OAAO;SACvD;QACD;OACA;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,YAAM,UAAyB;QAC9B,UAAM,gCAAkB,6BAAgB,KAAK,IAAI;;AAElD,UAAI,KAAK,oBAAoB,QAAW;AACvC,gBAAQ,mBAAmB,QAAI,yBAAW,KAAK,gBAAgB;MAChE;AACA,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB;;IAEF;;;;IAoBY,0BAAsB,MAAA;8BAHlC,yCAAU,mCAAsB,MAAM,OACtC,+CAAgB,QAAQ,uBAAuB,cAAc,OAC7D,+CAAgB,oBAAoB,uBAAuB,gBAAgB,CAAC;;;;oBACjC;8CAAA,YAAgB;;;;;;AAA5D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAAmD;AAEnD,YAAM,OAAO;AAEb,WAAK,OAAO,QAAQ;AACpB,WAAK,mBAAmB,QAAQ;IACjC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,OAAuB,IAAI,QAAQ,CAAC,IAAI;AAE9C,UAAI,SAAS,4BAAe,uBAAuB,GAAG;AACrD,eAAO,IAAI,KAAK;UACf,QAAQ,IAAI;UACZ;SACA;MACF;AAGA,YAAM,yBAAyB,IAAI,QAAQ,CAAC,MAAM;AAClD,uCACC,IAAI,QAAQ,UAAU,IAAI,sBAAsB;AAEjD,YAAM,mBAAmB,IAAI,QAAQ,SACpC,GACA,IAAI,sBAAsB;AAG3B,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;OACA;IACF;IAEO,cAAc,KAAyB;AAC7C,UAAI,CAAC,MAAM,cAAc,GAAG;AAAG,eAAO;AAItC,YAAM,sBAAsB,uBAAuB;AACnD,YAAM,sBAAsB,uBAAuB;AAEnD,YAAM,iBAAiB,KAAK,SAC3B,KACA,mBAAmB;AAGpB,UACC,kBACG,KAAK,QAAQ,+BACb,CAAC,eAAe,SAAS,KAAK,IAAI,GACpC;AACD,uBAAe,KAAK,KAAK,IAAI;AAC7B,uBAAe,KAAI;AAEnB,aAAK,YAAY,KAAK,qBAAqB;UAC1C,GAAG,oBAAoB;UACvB,YAAQ,wCACP,6BACA,cAAc;SAEf;AACD,aAAK,SAAS,KAAK,qBAAqB,cAAc;MACvD;AACA,aAAO;IACR;IAEgB;IAEA;IAET,UAAU,KAAsB;AACtC,YAAM,yBACL,KAAK,SAAS,4BAAe,uBAAuB,KAChD,KAAK,mBACN,KAAK,IAAI,GAAO,KAAK,iBAAiB,MAAM,IAC5C;AACJ,WAAK,UAAU,IAAI,mBAAM,IAAI,sBAAsB;AACnD,WAAK,QAAQ,CAAC,KAAK,0BAA0B,MAAM,KAAK,OAAO;AAC/D,UAAI,0BAA0B,KAAK,kBAAkB;AACpD,aAAK,QAAQ,IACZ,KAAK,iBAAiB,SAAS,GAAG,sBAAsB,GACxD,CAAC;MAEH;AACA,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,YAAM,UAAyB;QAC9B,UAAM,gCAAkB,6BAAgB,KAAK,IAAI;;AAElD,UAAI,KAAK,oBAAoB,QAAW;AACvC,gBAAQ,mBAAmB,QAAI,yBAAW,KAAK,gBAAgB;MAChE;AACA,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB;;IAEF;;;;IAKY,uBAAmB,MAAA;8BAF/B,yCAAU,mCAAsB,GAAG,OACnC,kDAAmB,sBAAsB,CAAC;;;;oBACF;2CAAA,YAAgB;;;;;;AAAzD,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;IASA,mCAA+B,MAAA;8BAF3C,yCAAU,mCAAsB,eAAe,OAC/C,+CAAgB,kBAAkB,uBAAuB,cAAc,CAAC;;;;oBACpB;uDAAA,YAAgB;;;;;;AAArE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACZ,YACC,SAA4D;AAE5D,YAAM,OAAO;AACb,WAAK,iBAAiB,QAAQ;IAC/B;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,YAAM,qBAAmC,0BACxC,IAAI,SACJ,4BAAe,GAAG;AAGnB,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEO,cAAc,KAAyB;AAC7C,UAAI,CAAC,MAAM,cAAc,GAAG;AAAG,eAAO;AAGtC,YAAM,sBAAsB,uBAAuB;AACnD,WAAK,YAAY,KAAK,qBAAqB;QAC1C,GAAG,oBAAoB;QACvB,YAAQ,wCACP,6BACA,KAAK,cAAc;OAEpB;AAED,aAAO;IACR;IAEgB;IAET,UAAU,KAAsB;AACtC,WAAK,cAAU,2BACd,KAAK,gBACL,4BAAe,uBAAuB,GACtC,4BAAe,GAAG;AAEnB,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,mBAAmB,KAAK,eACtB,IACA,CAAC,SACA;WAAO,gCAAkB,6BAAgB,IAAI,CAAC,EAAE,EAEjD,KAAK,EAAE;;;IAGZ;;;;IAKY,gCAA4B,MAAA;8BAFxC,yCAAU,mCAAsB,YAAY,OAC5C,kDAAmB,+BAA+B,CAAC;;;;oBACF;oDAAA,YAAgB;;;;;;AAAlE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;",
6
+ "names": ["import_safe"]
7
7
  }
@@ -32,13 +32,45 @@ var import_CommandClass = require("../lib/CommandClass.js");
32
32
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
33
33
  var import_Values = require("../lib/Values.js");
34
34
  var import_Types = require("../lib/_Types.js");
35
- var __decorate = function(decorators, target, key, desc) {
36
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
39
- return c > 3 && r && Object.defineProperty(target, key, r), r;
35
+ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
36
+ function accept(f) {
37
+ if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
38
+ return f;
39
+ }
40
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
41
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
42
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
43
+ var _, done = false;
44
+ for (var i = decorators.length - 1; i >= 0; i--) {
45
+ var context = {};
46
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
47
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
48
+ context.addInitializer = function(f) {
49
+ if (done) throw new TypeError("Cannot add initializers after decoration has completed");
50
+ extraInitializers.push(accept(f || null));
51
+ };
52
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
53
+ if (kind === "accessor") {
54
+ if (result === void 0) continue;
55
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
56
+ if (_ = accept(result.get)) descriptor.get = _;
57
+ if (_ = accept(result.set)) descriptor.set = _;
58
+ if (_ = accept(result.init)) initializers.unshift(_);
59
+ } else if (_ = accept(result)) {
60
+ if (kind === "field") initializers.unshift(_);
61
+ else descriptor[key] = _;
62
+ }
63
+ }
64
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
65
+ done = true;
66
+ };
67
+ var __runInitializers = function(thisArg, initializers, value) {
68
+ var useValue = arguments.length > 2;
69
+ for (var i = 0; i < initializers.length; i++) {
70
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
71
+ }
72
+ return useValue ? value : void 0;
40
73
  };
41
- var ThermostatOperatingStateCCReport_1;
42
74
  const ThermostatOperatingStateCCValues = Object.freeze({
43
75
  ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Thermostat Operating State"], {
44
76
  ...import_Values.V.staticPropertyWithName("operatingState", "state", {
@@ -48,109 +80,163 @@ const ThermostatOperatingStateCCValues = Object.freeze({
48
80
  })
49
81
  })
50
82
  });
51
- let ThermostatOperatingStateCCAPI = class ThermostatOperatingStateCCAPI2 extends import_API.PhysicalCCAPI {
52
- supportsCommand(cmd) {
53
- switch (cmd) {
54
- case import_Types.ThermostatOperatingStateCommand.Get:
55
- return true;
83
+ let ThermostatOperatingStateCCAPI = (() => {
84
+ let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Thermostat Operating State"])];
85
+ let _classDescriptor;
86
+ let _classExtraInitializers = [];
87
+ let _classThis;
88
+ let _classSuper = import_API.PhysicalCCAPI;
89
+ var ThermostatOperatingStateCCAPI2 = class extends _classSuper {
90
+ static {
91
+ _classThis = this;
56
92
  }
57
- return super.supportsCommand(cmd);
58
- }
59
- get [import_API.POLL_VALUE]() {
60
- return async function({ property }) {
61
- switch (property) {
62
- case "state":
63
- return this.get();
64
- default:
65
- (0, import_API.throwUnsupportedProperty)(this.ccId, property);
93
+ static {
94
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
95
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
96
+ ThermostatOperatingStateCCAPI2 = _classThis = _classDescriptor.value;
97
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
98
+ __runInitializers(_classThis, _classExtraInitializers);
99
+ }
100
+ supportsCommand(cmd) {
101
+ switch (cmd) {
102
+ case import_Types.ThermostatOperatingStateCommand.Get:
103
+ return true;
66
104
  }
67
- };
68
- }
69
- async get() {
70
- this.assertSupportsCommand(import_Types.ThermostatOperatingStateCommand, import_Types.ThermostatOperatingStateCommand.Get);
71
- const cc = new ThermostatOperatingStateCCGet({
72
- nodeId: this.endpoint.nodeId,
73
- endpointIndex: this.endpoint.index
74
- });
75
- const response = await this.host.sendCommand(cc, this.commandOptions);
76
- return response?.state;
77
- }
78
- };
79
- ThermostatOperatingStateCCAPI = __decorate([
80
- (0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Thermostat Operating State"])
81
- ], ThermostatOperatingStateCCAPI);
82
- let ThermostatOperatingStateCC = class ThermostatOperatingStateCC2 extends import_CommandClass.CommandClass {
83
- async interview(ctx) {
84
- const node = this.getNode(ctx);
85
- ctx.logNode(node.id, {
86
- endpoint: this.endpointIndex,
87
- message: `Interviewing ${this.ccName}...`,
88
- direction: "none"
89
- });
90
- await this.refreshValues(ctx);
91
- this.setInterviewComplete(ctx, true);
92
- }
93
- async refreshValues(ctx) {
94
- const node = this.getNode(ctx);
95
- const endpoint = this.getEndpoint(ctx);
96
- const api = import_API.CCAPI.create(import_safe.CommandClasses["Thermostat Operating State"], ctx, endpoint).withOptions({
97
- priority: import_safe.MessagePriority.NodeQuery
98
- });
99
- ctx.logNode(node.id, {
100
- endpoint: this.endpointIndex,
101
- message: "querying thermostat operating state...",
102
- direction: "outbound"
103
- });
104
- const state = await api.get();
105
- if (state) {
105
+ return super.supportsCommand(cmd);
106
+ }
107
+ get [import_API.POLL_VALUE]() {
108
+ return async function({ property }) {
109
+ switch (property) {
110
+ case "state":
111
+ return this.get();
112
+ default:
113
+ (0, import_API.throwUnsupportedProperty)(this.ccId, property);
114
+ }
115
+ };
116
+ }
117
+ async get() {
118
+ this.assertSupportsCommand(import_Types.ThermostatOperatingStateCommand, import_Types.ThermostatOperatingStateCommand.Get);
119
+ const cc = new ThermostatOperatingStateCCGet({
120
+ nodeId: this.endpoint.nodeId,
121
+ endpointIndex: this.endpoint.index
122
+ });
123
+ const response = await this.host.sendCommand(cc, this.commandOptions);
124
+ return response?.state;
125
+ }
126
+ };
127
+ return ThermostatOperatingStateCCAPI2 = _classThis;
128
+ })();
129
+ let ThermostatOperatingStateCC = (() => {
130
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Thermostat Operating State"]), (0, import_CommandClassDecorators.implementedVersion)(2), (0, import_CommandClassDecorators.ccValues)(ThermostatOperatingStateCCValues)];
131
+ let _classDescriptor;
132
+ let _classExtraInitializers = [];
133
+ let _classThis;
134
+ let _classSuper = import_CommandClass.CommandClass;
135
+ var ThermostatOperatingStateCC2 = class extends _classSuper {
136
+ static {
137
+ _classThis = this;
138
+ }
139
+ static {
140
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
141
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
142
+ ThermostatOperatingStateCC2 = _classThis = _classDescriptor.value;
143
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
144
+ __runInitializers(_classThis, _classExtraInitializers);
145
+ }
146
+ async interview(ctx) {
147
+ const node = this.getNode(ctx);
106
148
  ctx.logNode(node.id, {
107
149
  endpoint: this.endpointIndex,
108
- message: `received current thermostat operating state: ${(0, import_safe2.getEnumMemberName)(import_Types.ThermostatOperatingState, state)}`,
109
- direction: "inbound"
150
+ message: `Interviewing ${this.ccName}...`,
151
+ direction: "none"
110
152
  });
153
+ await this.refreshValues(ctx);
154
+ this.setInterviewComplete(ctx, true);
111
155
  }
112
- }
113
- };
114
- ThermostatOperatingStateCC = __decorate([
115
- (0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Thermostat Operating State"]),
116
- (0, import_CommandClassDecorators.implementedVersion)(2),
117
- (0, import_CommandClassDecorators.ccValues)(ThermostatOperatingStateCCValues)
118
- ], ThermostatOperatingStateCC);
119
- let ThermostatOperatingStateCCReport = ThermostatOperatingStateCCReport_1 = class ThermostatOperatingStateCCReport2 extends ThermostatOperatingStateCC {
120
- constructor(options) {
121
- super(options);
122
- this.state = options.state;
123
- }
124
- static from(raw, ctx) {
125
- (0, import_safe.validatePayload)(raw.payload.length >= 1);
126
- const state = raw.payload[0];
127
- return new ThermostatOperatingStateCCReport_1({
128
- nodeId: ctx.sourceNodeId,
129
- state
130
- });
131
- }
132
- state;
133
- toLogEntry(ctx) {
134
- return {
135
- ...super.toLogEntry(ctx),
136
- message: {
137
- state: (0, import_safe2.getEnumMemberName)(import_Types.ThermostatOperatingState, this.state)
156
+ async refreshValues(ctx) {
157
+ const node = this.getNode(ctx);
158
+ const endpoint = this.getEndpoint(ctx);
159
+ const api = import_API.CCAPI.create(import_safe.CommandClasses["Thermostat Operating State"], ctx, endpoint).withOptions({
160
+ priority: import_safe.MessagePriority.NodeQuery
161
+ });
162
+ ctx.logNode(node.id, {
163
+ endpoint: this.endpointIndex,
164
+ message: "querying thermostat operating state...",
165
+ direction: "outbound"
166
+ });
167
+ const state = await api.get();
168
+ if (state) {
169
+ ctx.logNode(node.id, {
170
+ endpoint: this.endpointIndex,
171
+ message: `received current thermostat operating state: ${(0, import_safe2.getEnumMemberName)(import_Types.ThermostatOperatingState, state)}`,
172
+ direction: "inbound"
173
+ });
138
174
  }
139
- };
140
- }
141
- };
142
- __decorate([
143
- (0, import_CommandClassDecorators.ccValue)(ThermostatOperatingStateCCValues.operatingState)
144
- ], ThermostatOperatingStateCCReport.prototype, "state", void 0);
145
- ThermostatOperatingStateCCReport = ThermostatOperatingStateCCReport_1 = __decorate([
146
- (0, import_CommandClassDecorators.CCCommand)(import_Types.ThermostatOperatingStateCommand.Report)
147
- ], ThermostatOperatingStateCCReport);
148
- let ThermostatOperatingStateCCGet = class ThermostatOperatingStateCCGet2 extends ThermostatOperatingStateCC {
149
- };
150
- ThermostatOperatingStateCCGet = __decorate([
151
- (0, import_CommandClassDecorators.CCCommand)(import_Types.ThermostatOperatingStateCommand.Get),
152
- (0, import_CommandClassDecorators.expectedCCResponse)(ThermostatOperatingStateCCReport)
153
- ], ThermostatOperatingStateCCGet);
175
+ }
176
+ };
177
+ return ThermostatOperatingStateCC2 = _classThis;
178
+ })();
179
+ let ThermostatOperatingStateCCReport = (() => {
180
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.ThermostatOperatingStateCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("state", ThermostatOperatingStateCCValues.operatingState)];
181
+ let _classDescriptor;
182
+ let _classExtraInitializers = [];
183
+ let _classThis;
184
+ let _classSuper = ThermostatOperatingStateCC;
185
+ var ThermostatOperatingStateCCReport2 = class extends _classSuper {
186
+ static {
187
+ _classThis = this;
188
+ }
189
+ static {
190
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
191
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
192
+ ThermostatOperatingStateCCReport2 = _classThis = _classDescriptor.value;
193
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
194
+ __runInitializers(_classThis, _classExtraInitializers);
195
+ }
196
+ constructor(options) {
197
+ super(options);
198
+ this.state = options.state;
199
+ }
200
+ static from(raw, ctx) {
201
+ (0, import_safe.validatePayload)(raw.payload.length >= 1);
202
+ const state = raw.payload[0];
203
+ return new this({
204
+ nodeId: ctx.sourceNodeId,
205
+ state
206
+ });
207
+ }
208
+ state;
209
+ toLogEntry(ctx) {
210
+ return {
211
+ ...super.toLogEntry(ctx),
212
+ message: {
213
+ state: (0, import_safe2.getEnumMemberName)(import_Types.ThermostatOperatingState, this.state)
214
+ }
215
+ };
216
+ }
217
+ };
218
+ return ThermostatOperatingStateCCReport2 = _classThis;
219
+ })();
220
+ let ThermostatOperatingStateCCGet = (() => {
221
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.ThermostatOperatingStateCommand.Get), (0, import_CommandClassDecorators.expectedCCResponse)(ThermostatOperatingStateCCReport)];
222
+ let _classDescriptor;
223
+ let _classExtraInitializers = [];
224
+ let _classThis;
225
+ let _classSuper = ThermostatOperatingStateCC;
226
+ var ThermostatOperatingStateCCGet2 = class extends _classSuper {
227
+ static {
228
+ _classThis = this;
229
+ }
230
+ static {
231
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
232
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
233
+ ThermostatOperatingStateCCGet2 = _classThis = _classDescriptor.value;
234
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
235
+ __runInitializers(_classThis, _classExtraInitializers);
236
+ }
237
+ };
238
+ return ThermostatOperatingStateCCGet2 = _classThis;
239
+ })();
154
240
  // Annotate the CommonJS export names for ESM import in node:
155
241
  0 && (module.exports = {
156
242
  ThermostatOperatingStateCC,
@@ -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\tccValue,\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)\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 ThermostatOperatingStateCCReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tstate,\n\t\t});\n\t}\n\n\t@ccValue(ThermostatOperatingStateCCValues.operatingState)\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
- "names": ["import_safe", "ThermostatOperatingStateCCAPI", "ThermostatOperatingStateCC", "ThermostatOperatingStateCCReport", "ThermostatOperatingStateCCGet"]
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kBAOO;AAEP,IAAAA,eAAkC;AAClC,iBAMO;AACP,0BAKO;AACP,oCAQO;AACP,oBAAkB;AAClB,mBAGO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,mCAAmC,OAAO,OAAO;EAC7D,GAAG,gBAAE,qBAAqB,2BAAe,4BAA4B,GAAG;IACvE,GAAG,gBAAE,uBACJ,kBACA,SACA;MACC,GAAG,0BAAc;MACjB,OAAO;MACP,YAAQ,wCAA2B,qCAAwB;KAClD;GAEX;CACD;IAKY,iCAA6B,MAAA;8BADzC,mCAAI,2BAAe,4BAA4B,CAAC,CAAC;;;;oBACC;qDAAA,YAAa;;;;;;AAAhE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACL,gBACN,KAAoC;AAEpC,cAAQ,KAAK;QACZ,KAAK,6CAAgC;AACpC,iBAAO;MACT;AACA,aAAO,MAAM,gBAAgB,GAAG;IACjC;IAEA,KAAe,qBAAU,IAAC;AACzB,aAAO,eAEN,EAAE,SAAQ,GAAE;AAEZ,gBAAQ,UAAU;UACjB,KAAK;AACJ,mBAAO,KAAK,IAAG;UAChB;AACC,qDAAyB,KAAK,MAAM,QAAQ;QAC9C;MACD;IACD;IAEO,MAAM,MAAG;AACf,WAAK,sBACJ,8CACA,6CAAgC,GAAG;AAGpC,YAAM,KAAK,IAAI,8BAA8B;QAC5C,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;OAC7B;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,aAAO,UAAU;IAClB;;;;IAMY,8BAA0B,MAAA;8BAHtC,4CAAa,2BAAe,4BAA4B,CAAC,OACzD,kDAAmB,CAAC,OACpB,wCAAS,gCAAgC,CAAC;;;;oBACK;kDAAA,YAAY;;;;;;AAA5D,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGL,MAAM,UACZ,KAAqB;AAErB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAE7B,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACX;AAED,YAAM,KAAK,cAAc,GAAG;AAG5B,WAAK,qBAAqB,KAAK,IAAI;IACpC;IAEO,MAAM,cACZ,KAAyB;AAEzB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OACjB,2BAAe,4BAA4B,GAC3C,KACA,QAAQ,EACP,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAGD,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS;QACT,WAAW;OACX;AAED,YAAM,QAAQ,MAAM,IAAI,IAAG;AAC3B,UAAI,OAAO;AACV,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SAAS,oDACR,gCACC,uCACA,KAAK,CAEP;UACA,WAAW;SACX;MACF;IACD;;;;IAUY,oCAAgC,MAAA;8BAF5C,yCAAU,6CAAgC,MAAM,OAChD,+CAAgB,SAAS,iCAAiC,cAAc,CAAC;;;;oBAEjE;wDAAA,YAA0B;;;;;;AADnC,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAA6D;AAE7D,YAAM,OAAO;AAGb,WAAK,QAAQ,QAAQ;IACtB;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,QAAkC,IAAI,QAAQ,CAAC;AAErD,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;OACA;IACF;IAEgB;IAET,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,WAAO,gCAAkB,uCAA0B,KAAK,KAAK;;;IAGhE;;;;IAKY,iCAA6B,MAAA;8BAFzC,yCAAU,6CAAgC,GAAG,OAC7C,kDAAmB,gCAAgC,CAAC;;;;oBACF;qDAAA,YAA0B;;;;;;AAA7E,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;;;;",
6
+ "names": ["import_safe"]
7
7
  }