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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +68 -68
  2. package/build/cjs/cc/AlarmSensorCC.js +12 -50
  3. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  4. package/build/cjs/cc/AssociationCC.d.ts +72 -73
  5. package/build/cjs/cc/AssociationCC.js +9 -26
  6. package/build/cjs/cc/AssociationCC.js.map +2 -2
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +71 -71
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +66 -72
  11. package/build/cjs/cc/BarrierOperatorCC.js +12 -44
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  13. package/build/cjs/cc/BasicCC.d.ts +64 -65
  14. package/build/cjs/cc/BasicCC.js +15 -46
  15. package/build/cjs/cc/BasicCC.js.map +2 -2
  16. package/build/cjs/cc/BatteryCC.d.ts +162 -165
  17. package/build/cjs/cc/BatteryCC.js +7 -84
  18. package/build/cjs/cc/BatteryCC.js.map +2 -2
  19. package/build/cjs/cc/BinarySensorCC.d.ts +36 -36
  20. package/build/cjs/cc/BinarySensorCC.js +9 -29
  21. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +34 -34
  23. package/build/cjs/cc/BinarySwitchCC.js +6 -22
  24. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  25. package/build/cjs/cc/CRC16CC.d.ts +4 -8
  26. package/build/cjs/cc/CRC16CC.js +4 -27
  27. package/build/cjs/cc/CRC16CC.js.map +2 -2
  28. package/build/cjs/cc/CentralSceneCC.d.ts +74 -74
  29. package/build/cjs/cc/CentralSceneCC.js +7 -30
  30. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  31. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +38 -40
  32. package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
  33. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  34. package/build/cjs/cc/ClockCC.d.ts +3 -3
  35. package/build/cjs/cc/ClockCC.js.map +2 -2
  36. package/build/cjs/cc/ColorSwitchCC.d.ts +117 -117
  37. package/build/cjs/cc/ColorSwitchCC.js +23 -75
  38. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  39. package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
  40. package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
  41. package/build/cjs/cc/ConfigurationCC.d.ts +48 -52
  42. package/build/cjs/cc/ConfigurationCC.js +11 -39
  43. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  44. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
  45. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  46. package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
  47. package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
  48. package/build/cjs/cc/DoorLockCC.d.ts +362 -361
  49. package/build/cjs/cc/DoorLockCC.js +51 -156
  50. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  51. package/build/cjs/cc/DoorLockLoggingCC.d.ts +14 -14
  52. package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
  53. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  54. package/build/cjs/cc/EnergyProductionCC.d.ts +16 -16
  55. package/build/cjs/cc/EnergyProductionCC.js +5 -17
  56. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  57. package/build/cjs/cc/EntryControlCC.d.ts +71 -71
  58. package/build/cjs/cc/EntryControlCC.js +9 -36
  59. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  60. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  61. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
  62. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  63. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +101 -88
  64. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +159 -34
  65. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  66. package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -33
  67. package/build/cjs/cc/HumidityControlModeCC.js +6 -15
  68. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  69. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +9 -11
  70. package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
  71. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  72. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +50 -50
  73. package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
  74. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  75. package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
  76. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  77. package/build/cjs/cc/IndicatorCC.d.ts +119 -119
  78. package/build/cjs/cc/IndicatorCC.js +15 -61
  79. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  80. package/build/cjs/cc/IrrigationCC.d.ts +581 -585
  81. package/build/cjs/cc/IrrigationCC.js +29 -233
  82. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  83. package/build/cjs/cc/LanguageCC.d.ts +21 -21
  84. package/build/cjs/cc/LanguageCC.js +4 -15
  85. package/build/cjs/cc/LanguageCC.js.map +2 -2
  86. package/build/cjs/cc/LockCC.d.ts +9 -9
  87. package/build/cjs/cc/LockCC.js +4 -12
  88. package/build/cjs/cc/LockCC.js.map +2 -2
  89. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
  90. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  91. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +67 -67
  92. package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
  93. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  94. package/build/cjs/cc/MeterCC.d.ts +120 -119
  95. package/build/cjs/cc/MeterCC.js +25 -69
  96. package/build/cjs/cc/MeterCC.js.map +2 -2
  97. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +71 -73
  98. package/build/cjs/cc/MultiChannelAssociationCC.js +10 -28
  99. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  100. package/build/cjs/cc/MultiChannelCC.d.ts +136 -146
  101. package/build/cjs/cc/MultiChannelCC.js +26 -118
  102. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  103. package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
  104. package/build/cjs/cc/MultiCommandCC.js +4 -37
  105. package/build/cjs/cc/MultiCommandCC.js.map +2 -2
  106. package/build/cjs/cc/MultilevelSensorCC.d.ts +50 -49
  107. package/build/cjs/cc/MultilevelSensorCC.js +12 -33
  108. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  109. package/build/cjs/cc/MultilevelSwitchCC.d.ts +146 -146
  110. package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
  111. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  112. package/build/cjs/cc/NodeNamingCC.d.ts +30 -30
  113. package/build/cjs/cc/NodeNamingCC.js +5 -16
  114. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  115. package/build/cjs/cc/NotificationCC.d.ts +210 -208
  116. package/build/cjs/cc/NotificationCC.js +41 -113
  117. package/build/cjs/cc/NotificationCC.js.map +2 -2
  118. package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
  119. package/build/cjs/cc/PowerlevelCC.js.map +2 -2
  120. package/build/cjs/cc/ProtectionCC.d.ts +117 -121
  121. package/build/cjs/cc/ProtectionCC.js +15 -50
  122. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  123. package/build/cjs/cc/SceneActivationCC.d.ts +29 -29
  124. package/build/cjs/cc/SceneActivationCC.js +4 -17
  125. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  126. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +35 -35
  127. package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
  128. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  129. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +36 -35
  130. package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
  131. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  132. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +109 -109
  133. package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
  134. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  135. package/build/cjs/cc/Security2CC.d.ts +15 -21
  136. package/build/cjs/cc/Security2CC.js +32 -347
  137. package/build/cjs/cc/Security2CC.js.map +3 -3
  138. package/build/cjs/cc/SecurityCC.d.ts +12 -19
  139. package/build/cjs/cc/SecurityCC.js +12 -106
  140. package/build/cjs/cc/SecurityCC.js.map +2 -2
  141. package/build/cjs/cc/SoundSwitchCC.d.ts +58 -58
  142. package/build/cjs/cc/SoundSwitchCC.js +11 -43
  143. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  144. package/build/cjs/cc/SupervisionCC.d.ts +21 -25
  145. package/build/cjs/cc/SupervisionCC.js +8 -38
  146. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  147. package/build/cjs/cc/ThermostatFanModeCC.d.ts +37 -39
  148. package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
  149. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  150. package/build/cjs/cc/ThermostatFanStateCC.d.ts +9 -11
  151. package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
  152. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  153. package/build/cjs/cc/ThermostatModeCC.d.ts +39 -41
  154. package/build/cjs/cc/ThermostatModeCC.js +8 -21
  155. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  156. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +9 -11
  157. package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
  158. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  159. package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
  160. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  161. package/build/cjs/cc/ThermostatSetpointCC.d.ts +51 -51
  162. package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
  163. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  164. package/build/cjs/cc/TimeCC.d.ts +6 -6
  165. package/build/cjs/cc/TimeCC.js.map +2 -2
  166. package/build/cjs/cc/TimeParametersCC.d.ts +9 -9
  167. package/build/cjs/cc/TimeParametersCC.js +4 -11
  168. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  169. package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
  170. package/build/cjs/cc/TransportServiceCC.js +3 -20
  171. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  172. package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
  173. package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
  174. package/build/cjs/cc/UserCodeCC.d.ts +236 -236
  175. package/build/cjs/cc/UserCodeCC.js +33 -98
  176. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  177. package/build/cjs/cc/VersionCC.d.ts +210 -212
  178. package/build/cjs/cc/VersionCC.js +7 -98
  179. package/build/cjs/cc/VersionCC.js.map +2 -2
  180. package/build/cjs/cc/WakeUpCC.d.ts +44 -44
  181. package/build/cjs/cc/WakeUpCC.js +6 -26
  182. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  183. package/build/cjs/cc/WindowCoveringCC.d.ts +118 -122
  184. package/build/cjs/cc/WindowCoveringCC.js +16 -128
  185. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  186. package/build/cjs/cc/ZWavePlusCC.d.ts +74 -74
  187. package/build/cjs/cc/ZWavePlusCC.js +4 -25
  188. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  189. package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
  190. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  191. package/build/cjs/cc/_CCValues.generated.d.ts +15814 -0
  192. package/build/cjs/cc/_CCValues.generated.js +8723 -0
  193. package/build/cjs/cc/_CCValues.generated.js.map +7 -0
  194. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  195. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  196. package/build/cjs/index.d.ts +1 -0
  197. package/build/cjs/index.js.map +1 -1
  198. package/build/cjs/index_browser.d.ts +9 -0
  199. package/build/cjs/index_browser.js +41 -1
  200. package/build/cjs/index_browser.js.map +2 -2
  201. package/build/cjs/lib/API.d.ts +7 -5
  202. package/build/cjs/lib/API.js +1 -1
  203. package/build/cjs/lib/API.js.map +2 -2
  204. package/build/cjs/lib/CCValueUtils.d.ts +14 -0
  205. package/build/cjs/lib/CCValueUtils.js +93 -0
  206. package/build/cjs/lib/CCValueUtils.js.map +7 -0
  207. package/build/cjs/lib/CommandClass.d.ts +10 -21
  208. package/build/cjs/lib/CommandClass.js +51 -106
  209. package/build/cjs/lib/CommandClass.js.map +3 -3
  210. package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
  211. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  212. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  213. package/build/cjs/lib/Values.d.ts +7 -106
  214. package/build/cjs/lib/Values.js +13 -107
  215. package/build/cjs/lib/Values.js.map +3 -3
  216. package/build/cjs/lib/traits.d.ts +94 -0
  217. package/build/cjs/lib/traits.js +17 -0
  218. package/build/cjs/lib/traits.js.map +7 -0
  219. package/build/cjs/lib/utils.d.ts +2 -2
  220. package/build/cjs/lib/utils.js.map +2 -2
  221. package/build/esm/cc/AlarmSensorCC.d.ts +68 -68
  222. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  223. package/build/esm/cc/AlarmSensorCC.js +2 -40
  224. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  225. package/build/esm/cc/AssociationCC.d.ts +72 -73
  226. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  227. package/build/esm/cc/AssociationCC.js +2 -27
  228. package/build/esm/cc/AssociationCC.js.map +1 -1
  229. package/build/esm/cc/AssociationGroupInfoCC.d.ts +71 -71
  230. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  231. package/build/esm/cc/AssociationGroupInfoCC.js +2 -19
  232. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  233. package/build/esm/cc/BarrierOperatorCC.d.ts +66 -72
  234. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  235. package/build/esm/cc/BarrierOperatorCC.js +2 -37
  236. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  237. package/build/esm/cc/BasicCC.d.ts +64 -65
  238. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  239. package/build/esm/cc/BasicCC.js +2 -34
  240. package/build/esm/cc/BasicCC.js.map +1 -1
  241. package/build/esm/cc/BatteryCC.d.ts +162 -165
  242. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  243. package/build/esm/cc/BatteryCC.js +3 -80
  244. package/build/esm/cc/BatteryCC.js.map +1 -1
  245. package/build/esm/cc/BinarySensorCC.d.ts +36 -36
  246. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  247. package/build/esm/cc/BinarySensorCC.js +2 -19
  248. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  249. package/build/esm/cc/BinarySwitchCC.d.ts +34 -34
  250. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  251. package/build/esm/cc/BinarySwitchCC.js +2 -19
  252. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  253. package/build/esm/cc/CRC16CC.d.ts +4 -8
  254. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  255. package/build/esm/cc/CRC16CC.js +4 -34
  256. package/build/esm/cc/CRC16CC.js.map +1 -1
  257. package/build/esm/cc/CentralSceneCC.d.ts +74 -74
  258. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  259. package/build/esm/cc/CentralSceneCC.js +2 -27
  260. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  261. package/build/esm/cc/ClimateControlScheduleCC.d.ts +38 -40
  262. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  263. package/build/esm/cc/ClimateControlScheduleCC.js +2 -26
  264. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  265. package/build/esm/cc/ClockCC.d.ts +3 -3
  266. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  267. package/build/esm/cc/ClockCC.js +0 -1
  268. package/build/esm/cc/ClockCC.js.map +1 -1
  269. package/build/esm/cc/ColorSwitchCC.d.ts +117 -117
  270. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  271. package/build/esm/cc/ColorSwitchCC.js +2 -58
  272. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  273. package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
  274. package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
  275. package/build/esm/cc/ConfigurationCC.d.ts +48 -52
  276. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  277. package/build/esm/cc/ConfigurationCC.js +2 -40
  278. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  279. package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
  280. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  281. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  282. package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
  283. package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
  284. package/build/esm/cc/DoorLockCC.d.ts +362 -361
  285. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  286. package/build/esm/cc/DoorLockCC.js +9 -129
  287. package/build/esm/cc/DoorLockCC.js.map +1 -1
  288. package/build/esm/cc/DoorLockLoggingCC.d.ts +14 -14
  289. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  290. package/build/esm/cc/DoorLockLoggingCC.js +2 -6
  291. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  292. package/build/esm/cc/EnergyProductionCC.d.ts +16 -16
  293. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  294. package/build/esm/cc/EnergyProductionCC.js +2 -15
  295. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  296. package/build/esm/cc/EntryControlCC.d.ts +71 -71
  297. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  298. package/build/esm/cc/EntryControlCC.js +2 -29
  299. package/build/esm/cc/EntryControlCC.js.map +1 -1
  300. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  301. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  302. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
  303. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  304. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +101 -88
  305. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  306. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +160 -53
  307. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  308. package/build/esm/cc/HumidityControlModeCC.d.ts +31 -33
  309. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  310. package/build/esm/cc/HumidityControlModeCC.js +2 -11
  311. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  312. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +9 -11
  313. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  314. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -9
  315. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  316. package/build/esm/cc/HumidityControlSetpointCC.d.ts +50 -50
  317. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  318. package/build/esm/cc/HumidityControlSetpointCC.js +2 -23
  319. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  320. package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
  321. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  322. package/build/esm/cc/InclusionControllerCC.js +0 -2
  323. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  324. package/build/esm/cc/IndicatorCC.d.ts +119 -119
  325. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  326. package/build/esm/cc/IndicatorCC.js +2 -50
  327. package/build/esm/cc/IndicatorCC.js.map +1 -1
  328. package/build/esm/cc/IrrigationCC.d.ts +581 -585
  329. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  330. package/build/esm/cc/IrrigationCC.js +3 -231
  331. package/build/esm/cc/IrrigationCC.js.map +1 -1
  332. package/build/esm/cc/LanguageCC.d.ts +21 -21
  333. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  334. package/build/esm/cc/LanguageCC.js +2 -13
  335. package/build/esm/cc/LanguageCC.js.map +1 -1
  336. package/build/esm/cc/LockCC.d.ts +9 -9
  337. package/build/esm/cc/LockCC.d.ts.map +1 -1
  338. package/build/esm/cc/LockCC.js +2 -10
  339. package/build/esm/cc/LockCC.js.map +1 -1
  340. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
  341. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  342. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -2
  343. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  344. package/build/esm/cc/ManufacturerSpecificCC.d.ts +67 -67
  345. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  346. package/build/esm/cc/ManufacturerSpecificCC.js +2 -26
  347. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  348. package/build/esm/cc/MeterCC.d.ts +120 -119
  349. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  350. package/build/esm/cc/MeterCC.js +3 -53
  351. package/build/esm/cc/MeterCC.js.map +1 -1
  352. package/build/esm/cc/MultiChannelAssociationCC.d.ts +71 -73
  353. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  354. package/build/esm/cc/MultiChannelAssociationCC.js +2 -30
  355. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  356. package/build/esm/cc/MultiChannelCC.d.ts +136 -146
  357. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  358. package/build/esm/cc/MultiChannelCC.js +10 -131
  359. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  360. package/build/esm/cc/MultiCommandCC.d.ts +4 -8
  361. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  362. package/build/esm/cc/MultiCommandCC.js +4 -38
  363. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  364. package/build/esm/cc/MultilevelSensorCC.d.ts +50 -49
  365. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  366. package/build/esm/cc/MultilevelSensorCC.js +2 -27
  367. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  368. package/build/esm/cc/MultilevelSwitchCC.d.ts +146 -146
  369. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  370. package/build/esm/cc/MultilevelSwitchCC.js +5 -105
  371. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  372. package/build/esm/cc/NodeNamingCC.d.ts +30 -30
  373. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  374. package/build/esm/cc/NodeNamingCC.js +2 -14
  375. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  376. package/build/esm/cc/NotificationCC.d.ts +210 -208
  377. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  378. package/build/esm/cc/NotificationCC.js +21 -97
  379. package/build/esm/cc/NotificationCC.js.map +1 -1
  380. package/build/esm/cc/PowerlevelCC.d.ts +6 -6
  381. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  382. package/build/esm/cc/PowerlevelCC.js +0 -4
  383. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  384. package/build/esm/cc/ProtectionCC.d.ts +117 -121
  385. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  386. package/build/esm/cc/ProtectionCC.js +2 -39
  387. package/build/esm/cc/ProtectionCC.js.map +1 -1
  388. package/build/esm/cc/SceneActivationCC.d.ts +29 -29
  389. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  390. package/build/esm/cc/SceneActivationCC.js +2 -15
  391. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  392. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +35 -35
  393. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  394. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -16
  395. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  396. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +36 -35
  397. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  398. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -16
  399. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  400. package/build/esm/cc/ScheduleEntryLockCC.d.ts +109 -109
  401. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  402. package/build/esm/cc/ScheduleEntryLockCC.js +2 -31
  403. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  404. package/build/esm/cc/Security2CC.d.ts +15 -21
  405. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  406. package/build/esm/cc/Security2CC.js +27 -475
  407. package/build/esm/cc/Security2CC.js.map +1 -1
  408. package/build/esm/cc/SecurityCC.d.ts +12 -19
  409. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  410. package/build/esm/cc/SecurityCC.js +13 -138
  411. package/build/esm/cc/SecurityCC.js.map +1 -1
  412. package/build/esm/cc/SoundSwitchCC.d.ts +58 -58
  413. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  414. package/build/esm/cc/SoundSwitchCC.js +2 -40
  415. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  416. package/build/esm/cc/SupervisionCC.d.ts +21 -25
  417. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  418. package/build/esm/cc/SupervisionCC.js +6 -41
  419. package/build/esm/cc/SupervisionCC.js.map +1 -1
  420. package/build/esm/cc/ThermostatFanModeCC.d.ts +37 -39
  421. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  422. package/build/esm/cc/ThermostatFanModeCC.js +2 -15
  423. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  424. package/build/esm/cc/ThermostatFanStateCC.d.ts +9 -11
  425. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  426. package/build/esm/cc/ThermostatFanStateCC.js +2 -9
  427. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  428. package/build/esm/cc/ThermostatModeCC.d.ts +39 -41
  429. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  430. package/build/esm/cc/ThermostatModeCC.js +2 -17
  431. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  432. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +9 -11
  433. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  434. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -9
  435. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  436. package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
  437. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  438. package/build/esm/cc/ThermostatSetbackCC.js +0 -2
  439. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  440. package/build/esm/cc/ThermostatSetpointCC.d.ts +51 -51
  441. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  442. package/build/esm/cc/ThermostatSetpointCC.js +2 -22
  443. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  444. package/build/esm/cc/TimeCC.d.ts +6 -6
  445. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  446. package/build/esm/cc/TimeCC.js +0 -4
  447. package/build/esm/cc/TimeCC.js.map +1 -1
  448. package/build/esm/cc/TimeParametersCC.d.ts +9 -9
  449. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  450. package/build/esm/cc/TimeParametersCC.js +2 -9
  451. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  452. package/build/esm/cc/TransportServiceCC.d.ts +7 -12
  453. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  454. package/build/esm/cc/TransportServiceCC.js +5 -38
  455. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  456. package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
  457. package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
  458. package/build/esm/cc/UserCodeCC.d.ts +236 -236
  459. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  460. package/build/esm/cc/UserCodeCC.js +2 -72
  461. package/build/esm/cc/UserCodeCC.js.map +1 -1
  462. package/build/esm/cc/VersionCC.d.ts +210 -212
  463. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  464. package/build/esm/cc/VersionCC.js +2 -96
  465. package/build/esm/cc/VersionCC.js.map +1 -1
  466. package/build/esm/cc/WakeUpCC.d.ts +44 -44
  467. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  468. package/build/esm/cc/WakeUpCC.js +2 -22
  469. package/build/esm/cc/WakeUpCC.js.map +1 -1
  470. package/build/esm/cc/WindowCoveringCC.d.ts +118 -122
  471. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  472. package/build/esm/cc/WindowCoveringCC.js +3 -108
  473. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  474. package/build/esm/cc/ZWavePlusCC.d.ts +74 -74
  475. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  476. package/build/esm/cc/ZWavePlusCC.js +2 -26
  477. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  478. package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
  479. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  480. package/build/esm/cc/ZWaveProtocolCC.js +0 -27
  481. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  482. package/build/esm/cc/_CCValues.generated.d.ts +15814 -0
  483. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -0
  484. package/build/esm/cc/_CCValues.generated.js +9187 -0
  485. package/build/esm/cc/_CCValues.generated.js.map +1 -0
  486. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  487. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  488. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
  489. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  490. package/build/esm/index.d.ts +1 -0
  491. package/build/esm/index.d.ts.map +1 -1
  492. package/build/esm/index_browser.d.ts +9 -0
  493. package/build/esm/index_browser.d.ts.map +1 -1
  494. package/build/esm/index_browser.js +8 -1
  495. package/build/esm/index_browser.js.map +1 -1
  496. package/build/esm/lib/API.d.ts +7 -5
  497. package/build/esm/lib/API.d.ts.map +1 -1
  498. package/build/esm/lib/API.js +1 -1
  499. package/build/esm/lib/API.js.map +1 -1
  500. package/build/esm/lib/CCValueUtils.d.ts +14 -0
  501. package/build/esm/lib/CCValueUtils.d.ts.map +1 -0
  502. package/build/esm/lib/CCValueUtils.js +62 -0
  503. package/build/esm/lib/CCValueUtils.js.map +1 -0
  504. package/build/esm/lib/CommandClass.d.ts +10 -21
  505. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  506. package/build/esm/lib/CommandClass.js +8 -101
  507. package/build/esm/lib/CommandClass.js.map +1 -1
  508. package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
  509. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  510. package/build/esm/lib/CommandClassDecorators.js +1 -1
  511. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  512. package/build/esm/lib/Values.d.ts +7 -106
  513. package/build/esm/lib/Values.d.ts.map +1 -1
  514. package/build/esm/lib/Values.js +7 -104
  515. package/build/esm/lib/Values.js.map +1 -1
  516. package/build/esm/lib/traits.d.ts +94 -0
  517. package/build/esm/lib/traits.d.ts.map +1 -0
  518. package/build/esm/lib/traits.js +2 -0
  519. package/build/esm/lib/traits.js.map +1 -0
  520. package/build/esm/lib/utils.d.ts +2 -2
  521. package/build/esm/lib/utils.d.ts.map +1 -1
  522. package/build/esm/lib/utils.js.map +1 -1
  523. package/package.json +16 -14
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/CentralSceneCC.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\tenumValuesToMetadataStates,\n\tgetCCName,\n\tmaybeUnknownToString,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n} 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 { CentralSceneCommand, CentralSceneKeys } from \"../lib/_Types.js\";\nimport * as ccUtils from \"../lib/utils.js\";\n\nexport const CentralSceneCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Central Scene\"], {\n\t\t...V.staticProperty(\"sceneCount\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsSlowRefresh\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportedKeyAttributes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\n\t\t...V.staticProperty(\n\t\t\t\"slowRefresh\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Boolean,\n\t\t\t\tlabel: \"Send held down notifications at a slow rate\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"When this is true, KeyHeldDown notifications are sent every 55s. When this is false, the notifications are sent every 200ms.\",\n\t\t\t} as const,\n\t\t),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses[\"Central Scene\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"scene\",\n\t\t\t\"scene\",\n\t\t\t(sceneNumber: number) => sceneNumber.toString().padStart(3, \"0\"),\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"scene\"\n\t\t\t\t&& typeof propertyKey === \"string\"\n\t\t\t\t&& /^\\d{3}$/.test(propertyKey),\n\t\t\t(sceneNumber: number) => ({\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: `Scene ${sceneNumber.toString().padStart(3, \"0\")}`,\n\t\t\t} as const),\n\t\t\t{ stateful: false } as const,\n\t\t),\n\t}),\n});\n\n@API(CommandClasses[\"Central Scene\"])\nexport class CentralSceneCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: CentralSceneCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase CentralSceneCommand.SupportedGet:\n\t\t\t\treturn this.isSinglecast(); // this is mandatory\n\t\t\tcase CentralSceneCommand.ConfigurationGet:\n\t\t\t\treturn this.version >= 3 && this.isSinglecast();\n\t\t\tcase CentralSceneCommand.ConfigurationSet:\n\t\t\t\treturn this.version >= 3;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getSupported() {\n\t\tthis.assertSupportsCommand(\n\t\t\tCentralSceneCommand,\n\t\t\tCentralSceneCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new CentralSceneCCSupportedGet({\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\tCentralSceneCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"sceneCount\",\n\t\t\t\t\"supportsSlowRefresh\",\n\t\t\t\t\"supportedKeyAttributes\",\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 getConfiguration() {\n\t\tthis.assertSupportsCommand(\n\t\t\tCentralSceneCommand,\n\t\t\tCentralSceneCommand.ConfigurationGet,\n\t\t);\n\n\t\tconst cc = new CentralSceneCCConfigurationGet({\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\tCentralSceneCCConfigurationReport\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, [\"slowRefresh\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async setConfiguration(\n\t\tslowRefresh: boolean,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tCentralSceneCommand,\n\t\t\tCentralSceneCommand.ConfigurationSet,\n\t\t);\n\n\t\tconst cc = new CentralSceneCCConfigurationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tslowRefresh,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(this: CentralSceneCCAPI, { property }, value) {\n\t\t\tif (property !== \"slowRefresh\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"boolean\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this.setConfiguration(value);\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: CentralSceneCCAPI, { property }) {\n\t\t\tif (property === \"slowRefresh\") {\n\t\t\t\treturn (await this.getConfiguration())?.[property];\n\t\t\t}\n\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses[\"Central Scene\"])\n@implementedVersion(3)\n@ccValues(CentralSceneCCValues)\nexport class CentralSceneCC extends CommandClass {\n\tdeclare ccCommand: CentralSceneCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t];\n\t}\n\n\tpublic skipEndpointInterview(): boolean {\n\t\t// Central scene notifications are issued by the root device\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Central Scene\"],\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// If one Association group issues CentralScene notifications,\n\t\t// we must associate ourselves with that channel\n\t\ttry {\n\t\t\tawait ccUtils.assignLifelineIssueingCommand(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tthis.ccId,\n\t\t\t\tCentralSceneCommand.Notification,\n\t\t\t);\n\t\t} catch {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: endpoint.index,\n\t\t\t\tmessage: `Configuring associations to receive ${\n\t\t\t\t\tgetCCName(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t)\n\t\t\t\t} commands failed!`,\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t}\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying supported scenes...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst ccSupported = await api.getSupported();\n\t\tif (ccSupported) {\n\t\t\tconst logMessage = `received supported scenes:\n# of scenes: ${ccSupported.sceneCount}\nsupports slow refresh: ${ccSupported.supportsSlowRefresh}`;\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 scenes timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// The slow refresh capability should be enabled whenever possible\n\t\tif (api.version >= 3 && ccSupported?.supportsSlowRefresh) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Enabling slow refresh capability...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tawait api.setConfiguration(true);\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface CentralSceneCCNotificationOptions {\n\tsequenceNumber: number;\n\tkeyAttribute: CentralSceneKeys;\n\tsceneNumber: number;\n\tslowRefresh?: boolean;\n}\n\n@CCCommand(CentralSceneCommand.Notification)\nexport class CentralSceneCCNotification extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCNotificationOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\tthis.keyAttribute = options.keyAttribute;\n\t\tthis.sceneNumber = options.sceneNumber;\n\t\tthis.slowRefresh = options.slowRefresh;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CentralSceneCCNotification {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sequenceNumber = raw.payload[0];\n\t\tconst keyAttribute: CentralSceneKeys = raw.payload[1] & 0b111;\n\t\tconst sceneNumber = raw.payload[2];\n\t\tlet slowRefresh: boolean | undefined;\n\t\tif (keyAttribute === CentralSceneKeys.KeyHeldDown) {\n\t\t\t// A receiving node MUST ignore this field if the command is not\n\t\t\t// carrying the Key Held Down key attribute.\n\t\t\tslowRefresh = !!(raw.payload[1] & 0b1000_0000);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t\tkeyAttribute,\n\t\t\tsceneNumber,\n\t\t\tslowRefresh,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// In case the interview is not yet completed, we still create some basic metadata\n\t\tconst sceneValue = CentralSceneCCValues.scene(this.sceneNumber);\n\t\tthis.ensureMetadata(ctx, sceneValue);\n\n\t\t// The spec behavior is pretty complicated, so we cannot just store\n\t\t// the value and call it a day. Handling of these notifications will\n\t\t// happen in the receiving node class\n\n\t\treturn true;\n\t}\n\n\tpublic readonly sequenceNumber: number;\n\tpublic readonly keyAttribute: CentralSceneKeys;\n\tpublic readonly sceneNumber: number;\n\tpublic readonly slowRefresh: boolean | undefined;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"sequence number\": this.sequenceNumber,\n\t\t\t\"key attribute\": getEnumMemberName(\n\t\t\t\tCentralSceneKeys,\n\t\t\t\tthis.keyAttribute,\n\t\t\t),\n\t\t\t\"scene number\": this.sceneNumber,\n\t\t};\n\t\tif (this.slowRefresh != undefined) {\n\t\t\tmessage[\"slow refresh\"] = this.slowRefresh;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface CentralSceneCCSupportedReportOptions {\n\tsceneCount: number;\n\tsupportsSlowRefresh: MaybeNotKnown<boolean>;\n\tsupportedKeyAttributes: Record<number, readonly CentralSceneKeys[]>;\n}\n\n@CCCommand(CentralSceneCommand.SupportedReport)\n@ccValueProperty(\"sceneCount\", CentralSceneCCValues.sceneCount)\n@ccValueProperty(\n\t\"supportsSlowRefresh\",\n\tCentralSceneCCValues.supportsSlowRefresh,\n)\n@ccValueProperty(\n\t\"supportedKeyAttributes\",\n\tCentralSceneCCValues.supportedKeyAttributes,\n)\nexport class CentralSceneCCSupportedReport extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sceneCount = options.sceneCount;\n\t\tthis.supportsSlowRefresh = options.supportsSlowRefresh;\n\t\tfor (\n\t\t\tconst [scene, keys] of Object.entries(\n\t\t\t\toptions.supportedKeyAttributes,\n\t\t\t)\n\t\t) {\n\t\t\tthis._supportedKeyAttributes.set(\n\t\t\t\tparseInt(scene),\n\t\t\t\tkeys,\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CentralSceneCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst sceneCount = raw.payload[0];\n\t\tconst supportsSlowRefresh: MaybeNotKnown<boolean> =\n\t\t\t!!(raw.payload[1] & 0b1000_0000);\n\t\tconst bitMaskBytes = (raw.payload[1] & 0b110) >>> 1;\n\t\tconst identicalKeyAttributes = !!(raw.payload[1] & 0b1);\n\t\tconst numEntries = identicalKeyAttributes ? 1 : sceneCount;\n\t\tvalidatePayload(raw.payload.length >= 2 + bitMaskBytes * numEntries);\n\t\tconst supportedKeyAttributes: Record<\n\t\t\tnumber,\n\t\t\treadonly CentralSceneKeys[]\n\t\t> = {};\n\t\tfor (let i = 0; i < numEntries; i++) {\n\t\t\tconst mask = raw.payload.subarray(\n\t\t\t\t2 + i * bitMaskBytes,\n\t\t\t\t2 + (i + 1) * bitMaskBytes,\n\t\t\t);\n\t\t\tsupportedKeyAttributes[i + 1] = parseBitMask(\n\t\t\t\tmask,\n\t\t\t\tCentralSceneKeys.KeyPressed,\n\t\t\t);\n\t\t}\n\n\t\tif (identicalKeyAttributes) {\n\t\t\t// The key attributes are only transmitted for scene 1, copy them to the others\n\t\t\tfor (let i = 2; i <= sceneCount; i++) {\n\t\t\t\tsupportedKeyAttributes[i] = supportedKeyAttributes[1];\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsceneCount,\n\t\t\tsupportsSlowRefresh,\n\t\t\tsupportedKeyAttributes,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Create/extend metadata for all scenes\n\t\tfor (let i = 1; i <= this.sceneCount; i++) {\n\t\t\tconst sceneValue = CentralSceneCCValues.scene(i);\n\t\t\tthis.setMetadata(ctx, sceneValue, {\n\t\t\t\t...sceneValue.meta,\n\t\t\t\tstates: enumValuesToMetadataStates(\n\t\t\t\t\tCentralSceneKeys,\n\t\t\t\t\tthis._supportedKeyAttributes.get(i),\n\t\t\t\t),\n\t\t\t});\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic readonly sceneCount: number;\n\n\t// TODO: Only offer `slowRefresh` if this is true\n\n\tpublic readonly supportsSlowRefresh: MaybeNotKnown<boolean>;\n\n\tprivate _supportedKeyAttributes = new Map<\n\t\tnumber,\n\t\treadonly CentralSceneKeys[]\n\t>();\n\n\tpublic get supportedKeyAttributes(): ReadonlyMap<\n\t\tnumber,\n\t\treadonly CentralSceneKeys[]\n\t> {\n\t\treturn this._supportedKeyAttributes;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"scene count\": this.sceneCount,\n\t\t\t\"supports slow refresh\": maybeUnknownToString(\n\t\t\t\tthis.supportsSlowRefresh,\n\t\t\t),\n\t\t};\n\t\tfor (const [scene, keys] of this.supportedKeyAttributes) {\n\t\t\tmessage[`supported attributes (scene #${scene})`] = keys\n\t\t\t\t.map((k) => `\\n\u00B7 ${getEnumMemberName(CentralSceneKeys, k)}`)\n\t\t\t\t.join(\"\");\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(CentralSceneCommand.SupportedGet)\n@expectedCCResponse(CentralSceneCCSupportedReport)\nexport class CentralSceneCCSupportedGet extends CentralSceneCC {}\n\n// @publicAPI\nexport interface CentralSceneCCConfigurationReportOptions {\n\tslowRefresh: boolean;\n}\n\n@CCCommand(CentralSceneCommand.ConfigurationReport)\n@ccValueProperty(\"slowRefresh\", CentralSceneCCValues.slowRefresh)\nexport class CentralSceneCCConfigurationReport extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCConfigurationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.slowRefresh = options.slowRefresh;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CentralSceneCCConfigurationReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst slowRefresh = !!(raw.payload[0] & 0b1000_0000);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tslowRefresh,\n\t\t});\n\t}\n\n\tpublic readonly slowRefresh: boolean;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"slow refresh\": this.slowRefresh },\n\t\t};\n\t}\n}\n\n@CCCommand(CentralSceneCommand.ConfigurationGet)\n@expectedCCResponse(CentralSceneCCConfigurationReport)\nexport class CentralSceneCCConfigurationGet extends CentralSceneCC {}\n\n// @publicAPI\nexport interface CentralSceneCCConfigurationSetOptions {\n\tslowRefresh: boolean;\n}\n\n@CCCommand(CentralSceneCommand.ConfigurationSet)\n@useSupervision()\nexport class CentralSceneCCConfigurationSet extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCConfigurationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.slowRefresh = options.slowRefresh;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): CentralSceneCCConfigurationSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new CentralSceneCCConfigurationSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic slowRefresh: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.slowRefresh ? 0b1000_0000 : 0]);\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: { \"slow refresh\": this.slowRefresh },\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tenumValuesToMetadataStates,\n\tgetCCName,\n\tmaybeUnknownToString,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n} 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 { CentralSceneCommand, CentralSceneKeys } from \"../lib/_Types.js\";\nimport * as ccUtils from \"../lib/utils.js\";\n\nexport const CentralSceneCCValues = V.defineCCValues(\n\tCommandClasses[\"Central Scene\"],\n\t{\n\t\t...V.staticProperty(\"sceneCount\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportsSlowRefresh\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\"supportedKeyAttributes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\t\t...V.staticProperty(\n\t\t\t\"slowRefresh\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Boolean,\n\t\t\t\tlabel: \"Send held down notifications at a slow rate\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"When this is true, KeyHeldDown notifications are sent every 55s. When this is false, the notifications are sent every 200ms.\",\n\t\t\t} as const,\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"scene\",\n\t\t\t\"scene\",\n\t\t\t(sceneNumber: number) => sceneNumber.toString().padStart(3, \"0\"),\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"scene\"\n\t\t\t\t&& typeof propertyKey === \"string\"\n\t\t\t\t&& /^\\d{3}$/.test(propertyKey),\n\t\t\t(sceneNumber: number) => ({\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: `Scene ${sceneNumber.toString().padStart(3, \"0\")}`,\n\t\t\t} as const),\n\t\t\t{ stateful: false } as const,\n\t\t),\n\t},\n);\n\n@API(CommandClasses[\"Central Scene\"])\nexport class CentralSceneCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: CentralSceneCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase CentralSceneCommand.SupportedGet:\n\t\t\t\treturn this.isSinglecast(); // this is mandatory\n\t\t\tcase CentralSceneCommand.ConfigurationGet:\n\t\t\t\treturn this.version >= 3 && this.isSinglecast();\n\t\t\tcase CentralSceneCommand.ConfigurationSet:\n\t\t\t\treturn this.version >= 3;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getSupported() {\n\t\tthis.assertSupportsCommand(\n\t\t\tCentralSceneCommand,\n\t\t\tCentralSceneCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new CentralSceneCCSupportedGet({\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\tCentralSceneCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"sceneCount\",\n\t\t\t\t\"supportsSlowRefresh\",\n\t\t\t\t\"supportedKeyAttributes\",\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 getConfiguration() {\n\t\tthis.assertSupportsCommand(\n\t\t\tCentralSceneCommand,\n\t\t\tCentralSceneCommand.ConfigurationGet,\n\t\t);\n\n\t\tconst cc = new CentralSceneCCConfigurationGet({\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\tCentralSceneCCConfigurationReport\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, [\"slowRefresh\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async setConfiguration(\n\t\tslowRefresh: boolean,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tCentralSceneCommand,\n\t\t\tCentralSceneCommand.ConfigurationSet,\n\t\t);\n\n\t\tconst cc = new CentralSceneCCConfigurationSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tslowRefresh,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(this: CentralSceneCCAPI, { property }, value) {\n\t\t\tif (property !== \"slowRefresh\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"boolean\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn this.setConfiguration(value);\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: CentralSceneCCAPI, { property }) {\n\t\t\tif (property === \"slowRefresh\") {\n\t\t\t\treturn (await this.getConfiguration())?.[property];\n\t\t\t}\n\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses[\"Central Scene\"])\n@implementedVersion(3)\n@ccValues(CentralSceneCCValues)\nexport class CentralSceneCC extends CommandClass {\n\tdeclare ccCommand: CentralSceneCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t];\n\t}\n\n\tpublic skipEndpointInterview(): boolean {\n\t\t// Central scene notifications are issued by the root device\n\t\treturn true;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Central Scene\"],\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// If one Association group issues CentralScene notifications,\n\t\t// we must associate ourselves with that channel\n\t\ttry {\n\t\t\tawait ccUtils.assignLifelineIssueingCommand(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tthis.ccId,\n\t\t\t\tCentralSceneCommand.Notification,\n\t\t\t);\n\t\t} catch {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: endpoint.index,\n\t\t\t\tmessage: `Configuring associations to receive ${\n\t\t\t\t\tgetCCName(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t)\n\t\t\t\t} commands failed!`,\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t}\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"Querying supported scenes...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst ccSupported = await api.getSupported();\n\t\tif (ccSupported) {\n\t\t\tconst logMessage = `received supported scenes:\n# of scenes: ${ccSupported.sceneCount}\nsupports slow refresh: ${ccSupported.supportsSlowRefresh}`;\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 scenes timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// The slow refresh capability should be enabled whenever possible\n\t\tif (api.version >= 3 && ccSupported?.supportsSlowRefresh) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"Enabling slow refresh capability...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tawait api.setConfiguration(true);\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n}\n\n// @publicAPI\nexport interface CentralSceneCCNotificationOptions {\n\tsequenceNumber: number;\n\tkeyAttribute: CentralSceneKeys;\n\tsceneNumber: number;\n\tslowRefresh?: boolean;\n}\n\n@CCCommand(CentralSceneCommand.Notification)\nexport class CentralSceneCCNotification extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCNotificationOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\tthis.keyAttribute = options.keyAttribute;\n\t\tthis.sceneNumber = options.sceneNumber;\n\t\tthis.slowRefresh = options.slowRefresh;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CentralSceneCCNotification {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sequenceNumber = raw.payload[0];\n\t\tconst keyAttribute: CentralSceneKeys = raw.payload[1] & 0b111;\n\t\tconst sceneNumber = raw.payload[2];\n\t\tlet slowRefresh: boolean | undefined;\n\t\tif (keyAttribute === CentralSceneKeys.KeyHeldDown) {\n\t\t\t// A receiving node MUST ignore this field if the command is not\n\t\t\t// carrying the Key Held Down key attribute.\n\t\t\tslowRefresh = !!(raw.payload[1] & 0b1000_0000);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsequenceNumber,\n\t\t\tkeyAttribute,\n\t\t\tsceneNumber,\n\t\t\tslowRefresh,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// In case the interview is not yet completed, we still create some basic metadata\n\t\tconst sceneValue = CentralSceneCCValues.scene(this.sceneNumber);\n\t\tthis.ensureMetadata(ctx, sceneValue);\n\n\t\t// The spec behavior is pretty complicated, so we cannot just store\n\t\t// the value and call it a day. Handling of these notifications will\n\t\t// happen in the receiving node class\n\n\t\treturn true;\n\t}\n\n\tpublic readonly sequenceNumber: number;\n\tpublic readonly keyAttribute: CentralSceneKeys;\n\tpublic readonly sceneNumber: number;\n\tpublic readonly slowRefresh: boolean | undefined;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"sequence number\": this.sequenceNumber,\n\t\t\t\"key attribute\": getEnumMemberName(\n\t\t\t\tCentralSceneKeys,\n\t\t\t\tthis.keyAttribute,\n\t\t\t),\n\t\t\t\"scene number\": this.sceneNumber,\n\t\t};\n\t\tif (this.slowRefresh != undefined) {\n\t\t\tmessage[\"slow refresh\"] = this.slowRefresh;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface CentralSceneCCSupportedReportOptions {\n\tsceneCount: number;\n\tsupportsSlowRefresh: MaybeNotKnown<boolean>;\n\tsupportedKeyAttributes: Record<number, readonly CentralSceneKeys[]>;\n}\n\n@CCCommand(CentralSceneCommand.SupportedReport)\n@ccValueProperty(\"sceneCount\", CentralSceneCCValues.sceneCount)\n@ccValueProperty(\n\t\"supportsSlowRefresh\",\n\tCentralSceneCCValues.supportsSlowRefresh,\n)\n@ccValueProperty(\n\t\"supportedKeyAttributes\",\n\tCentralSceneCCValues.supportedKeyAttributes,\n)\nexport class CentralSceneCCSupportedReport extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sceneCount = options.sceneCount;\n\t\tthis.supportsSlowRefresh = options.supportsSlowRefresh;\n\t\tfor (\n\t\t\tconst [scene, keys] of Object.entries(\n\t\t\t\toptions.supportedKeyAttributes,\n\t\t\t)\n\t\t) {\n\t\t\tthis._supportedKeyAttributes.set(\n\t\t\t\tparseInt(scene),\n\t\t\t\tkeys,\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CentralSceneCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst sceneCount = raw.payload[0];\n\t\tconst supportsSlowRefresh: MaybeNotKnown<boolean> =\n\t\t\t!!(raw.payload[1] & 0b1000_0000);\n\t\tconst bitMaskBytes = (raw.payload[1] & 0b110) >>> 1;\n\t\tconst identicalKeyAttributes = !!(raw.payload[1] & 0b1);\n\t\tconst numEntries = identicalKeyAttributes ? 1 : sceneCount;\n\t\tvalidatePayload(raw.payload.length >= 2 + bitMaskBytes * numEntries);\n\t\tconst supportedKeyAttributes: Record<\n\t\t\tnumber,\n\t\t\treadonly CentralSceneKeys[]\n\t\t> = {};\n\t\tfor (let i = 0; i < numEntries; i++) {\n\t\t\tconst mask = raw.payload.subarray(\n\t\t\t\t2 + i * bitMaskBytes,\n\t\t\t\t2 + (i + 1) * bitMaskBytes,\n\t\t\t);\n\t\t\tsupportedKeyAttributes[i + 1] = parseBitMask(\n\t\t\t\tmask,\n\t\t\t\tCentralSceneKeys.KeyPressed,\n\t\t\t);\n\t\t}\n\n\t\tif (identicalKeyAttributes) {\n\t\t\t// The key attributes are only transmitted for scene 1, copy them to the others\n\t\t\tfor (let i = 2; i <= sceneCount; i++) {\n\t\t\t\tsupportedKeyAttributes[i] = supportedKeyAttributes[1];\n\t\t\t}\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsceneCount,\n\t\t\tsupportsSlowRefresh,\n\t\t\tsupportedKeyAttributes,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Create/extend metadata for all scenes\n\t\tfor (let i = 1; i <= this.sceneCount; i++) {\n\t\t\tconst sceneValue = CentralSceneCCValues.scene(i);\n\t\t\tthis.setMetadata(ctx, sceneValue, {\n\t\t\t\t...sceneValue.meta,\n\t\t\t\tstates: enumValuesToMetadataStates(\n\t\t\t\t\tCentralSceneKeys,\n\t\t\t\t\tthis._supportedKeyAttributes.get(i),\n\t\t\t\t),\n\t\t\t});\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic readonly sceneCount: number;\n\n\t// TODO: Only offer `slowRefresh` if this is true\n\n\tpublic readonly supportsSlowRefresh: MaybeNotKnown<boolean>;\n\n\tprivate _supportedKeyAttributes = new Map<\n\t\tnumber,\n\t\treadonly CentralSceneKeys[]\n\t>();\n\n\tpublic get supportedKeyAttributes(): ReadonlyMap<\n\t\tnumber,\n\t\treadonly CentralSceneKeys[]\n\t> {\n\t\treturn this._supportedKeyAttributes;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"scene count\": this.sceneCount,\n\t\t\t\"supports slow refresh\": maybeUnknownToString(\n\t\t\t\tthis.supportsSlowRefresh,\n\t\t\t),\n\t\t};\n\t\tfor (const [scene, keys] of this.supportedKeyAttributes) {\n\t\t\tmessage[`supported attributes (scene #${scene})`] = keys\n\t\t\t\t.map((k) => `\\n\u00B7 ${getEnumMemberName(CentralSceneKeys, k)}`)\n\t\t\t\t.join(\"\");\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(CentralSceneCommand.SupportedGet)\n@expectedCCResponse(CentralSceneCCSupportedReport)\nexport class CentralSceneCCSupportedGet extends CentralSceneCC {}\n\n// @publicAPI\nexport interface CentralSceneCCConfigurationReportOptions {\n\tslowRefresh: boolean;\n}\n\n@CCCommand(CentralSceneCommand.ConfigurationReport)\n@ccValueProperty(\"slowRefresh\", CentralSceneCCValues.slowRefresh)\nexport class CentralSceneCCConfigurationReport extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCConfigurationReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.slowRefresh = options.slowRefresh;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): CentralSceneCCConfigurationReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst slowRefresh = !!(raw.payload[0] & 0b1000_0000);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tslowRefresh,\n\t\t});\n\t}\n\n\tpublic readonly slowRefresh: boolean;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"slow refresh\": this.slowRefresh },\n\t\t};\n\t}\n}\n\n@CCCommand(CentralSceneCommand.ConfigurationGet)\n@expectedCCResponse(CentralSceneCCConfigurationReport)\nexport class CentralSceneCCConfigurationGet extends CentralSceneCC {}\n\n// @publicAPI\nexport interface CentralSceneCCConfigurationSetOptions {\n\tslowRefresh: boolean;\n}\n\n@CCCommand(CentralSceneCommand.ConfigurationSet)\n@useSupervision()\nexport class CentralSceneCCConfigurationSet extends CentralSceneCC {\n\tpublic constructor(\n\t\toptions: WithAddress<CentralSceneCCConfigurationSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.slowRefresh = options.slowRefresh;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): CentralSceneCCConfigurationSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new CentralSceneCCConfigurationSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic slowRefresh: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.slowRefresh ? 0b1000_0000 : 0]);\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: { \"slow refresh\": this.slowRefresh },\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,31 +1,29 @@
1
- import { CommandClasses, 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 { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core/safe";
3
3
  import { Bytes } from "@zwave-js/shared/safe";
4
4
  import { CCAPI } from "../lib/API.js";
5
5
  import { type CCRaw, CommandClass } from "../lib/CommandClass.js";
6
6
  import { ClimateControlScheduleCommand, ScheduleOverrideType, type SetbackState, type Switchpoint, Weekday } from "../lib/_Types.js";
7
7
  export declare const ClimateControlScheduleCCValues: Readonly<{
8
- schedule: ((weekday: Weekday) => {
9
- readonly meta: {
10
- readonly label: `Schedule (${string})`;
11
- readonly type: "any";
12
- readonly readable: true;
13
- readonly writeable: true;
14
- };
15
- readonly id: {
16
- commandClass: (typeof CommandClasses)["Climate Control Schedule"];
17
- property: "schedule";
18
- propertyKey: Weekday;
8
+ overrideType: {
9
+ id: {
10
+ readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
11
+ readonly property: "overrideType";
19
12
  };
20
- readonly endpoint: (endpoint?: number | undefined) => {
13
+ endpoint: (endpoint?: number) => {
21
14
  readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
22
15
  readonly endpoint: number;
23
- readonly property: "schedule";
24
- readonly propertyKey: Weekday;
16
+ readonly property: "overrideType";
25
17
  };
26
- }) & {
27
18
  is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
28
- readonly options: {
19
+ readonly meta: {
20
+ readonly label: "Override type";
21
+ readonly states: Record<number, string>;
22
+ readonly type: "number";
23
+ readonly readable: true;
24
+ readonly writeable: true;
25
+ };
26
+ options: {
29
27
  readonly internal: false;
30
28
  readonly minVersion: 1;
31
29
  readonly secret: false;
@@ -35,16 +33,16 @@ export declare const ClimateControlScheduleCCValues: Readonly<{
35
33
  };
36
34
  };
37
35
  overrideState: {
38
- readonly id: {
39
- commandClass: (typeof CommandClasses)["Climate Control Schedule"];
40
- property: "overrideState";
36
+ id: {
37
+ readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
38
+ readonly property: "overrideState";
41
39
  };
42
- readonly endpoint: (endpoint?: number | undefined) => {
40
+ endpoint: (endpoint?: number) => {
43
41
  readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
44
42
  readonly endpoint: number;
45
43
  readonly property: "overrideState";
46
44
  };
47
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
45
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
48
46
  readonly meta: {
49
47
  readonly label: "Override state";
50
48
  readonly min: -12.8;
@@ -52,7 +50,7 @@ export declare const ClimateControlScheduleCCValues: Readonly<{
52
50
  readonly readable: true;
53
51
  readonly writeable: true;
54
52
  };
55
- readonly options: {
53
+ options: {
56
54
  readonly internal: false;
57
55
  readonly minVersion: 1;
58
56
  readonly secret: false;
@@ -61,27 +59,27 @@ export declare const ClimateControlScheduleCCValues: Readonly<{
61
59
  readonly autoCreate: true;
62
60
  };
63
61
  };
64
- overrideType: {
65
- readonly id: {
66
- commandClass: (typeof CommandClasses)["Climate Control Schedule"];
67
- property: "overrideType";
62
+ schedule: ((weekday: Weekday) => {
63
+ id: {
64
+ readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
65
+ readonly property: "schedule";
66
+ readonly propertyKey: Weekday;
68
67
  };
69
- readonly endpoint: (endpoint?: number | undefined) => {
68
+ endpoint: (endpoint?: number) => {
70
69
  readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
71
70
  readonly endpoint: number;
72
- readonly property: "overrideType";
71
+ readonly property: "schedule";
72
+ readonly propertyKey: Weekday;
73
73
  };
74
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
75
74
  readonly meta: {
76
- readonly label: "Override type";
77
- readonly states: {
78
- [x: number]: string;
79
- };
80
- readonly type: "number";
75
+ readonly label: `Schedule (${string})`;
76
+ readonly type: "any";
81
77
  readonly readable: true;
82
78
  readonly writeable: true;
83
79
  };
84
- readonly options: {
80
+ }) & {
81
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
82
+ options: {
85
83
  readonly internal: false;
86
84
  readonly minVersion: 1;
87
85
  readonly secret: false;
@@ -114,7 +112,7 @@ export declare class ClimateControlScheduleCCSet extends ClimateControlScheduleC
114
112
  static from(_raw: CCRaw, _ctx: CCParsingContext): ClimateControlScheduleCCSet;
115
113
  switchPoints: Switchpoint[];
116
114
  weekday: Weekday;
117
- serialize(ctx: CCEncodingContext): Bytes;
115
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
118
116
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
119
117
  }
120
118
  export interface ClimateControlScheduleCCReportOptions {
@@ -135,7 +133,7 @@ export declare class ClimateControlScheduleCCGet extends ClimateControlScheduleC
135
133
  constructor(options: WithAddress<ClimateControlScheduleCCGetOptions>);
136
134
  static from(_raw: CCRaw, _ctx: CCParsingContext): ClimateControlScheduleCCGet;
137
135
  weekday: Weekday;
138
- serialize(ctx: CCEncodingContext): Bytes;
136
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
139
137
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
140
138
  }
141
139
  export interface ClimateControlScheduleCCChangedReportOptions {
@@ -171,7 +169,7 @@ export declare class ClimateControlScheduleCCOverrideSet extends ClimateControlS
171
169
  static from(_raw: CCRaw, _ctx: CCParsingContext): ClimateControlScheduleCCOverrideSet;
172
170
  overrideType: ScheduleOverrideType;
173
171
  overrideState: SetbackState;
174
- serialize(ctx: CCEncodingContext): Bytes;
172
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
175
173
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
176
174
  }
177
175
  //# sourceMappingURL=ClimateControlScheduleCC.d.ts.map
@@ -39,7 +39,7 @@ __export(ClimateControlScheduleCC_exports, {
39
39
  ClimateControlScheduleCCOverrideSet: () => ClimateControlScheduleCCOverrideSet,
40
40
  ClimateControlScheduleCCReport: () => ClimateControlScheduleCCReport,
41
41
  ClimateControlScheduleCCSet: () => ClimateControlScheduleCCSet,
42
- ClimateControlScheduleCCValues: () => ClimateControlScheduleCCValues
42
+ ClimateControlScheduleCCValues: () => import_CCValues_generated.ClimateControlScheduleCCValues
43
43
  });
44
44
  module.exports = __toCommonJS(ClimateControlScheduleCC_exports);
45
45
  var __validateArgs = __toESM(require("./ClimateControlScheduleCC._validateArgs.js"), 1);
@@ -52,6 +52,7 @@ var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
52
52
  var import_Values = require("../lib/Values.js");
53
53
  var import_Types = require("../lib/_Types.js");
54
54
  var import_serializers = require("../lib/serializers.js");
55
+ var import_CCValues_generated = require("./_CCValues.generated.js");
55
56
  var __runInitializers = function(thisArg, initializers, value) {
56
57
  var useValue = arguments.length > 2;
57
58
  for (var i = 0; i < initializers.length; i++) {
@@ -93,26 +94,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
93
94
  done = true;
94
95
  };
95
96
  const { validateArgs_ClimateControlScheduleCCAPI_set, validateArgs_ClimateControlScheduleCCAPI_get, validateArgs_ClimateControlScheduleCCAPI_setOverride } = __validateArgs;
96
- const ClimateControlScheduleCCValues = Object.freeze({
97
- ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses["Climate Control Schedule"], {
98
- ...import_Values.V.staticProperty("overrideType", {
99
- ...import_safe.ValueMetadata.Number,
100
- label: "Override type",
101
- states: (0, import_safe.enumValuesToMetadataStates)(import_Types.ScheduleOverrideType)
102
- }),
103
- ...import_Values.V.staticProperty("overrideState", {
104
- ...import_safe.ValueMetadata.Number,
105
- label: "Override state",
106
- min: -12.8
107
- })
108
- }),
109
- ...import_Values.V.defineDynamicCCValues(import_safe.CommandClasses["Climate Control Schedule"], {
110
- ...import_Values.V.dynamicPropertyAndKeyWithName("schedule", "schedule", (weekday) => weekday, ({ property, propertyKey }) => property === "switchPoints" && typeof propertyKey === "number" && propertyKey >= import_Types.Weekday.Monday && propertyKey <= import_Types.Weekday.Sunday, (weekday) => ({
111
- ...import_safe.ValueMetadata.Any,
112
- label: `Schedule (${(0, import_safe3.getEnumMemberName)(import_Types.Weekday, weekday)})`
113
- }))
114
- })
115
- });
116
97
  let ClimateControlScheduleCCAPI = (() => {
117
98
  let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Climate Control Schedule"])];
118
99
  let _classDescriptor;
@@ -218,7 +199,7 @@ let ClimateControlScheduleCCAPI = (() => {
218
199
  return ClimateControlScheduleCCAPI2 = _classThis;
219
200
  })();
220
201
  let ClimateControlScheduleCC = (() => {
221
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Climate Control Schedule"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(ClimateControlScheduleCCValues)];
202
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Climate Control Schedule"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.ClimateControlScheduleCCValues)];
222
203
  let _classDescriptor;
223
204
  let _classExtraInitializers = [];
224
205
  let _classThis;
@@ -299,7 +280,7 @@ let ClimateControlScheduleCCSet = (() => {
299
280
  return ClimateControlScheduleCCSet2 = _classThis;
300
281
  })();
301
282
  let ClimateControlScheduleCCReport = (() => {
302
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.ClimateControlScheduleCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("schedule", ClimateControlScheduleCCValues.schedule, (self) => [self.weekday])];
283
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.ClimateControlScheduleCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("schedule", import_CCValues_generated.ClimateControlScheduleCCValues.schedule, (self) => [self.weekday])];
303
284
  let _classDescriptor;
304
285
  let _classExtraInitializers = [];
305
286
  let _classThis;
@@ -459,7 +440,7 @@ let ClimateControlScheduleCCChangedGet = (() => {
459
440
  return ClimateControlScheduleCCChangedGet2 = _classThis;
460
441
  })();
461
442
  let ClimateControlScheduleCCOverrideReport = (() => {
462
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.ClimateControlScheduleCommand.OverrideReport), (0, import_CommandClassDecorators.ccValueProperty)("overrideType", ClimateControlScheduleCCValues.overrideType), (0, import_CommandClassDecorators.ccValueProperty)("overrideState", ClimateControlScheduleCCValues.overrideState)];
443
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.ClimateControlScheduleCommand.OverrideReport), (0, import_CommandClassDecorators.ccValueProperty)("overrideType", import_CCValues_generated.ClimateControlScheduleCCValues.overrideType), (0, import_CommandClassDecorators.ccValueProperty)("overrideState", import_CCValues_generated.ClimateControlScheduleCCValues.overrideState)];
463
444
  let _classDescriptor;
464
445
  let _classExtraInitializers = [];
465
446
  let _classThis;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/ClimateControlScheduleCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tenumValuesToMetadataStates,\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 } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tClimateControlScheduleCommand,\n\tScheduleOverrideType,\n\ttype SetbackState,\n\ttype Switchpoint,\n\tWeekday,\n} from \"../lib/_Types.js\";\nimport {\n\tdecodeSetbackState,\n\tdecodeSwitchpoint,\n\tencodeSetbackState,\n\tencodeSwitchpoint,\n} from \"../lib/serializers.js\";\n\nexport const ClimateControlScheduleCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Climate Control Schedule\"], {\n\t\t...V.staticProperty(\n\t\t\t\"overrideType\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Number,\n\t\t\t\tlabel: \"Override type\",\n\t\t\t\tstates: enumValuesToMetadataStates(ScheduleOverrideType),\n\t\t\t} as const,\n\t\t),\n\t\t...V.staticProperty(\n\t\t\t\"overrideState\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Number,\n\t\t\t\tlabel: \"Override state\",\n\t\t\t\tmin: -12.8,\n\t\t\t} as const,\n\t\t),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses[\"Climate Control Schedule\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"schedule\",\n\t\t\t\"schedule\",\n\t\t\t(weekday: Weekday) => weekday,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"switchPoints\"\n\t\t\t\t&& typeof propertyKey === \"number\"\n\t\t\t\t&& propertyKey >= Weekday.Monday\n\t\t\t\t&& propertyKey <= Weekday.Sunday,\n\t\t\t(weekday: Weekday) => ({\n\t\t\t\t...ValueMetadata.Any,\n\t\t\t\tlabel: `Schedule (${getEnumMemberName(Weekday, weekday)})`,\n\t\t\t} as const),\n\t\t),\n\t}),\n});\n\n@API(CommandClasses[\"Climate Control Schedule\"])\nexport class ClimateControlScheduleCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: ClimateControlScheduleCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ClimateControlScheduleCommand.Set:\n\t\t\tcase ClimateControlScheduleCommand.OverrideSet:\n\t\t\t\treturn true; // mandatory\n\t\t\tcase ClimateControlScheduleCommand.Get:\n\t\t\tcase ClimateControlScheduleCommand.ChangedGet:\n\t\t\tcase ClimateControlScheduleCommand.OverrideGet:\n\t\t\t\treturn this.isSinglecast();\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\tweekday: Weekday,\n\t\tswitchPoints: Switchpoint[],\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.Set,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tweekday,\n\t\t\tswitchPoints,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async get(\n\t\tweekday: Weekday,\n\t): Promise<MaybeNotKnown<readonly Switchpoint[]>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.Get,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tweekday,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tClimateControlScheduleCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.schedule;\n\t}\n\n\tpublic async getChangeCounter(): Promise<MaybeNotKnown<number>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.ChangedGet,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCChangedGet({\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\tClimateControlScheduleCCChangedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.changeCounter;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getOverride() {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.OverrideGet,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCOverrideGet({\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\tClimateControlScheduleCCOverrideReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\ttype: response.overrideType,\n\t\t\t\tstate: response.overrideState,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async setOverride(\n\t\ttype: ScheduleOverrideType,\n\t\tstate: SetbackState,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.OverrideSet,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCOverrideSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\toverrideType: type,\n\t\t\toverrideState: state,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"Climate Control Schedule\"])\n@implementedVersion(1)\n@ccValues(ClimateControlScheduleCCValues)\nexport class ClimateControlScheduleCC extends CommandClass {\n\tdeclare ccCommand: ClimateControlScheduleCommand;\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCSetOptions {\n\tweekday: Weekday;\n\tswitchPoints: Switchpoint[];\n}\n\n@CCCommand(ClimateControlScheduleCommand.Set)\n@useSupervision()\nexport class ClimateControlScheduleCCSet extends ClimateControlScheduleCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.switchPoints = options.switchPoints;\n\t\tthis.weekday = options.weekday;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): ClimateControlScheduleCCSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClimateControlScheduleCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic switchPoints: Switchpoint[];\n\tpublic weekday: Weekday;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\t// Make sure we have exactly 9 entries\n\t\tconst allSwitchPoints = this.switchPoints.slice(0, 9); // maximum 9\n\t\twhile (allSwitchPoints.length < 9) {\n\t\t\tallSwitchPoints.push({\n\t\t\t\thour: 0,\n\t\t\t\tminute: 0,\n\t\t\t\tstate: \"Unused\",\n\t\t\t});\n\t\t}\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.weekday & 0b111]),\n\t\t\t...allSwitchPoints.map((sp) => encodeSwitchpoint(sp)),\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\tweekday: getEnumMemberName(Weekday, this.weekday),\n\t\t\t\tswitchpoints: `${\n\t\t\t\t\tthis.switchPoints\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(sp) => `\n\u00B7 ${sp.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\t\t\t\tsp.minute.toString().padStart(\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t} --> ${sp.state}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCReportOptions {\n\tweekday: Weekday;\n\tschedule: Switchpoint[];\n}\n\n@CCCommand(ClimateControlScheduleCommand.Report)\n@ccValueProperty(\n\t\"schedule\",\n\tClimateControlScheduleCCValues.schedule,\n\t(self) => [self.weekday],\n)\nexport class ClimateControlScheduleCCReport extends ClimateControlScheduleCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.weekday = options.weekday;\n\t\tthis.schedule = options.schedule;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ClimateControlScheduleCCReport {\n\t\tvalidatePayload(raw.payload.length >= 28);\n\t\tconst weekday: Weekday = raw.payload[0] & 0b111;\n\t\tconst allSwitchpoints: Switchpoint[] = [];\n\t\tfor (let i = 0; i <= 8; i++) {\n\t\t\tallSwitchpoints.push(\n\t\t\t\tdecodeSwitchpoint(raw.payload.subarray(1 + 3 * i)),\n\t\t\t);\n\t\t}\n\n\t\tconst schedule: Switchpoint[] = allSwitchpoints.filter((sp) =>\n\t\t\tsp.state !== \"Unused\"\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tweekday,\n\t\t\tschedule,\n\t\t});\n\t}\n\n\tpublic readonly weekday: Weekday;\n\n\tpublic readonly schedule: readonly Switchpoint[];\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\tweekday: getEnumMemberName(Weekday, this.weekday),\n\t\t\t\tschedule: `${\n\t\t\t\t\tthis.schedule\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(sp) => `\n\u00B7 ${sp.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\t\t\t\tsp.minute.toString().padStart(\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t} --> ${sp.state}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCGetOptions {\n\tweekday: Weekday;\n}\n\n@CCCommand(ClimateControlScheduleCommand.Get)\n@expectedCCResponse(ClimateControlScheduleCCReport)\nexport class ClimateControlScheduleCCGet extends ClimateControlScheduleCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.weekday = options.weekday;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): ClimateControlScheduleCCGet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClimateControlScheduleCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic weekday: Weekday;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.weekday & 0b111]);\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: { weekday: getEnumMemberName(Weekday, this.weekday) },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCChangedReportOptions {\n\tchangeCounter: number;\n}\n\n@CCCommand(ClimateControlScheduleCommand.ChangedReport)\nexport class ClimateControlScheduleCCChangedReport\n\textends ClimateControlScheduleCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCChangedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.changeCounter = options.changeCounter;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ClimateControlScheduleCCChangedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst changeCounter = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tchangeCounter,\n\t\t});\n\t}\n\n\tpublic readonly changeCounter: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"change counter\": this.changeCounter },\n\t\t};\n\t}\n}\n\n@CCCommand(ClimateControlScheduleCommand.ChangedGet)\n@expectedCCResponse(ClimateControlScheduleCCChangedReport)\nexport class ClimateControlScheduleCCChangedGet\n\textends ClimateControlScheduleCC\n{}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCOverrideReportOptions {\n\toverrideType: ScheduleOverrideType;\n\toverrideState: SetbackState;\n}\n\n@CCCommand(ClimateControlScheduleCommand.OverrideReport)\n@ccValueProperty(\"overrideType\", ClimateControlScheduleCCValues.overrideType)\n@ccValueProperty(\"overrideState\", ClimateControlScheduleCCValues.overrideState)\nexport class ClimateControlScheduleCCOverrideReport\n\textends ClimateControlScheduleCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCOverrideReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.overrideType = options.overrideType;\n\t\tthis.overrideState = options.overrideState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ClimateControlScheduleCCOverrideReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst overrideType: ScheduleOverrideType = raw.payload[0] & 0b11;\n\t\tconst overrideState: 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\toverrideType,\n\t\t\toverrideState,\n\t\t});\n\t}\n\n\tpublic readonly overrideType: ScheduleOverrideType;\n\n\tpublic readonly overrideState: SetbackState;\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\"override type\": getEnumMemberName(\n\t\t\t\t\tScheduleOverrideType,\n\t\t\t\t\tthis.overrideType,\n\t\t\t\t),\n\t\t\t\t\"override state\": this.overrideState,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ClimateControlScheduleCommand.OverrideGet)\n@expectedCCResponse(ClimateControlScheduleCCOverrideReport)\nexport class ClimateControlScheduleCCOverrideGet\n\textends ClimateControlScheduleCC\n{}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCOverrideSetOptions {\n\toverrideType: ScheduleOverrideType;\n\toverrideState: SetbackState;\n}\n\n@CCCommand(ClimateControlScheduleCommand.OverrideSet)\n@useSupervision()\nexport class ClimateControlScheduleCCOverrideSet\n\textends ClimateControlScheduleCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCOverrideSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.overrideType = options.overrideType;\n\t\tthis.overrideState = options.overrideState;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): ClimateControlScheduleCCOverrideSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClimateControlScheduleCCOverrideSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic overrideType: ScheduleOverrideType;\n\tpublic overrideState: SetbackState;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.overrideType & 0b11],\n\t\t\tencodeSetbackState(this.overrideState),\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\"override type\": getEnumMemberName(\n\t\t\t\t\tScheduleOverrideType,\n\t\t\t\t\tthis.overrideType,\n\t\t\t\t),\n\t\t\t\t\"override state\": this.overrideState,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tenumValuesToMetadataStates,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { getEnumMemberName } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass } from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tClimateControlScheduleCommand,\n\tScheduleOverrideType,\n\ttype SetbackState,\n\ttype Switchpoint,\n\tWeekday,\n} from \"../lib/_Types.js\";\nimport {\n\tdecodeSetbackState,\n\tdecodeSwitchpoint,\n\tencodeSetbackState,\n\tencodeSwitchpoint,\n} from \"../lib/serializers.js\";\n\nexport const ClimateControlScheduleCCValues = V.defineCCValues(\n\tCommandClasses[\"Climate Control Schedule\"],\n\t{\n\t\t...V.staticProperty(\n\t\t\t\"overrideType\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Number,\n\t\t\t\tlabel: \"Override type\",\n\t\t\t\tstates: enumValuesToMetadataStates(ScheduleOverrideType),\n\t\t\t} as const,\n\t\t),\n\t\t...V.staticProperty(\n\t\t\t\"overrideState\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Number,\n\t\t\t\tlabel: \"Override state\",\n\t\t\t\tmin: -12.8,\n\t\t\t} as const,\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"schedule\",\n\t\t\t\"schedule\",\n\t\t\t(weekday: Weekday) => weekday,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"switchPoints\"\n\t\t\t\t&& typeof propertyKey === \"number\"\n\t\t\t\t&& propertyKey >= Weekday.Monday\n\t\t\t\t&& propertyKey <= Weekday.Sunday,\n\t\t\t(weekday: Weekday) => ({\n\t\t\t\t...ValueMetadata.Any,\n\t\t\t\tlabel: `Schedule (${getEnumMemberName(Weekday, weekday)})`,\n\t\t\t} as const),\n\t\t),\n\t},\n);\n\n@API(CommandClasses[\"Climate Control Schedule\"])\nexport class ClimateControlScheduleCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: ClimateControlScheduleCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ClimateControlScheduleCommand.Set:\n\t\t\tcase ClimateControlScheduleCommand.OverrideSet:\n\t\t\t\treturn true; // mandatory\n\t\t\tcase ClimateControlScheduleCommand.Get:\n\t\t\tcase ClimateControlScheduleCommand.ChangedGet:\n\t\t\tcase ClimateControlScheduleCommand.OverrideGet:\n\t\t\t\treturn this.isSinglecast();\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\tweekday: Weekday,\n\t\tswitchPoints: Switchpoint[],\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.Set,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tweekday,\n\t\t\tswitchPoints,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async get(\n\t\tweekday: Weekday,\n\t): Promise<MaybeNotKnown<readonly Switchpoint[]>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.Get,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tweekday,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tClimateControlScheduleCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.schedule;\n\t}\n\n\tpublic async getChangeCounter(): Promise<MaybeNotKnown<number>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.ChangedGet,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCChangedGet({\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\tClimateControlScheduleCCChangedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.changeCounter;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getOverride() {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.OverrideGet,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCOverrideGet({\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\tClimateControlScheduleCCOverrideReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\ttype: response.overrideType,\n\t\t\t\tstate: response.overrideState,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async setOverride(\n\t\ttype: ScheduleOverrideType,\n\t\tstate: SetbackState,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tClimateControlScheduleCommand,\n\t\t\tClimateControlScheduleCommand.OverrideSet,\n\t\t);\n\n\t\tconst cc = new ClimateControlScheduleCCOverrideSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\toverrideType: type,\n\t\t\toverrideState: state,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses[\"Climate Control Schedule\"])\n@implementedVersion(1)\n@ccValues(ClimateControlScheduleCCValues)\nexport class ClimateControlScheduleCC extends CommandClass {\n\tdeclare ccCommand: ClimateControlScheduleCommand;\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCSetOptions {\n\tweekday: Weekday;\n\tswitchPoints: Switchpoint[];\n}\n\n@CCCommand(ClimateControlScheduleCommand.Set)\n@useSupervision()\nexport class ClimateControlScheduleCCSet extends ClimateControlScheduleCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.switchPoints = options.switchPoints;\n\t\tthis.weekday = options.weekday;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): ClimateControlScheduleCCSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClimateControlScheduleCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic switchPoints: Switchpoint[];\n\tpublic weekday: Weekday;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\t// Make sure we have exactly 9 entries\n\t\tconst allSwitchPoints = this.switchPoints.slice(0, 9); // maximum 9\n\t\twhile (allSwitchPoints.length < 9) {\n\t\t\tallSwitchPoints.push({\n\t\t\t\thour: 0,\n\t\t\t\tminute: 0,\n\t\t\t\tstate: \"Unused\",\n\t\t\t});\n\t\t}\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([this.weekday & 0b111]),\n\t\t\t...allSwitchPoints.map((sp) => encodeSwitchpoint(sp)),\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\tweekday: getEnumMemberName(Weekday, this.weekday),\n\t\t\t\tswitchpoints: `${\n\t\t\t\t\tthis.switchPoints\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(sp) => `\n\u00B7 ${sp.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\t\t\t\tsp.minute.toString().padStart(\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t} --> ${sp.state}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCReportOptions {\n\tweekday: Weekday;\n\tschedule: Switchpoint[];\n}\n\n@CCCommand(ClimateControlScheduleCommand.Report)\n@ccValueProperty(\n\t\"schedule\",\n\tClimateControlScheduleCCValues.schedule,\n\t(self) => [self.weekday],\n)\nexport class ClimateControlScheduleCCReport extends ClimateControlScheduleCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.weekday = options.weekday;\n\t\tthis.schedule = options.schedule;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ClimateControlScheduleCCReport {\n\t\tvalidatePayload(raw.payload.length >= 28);\n\t\tconst weekday: Weekday = raw.payload[0] & 0b111;\n\t\tconst allSwitchpoints: Switchpoint[] = [];\n\t\tfor (let i = 0; i <= 8; i++) {\n\t\t\tallSwitchpoints.push(\n\t\t\t\tdecodeSwitchpoint(raw.payload.subarray(1 + 3 * i)),\n\t\t\t);\n\t\t}\n\n\t\tconst schedule: Switchpoint[] = allSwitchpoints.filter((sp) =>\n\t\t\tsp.state !== \"Unused\"\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tweekday,\n\t\t\tschedule,\n\t\t});\n\t}\n\n\tpublic readonly weekday: Weekday;\n\n\tpublic readonly schedule: readonly Switchpoint[];\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\tweekday: getEnumMemberName(Weekday, this.weekday),\n\t\t\t\tschedule: `${\n\t\t\t\t\tthis.schedule\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(sp) => `\n\u00B7 ${sp.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\t\t\t\tsp.minute.toString().padStart(\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\"0\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t} --> ${sp.state}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCGetOptions {\n\tweekday: Weekday;\n}\n\n@CCCommand(ClimateControlScheduleCommand.Get)\n@expectedCCResponse(ClimateControlScheduleCCReport)\nexport class ClimateControlScheduleCCGet extends ClimateControlScheduleCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.weekday = options.weekday;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): ClimateControlScheduleCCGet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClimateControlScheduleCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic weekday: Weekday;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.weekday & 0b111]);\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: { weekday: getEnumMemberName(Weekday, this.weekday) },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCChangedReportOptions {\n\tchangeCounter: number;\n}\n\n@CCCommand(ClimateControlScheduleCommand.ChangedReport)\nexport class ClimateControlScheduleCCChangedReport\n\textends ClimateControlScheduleCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCChangedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.changeCounter = options.changeCounter;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ClimateControlScheduleCCChangedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst changeCounter = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tchangeCounter,\n\t\t});\n\t}\n\n\tpublic readonly changeCounter: number;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"change counter\": this.changeCounter },\n\t\t};\n\t}\n}\n\n@CCCommand(ClimateControlScheduleCommand.ChangedGet)\n@expectedCCResponse(ClimateControlScheduleCCChangedReport)\nexport class ClimateControlScheduleCCChangedGet\n\textends ClimateControlScheduleCC\n{}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCOverrideReportOptions {\n\toverrideType: ScheduleOverrideType;\n\toverrideState: SetbackState;\n}\n\n@CCCommand(ClimateControlScheduleCommand.OverrideReport)\n@ccValueProperty(\"overrideType\", ClimateControlScheduleCCValues.overrideType)\n@ccValueProperty(\"overrideState\", ClimateControlScheduleCCValues.overrideState)\nexport class ClimateControlScheduleCCOverrideReport\n\textends ClimateControlScheduleCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCOverrideReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.overrideType = options.overrideType;\n\t\tthis.overrideState = options.overrideState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ClimateControlScheduleCCOverrideReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst overrideType: ScheduleOverrideType = raw.payload[0] & 0b11;\n\t\tconst overrideState: 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\toverrideType,\n\t\t\toverrideState,\n\t\t});\n\t}\n\n\tpublic readonly overrideType: ScheduleOverrideType;\n\n\tpublic readonly overrideState: SetbackState;\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\"override type\": getEnumMemberName(\n\t\t\t\t\tScheduleOverrideType,\n\t\t\t\t\tthis.overrideType,\n\t\t\t\t),\n\t\t\t\t\"override state\": this.overrideState,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ClimateControlScheduleCommand.OverrideGet)\n@expectedCCResponse(ClimateControlScheduleCCOverrideReport)\nexport class ClimateControlScheduleCCOverrideGet\n\textends ClimateControlScheduleCC\n{}\n\n// @publicAPI\nexport interface ClimateControlScheduleCCOverrideSetOptions {\n\toverrideType: ScheduleOverrideType;\n\toverrideState: SetbackState;\n}\n\n@CCCommand(ClimateControlScheduleCommand.OverrideSet)\n@useSupervision()\nexport class ClimateControlScheduleCCOverrideSet\n\textends ClimateControlScheduleCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<ClimateControlScheduleCCOverrideSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.overrideType = options.overrideType;\n\t\tthis.overrideState = options.overrideState;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): ClimateControlScheduleCCOverrideSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClimateControlScheduleCCOverrideSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic overrideType: ScheduleOverrideType;\n\tpublic overrideState: SetbackState;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.overrideType & 0b11],\n\t\t\tencodeSetbackState(this.overrideState),\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\"override type\": getEnumMemberName(\n\t\t\t\t\tScheduleOverrideType,\n\t\t\t\t\tthis.overrideType,\n\t\t\t\t),\n\t\t\t\t\"override state\": this.overrideState,\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,6 +1,6 @@
1
- import type { MessageOrCCLogEntry, SupervisionResult, WithAddress } from "@zwave-js/core/safe";
1
+ import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
+ import type { GetValueDB, MessageOrCCLogEntry, SupervisionResult, WithAddress } from "@zwave-js/core/safe";
2
3
  import { type MaybeNotKnown } from "@zwave-js/core/safe";
3
- import type { CCEncodingContext, CCParsingContext, GetValueDB } from "@zwave-js/host/safe";
4
4
  import { Bytes } from "@zwave-js/shared/safe";
5
5
  import { CCAPI } from "../lib/API.js";
6
6
  import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
@@ -26,7 +26,7 @@ export declare class ClockCCSet extends ClockCC {
26
26
  weekday: Weekday;
27
27
  hour: number;
28
28
  minute: number;
29
- serialize(ctx: CCEncodingContext): Bytes;
29
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
30
30
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
31
31
  }
32
32
  export interface ClockCCReportOptions {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/ClockCC.ts"],
4
- "sourcesContent": ["import type {\n\tMessageOrCCLogEntry,\n\tSupervisionResult,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\tMessagePriority,\n\tZWaveError,\n\tZWaveErrorCodes,\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 { CCAPI } 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 { ClockCommand, Weekday } from \"../lib/_Types.js\";\n\n// @noSetValueAPI - This CC has no simple value to set\n\n@API(CommandClasses.Clock)\nexport class ClockCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: ClockCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ClockCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase ClockCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(ClockCommand, ClockCommand.Get);\n\n\t\tconst cc = new ClockCCGet({\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<ClockCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"weekday\", \"hour\", \"minute\"]);\n\t\t}\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\thour: number,\n\t\tminute: number,\n\t\tweekday?: Weekday,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(ClockCommand, ClockCommand.Set);\n\n\t\tconst cc = new ClockCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\thour,\n\t\t\tminute,\n\t\t\tweekday: weekday ?? Weekday.Unknown,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Clock)\n@implementedVersion(1)\nexport class ClockCC extends CommandClass {\n\tdeclare ccCommand: ClockCommand;\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.Clock,\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\tmessage: \"requesting current clock setting...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst response = await api.get();\n\t\tif (response) {\n\t\t\tconst logMessage = `received current clock setting: ${\n\t\t\t\tresponse.weekday !== Weekday.Unknown\n\t\t\t\t\t? Weekday[response.weekday] + \", \"\n\t\t\t\t\t: \"\"\n\t\t\t}${response.hour < 10 ? \"0\" : \"\"}${response.hour}:${\n\t\t\t\tresponse.minute < 10 ? \"0\" : \"\"\n\t\t\t}${response.minute}`;\n\t\t\tctx.logNode(node.id, {\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 ClockCCSetOptions {\n\tweekday: Weekday;\n\thour: number;\n\tminute: number;\n}\n\n@CCCommand(ClockCommand.Set)\n@useSupervision()\nexport class ClockCCSet extends ClockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClockCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.weekday = options.weekday;\n\t\tthis.hour = options.hour;\n\t\tthis.minute = options.minute;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): ClockCCSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClockCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic weekday: Weekday;\n\tpublic hour: number;\n\tpublic minute: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\t((this.weekday & 0b111) << 5) | (this.hour & 0b11111),\n\t\t\tthis.minute,\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\"clock setting\": `${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tWeekday,\n\t\t\t\t\t\tthis.weekday,\n\t\t\t\t\t)\n\t\t\t\t}, ${this.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\tthis.minute.toString().padStart(\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClockCCReportOptions {\n\tweekday: Weekday;\n\thour: number;\n\tminute: number;\n}\n\n@CCCommand(ClockCommand.Report)\nexport class ClockCCReport extends ClockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClockCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.weekday = options.weekday;\n\t\tthis.hour = options.hour;\n\t\tthis.minute = options.minute;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): ClockCCReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst weekday: Weekday = raw.payload[0] >>> 5;\n\t\tconst hour = raw.payload[0] & 0b11111;\n\t\tconst minute = raw.payload[1];\n\t\tvalidatePayload(\n\t\t\tweekday <= Weekday.Sunday,\n\t\t\thour <= 23,\n\t\t\tminute <= 59,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tweekday,\n\t\t\thour,\n\t\t\tminute,\n\t\t});\n\t}\n\n\tpublic readonly weekday: Weekday;\n\tpublic readonly hour: number;\n\tpublic readonly minute: number;\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\"clock setting\": `${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tWeekday,\n\t\t\t\t\t\tthis.weekday,\n\t\t\t\t\t)\n\t\t\t\t}, ${this.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\tthis.minute.toString().padStart(\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ClockCommand.Get)\n@expectedCCResponse(ClockCCReport)\nexport class ClockCCGet extends ClockCC {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport type {\n\tGetValueDB,\n\tMessageOrCCLogEntry,\n\tSupervisionResult,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\tMessagePriority,\n\tZWaveError,\n\tZWaveErrorCodes,\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 { CCAPI } 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 { ClockCommand, Weekday } from \"../lib/_Types.js\";\n\n// @noSetValueAPI - This CC has no simple value to set\n\n@API(CommandClasses.Clock)\nexport class ClockCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: ClockCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase ClockCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase ClockCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(ClockCommand, ClockCommand.Get);\n\n\t\tconst cc = new ClockCCGet({\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<ClockCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"weekday\", \"hour\", \"minute\"]);\n\t\t}\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\thour: number,\n\t\tminute: number,\n\t\tweekday?: Weekday,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(ClockCommand, ClockCommand.Set);\n\n\t\tconst cc = new ClockCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\thour,\n\t\t\tminute,\n\t\t\tweekday: weekday ?? Weekday.Unknown,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Clock)\n@implementedVersion(1)\nexport class ClockCC extends CommandClass {\n\tdeclare ccCommand: ClockCommand;\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.Clock,\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\tmessage: \"requesting current clock setting...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst response = await api.get();\n\t\tif (response) {\n\t\t\tconst logMessage = `received current clock setting: ${\n\t\t\t\tresponse.weekday !== Weekday.Unknown\n\t\t\t\t\t? Weekday[response.weekday] + \", \"\n\t\t\t\t\t: \"\"\n\t\t\t}${response.hour < 10 ? \"0\" : \"\"}${response.hour}:${\n\t\t\t\tresponse.minute < 10 ? \"0\" : \"\"\n\t\t\t}${response.minute}`;\n\t\t\tctx.logNode(node.id, {\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 ClockCCSetOptions {\n\tweekday: Weekday;\n\thour: number;\n\tminute: number;\n}\n\n@CCCommand(ClockCommand.Set)\n@useSupervision()\nexport class ClockCCSet extends ClockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClockCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.weekday = options.weekday;\n\t\tthis.hour = options.hour;\n\t\tthis.minute = options.minute;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): ClockCCSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new ClockCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic weekday: Weekday;\n\tpublic hour: number;\n\tpublic minute: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\t((this.weekday & 0b111) << 5) | (this.hour & 0b11111),\n\t\t\tthis.minute,\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\"clock setting\": `${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tWeekday,\n\t\t\t\t\t\tthis.weekday,\n\t\t\t\t\t)\n\t\t\t\t}, ${this.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\tthis.minute.toString().padStart(\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface ClockCCReportOptions {\n\tweekday: Weekday;\n\thour: number;\n\tminute: number;\n}\n\n@CCCommand(ClockCommand.Report)\nexport class ClockCCReport extends ClockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<ClockCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.weekday = options.weekday;\n\t\tthis.hour = options.hour;\n\t\tthis.minute = options.minute;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): ClockCCReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst weekday: Weekday = raw.payload[0] >>> 5;\n\t\tconst hour = raw.payload[0] & 0b11111;\n\t\tconst minute = raw.payload[1];\n\t\tvalidatePayload(\n\t\t\tweekday <= Weekday.Sunday,\n\t\t\thour <= 23,\n\t\t\tminute <= 59,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tweekday,\n\t\t\thour,\n\t\t\tminute,\n\t\t});\n\t}\n\n\tpublic readonly weekday: Weekday;\n\tpublic readonly hour: number;\n\tpublic readonly minute: number;\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\"clock setting\": `${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tWeekday,\n\t\t\t\t\t\tthis.weekday,\n\t\t\t\t\t)\n\t\t\t\t}, ${this.hour.toString().padStart(2, \"0\")}:${\n\t\t\t\t\tthis.minute.toString().padStart(\n\t\t\t\t\t\t2,\n\t\t\t\t\t\t\"0\",\n\t\t\t\t\t)\n\t\t\t\t}`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(ClockCommand.Get)\n@expectedCCResponse(ClockCCReport)\nexport class ClockCCGet extends ClockCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }