@zwave-js/cc 15.1.1 → 15.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +7 -7
  2. package/build/cjs/cc/AlarmSensorCC.js +22 -23
  3. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  4. package/build/cjs/cc/AssociationCC.d.ts +8 -9
  5. package/build/cjs/cc/AssociationCC.js +29 -29
  6. package/build/cjs/cc/AssociationCC.js.map +3 -3
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +7 -7
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +31 -32
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +8 -8
  11. package/build/cjs/cc/BarrierOperatorCC.js +35 -36
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  13. package/build/cjs/cc/BasicCC.d.ts +4 -4
  14. package/build/cjs/cc/BasicCC.js +23 -24
  15. package/build/cjs/cc/BasicCC.js.map +3 -3
  16. package/build/cjs/cc/BatteryCC.d.ts +4 -7
  17. package/build/cjs/cc/BatteryCC.js +18 -20
  18. package/build/cjs/cc/BatteryCC.js.map +3 -3
  19. package/build/cjs/cc/BinarySensorCC.d.ts +5 -5
  20. package/build/cjs/cc/BinarySensorCC.js +20 -21
  21. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  22. package/build/cjs/cc/BinarySwitchCC._validateArgs.js +2 -2
  23. package/build/cjs/cc/BinarySwitchCC.d.ts +6 -6
  24. package/build/cjs/cc/BinarySwitchCC.js +26 -26
  25. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  26. package/build/cjs/cc/CRC16CC.d.ts +3 -3
  27. package/build/cjs/cc/CRC16CC.js +15 -15
  28. package/build/cjs/cc/CRC16CC.js.map +3 -3
  29. package/build/cjs/cc/CentralSceneCC.d.ts +8 -8
  30. package/build/cjs/cc/CentralSceneCC.js +23 -24
  31. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  32. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +6 -6
  33. package/build/cjs/cc/ClimateControlScheduleCC.js +19 -20
  34. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  35. package/build/cjs/cc/ClockCC.d.ts +3 -4
  36. package/build/cjs/cc/ClockCC.js +13 -14
  37. package/build/cjs/cc/ClockCC.js.map +3 -3
  38. package/build/cjs/cc/ColorSwitchCC.d.ts +3 -4
  39. package/build/cjs/cc/ColorSwitchCC.js +22 -24
  40. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  41. package/build/cjs/cc/ConfigurationCC.d.ts +3 -3
  42. package/build/cjs/cc/ConfigurationCC.js +114 -115
  43. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  44. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +2 -2
  45. package/build/cjs/cc/DeviceResetLocallyCC.js +5 -5
  46. package/build/cjs/cc/DeviceResetLocallyCC.js.map +1 -1
  47. package/build/cjs/cc/DoorLockCC.d.ts +29 -29
  48. package/build/cjs/cc/DoorLockCC.js +39 -40
  49. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  50. package/build/cjs/cc/DoorLockLoggingCC.d.ts +4 -4
  51. package/build/cjs/cc/DoorLockLoggingCC.js +13 -14
  52. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  53. package/build/cjs/cc/EnergyProductionCC.d.ts +2 -3
  54. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  55. package/build/cjs/cc/EntryControlCC.d.ts +8 -8
  56. package/build/cjs/cc/EntryControlCC.js +41 -42
  57. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  58. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
  59. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +52 -53
  60. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  61. package/build/cjs/cc/HailCC.js +2 -2
  62. package/build/cjs/cc/HailCC.js.map +1 -1
  63. package/build/cjs/cc/HumidityControlModeCC.d.ts +5 -5
  64. package/build/cjs/cc/HumidityControlModeCC.js +20 -21
  65. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  66. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +3 -3
  67. package/build/cjs/cc/HumidityControlOperatingStateCC.js +9 -9
  68. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  69. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +6 -6
  70. package/build/cjs/cc/HumidityControlSetpointCC.js +43 -44
  71. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  72. package/build/cjs/cc/InclusionControllerCC.d.ts +2 -3
  73. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  74. package/build/cjs/cc/IndicatorCC.d.ts +3 -3
  75. package/build/cjs/cc/IndicatorCC.js +50 -52
  76. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  77. package/build/cjs/cc/IrrigationCC.d.ts +3 -3
  78. package/build/cjs/cc/IrrigationCC.js +74 -75
  79. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  80. package/build/cjs/cc/LanguageCC.d.ts +5 -6
  81. package/build/cjs/cc/LanguageCC.js +14 -15
  82. package/build/cjs/cc/LanguageCC.js.map +3 -3
  83. package/build/cjs/cc/LockCC.d.ts +4 -4
  84. package/build/cjs/cc/LockCC.js +10 -10
  85. package/build/cjs/cc/LockCC.js.map +3 -3
  86. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +3 -3
  87. package/build/cjs/cc/ManufacturerProprietaryCC.js +10 -10
  88. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +3 -3
  89. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +7 -8
  90. package/build/cjs/cc/ManufacturerSpecificCC.js +20 -21
  91. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  92. package/build/cjs/cc/MeterCC.d.ts +4 -6
  93. package/build/cjs/cc/MeterCC.js +52 -54
  94. package/build/cjs/cc/MeterCC.js.map +3 -3
  95. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +7 -8
  96. package/build/cjs/cc/MultiChannelAssociationCC.js +34 -35
  97. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  98. package/build/cjs/cc/MultiChannelCC.d.ts +11 -11
  99. package/build/cjs/cc/MultiChannelCC.js +53 -53
  100. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  101. package/build/cjs/cc/MultiCommandCC.d.ts +3 -3
  102. package/build/cjs/cc/MultiCommandCC.js +13 -13
  103. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  104. package/build/cjs/cc/MultilevelSensorCC.d.ts +4 -7
  105. package/build/cjs/cc/MultilevelSensorCC.js +26 -28
  106. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  107. package/build/cjs/cc/MultilevelSwitchCC._validateArgs.js +3 -3
  108. package/build/cjs/cc/MultilevelSwitchCC.d.ts +13 -13
  109. package/build/cjs/cc/MultilevelSwitchCC.js +36 -37
  110. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  111. package/build/cjs/cc/NoOperationCC.js +4 -4
  112. package/build/cjs/cc/NoOperationCC.js.map +1 -1
  113. package/build/cjs/cc/NodeNamingCC.d.ts +5 -5
  114. package/build/cjs/cc/NodeNamingCC.js +20 -20
  115. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  116. package/build/cjs/cc/NotificationCC.d.ts +4 -5
  117. package/build/cjs/cc/NotificationCC.js +66 -68
  118. package/build/cjs/cc/NotificationCC.js.map +3 -3
  119. package/build/cjs/cc/PowerlevelCC.d.ts +3 -3
  120. package/build/cjs/cc/PowerlevelCC.js +25 -26
  121. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  122. package/build/cjs/cc/ProtectionCC._validateArgs.js +2 -2
  123. package/build/cjs/cc/ProtectionCC.d.ts +11 -11
  124. package/build/cjs/cc/ProtectionCC.js +35 -36
  125. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  126. package/build/cjs/cc/SceneActivationCC._validateArgs.js +2 -2
  127. package/build/cjs/cc/SceneActivationCC.d.ts +5 -6
  128. package/build/cjs/cc/SceneActivationCC.js +10 -10
  129. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  130. package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.js +2 -2
  131. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +5 -5
  132. package/build/cjs/cc/SceneActuatorConfigurationCC.js +19 -20
  133. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  134. package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.js +2 -2
  135. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +6 -6
  136. package/build/cjs/cc/SceneControllerConfigurationCC.js +25 -26
  137. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  138. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +2 -3
  139. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  140. package/build/cjs/cc/Security2CC.d.ts +3 -4
  141. package/build/cjs/cc/Security2CC.js +60 -62
  142. package/build/cjs/cc/Security2CC.js.map +3 -3
  143. package/build/cjs/cc/SecurityCC.d.ts +3 -4
  144. package/build/cjs/cc/SecurityCC.js +25 -26
  145. package/build/cjs/cc/SecurityCC.js.map +3 -3
  146. package/build/cjs/cc/SoundSwitchCC.d.ts +7 -7
  147. package/build/cjs/cc/SoundSwitchCC.js +28 -29
  148. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  149. package/build/cjs/cc/SupervisionCC.d.ts +4 -4
  150. package/build/cjs/cc/SupervisionCC.js +28 -29
  151. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  152. package/build/cjs/cc/ThermostatFanModeCC.d.ts +6 -6
  153. package/build/cjs/cc/ThermostatFanModeCC.js +21 -22
  154. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  155. package/build/cjs/cc/ThermostatFanStateCC.d.ts +3 -3
  156. package/build/cjs/cc/ThermostatFanStateCC.js +9 -9
  157. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  158. package/build/cjs/cc/ThermostatModeCC.d.ts +6 -6
  159. package/build/cjs/cc/ThermostatModeCC.js +30 -31
  160. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  161. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +3 -4
  162. package/build/cjs/cc/ThermostatOperatingStateCC.js +9 -9
  163. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  164. package/build/cjs/cc/ThermostatSetbackCC.d.ts +3 -3
  165. package/build/cjs/cc/ThermostatSetbackCC.js +14 -15
  166. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  167. package/build/cjs/cc/ThermostatSetpointCC.d.ts +6 -6
  168. package/build/cjs/cc/ThermostatSetpointCC.js +48 -49
  169. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  170. package/build/cjs/cc/TimeCC.d.ts +3 -4
  171. package/build/cjs/cc/TimeCC.js +9 -10
  172. package/build/cjs/cc/TimeCC.js.map +3 -3
  173. package/build/cjs/cc/TimeParametersCC.d.ts +3 -4
  174. package/build/cjs/cc/TimeParametersCC.js +2 -2
  175. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  176. package/build/cjs/cc/TransportServiceCC.d.ts +3 -3
  177. package/build/cjs/cc/TransportServiceCC.js +44 -45
  178. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  179. package/build/cjs/cc/UserCodeCC.d.ts +19 -19
  180. package/build/cjs/cc/UserCodeCC.js +102 -103
  181. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  182. package/build/cjs/cc/VersionCC.d.ts +17 -17
  183. package/build/cjs/cc/VersionCC.js +46 -47
  184. package/build/cjs/cc/VersionCC.js.map +3 -3
  185. package/build/cjs/cc/WakeUpCC.d.ts +6 -6
  186. package/build/cjs/cc/WakeUpCC.js +16 -17
  187. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  188. package/build/cjs/cc/WindowCoveringCC.d.ts +3 -4
  189. package/build/cjs/cc/WindowCoveringCC.js +17 -18
  190. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  191. package/build/cjs/cc/ZWavePlusCC.d.ts +8 -8
  192. package/build/cjs/cc/ZWavePlusCC.js +15 -16
  193. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  194. package/build/cjs/cc/ZWaveProtocolCC.d.ts +2 -2
  195. package/build/cjs/cc/ZWaveProtocolCC.js +35 -35
  196. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  197. package/build/cjs/cc/_CCValues.generated.js +24 -26
  198. package/build/cjs/cc/_CCValues.generated.js.map +3 -3
  199. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
  200. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +14 -14
  201. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  202. package/build/cjs/lib/API.d.ts +3 -3
  203. package/build/cjs/lib/API.js.map +2 -2
  204. package/build/cjs/lib/CommandClass.d.ts +5 -6
  205. package/build/cjs/lib/CommandClass.js +45 -45
  206. package/build/cjs/lib/CommandClass.js.map +3 -3
  207. package/build/cjs/lib/CommandClassDecorators.d.ts +2 -2
  208. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  209. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  210. package/build/cjs/lib/Security2/Extension.d.ts +2 -2
  211. package/build/cjs/lib/Security2/Extension.js +17 -17
  212. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  213. package/build/cjs/lib/SetValueResult.d.ts +1 -1
  214. package/build/cjs/lib/SetValueResult.js.map +1 -1
  215. package/build/cjs/lib/Values.d.ts +3 -3
  216. package/build/cjs/lib/Values.js +6 -6
  217. package/build/cjs/lib/Values.js.map +2 -2
  218. package/build/cjs/lib/_Types.d.ts +2 -2
  219. package/build/cjs/lib/_Types.js +3 -3
  220. package/build/cjs/lib/_Types.js.map +1 -1
  221. package/build/cjs/lib/serializers.d.ts +1 -1
  222. package/build/cjs/lib/serializers.js +5 -5
  223. package/build/cjs/lib/serializers.js.map +2 -2
  224. package/build/cjs/lib/traits.d.ts +2 -2
  225. package/build/cjs/lib/utils.d.ts +2 -2
  226. package/build/cjs/lib/utils.js +60 -60
  227. package/build/cjs/lib/utils.js.map +3 -3
  228. package/build/esm/cc/AlarmSensorCC.d.ts +7 -7
  229. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  230. package/build/esm/cc/AlarmSensorCC.js +2 -3
  231. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  232. package/build/esm/cc/AssociationCC.d.ts +8 -9
  233. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  234. package/build/esm/cc/AssociationCC.js +2 -2
  235. package/build/esm/cc/AssociationCC.js.map +1 -1
  236. package/build/esm/cc/AssociationGroupInfoCC.d.ts +7 -7
  237. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  238. package/build/esm/cc/AssociationGroupInfoCC.js +2 -3
  239. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  240. package/build/esm/cc/BarrierOperatorCC.d.ts +8 -8
  241. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  242. package/build/esm/cc/BarrierOperatorCC.js +2 -3
  243. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  244. package/build/esm/cc/BasicCC.d.ts +4 -4
  245. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  246. package/build/esm/cc/BasicCC.js +2 -3
  247. package/build/esm/cc/BasicCC.js.map +1 -1
  248. package/build/esm/cc/BatteryCC.d.ts +4 -7
  249. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  250. package/build/esm/cc/BatteryCC.js +2 -4
  251. package/build/esm/cc/BatteryCC.js.map +1 -1
  252. package/build/esm/cc/BinarySensorCC.d.ts +5 -5
  253. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  254. package/build/esm/cc/BinarySensorCC.js +2 -3
  255. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  256. package/build/esm/cc/BinarySwitchCC._validateArgs.js +1 -1
  257. package/build/esm/cc/BinarySwitchCC._validateArgs.js.map +1 -1
  258. package/build/esm/cc/BinarySwitchCC.d.ts +6 -6
  259. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  260. package/build/esm/cc/BinarySwitchCC.js +2 -2
  261. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  262. package/build/esm/cc/CRC16CC.d.ts +3 -3
  263. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  264. package/build/esm/cc/CRC16CC.js +2 -2
  265. package/build/esm/cc/CRC16CC.js.map +1 -1
  266. package/build/esm/cc/CentralSceneCC.d.ts +8 -8
  267. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  268. package/build/esm/cc/CentralSceneCC.js +2 -3
  269. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  270. package/build/esm/cc/ClimateControlScheduleCC.d.ts +6 -6
  271. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  272. package/build/esm/cc/ClimateControlScheduleCC.js +2 -3
  273. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  274. package/build/esm/cc/ClockCC.d.ts +3 -4
  275. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  276. package/build/esm/cc/ClockCC.js +2 -3
  277. package/build/esm/cc/ClockCC.js.map +1 -1
  278. package/build/esm/cc/ColorSwitchCC.d.ts +3 -4
  279. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  280. package/build/esm/cc/ColorSwitchCC.js +2 -4
  281. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  282. package/build/esm/cc/ConfigurationCC.d.ts +3 -3
  283. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  284. package/build/esm/cc/ConfigurationCC.js +2 -3
  285. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  286. package/build/esm/cc/DeviceResetLocallyCC.d.ts +2 -2
  287. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  288. package/build/esm/cc/DeviceResetLocallyCC.js +1 -1
  289. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  290. package/build/esm/cc/DoorLockCC.d.ts +29 -29
  291. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  292. package/build/esm/cc/DoorLockCC.js +2 -3
  293. package/build/esm/cc/DoorLockCC.js.map +1 -1
  294. package/build/esm/cc/DoorLockLoggingCC.d.ts +4 -4
  295. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  296. package/build/esm/cc/DoorLockLoggingCC.js +2 -3
  297. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  298. package/build/esm/cc/EnergyProductionCC.d.ts +2 -3
  299. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  300. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  301. package/build/esm/cc/EntryControlCC.d.ts +8 -8
  302. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  303. package/build/esm/cc/EntryControlCC.js +2 -3
  304. package/build/esm/cc/EntryControlCC.js.map +1 -1
  305. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +9 -10
  306. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  307. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -3
  308. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  309. package/build/esm/cc/HailCC.js +1 -1
  310. package/build/esm/cc/HailCC.js.map +1 -1
  311. package/build/esm/cc/HumidityControlModeCC.d.ts +5 -5
  312. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  313. package/build/esm/cc/HumidityControlModeCC.js +2 -3
  314. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  315. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +3 -3
  316. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  317. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -2
  318. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  319. package/build/esm/cc/HumidityControlSetpointCC.d.ts +6 -6
  320. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  321. package/build/esm/cc/HumidityControlSetpointCC.js +2 -3
  322. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  323. package/build/esm/cc/InclusionControllerCC.d.ts +2 -3
  324. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  325. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  326. package/build/esm/cc/IndicatorCC.d.ts +3 -3
  327. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  328. package/build/esm/cc/IndicatorCC.js +2 -4
  329. package/build/esm/cc/IndicatorCC.js.map +1 -1
  330. package/build/esm/cc/IrrigationCC.d.ts +3 -3
  331. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  332. package/build/esm/cc/IrrigationCC.js +2 -3
  333. package/build/esm/cc/IrrigationCC.js.map +1 -1
  334. package/build/esm/cc/LanguageCC.d.ts +5 -6
  335. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  336. package/build/esm/cc/LanguageCC.js +2 -3
  337. package/build/esm/cc/LanguageCC.js.map +1 -1
  338. package/build/esm/cc/LockCC.d.ts +4 -4
  339. package/build/esm/cc/LockCC.d.ts.map +1 -1
  340. package/build/esm/cc/LockCC.js +2 -2
  341. package/build/esm/cc/LockCC.js.map +1 -1
  342. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +3 -3
  343. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  344. package/build/esm/cc/ManufacturerProprietaryCC.js +2 -2
  345. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  346. package/build/esm/cc/ManufacturerSpecificCC.d.ts +7 -8
  347. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  348. package/build/esm/cc/ManufacturerSpecificCC.js +2 -3
  349. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  350. package/build/esm/cc/MeterCC.d.ts +4 -6
  351. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  352. package/build/esm/cc/MeterCC.js +2 -4
  353. package/build/esm/cc/MeterCC.js.map +1 -1
  354. package/build/esm/cc/MultiChannelAssociationCC.d.ts +7 -8
  355. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  356. package/build/esm/cc/MultiChannelAssociationCC.js +2 -3
  357. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  358. package/build/esm/cc/MultiChannelCC.d.ts +11 -11
  359. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  360. package/build/esm/cc/MultiChannelCC.js +2 -2
  361. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  362. package/build/esm/cc/MultiCommandCC.d.ts +3 -3
  363. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  364. package/build/esm/cc/MultiCommandCC.js +2 -2
  365. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  366. package/build/esm/cc/MultilevelSensorCC.d.ts +4 -7
  367. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  368. package/build/esm/cc/MultilevelSensorCC.js +2 -4
  369. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  370. package/build/esm/cc/MultilevelSwitchCC._validateArgs.js +1 -1
  371. package/build/esm/cc/MultilevelSwitchCC._validateArgs.js.map +1 -1
  372. package/build/esm/cc/MultilevelSwitchCC.d.ts +13 -13
  373. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  374. package/build/esm/cc/MultilevelSwitchCC.js +2 -3
  375. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  376. package/build/esm/cc/NoOperationCC.js +1 -1
  377. package/build/esm/cc/NoOperationCC.js.map +1 -1
  378. package/build/esm/cc/NodeNamingCC.d.ts +5 -5
  379. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  380. package/build/esm/cc/NodeNamingCC.js +2 -2
  381. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  382. package/build/esm/cc/NotificationCC.d.ts +4 -5
  383. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  384. package/build/esm/cc/NotificationCC.js +2 -4
  385. package/build/esm/cc/NotificationCC.js.map +1 -1
  386. package/build/esm/cc/PowerlevelCC.d.ts +3 -3
  387. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  388. package/build/esm/cc/PowerlevelCC.js +2 -3
  389. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  390. package/build/esm/cc/ProtectionCC._validateArgs.js +1 -1
  391. package/build/esm/cc/ProtectionCC._validateArgs.js.map +1 -1
  392. package/build/esm/cc/ProtectionCC.d.ts +11 -11
  393. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  394. package/build/esm/cc/ProtectionCC.js +2 -3
  395. package/build/esm/cc/ProtectionCC.js.map +1 -1
  396. package/build/esm/cc/SceneActivationCC._validateArgs.js +1 -1
  397. package/build/esm/cc/SceneActivationCC._validateArgs.js.map +1 -1
  398. package/build/esm/cc/SceneActivationCC.d.ts +5 -6
  399. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  400. package/build/esm/cc/SceneActivationCC.js +2 -2
  401. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  402. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js +1 -1
  403. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js.map +1 -1
  404. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +5 -5
  405. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  406. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -3
  407. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  408. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js +1 -1
  409. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js.map +1 -1
  410. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +6 -6
  411. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  412. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -3
  413. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  414. package/build/esm/cc/ScheduleEntryLockCC.d.ts +2 -3
  415. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  416. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  417. package/build/esm/cc/Security2CC.d.ts +3 -4
  418. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  419. package/build/esm/cc/Security2CC.js +2 -4
  420. package/build/esm/cc/Security2CC.js.map +1 -1
  421. package/build/esm/cc/SecurityCC.d.ts +3 -4
  422. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  423. package/build/esm/cc/SecurityCC.js +1 -2
  424. package/build/esm/cc/SecurityCC.js.map +1 -1
  425. package/build/esm/cc/SoundSwitchCC.d.ts +7 -7
  426. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  427. package/build/esm/cc/SoundSwitchCC.js +2 -3
  428. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  429. package/build/esm/cc/SupervisionCC.d.ts +4 -4
  430. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  431. package/build/esm/cc/SupervisionCC.js +2 -3
  432. package/build/esm/cc/SupervisionCC.js.map +1 -1
  433. package/build/esm/cc/ThermostatFanModeCC.d.ts +6 -6
  434. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  435. package/build/esm/cc/ThermostatFanModeCC.js +2 -3
  436. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  437. package/build/esm/cc/ThermostatFanStateCC.d.ts +3 -3
  438. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  439. package/build/esm/cc/ThermostatFanStateCC.js +2 -2
  440. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  441. package/build/esm/cc/ThermostatModeCC.d.ts +6 -6
  442. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  443. package/build/esm/cc/ThermostatModeCC.js +2 -3
  444. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  445. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +3 -4
  446. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  447. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -2
  448. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  449. package/build/esm/cc/ThermostatSetbackCC.d.ts +3 -3
  450. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  451. package/build/esm/cc/ThermostatSetbackCC.js +2 -3
  452. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  453. package/build/esm/cc/ThermostatSetpointCC.d.ts +6 -6
  454. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  455. package/build/esm/cc/ThermostatSetpointCC.js +2 -3
  456. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  457. package/build/esm/cc/TimeCC.d.ts +3 -4
  458. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  459. package/build/esm/cc/TimeCC.js +1 -2
  460. package/build/esm/cc/TimeCC.js.map +1 -1
  461. package/build/esm/cc/TimeParametersCC.d.ts +3 -4
  462. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  463. package/build/esm/cc/TimeParametersCC.js +1 -1
  464. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  465. package/build/esm/cc/TransportServiceCC.d.ts +3 -3
  466. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  467. package/build/esm/cc/TransportServiceCC.js +2 -3
  468. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  469. package/build/esm/cc/UserCodeCC.d.ts +19 -19
  470. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  471. package/build/esm/cc/UserCodeCC.js +2 -3
  472. package/build/esm/cc/UserCodeCC.js.map +1 -1
  473. package/build/esm/cc/VersionCC.d.ts +17 -17
  474. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  475. package/build/esm/cc/VersionCC.js +2 -3
  476. package/build/esm/cc/VersionCC.js.map +1 -1
  477. package/build/esm/cc/WakeUpCC.d.ts +6 -6
  478. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  479. package/build/esm/cc/WakeUpCC.js +2 -3
  480. package/build/esm/cc/WakeUpCC.js.map +1 -1
  481. package/build/esm/cc/WindowCoveringCC.d.ts +3 -4
  482. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  483. package/build/esm/cc/WindowCoveringCC.js +1 -2
  484. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  485. package/build/esm/cc/ZWavePlusCC.d.ts +8 -8
  486. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  487. package/build/esm/cc/ZWavePlusCC.js +2 -3
  488. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  489. package/build/esm/cc/ZWaveProtocolCC.d.ts +2 -2
  490. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  491. package/build/esm/cc/ZWaveProtocolCC.js +1 -1
  492. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  493. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
  494. package/build/esm/cc/_CCValues.generated.js +2 -4
  495. package/build/esm/cc/_CCValues.generated.js.map +1 -1
  496. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +3 -3
  497. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  498. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +1 -1
  499. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  500. package/build/esm/lib/API.d.ts +3 -3
  501. package/build/esm/lib/API.d.ts.map +1 -1
  502. package/build/esm/lib/API.js.map +1 -1
  503. package/build/esm/lib/CommandClass.d.ts +5 -6
  504. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  505. package/build/esm/lib/CommandClass.js +2 -2
  506. package/build/esm/lib/CommandClass.js.map +1 -1
  507. package/build/esm/lib/CommandClassDecorators.d.ts +2 -2
  508. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  509. package/build/esm/lib/CommandClassDecorators.js +1 -1
  510. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  511. package/build/esm/lib/Security2/Extension.d.ts +2 -2
  512. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  513. package/build/esm/lib/Security2/Extension.js +2 -2
  514. package/build/esm/lib/Security2/Extension.js.map +1 -1
  515. package/build/esm/lib/SetValueResult.d.ts +1 -1
  516. package/build/esm/lib/SetValueResult.d.ts.map +1 -1
  517. package/build/esm/lib/Values.d.ts +3 -3
  518. package/build/esm/lib/Values.d.ts.map +1 -1
  519. package/build/esm/lib/Values.js +1 -1
  520. package/build/esm/lib/Values.js.map +1 -1
  521. package/build/esm/lib/_Types.d.ts +2 -2
  522. package/build/esm/lib/_Types.d.ts.map +1 -1
  523. package/build/esm/lib/_Types.js +1 -1
  524. package/build/esm/lib/_Types.js.map +1 -1
  525. package/build/esm/lib/serializers.d.ts +1 -1
  526. package/build/esm/lib/serializers.d.ts.map +1 -1
  527. package/build/esm/lib/serializers.js +1 -1
  528. package/build/esm/lib/serializers.js.map +1 -1
  529. package/build/esm/lib/traits.d.ts +2 -2
  530. package/build/esm/lib/traits.d.ts.map +1 -1
  531. package/build/esm/lib/utils.d.ts +2 -2
  532. package/build/esm/lib/utils.d.ts.map +1 -1
  533. package/build/esm/lib/utils.js +2 -2
  534. package/build/esm/lib/utils.js.map +1 -1
  535. package/package.json +6 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/SceneActuatorConfigurationCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\tDuration,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\ttype MessageRecord,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tgetCCName,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { 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\tthrowMissingPropertyKey,\n\tthrowUnsupportedProperty,\n\tthrowUnsupportedPropertyKey,\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\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { SceneActuatorConfigurationCommand } from \"../lib/_Types.js\";\n\nexport const SceneActuatorConfigurationCCValues = V.defineCCValues(\n\tCommandClasses[\"Scene Actuator Configuration\"],\n\t{\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"level\",\n\t\t\t\"level\",\n\t\t\t(sceneId: number) => sceneId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"level\" && typeof propertyKey === \"number\",\n\t\t\t(sceneId: number) => ({\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: `Level (${sceneId})`,\n\t\t\t\tvalueChangeOptions: [\"transitionDuration\"],\n\t\t\t} as const),\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"dimmingDuration\",\n\t\t\t\"dimmingDuration\",\n\t\t\t(sceneId: number) => sceneId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"dimmingDuration\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t(sceneId: number) => ({\n\t\t\t\t...ValueMetadata.Duration,\n\t\t\t\tlabel: `Dimming duration (${sceneId})`,\n\t\t\t} as const),\n\t\t),\n\t},\n);\n\n@API(CommandClasses[\"Scene Actuator Configuration\"])\nexport class SceneActuatorConfigurationCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: SceneActuatorConfigurationCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase SceneActuatorConfigurationCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase SceneActuatorConfigurationCommand.Set:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneActuatorConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t\toptions,\n\t\t) {\n\t\t\tif (propertyKey == undefined) {\n\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\tthrowUnsupportedPropertyKey(this.ccId, property, propertyKey);\n\t\t\t}\n\t\t\tif (property === \"level\") {\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// We need to set the dimming duration along with the level.\n\t\t\t\t// Dimming duration is chosen with the following precedence:\n\t\t\t\t// 1. options.transitionDuration\n\t\t\t\t// 2. current stored value\n\t\t\t\t// 3. default\n\t\t\t\tconst dimmingDuration =\n\t\t\t\t\tDuration.from(options?.transitionDuration)\n\t\t\t\t\t\t?? this.tryGetValueDB()?.getValue<Duration>(\n\t\t\t\t\t\t\tSceneActuatorConfigurationCCValues.dimmingDuration(\n\t\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t\t\t);\n\t\t\t\treturn this.set(propertyKey, dimmingDuration, value);\n\t\t\t} else if (property === \"dimmingDuration\") {\n\t\t\t\tif (typeof value !== \"string\" && !Duration.isDuration(value)) {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"duration\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst dimmingDuration = Duration.from(value);\n\t\t\t\tif (dimmingDuration == undefined) {\n\t\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t\t`${\n\t\t\t\t\t\t\tgetCCName(\n\t\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}: \"${property}\" could not be set. ${\n\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} is not a valid duration.`,\n\t\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Must set the level along with the dimmingDuration,\n\t\t\t\t// Use saved value, if it's defined. Otherwise the default\n\t\t\t\t// will be used.\n\t\t\t\tconst level = this.tryGetValueDB()?.getValue<number>(\n\t\t\t\t\tSceneActuatorConfigurationCCValues.level(\n\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t);\n\n\t\t\t\treturn this.set(propertyKey, dimmingDuration, level);\n\t\t\t} else {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneActuatorConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"level\":\n\t\t\t\tcase \"dimmingDuration\": {\n\t\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (await this.get(propertyKey))?.[property];\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tsceneId: number,\n\t\tdimmingDuration?: Duration | string,\n\t\tlevel?: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneActuatorConfigurationCommand,\n\t\t\tSceneActuatorConfigurationCommand.Set,\n\t\t);\n\n\t\t// Undefined `dimmingDuration` defaults to 0 seconds to simplify the call\n\t\t// for actuators that don't support non-instant `dimmingDuration`\n\t\t// Undefined `level` uses the actuator's current value (override = 0).\n\t\tconst cc = new SceneActuatorConfigurationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsceneId,\n\t\t\tdimmingDuration: Duration.from(dimmingDuration)\n\t\t\t\t?? new Duration(0, \"seconds\"),\n\t\t\tlevel,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getActive(): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneActuatorConfigurationCCReport,\n\t\t\t\t\"sceneId\" | \"level\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneActuatorConfigurationCommand,\n\t\t\tSceneActuatorConfigurationCommand.Get,\n\t\t);\n\n\t\tconst cc = new SceneActuatorConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsceneId: 0,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneActuatorConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\tif (response) {\n\t\t\treturn pick(response, [\"sceneId\", \"level\", \"dimmingDuration\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async get(\n\t\tsceneId: number,\n\t): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneActuatorConfigurationCCReport,\n\t\t\t\t\"level\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneActuatorConfigurationCommand,\n\t\t\tSceneActuatorConfigurationCommand.Get,\n\t\t);\n\n\t\tif (sceneId === 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`Invalid scene ID 0. To get the currently active scene, use getActive() instead.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new SceneActuatorConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsceneId: sceneId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneActuatorConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\tif (response) {\n\t\t\treturn pick(response, [\"level\", \"dimmingDuration\"]);\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses[\"Scene Actuator Configuration\"])\n@implementedVersion(1)\n@ccValues(SceneActuatorConfigurationCCValues)\nexport class SceneActuatorConfigurationCC extends CommandClass {\n\tdeclare ccCommand: SceneActuatorConfigurationCommand;\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\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\tmessage: `${this.constructor.name}: setting metadata`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Create Metadata for all scenes\n\t\tfor (let sceneId = 1; sceneId <= 255; sceneId++) {\n\t\t\tconst levelValue = SceneActuatorConfigurationCCValues.level(\n\t\t\t\tsceneId,\n\t\t\t);\n\t\t\tthis.ensureMetadata(ctx, levelValue);\n\n\t\t\tconst dimmingDurationValue = SceneActuatorConfigurationCCValues\n\t\t\t\t.dimmingDuration(sceneId);\n\t\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\t\t}\n\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\t// `refreshValues()` would create 255 `Get` commands to be issued to the node\n\t// Therefore, I think we should not implement it. Here is how it would be implemented\n\t//\n\t// public async refreshValues(ctx: RefreshValuesContext): Promise<void> {\n\t// \tconst node = this.getNode(ctx)!;\n\t// \tconst endpoint = this.getEndpoint(ctx)!;\n\t// \tconst api = endpoint.commandClasses[\n\t// \t\t\"Scene Actuator Configuration\"\n\t// \t].withOptions({\n\t// \t\tpriority: MessagePriority.NodeQuery,\n\t// \t});\n\t// \tctx.logNode(node.id, {\n\t// \t\tmessage: \"querying all scene actuator configs...\",\n\t// \t\tdirection: \"outbound\",\n\t// \t});\n\t// \tfor (let sceneId = 1; sceneId <= 255; sceneId++) {\n\t// \t\tawait api.get(sceneId);\n\t// \t}\n\t// }\n}\n\n// @publicAPI\nexport interface SceneActuatorConfigurationCCSetOptions {\n\tsceneId: number;\n\tdimmingDuration: Duration;\n\tlevel?: number;\n}\n\n@CCCommand(SceneActuatorConfigurationCommand.Set)\n@useSupervision()\nexport class SceneActuatorConfigurationCCSet\n\textends SceneActuatorConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneActuatorConfigurationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.sceneId < 1 || options.sceneId > 255) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`The scene id ${options.sceneId} must be between 1 and 255!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.sceneId = options.sceneId;\n\t\tthis.dimmingDuration = options.dimmingDuration;\n\t\tthis.level = options.level;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneActuatorConfigurationCCSet {\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 SceneActuatorConfigurationCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic sceneId: number;\n\tpublic dimmingDuration: Duration;\n\tpublic level?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.sceneId,\n\t\t\tthis.dimmingDuration.serializeSet(),\n\t\t\tthis.level != undefined ? 0b1000_0000 : 0,\n\t\t\tthis.level ?? 0xff,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tsceneId: this.sceneId,\n\t\t\tdimmingDuration: this.dimmingDuration.toString(),\n\t\t};\n\t\tif (this.level != undefined) {\n\t\t\tmessage.level = this.level;\n\t\t}\n\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 SceneActuatorConfigurationCCReportOptions {\n\tsceneId: number;\n\tlevel?: number;\n\tdimmingDuration?: Duration;\n}\n\n@CCCommand(SceneActuatorConfigurationCommand.Report)\nexport class SceneActuatorConfigurationCCReport\n\textends SceneActuatorConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneActuatorConfigurationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sceneId = options.sceneId;\n\t\tthis.level = options.level;\n\t\tthis.dimmingDuration = options.dimmingDuration;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): SceneActuatorConfigurationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sceneId = raw.payload[0];\n\n\t\tlet level: number | undefined;\n\t\tlet dimmingDuration: Duration | undefined;\n\t\tif (sceneId !== 0) {\n\t\t\tlevel = raw.payload[1];\n\t\t\tdimmingDuration = Duration.parseReport(raw.payload[2])\n\t\t\t\t?? Duration.unknown();\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsceneId,\n\t\t\tlevel,\n\t\t\tdimmingDuration,\n\t\t});\n\t}\n\n\tpublic readonly sceneId: number;\n\tpublic readonly level?: number;\n\tpublic readonly dimmingDuration?: Duration;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Do not persist values for an inactive scene\n\t\tif (\n\t\t\tthis.sceneId === 0\n\t\t\t|| this.level == undefined\n\t\t\t|| this.dimmingDuration == undefined\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst levelValue = SceneActuatorConfigurationCCValues.level(\n\t\t\tthis.sceneId,\n\t\t);\n\t\tthis.ensureMetadata(ctx, levelValue);\n\n\t\tconst dimmingDurationValue = SceneActuatorConfigurationCCValues\n\t\t\t.dimmingDuration(this.sceneId);\n\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\n\t\tthis.setValue(ctx, levelValue, this.level);\n\t\tthis.setValue(ctx, dimmingDurationValue, this.dimmingDuration);\n\n\t\treturn true;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tsceneId: this.sceneId,\n\t\t};\n\t\tif (this.dimmingDuration != undefined) {\n\t\t\tmessage.dimmingDuration = this.dimmingDuration.toString();\n\t\t}\n\t\tif (this.level != undefined) {\n\t\t\tmessage.level = this.level;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\nfunction testResponseForSceneActuatorConfigurationGet(\n\tsent: SceneActuatorConfigurationCCGet,\n\treceived: SceneActuatorConfigurationCCReport,\n) {\n\t// We expect a Scene Actuator Configuration Report that matches\n\t// the requested sceneId, unless groupId 0 was requested\n\treturn sent.sceneId === 0 || received.sceneId === sent.sceneId;\n}\n\n// @publicAPI\nexport interface SceneActuatorConfigurationCCGetOptions {\n\tsceneId: number;\n}\n\n@CCCommand(SceneActuatorConfigurationCommand.Get)\n@expectedCCResponse(\n\tSceneActuatorConfigurationCCReport,\n\ttestResponseForSceneActuatorConfigurationGet,\n)\nexport class SceneActuatorConfigurationCCGet\n\textends SceneActuatorConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneActuatorConfigurationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sceneId = options.sceneId;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneActuatorConfigurationCCGet {\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 SceneActuatorConfigurationCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic sceneId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.sceneId]);\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: { \"scene id\": this.sceneId },\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_safe"]
4
+ "sourcesContent": ["import type { CCEncodingContext, CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\tDuration,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\ttype MessageRecord,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tgetCCName,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { Bytes, pick } from \"@zwave-js/shared\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowMissingPropertyKey,\n\tthrowUnsupportedProperty,\n\tthrowUnsupportedPropertyKey,\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\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { SceneActuatorConfigurationCommand } from \"../lib/_Types.js\";\n\nexport const SceneActuatorConfigurationCCValues = V.defineCCValues(\n\tCommandClasses[\"Scene Actuator Configuration\"],\n\t{\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"level\",\n\t\t\t\"level\",\n\t\t\t(sceneId: number) => sceneId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"level\" && typeof propertyKey === \"number\",\n\t\t\t(sceneId: number) => ({\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: `Level (${sceneId})`,\n\t\t\t\tvalueChangeOptions: [\"transitionDuration\"],\n\t\t\t} as const),\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"dimmingDuration\",\n\t\t\t\"dimmingDuration\",\n\t\t\t(sceneId: number) => sceneId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"dimmingDuration\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t(sceneId: number) => ({\n\t\t\t\t...ValueMetadata.Duration,\n\t\t\t\tlabel: `Dimming duration (${sceneId})`,\n\t\t\t} as const),\n\t\t),\n\t},\n);\n\n@API(CommandClasses[\"Scene Actuator Configuration\"])\nexport class SceneActuatorConfigurationCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: SceneActuatorConfigurationCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase SceneActuatorConfigurationCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase SceneActuatorConfigurationCommand.Set:\n\t\t\t\treturn true;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneActuatorConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t\toptions,\n\t\t) {\n\t\t\tif (propertyKey == undefined) {\n\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\tthrowUnsupportedPropertyKey(this.ccId, property, propertyKey);\n\t\t\t}\n\t\t\tif (property === \"level\") {\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// We need to set the dimming duration along with the level.\n\t\t\t\t// Dimming duration is chosen with the following precedence:\n\t\t\t\t// 1. options.transitionDuration\n\t\t\t\t// 2. current stored value\n\t\t\t\t// 3. default\n\t\t\t\tconst dimmingDuration =\n\t\t\t\t\tDuration.from(options?.transitionDuration)\n\t\t\t\t\t\t?? this.tryGetValueDB()?.getValue<Duration>(\n\t\t\t\t\t\t\tSceneActuatorConfigurationCCValues.dimmingDuration(\n\t\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t\t\t);\n\t\t\t\treturn this.set(propertyKey, dimmingDuration, value);\n\t\t\t} else if (property === \"dimmingDuration\") {\n\t\t\t\tif (typeof value !== \"string\" && !Duration.isDuration(value)) {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"duration\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst dimmingDuration = Duration.from(value);\n\t\t\t\tif (dimmingDuration == undefined) {\n\t\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t\t`${\n\t\t\t\t\t\t\tgetCCName(\n\t\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}: \"${property}\" could not be set. ${\n\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} is not a valid duration.`,\n\t\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Must set the level along with the dimmingDuration,\n\t\t\t\t// Use saved value, if it's defined. Otherwise the default\n\t\t\t\t// will be used.\n\t\t\t\tconst level = this.tryGetValueDB()?.getValue<number>(\n\t\t\t\t\tSceneActuatorConfigurationCCValues.level(\n\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t);\n\n\t\t\t\treturn this.set(propertyKey, dimmingDuration, level);\n\t\t\t} else {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneActuatorConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"level\":\n\t\t\t\tcase \"dimmingDuration\": {\n\t\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (await this.get(propertyKey))?.[property];\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tsceneId: number,\n\t\tdimmingDuration?: Duration | string,\n\t\tlevel?: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneActuatorConfigurationCommand,\n\t\t\tSceneActuatorConfigurationCommand.Set,\n\t\t);\n\n\t\t// Undefined `dimmingDuration` defaults to 0 seconds to simplify the call\n\t\t// for actuators that don't support non-instant `dimmingDuration`\n\t\t// Undefined `level` uses the actuator's current value (override = 0).\n\t\tconst cc = new SceneActuatorConfigurationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsceneId,\n\t\t\tdimmingDuration: Duration.from(dimmingDuration)\n\t\t\t\t?? new Duration(0, \"seconds\"),\n\t\t\tlevel,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getActive(): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneActuatorConfigurationCCReport,\n\t\t\t\t\"sceneId\" | \"level\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneActuatorConfigurationCommand,\n\t\t\tSceneActuatorConfigurationCommand.Get,\n\t\t);\n\n\t\tconst cc = new SceneActuatorConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsceneId: 0,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneActuatorConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\tif (response) {\n\t\t\treturn pick(response, [\"sceneId\", \"level\", \"dimmingDuration\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async get(\n\t\tsceneId: number,\n\t): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneActuatorConfigurationCCReport,\n\t\t\t\t\"level\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneActuatorConfigurationCommand,\n\t\t\tSceneActuatorConfigurationCommand.Get,\n\t\t);\n\n\t\tif (sceneId === 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`Invalid scene ID 0. To get the currently active scene, use getActive() instead.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new SceneActuatorConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsceneId: sceneId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneActuatorConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\tif (response) {\n\t\t\treturn pick(response, [\"level\", \"dimmingDuration\"]);\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses[\"Scene Actuator Configuration\"])\n@implementedVersion(1)\n@ccValues(SceneActuatorConfigurationCCValues)\nexport class SceneActuatorConfigurationCC extends CommandClass {\n\tdeclare ccCommand: SceneActuatorConfigurationCommand;\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\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\tmessage: `${this.constructor.name}: setting metadata`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Create Metadata for all scenes\n\t\tfor (let sceneId = 1; sceneId <= 255; sceneId++) {\n\t\t\tconst levelValue = SceneActuatorConfigurationCCValues.level(\n\t\t\t\tsceneId,\n\t\t\t);\n\t\t\tthis.ensureMetadata(ctx, levelValue);\n\n\t\t\tconst dimmingDurationValue = SceneActuatorConfigurationCCValues\n\t\t\t\t.dimmingDuration(sceneId);\n\t\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\t\t}\n\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\t// `refreshValues()` would create 255 `Get` commands to be issued to the node\n\t// Therefore, I think we should not implement it. Here is how it would be implemented\n\t//\n\t// public async refreshValues(ctx: RefreshValuesContext): Promise<void> {\n\t// \tconst node = this.getNode(ctx)!;\n\t// \tconst endpoint = this.getEndpoint(ctx)!;\n\t// \tconst api = endpoint.commandClasses[\n\t// \t\t\"Scene Actuator Configuration\"\n\t// \t].withOptions({\n\t// \t\tpriority: MessagePriority.NodeQuery,\n\t// \t});\n\t// \tctx.logNode(node.id, {\n\t// \t\tmessage: \"querying all scene actuator configs...\",\n\t// \t\tdirection: \"outbound\",\n\t// \t});\n\t// \tfor (let sceneId = 1; sceneId <= 255; sceneId++) {\n\t// \t\tawait api.get(sceneId);\n\t// \t}\n\t// }\n}\n\n// @publicAPI\nexport interface SceneActuatorConfigurationCCSetOptions {\n\tsceneId: number;\n\tdimmingDuration: Duration;\n\tlevel?: number;\n}\n\n@CCCommand(SceneActuatorConfigurationCommand.Set)\n@useSupervision()\nexport class SceneActuatorConfigurationCCSet\n\textends SceneActuatorConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneActuatorConfigurationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.sceneId < 1 || options.sceneId > 255) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`The scene id ${options.sceneId} must be between 1 and 255!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.sceneId = options.sceneId;\n\t\tthis.dimmingDuration = options.dimmingDuration;\n\t\tthis.level = options.level;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneActuatorConfigurationCCSet {\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 SceneActuatorConfigurationCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic sceneId: number;\n\tpublic dimmingDuration: Duration;\n\tpublic level?: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.sceneId,\n\t\t\tthis.dimmingDuration.serializeSet(),\n\t\t\tthis.level != undefined ? 0b1000_0000 : 0,\n\t\t\tthis.level ?? 0xff,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tsceneId: this.sceneId,\n\t\t\tdimmingDuration: this.dimmingDuration.toString(),\n\t\t};\n\t\tif (this.level != undefined) {\n\t\t\tmessage.level = this.level;\n\t\t}\n\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 SceneActuatorConfigurationCCReportOptions {\n\tsceneId: number;\n\tlevel?: number;\n\tdimmingDuration?: Duration;\n}\n\n@CCCommand(SceneActuatorConfigurationCommand.Report)\nexport class SceneActuatorConfigurationCCReport\n\textends SceneActuatorConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneActuatorConfigurationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.sceneId = options.sceneId;\n\t\tthis.level = options.level;\n\t\tthis.dimmingDuration = options.dimmingDuration;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): SceneActuatorConfigurationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst sceneId = raw.payload[0];\n\n\t\tlet level: number | undefined;\n\t\tlet dimmingDuration: Duration | undefined;\n\t\tif (sceneId !== 0) {\n\t\t\tlevel = raw.payload[1];\n\t\t\tdimmingDuration = Duration.parseReport(raw.payload[2])\n\t\t\t\t?? Duration.unknown();\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsceneId,\n\t\t\tlevel,\n\t\t\tdimmingDuration,\n\t\t});\n\t}\n\n\tpublic readonly sceneId: number;\n\tpublic readonly level?: number;\n\tpublic readonly dimmingDuration?: Duration;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Do not persist values for an inactive scene\n\t\tif (\n\t\t\tthis.sceneId === 0\n\t\t\t|| this.level == undefined\n\t\t\t|| this.dimmingDuration == undefined\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst levelValue = SceneActuatorConfigurationCCValues.level(\n\t\t\tthis.sceneId,\n\t\t);\n\t\tthis.ensureMetadata(ctx, levelValue);\n\n\t\tconst dimmingDurationValue = SceneActuatorConfigurationCCValues\n\t\t\t.dimmingDuration(this.sceneId);\n\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\n\t\tthis.setValue(ctx, levelValue, this.level);\n\t\tthis.setValue(ctx, dimmingDurationValue, this.dimmingDuration);\n\n\t\treturn true;\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\tsceneId: this.sceneId,\n\t\t};\n\t\tif (this.dimmingDuration != undefined) {\n\t\t\tmessage.dimmingDuration = this.dimmingDuration.toString();\n\t\t}\n\t\tif (this.level != undefined) {\n\t\t\tmessage.level = this.level;\n\t\t}\n\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\nfunction testResponseForSceneActuatorConfigurationGet(\n\tsent: SceneActuatorConfigurationCCGet,\n\treceived: SceneActuatorConfigurationCCReport,\n) {\n\t// We expect a Scene Actuator Configuration Report that matches\n\t// the requested sceneId, unless groupId 0 was requested\n\treturn sent.sceneId === 0 || received.sceneId === sent.sceneId;\n}\n\n// @publicAPI\nexport interface SceneActuatorConfigurationCCGetOptions {\n\tsceneId: number;\n}\n\n@CCCommand(SceneActuatorConfigurationCommand.Get)\n@expectedCCResponse(\n\tSceneActuatorConfigurationCCReport,\n\ttestResponseForSceneActuatorConfigurationGet,\n)\nexport class SceneActuatorConfigurationCCGet\n\textends SceneActuatorConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneActuatorConfigurationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.sceneId = options.sceneId;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneActuatorConfigurationCCGet {\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 SceneActuatorConfigurationCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic sceneId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.sceneId]);\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: { \"scene id\": this.sceneId },\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
@@ -34,7 +34,7 @@ __export(SceneControllerConfigurationCC_validateArgs_exports, {
34
34
  validateArgs_SceneControllerConfigurationCCAPI_set: () => validateArgs_SceneControllerConfigurationCCAPI_set
35
35
  });
36
36
  module.exports = __toCommonJS(SceneControllerConfigurationCC_validateArgs_exports);
37
- var import_safe = require("@zwave-js/core/safe");
37
+ var import_core = require("@zwave-js/core");
38
38
  var v = __toESM(require("@zwave-js/core/validation"), 1);
39
39
  function validateArgs_SceneControllerConfigurationCCAPI_disable() {
40
40
  return (__decoratedMethod, { kind }) => {
@@ -51,7 +51,7 @@ function validateArgs_SceneControllerConfigurationCCAPI_set() {
51
51
  return (__decoratedMethod, { kind }) => {
52
52
  if (kind === "method") {
53
53
  return /* @__PURE__ */ __name(function set(groupId, sceneId, dimmingDuration) {
54
- v.assert(v.primitive({ kind: "parameter", name: "groupId" }, "number")(groupId), v.primitive({ kind: "parameter", name: "sceneId" }, "number")(sceneId), v.optional({ kind: "parameter", name: "dimmingDuration" }, v.oneOf({ kind: "parameter", name: "dimmingDuration" }, void 0, v.primitive({ kind: "parameter", name: "dimmingDuration" }, "string"), v.class({ kind: "parameter", name: "dimmingDuration" }, "Duration", import_safe.Duration)))(dimmingDuration));
54
+ v.assert(v.primitive({ kind: "parameter", name: "groupId" }, "number")(groupId), v.primitive({ kind: "parameter", name: "sceneId" }, "number")(sceneId), v.optional({ kind: "parameter", name: "dimmingDuration" }, v.oneOf({ kind: "parameter", name: "dimmingDuration" }, void 0, v.primitive({ kind: "parameter", name: "dimmingDuration" }, "string"), v.class({ kind: "parameter", name: "dimmingDuration" }, "Duration", import_core.Duration)))(dimmingDuration));
55
55
  return __decoratedMethod.call(this, groupId, sceneId, dimmingDuration);
56
56
  }, "set");
57
57
  }
@@ -1,7 +1,7 @@
1
- import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
- import { type GetDeviceConfig } from "@zwave-js/config";
3
- import { CommandClasses, Duration, type EndpointId, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core/safe";
4
- import { Bytes } from "@zwave-js/shared/safe";
1
+ import type { CCEncodingContext, CCParsingContext } from "@zwave-js/cc";
2
+ import type { GetDeviceConfig } from "@zwave-js/config";
3
+ import { CommandClasses, Duration, type EndpointId, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core";
4
+ import { Bytes } from "@zwave-js/shared";
5
5
  import { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, type SetValueImplementation } from "../lib/API.js";
6
6
  import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext } from "../lib/CommandClass.js";
7
7
  import { SceneControllerConfigurationCommand } from "../lib/_Types.js";
@@ -28,7 +28,7 @@ export declare const SceneControllerConfigurationCCValues: Readonly<{
28
28
  readonly writeable: true;
29
29
  };
30
30
  }) & {
31
- is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
31
+ is: (valueId: import("@zwave-js/core").ValueID) => boolean;
32
32
  options: {
33
33
  readonly internal: false;
34
34
  readonly minVersion: 1;
@@ -57,7 +57,7 @@ export declare const SceneControllerConfigurationCCValues: Readonly<{
57
57
  readonly writeable: true;
58
58
  };
59
59
  }) & {
60
- is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
60
+ is: (valueId: import("@zwave-js/core").ValueID) => boolean;
61
61
  options: {
62
62
  readonly internal: false;
63
63
  readonly minVersion: 1;
@@ -38,9 +38,8 @@ __export(SceneControllerConfigurationCC_exports, {
38
38
  });
39
39
  module.exports = __toCommonJS(SceneControllerConfigurationCC_exports);
40
40
  var __validateArgs = __toESM(require("./SceneControllerConfigurationCC._validateArgs.js"), 1);
41
- var import_safe = require("@zwave-js/core/safe");
42
- var import_safe2 = require("@zwave-js/shared/safe");
43
- var import_safe3 = require("@zwave-js/shared/safe");
41
+ var import_core = require("@zwave-js/core");
42
+ var import_shared = require("@zwave-js/shared");
44
43
  var import_API = require("../lib/API.js");
45
44
  var import_CommandClass = require("../lib/CommandClass.js");
46
45
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
@@ -90,7 +89,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
90
89
  };
91
90
  const { validateArgs_SceneControllerConfigurationCCAPI_disable, validateArgs_SceneControllerConfigurationCCAPI_set, validateArgs_SceneControllerConfigurationCCAPI_get } = __validateArgs;
92
91
  let SceneControllerConfigurationCCAPI = (() => {
93
- let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses["Scene Controller Configuration"])];
92
+ let _classDecorators = [(0, import_CommandClassDecorators.API)(import_core.CommandClasses["Scene Controller Configuration"])];
94
93
  let _classDescriptor;
95
94
  let _classExtraInitializers = [];
96
95
  let _classThis;
@@ -142,16 +141,16 @@ let SceneControllerConfigurationCCAPI = (() => {
142
141
  if (value === 0) {
143
142
  return this.disable(propertyKey);
144
143
  } else {
145
- const dimmingDuration = import_safe.Duration.from(options?.transitionDuration) ?? this.tryGetValueDB()?.getValue(import_CCValues_generated.SceneControllerConfigurationCCValues.dimmingDuration(propertyKey).endpoint(this.endpoint.index)) ?? import_safe.Duration.default();
144
+ const dimmingDuration = import_core.Duration.from(options?.transitionDuration) ?? this.tryGetValueDB()?.getValue(import_CCValues_generated.SceneControllerConfigurationCCValues.dimmingDuration(propertyKey).endpoint(this.endpoint.index)) ?? import_core.Duration.default();
146
145
  return this.set(propertyKey, value, dimmingDuration);
147
146
  }
148
147
  } else if (property === "dimmingDuration") {
149
- if (typeof value !== "string" && !import_safe.Duration.isDuration(value)) {
148
+ if (typeof value !== "string" && !import_core.Duration.isDuration(value)) {
150
149
  (0, import_API.throwWrongValueType)(this.ccId, property, "duration", typeof value);
151
150
  }
152
- const dimmingDuration = import_safe.Duration.from(value);
151
+ const dimmingDuration = import_core.Duration.from(value);
153
152
  if (dimmingDuration == void 0) {
154
- throw new import_safe.ZWaveError(`${(0, import_safe.getCCName)(this.ccId)}: "${property}" could not be set. ${JSON.stringify(value)} is not a valid duration.`, import_safe.ZWaveErrorCodes.Argument_Invalid);
153
+ throw new import_core.ZWaveError(`${(0, import_core.getCCName)(this.ccId)}: "${property}" could not be set. ${JSON.stringify(value)} is not a valid duration.`, import_core.ZWaveErrorCodes.Argument_Invalid);
155
154
  }
156
155
  const valueDB = this.tryGetValueDB();
157
156
  const sceneId = valueDB?.getValue(import_CCValues_generated.SceneControllerConfigurationCCValues.sceneId(propertyKey).endpoint(this.endpoint.index));
@@ -187,17 +186,17 @@ let SceneControllerConfigurationCCAPI = (() => {
187
186
  }
188
187
  async disable(groupId) {
189
188
  this.assertSupportsCommand(import_Types.SceneControllerConfigurationCommand, import_Types.SceneControllerConfigurationCommand.Set);
190
- return this.set(groupId, 0, new import_safe.Duration(0, "seconds"));
189
+ return this.set(groupId, 0, new import_core.Duration(0, "seconds"));
191
190
  }
192
191
  async set(groupId, sceneId, dimmingDuration) {
193
192
  this.assertSupportsCommand(import_Types.SceneControllerConfigurationCommand, import_Types.SceneControllerConfigurationCommand.Set);
194
193
  if (!this.endpoint.virtual) {
195
194
  const groupCount = SceneControllerConfigurationCC.getGroupCountCached(this.host, this.endpoint);
196
195
  if (groupId < 1 || groupId > groupCount) {
197
- throw new import_safe.ZWaveError(`${this.constructor.name}: The group ID must be between 1 and the number of supported groups ${groupCount}.`, import_safe.ZWaveErrorCodes.Argument_Invalid);
196
+ throw new import_core.ZWaveError(`${this.constructor.name}: The group ID must be between 1 and the number of supported groups ${groupCount}.`, import_core.ZWaveErrorCodes.Argument_Invalid);
198
197
  }
199
198
  } else if (groupId < 1) {
200
- throw new import_safe.ZWaveError(`The group ID must be greater than 0.`, import_safe.ZWaveErrorCodes.Argument_Invalid);
199
+ throw new import_core.ZWaveError(`The group ID must be greater than 0.`, import_core.ZWaveErrorCodes.Argument_Invalid);
201
200
  }
202
201
  const cc = new SceneControllerConfigurationCCSet({
203
202
  nodeId: this.endpoint.nodeId,
@@ -217,15 +216,15 @@ let SceneControllerConfigurationCCAPI = (() => {
217
216
  });
218
217
  const response = await this.host.sendCommand(cc, this.commandOptions);
219
218
  if (response) {
220
- return (0, import_safe3.pick)(response, ["groupId", "sceneId", "dimmingDuration"]);
219
+ return (0, import_shared.pick)(response, ["groupId", "sceneId", "dimmingDuration"]);
221
220
  }
222
221
  }
223
222
  async get(groupId) {
224
223
  this.assertSupportsCommand(import_Types.SceneControllerConfigurationCommand, import_Types.SceneControllerConfigurationCommand.Get);
225
224
  if (groupId === 0) {
226
- throw new import_safe.ZWaveError(`Invalid group ID 0. To get the last activated group / scene, use getLastActivated() instead.`, import_safe.ZWaveErrorCodes.Argument_Invalid);
225
+ throw new import_core.ZWaveError(`Invalid group ID 0. To get the last activated group / scene, use getLastActivated() instead.`, import_core.ZWaveErrorCodes.Argument_Invalid);
227
226
  } else if (groupId < 0) {
228
- throw new import_safe.ZWaveError(`The group ID must be greater than 0.`, import_safe.ZWaveErrorCodes.Argument_Invalid);
227
+ throw new import_core.ZWaveError(`The group ID must be greater than 0.`, import_core.ZWaveErrorCodes.Argument_Invalid);
229
228
  }
230
229
  const cc = new SceneControllerConfigurationCCGet({
231
230
  nodeId: this.endpoint.nodeId,
@@ -234,7 +233,7 @@ let SceneControllerConfigurationCCAPI = (() => {
234
233
  });
235
234
  const response = await this.host.sendCommand(cc, this.commandOptions);
236
235
  if (response) {
237
- return (0, import_safe3.pick)(response, ["sceneId", "dimmingDuration"]);
236
+ return (0, import_shared.pick)(response, ["sceneId", "dimmingDuration"]);
238
237
  }
239
238
  }
240
239
  constructor() {
@@ -245,7 +244,7 @@ let SceneControllerConfigurationCCAPI = (() => {
245
244
  return SceneControllerConfigurationCCAPI2 = _classThis;
246
245
  })();
247
246
  let SceneControllerConfigurationCC = (() => {
248
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses["Scene Controller Configuration"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.SceneControllerConfigurationCCValues)];
247
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_core.CommandClasses["Scene Controller Configuration"]), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.SceneControllerConfigurationCCValues)];
249
248
  let _classDescriptor;
250
249
  let _classExtraInitializers = [];
251
250
  let _classThis;
@@ -267,7 +266,7 @@ let SceneControllerConfigurationCC = (() => {
267
266
  determineRequiredCCInterviews() {
268
267
  return [
269
268
  ...super.determineRequiredCCInterviews(),
270
- import_safe.CommandClasses.Association
269
+ import_core.CommandClasses.Association
271
270
  ];
272
271
  }
273
272
  // eslint-disable-next-line @typescript-eslint/require-await
@@ -300,8 +299,8 @@ let SceneControllerConfigurationCC = (() => {
300
299
  async refreshValues(ctx) {
301
300
  const node = this.getNode(ctx);
302
301
  const endpoint = this.getEndpoint(ctx);
303
- const api = import_API.CCAPI.create(import_safe.CommandClasses["Scene Controller Configuration"], ctx, endpoint).withOptions({
304
- priority: import_safe.MessagePriority.NodeQuery
302
+ const api = import_API.CCAPI.create(import_core.CommandClasses["Scene Controller Configuration"], ctx, endpoint).withOptions({
303
+ priority: import_core.MessagePriority.NodeQuery
305
304
  });
306
305
  const groupCount = SceneControllerConfigurationCC2.getGroupCountCached(ctx, endpoint);
307
306
  ctx.logNode(node.id, {
@@ -362,16 +361,16 @@ let SceneControllerConfigurationCCSet = (() => {
362
361
  super(options);
363
362
  this.groupId = options.groupId;
364
363
  this.sceneId = options.sceneId;
365
- this.dimmingDuration = import_safe.Duration.from(options.dimmingDuration) ?? import_safe.Duration.default();
364
+ this.dimmingDuration = import_core.Duration.from(options.dimmingDuration) ?? import_core.Duration.default();
366
365
  }
367
366
  static from(_raw, _ctx) {
368
- throw new import_safe.ZWaveError(`${this.name}: deserialization not implemented`, import_safe.ZWaveErrorCodes.Deserialization_NotImplemented);
367
+ throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
369
368
  }
370
369
  groupId;
371
370
  sceneId;
372
371
  dimmingDuration;
373
372
  serialize(ctx) {
374
- this.payload = import_safe2.Bytes.from([
373
+ this.payload = import_shared.Bytes.from([
375
374
  this.groupId,
376
375
  this.sceneId,
377
376
  this.dimmingDuration.serializeSet()
@@ -418,10 +417,10 @@ let SceneControllerConfigurationCCReport = (() => {
418
417
  this.dimmingDuration = options.dimmingDuration;
419
418
  }
420
419
  static from(raw, ctx) {
421
- (0, import_safe.validatePayload)(raw.payload.length >= 3);
420
+ (0, import_core.validatePayload)(raw.payload.length >= 3);
422
421
  const groupId = raw.payload[0];
423
422
  const sceneId = raw.payload[1];
424
- const dimmingDuration = import_safe.Duration.parseReport(raw.payload[2]) ?? import_safe.Duration.unknown();
423
+ const dimmingDuration = import_core.Duration.parseReport(raw.payload[2]) ?? import_core.Duration.unknown();
425
424
  return new this({
426
425
  nodeId: ctx.sourceNodeId,
427
426
  groupId,
@@ -487,11 +486,11 @@ let SceneControllerConfigurationCCGet = (() => {
487
486
  this.groupId = options.groupId;
488
487
  }
489
488
  static from(_raw, _ctx) {
490
- throw new import_safe.ZWaveError(`${this.name}: deserialization not implemented`, import_safe.ZWaveErrorCodes.Deserialization_NotImplemented);
489
+ throw new import_core.ZWaveError(`${this.name}: deserialization not implemented`, import_core.ZWaveErrorCodes.Deserialization_NotImplemented);
491
490
  }
492
491
  groupId;
493
492
  serialize(ctx) {
494
- this.payload = import_safe2.Bytes.from([this.groupId]);
493
+ this.payload = import_shared.Bytes.from([this.groupId]);
495
494
  return super.serialize(ctx);
496
495
  }
497
496
  toLogEntry(ctx) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/SceneControllerConfigurationCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport { type GetDeviceConfig } from \"@zwave-js/config\";\nimport {\n\tCommandClasses,\n\tDuration,\n\ttype EndpointId,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tgetCCName,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { 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\tthrowMissingPropertyKey,\n\tthrowUnsupportedProperty,\n\tthrowUnsupportedPropertyKey,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { SceneControllerConfigurationCommand } from \"../lib/_Types.js\";\nimport { AssociationCC } from \"./AssociationCC.js\";\n\nexport const SceneControllerConfigurationCCValues = V.defineCCValues(\n\tCommandClasses[\"Scene Controller Configuration\"],\n\t{\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"sceneId\",\n\t\t\t\"sceneId\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"sceneId\" && typeof propertyKey === \"number\",\n\t\t\t(groupId: number) => ({\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: `Associated Scene ID (${groupId})`,\n\t\t\t\tvalueChangeOptions: [\"transitionDuration\"],\n\t\t\t} as const),\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"dimmingDuration\",\n\t\t\t\"dimmingDuration\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"dimmingDuration\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t(groupId: number) => ({\n\t\t\t\t...ValueMetadata.Duration,\n\t\t\t\tlabel: `Dimming duration (${groupId})`,\n\t\t\t} as const),\n\t\t),\n\t},\n);\n\n@API(CommandClasses[\"Scene Controller Configuration\"])\nexport class SceneControllerConfigurationCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: SceneControllerConfigurationCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase SceneControllerConfigurationCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase SceneControllerConfigurationCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneControllerConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t\toptions,\n\t\t) {\n\t\t\tif (propertyKey == undefined) {\n\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\tthrowUnsupportedPropertyKey(this.ccId, property, propertyKey);\n\t\t\t}\n\t\t\tif (property === \"sceneId\") {\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\t// Disable Group ID / Scene ID\n\t\t\t\t\treturn this.disable(propertyKey);\n\t\t\t\t} else {\n\t\t\t\t\t// We need to set the dimming duration along with the scene ID\n\t\t\t\t\t// Dimming duration is chosen with the following precedence:\n\t\t\t\t\t// 1. options.transitionDuration\n\t\t\t\t\t// 2. current stored value\n\t\t\t\t\t// 3. default value\n\t\t\t\t\tconst dimmingDuration =\n\t\t\t\t\t\tDuration.from(options?.transitionDuration)\n\t\t\t\t\t\t\t?? this.tryGetValueDB()?.getValue<Duration>(\n\t\t\t\t\t\t\t\tSceneControllerConfigurationCCValues\n\t\t\t\t\t\t\t\t\t.dimmingDuration(\n\t\t\t\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t?? Duration.default();\n\t\t\t\t\treturn this.set(propertyKey, value, dimmingDuration);\n\t\t\t\t}\n\t\t\t} else if (property === \"dimmingDuration\") {\n\t\t\t\tif (typeof value !== \"string\" && !Duration.isDuration(value)) {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"duration\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst dimmingDuration = Duration.from(value);\n\t\t\t\tif (dimmingDuration == undefined) {\n\t\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t\t`${\n\t\t\t\t\t\t\tgetCCName(\n\t\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}: \"${property}\" could not be set. ${\n\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} is not a valid duration.`,\n\t\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst valueDB = this.tryGetValueDB();\n\t\t\t\tconst sceneId = valueDB?.getValue<number>(\n\t\t\t\t\tSceneControllerConfigurationCCValues.sceneId(\n\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t);\n\t\t\t\tif (sceneId == undefined || sceneId === 0) {\n\t\t\t\t\tif (valueDB) {\n\t\t\t\t\t\t// Can't actually send dimmingDuration without valid sceneId\n\t\t\t\t\t\t// So we save it in the valueDB without sending it to the node\n\t\t\t\t\t\tconst dimmingDurationValueId =\n\t\t\t\t\t\t\tSceneControllerConfigurationCCValues\n\t\t\t\t\t\t\t\t.dimmingDuration(\n\t\t\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t\t\t).endpoint(this.endpoint.index);\n\t\t\t\t\t\tvalueDB.setValue(\n\t\t\t\t\t\t\tdimmingDurationValueId,\n\t\t\t\t\t\t\tdimmingDuration,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn this.set(propertyKey, sceneId, dimmingDuration);\n\t\t\t} else {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneControllerConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"sceneId\":\n\t\t\t\tcase \"dimmingDuration\": {\n\t\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (await this.get(propertyKey))?.[property];\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async disable(\n\t\tgroupId: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Set,\n\t\t);\n\n\t\treturn this.set(groupId, 0, new Duration(0, \"seconds\"));\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tgroupId: number,\n\t\tsceneId: number,\n\t\tdimmingDuration?: Duration | string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Set,\n\t\t);\n\n\t\tif (!this.endpoint.virtual) {\n\t\t\tconst groupCount = SceneControllerConfigurationCC\n\t\t\t\t.getGroupCountCached(\n\t\t\t\t\tthis.host,\n\t\t\t\t\tthis.endpoint,\n\t\t\t\t);\n\n\t\t\t// The client SHOULD NOT specify group 1 (the life-line group).\n\t\t\t// We don't block it here, because the specs don't forbid it,\n\t\t\t// and it may be needed for some devices.\n\t\t\tif (groupId < 1 || groupId > groupCount) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`${this.constructor.name}: The group ID must be between 1 and the number of supported groups ${groupCount}.`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (groupId < 1) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`The group ID must be greater than 0.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new SceneControllerConfigurationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tsceneId,\n\t\t\tdimmingDuration,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getLastActivated(): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneControllerConfigurationCCReport,\n\t\t\t\t\"groupId\" | \"sceneId\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Get,\n\t\t);\n\n\t\tconst cc = new SceneControllerConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId: 0,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneControllerConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\t// Return value includes \"groupId\", because\n\t\t// the returned report will include the actual groupId of the\n\t\t// last activated groupId / sceneId\n\t\tif (response) {\n\t\t\treturn pick(response, [\"groupId\", \"sceneId\", \"dimmingDuration\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async get(\n\t\tgroupId: number,\n\t): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneControllerConfigurationCCReport,\n\t\t\t\t\"sceneId\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Get,\n\t\t);\n\n\t\tif (groupId === 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`Invalid group ID 0. To get the last activated group / scene, use getLastActivated() instead.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t} else if (groupId < 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`The group ID must be greater than 0.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new SceneControllerConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneControllerConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\t// Since groupId is not allowed to be 0, only Reports with\n\t\t// groupId equal to the requested groupId will be accepted,\n\t\t// so we can omit groupId from the return.\n\t\tif (response) {\n\t\t\treturn pick(response, [\"sceneId\", \"dimmingDuration\"]);\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses[\"Scene Controller Configuration\"])\n@implementedVersion(1)\n@ccValues(SceneControllerConfigurationCCValues)\nexport class SceneControllerConfigurationCC extends CommandClass {\n\tdeclare ccCommand: SceneControllerConfigurationCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// AssociationCC is required and MUST be interviewed\n\t\t// before SceneControllerConfigurationCC to supply groupCount\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t];\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\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\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\tconst groupCount = SceneControllerConfigurationCC.getGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\t\tif (groupCount === 0) {\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`skipping Scene Controller Configuration interview because Association group count is unknown`,\n\t\t\t\tdirection: \"none\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Create metadata for each scene, but don't query their actual configuration\n\t\t// since some devices only support setting scenes\n\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\n\t\t\tconst sceneIdValue = SceneControllerConfigurationCCValues.sceneId(\n\t\t\t\tgroupId,\n\t\t\t);\n\t\t\tthis.ensureMetadata(ctx, sceneIdValue);\n\n\t\t\tconst dimmingDurationValue = SceneControllerConfigurationCCValues\n\t\t\t\t.dimmingDuration(groupId);\n\t\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\t\t}\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[\"Scene Controller Configuration\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst groupCount = SceneControllerConfigurationCC.getGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"querying all scene controller configurations...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\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 scene configuration for group #${groupId}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst group = await api.get(groupId);\n\t\t\tif (group != undefined) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received scene configuration for group #${groupId}:\nscene ID: ${group.sceneId}\ndimming duration: ${group.dimmingDuration.toString()}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the number of association groups reported by the node.\n\t * This only works AFTER the node has been interviewed by this CC\n\t * or the AssociationCC.\n\t */\n\tpublic static getGroupCountCached(\n\t\tctx: GetValueDB & GetDeviceConfig,\n\t\tendpoint: EndpointId,\n\t): number {\n\t\treturn ctx.getDeviceConfig?.(endpoint.nodeId)?.compat\n\t\t\t?.forceSceneControllerGroupCount\n\t\t\t?? AssociationCC.getGroupCountCached(ctx, endpoint)\n\t\t\t?? 0;\n\t}\n}\n\n// @publicAPI\nexport interface SceneControllerConfigurationCCSetOptions {\n\tgroupId: number;\n\tsceneId: number;\n\tdimmingDuration?: Duration | string;\n}\n\n@CCCommand(SceneControllerConfigurationCommand.Set)\n@useSupervision()\nexport class SceneControllerConfigurationCCSet\n\textends SceneControllerConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneControllerConfigurationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.groupId = options.groupId;\n\t\tthis.sceneId = options.sceneId;\n\t\t// if dimmingDuration was missing, use default duration.\n\t\tthis.dimmingDuration = Duration.from(options.dimmingDuration)\n\t\t\t?? Duration.default();\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneControllerConfigurationCCSet {\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 SceneControllerConfigurationCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic groupId: number;\n\tpublic sceneId: number;\n\tpublic dimmingDuration: Duration;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.groupId,\n\t\t\tthis.sceneId,\n\t\t\tthis.dimmingDuration.serializeSet(),\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\"group id\": this.groupId,\n\t\t\t\t\"scene id\": this.sceneId,\n\t\t\t\t\"dimming duration\": this.dimmingDuration.toString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface SceneControllerConfigurationCCReportOptions {\n\tgroupId: number;\n\tsceneId: number;\n\tdimmingDuration: Duration;\n}\n\n@CCCommand(SceneControllerConfigurationCommand.Report)\nexport class SceneControllerConfigurationCCReport\n\textends SceneControllerConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneControllerConfigurationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.groupId = options.groupId;\n\t\tthis.sceneId = options.sceneId;\n\t\tthis.dimmingDuration = options.dimmingDuration;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): SceneControllerConfigurationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst groupId = raw.payload[0];\n\t\tconst sceneId = raw.payload[1];\n\t\tconst dimmingDuration: Duration = Duration.parseReport(raw.payload[2])\n\t\t\t?? Duration.unknown();\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tsceneId,\n\t\t\tdimmingDuration,\n\t\t});\n\t}\n\n\tpublic readonly groupId: number;\n\tpublic readonly sceneId: number;\n\tpublic readonly dimmingDuration: Duration;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// If groupId = 0, values are meaningless\n\t\tif (this.groupId === 0) return false;\n\n\t\tconst sceneIdValue = SceneControllerConfigurationCCValues.sceneId(\n\t\t\tthis.groupId,\n\t\t);\n\t\tthis.ensureMetadata(ctx, sceneIdValue);\n\t\tconst dimmingDurationValue = SceneControllerConfigurationCCValues\n\t\t\t.dimmingDuration(this.groupId);\n\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\n\t\tthis.setValue(ctx, sceneIdValue, this.sceneId);\n\t\tthis.setValue(ctx, dimmingDurationValue, this.dimmingDuration);\n\n\t\treturn true;\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\"group id\": this.groupId,\n\t\t\t\t\"scene id\": this.sceneId,\n\t\t\t\t\"dimming duration\": this.dimmingDuration.toString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\nfunction testResponseForSceneControllerConfigurationGet(\n\tsent: SceneControllerConfigurationCCGet,\n\treceived: SceneControllerConfigurationCCReport,\n) {\n\t// We expect a Scene Controller Configuration Report that matches\n\t// the requested groupId, unless groupId 0 was requested\n\treturn sent.groupId === 0 || received.groupId === sent.groupId;\n}\n\n// @publicAPI\nexport interface SceneControllerConfigurationCCGetOptions {\n\tgroupId: number;\n}\n\n@CCCommand(SceneControllerConfigurationCommand.Get)\n@expectedCCResponse(\n\tSceneControllerConfigurationCCReport,\n\ttestResponseForSceneControllerConfigurationGet,\n)\nexport class SceneControllerConfigurationCCGet\n\textends SceneControllerConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneControllerConfigurationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneControllerConfigurationCCGet {\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 SceneControllerConfigurationCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupId]);\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: { \"group id\": this.groupId },\n\t\t};\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kBAeO;AACP,IAAAA,eAAsB;AACtB,IAAAA,eAAqB;AAErB,iBAUO;AACP,0BAMO;AACP,oCAQO;AACP,oBAAkB;AAClB,mBAAoD;AACpD,2BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCjB,qCAAiC,MAAA;8BAD7C,mCAAI,2BAAe,gCAAgC,CAAC,CAAC;;;;oBACC;;;;;yDAAA,YAAK;WAAA;;;;;;;;6BAwI1D,uDAAA,CAAc;yBAYd,mDAAA,CAAc;yBA8Ed,mDAAA,CAAc;AAzFf,mBAAA,MAAA,MAAA,qBAAA,EAAA,MAAA,UAAA,MAAA,WAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,aAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,SAAb,OAAoB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAYpB,mBAAA,MAAA,MAAA,iBAAA,EAAA,MAAA,UAAA,MAAA,OAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,SAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,KAAb,OAAgB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AA8EhB,mBAAA,MAAA,MAAA,iBAAA,EAAA,MAAA,UAAA,MAAA,OAAA,QAAA,OAAA,SAAA,OAAA,QAAA,EAAA,KAAA,gCAAA,SAAA,KAAA,QAAA,KAAA,gCAAA,IAAa,KAAb,OAAgB,GAAA,UAAA,UAAA,GAAA,MAAA,0BAAA;AAnOjB,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IACL,gBACN,KAAwC;AAExC,cAAQ,KAAK;QACZ,KAAK,iDAAoC;AACxC,iBAAO,KAAK,aAAY;QACzB,KAAK,iDAAoC;AACxC,iBAAO;MACT;AACA,aAAO,MAAM,gBAAgB,GAAG;IACjC;IAEA,KAAwB,oBAAS,IAAC;AACjC,aAAO,eAEN,EAAE,UAAU,YAAW,GACvB,OACA,SAAO;AAEP,YAAI,eAAe,QAAW;AAC7B,kDAAwB,KAAK,MAAM,QAAQ;QAC5C,WAAW,OAAO,gBAAgB,UAAU;AAC3C,sDAA4B,KAAK,MAAM,UAAU,WAAW;QAC7D;AACA,YAAI,aAAa,WAAW;AAC3B,cAAI,OAAO,UAAU,UAAU;AAC9B,gDACC,KAAK,MACL,UACA,UACA,OAAO,KAAK;UAEd;AAEA,cAAI,UAAU,GAAG;AAEhB,mBAAO,KAAK,QAAQ,WAAW;UAChC,OAAO;AAMN,kBAAM,kBACL,qBAAS,KAAK,SAAS,kBAAkB,KACrC,KAAK,cAAa,GAAI,SACxB,+DACE,gBACA,WAAW,EACV,SAAS,KAAK,SAAS,KAAK,CAAC,KAE9B,qBAAS,QAAO;AACrB,mBAAO,KAAK,IAAI,aAAa,OAAO,eAAe;UACpD;QACD,WAAW,aAAa,mBAAmB;AAC1C,cAAI,OAAO,UAAU,YAAY,CAAC,qBAAS,WAAW,KAAK,GAAG;AAC7D,gDACC,KAAK,MACL,UACA,YACA,OAAO,KAAK;UAEd;AAEA,gBAAM,kBAAkB,qBAAS,KAAK,KAAK;AAC3C,cAAI,mBAAmB,QAAW;AACjC,kBAAM,IAAI,uBACT,OACC,uBACC,KAAK,IAAI,CAEX,MAAM,QAAQ,uBACb,KAAK,UACJ,KAAK,CAEP,6BACA,4BAAgB,gBAAgB;UAElC;AAEA,gBAAM,UAAU,KAAK,cAAa;AAClC,gBAAM,UAAU,SAAS,SACxB,+DAAqC,QACpC,WAAW,EACV,SAAS,KAAK,SAAS,KAAK,CAAC;AAEhC,cAAI,WAAW,UAAa,YAAY,GAAG;AAC1C,gBAAI,SAAS;AAGZ,oBAAM,yBACL,+DACE,gBACA,WAAW,EACV,SAAS,KAAK,SAAS,KAAK;AAChC,sBAAQ,SACP,wBACA,eAAe;YAEjB;AACA;UACD;AAEA,iBAAO,KAAK,IAAI,aAAa,SAAS,eAAe;QACtD,OAAO;AACN,mDAAyB,KAAK,MAAM,QAAQ;QAC7C;MACD;IACD;IAEA,KAAe,qBAAU,IAAC;AACzB,aAAO,eAEN,EAAE,UAAU,YAAW,GAAE;AAEzB,gBAAQ,UAAU;UACjB,KAAK;UACL,KAAK,mBAAmB;AACvB,gBAAI,eAAe,QAAW;AAC7B,sDAAwB,KAAK,MAAM,QAAQ;YAC5C,WAAW,OAAO,gBAAgB,UAAU;AAC3C,0DACC,KAAK,MACL,UACA,WAAW;YAEb;AACA,oBAAQ,MAAM,KAAK,IAAI,WAAW,KAAK,QAAQ;UAChD;UACA;AACC,qDAAyB,KAAK,MAAM,QAAQ;QAC9C;MACD;IACD;IAGO,MAAM,QACZ,SAAe;AAEf,WAAK,sBACJ,kDACA,iDAAoC,GAAG;AAGxC,aAAO,KAAK,IAAI,SAAS,GAAG,IAAI,qBAAS,GAAG,SAAS,CAAC;IACvD;IAGO,MAAM,IACZ,SACA,SACA,iBAAmC;AAEnC,WAAK,sBACJ,kDACA,iDAAoC,GAAG;AAGxC,UAAI,CAAC,KAAK,SAAS,SAAS;AAC3B,cAAM,aAAa,+BACjB,oBACA,KAAK,MACL,KAAK,QAAQ;AAMf,YAAI,UAAU,KAAK,UAAU,YAAY;AACxC,gBAAM,IAAI,uBACT,GAAG,KAAK,YAAY,IAAI,uEAAuE,UAAU,KACzG,4BAAgB,gBAAgB;QAElC;MACD,WAAW,UAAU,GAAG;AACvB,cAAM,IAAI,uBACT,wCACA,4BAAgB,gBAAgB;MAElC;AAEA,YAAM,KAAK,IAAI,kCAAkC;QAChD,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;QACA;QACA;OACA;AAED,aAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;IACrD;IAEO,MAAM,mBAAgB;AAQ5B,WAAK,sBACJ,kDACA,iDAAoC,GAAG;AAGxC,YAAM,KAAK,IAAI,kCAAkC;QAChD,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B,SAAS;OACT;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAMpB,UAAI,UAAU;AACb,mBAAO,mBAAK,UAAU,CAAC,WAAW,WAAW,iBAAiB,CAAC;MAChE;IACD;IAGO,MAAM,IACZ,SAAe;AASf,WAAK,sBACJ,kDACA,iDAAoC,GAAG;AAGxC,UAAI,YAAY,GAAG;AAClB,cAAM,IAAI,uBACT,gGACA,4BAAgB,gBAAgB;MAElC,WAAW,UAAU,GAAG;AACvB,cAAM,IAAI,uBACT,wCACA,4BAAgB,gBAAgB;MAElC;AAEA,YAAM,KAAK,IAAI,kCAAkC;QAChD,QAAQ,KAAK,SAAS;QACtB,eAAe,KAAK,SAAS;QAC7B;OACA;AACD,YAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAMpB,UAAI,UAAU;AACb,mBAAO,mBAAK,UAAU,CAAC,WAAW,iBAAiB,CAAC;MACrD;IACD;;;AAhRY,wBAAA,MAAA,0BAAA;;;;;IAsRA,kCAA8B,MAAA;8BAH1C,4CAAa,2BAAe,gCAAgC,CAAC,OAC7D,kDAAmB,CAAC,OACpB,wCAAS,8DAAoC,CAAC;;;;oBACK;sDAAA,YAAY;WAAA;;;;;;;;AAAhE,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGL,gCAA6B;AAGnC,aAAO;QACN,GAAG,MAAM,8BAA6B;QACtC,2BAAe;;IAEjB;;IAGO,MAAM,UACZ,KAAqB;AAErB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AAErC,UAAI,QAAQ,KAAK,IAAI;QACpB,UAAU,KAAK;QACf,SAAS,gBAAgB,KAAK,MAAM;QACpC,WAAW;OACX;AAED,YAAM,aAAaC,gCAA+B,oBACjD,KACA,QAAQ;AAET,UAAI,eAAe,GAAG;AACrB,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SACC;UACD,WAAW;UACX,OAAO;SACP;AACD;MACD;AAIA,eAAS,UAAU,GAAG,WAAW,YAAY,WAAW;AACvD,cAAM,eAAe,+DAAqC,QACzD,OAAO;AAER,aAAK,eAAe,KAAK,YAAY;AAErC,cAAM,uBAAuB,+DAC3B,gBAAgB,OAAO;AACzB,aAAK,eAAe,KAAK,oBAAoB;MAC9C;AAGA,WAAK,qBAAqB,KAAK,IAAI;IACpC;IAEO,MAAM,cACZ,KAAyB;AAEzB,YAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,YAAM,WAAW,KAAK,YAAY,GAAG;AACrC,YAAM,MAAM,iBAAM,OACjB,2BAAe,gCAAgC,GAC/C,KACA,QAAQ,EACP,YAAY;QACb,UAAU,4BAAgB;OAC1B;AAED,YAAM,aAAaA,gCAA+B,oBACjD,KACA,QAAQ;AAGT,UAAI,QAAQ,KAAK,IAAI;QACpB,SAAS;QACT,WAAW;OACX;AACD,eAAS,UAAU,GAAG,WAAW,YAAY,WAAW;AACvD,YAAI,QAAQ,KAAK,IAAI;UACpB,UAAU,KAAK;UACf,SACC,2CAA2C,OAAO;UACnD,WAAW;SACX;AACD,cAAM,QAAQ,MAAM,IAAI,IAAI,OAAO;AACnC,YAAI,SAAS,QAAW;AACvB,gBAAM,aACL,2CAA2C,OAAO;oBACnC,MAAM,OAAO;oBACb,MAAM,gBAAgB,SAAQ,CAAE;AAChD,cAAI,QAAQ,KAAK,IAAI;YACpB,UAAU,KAAK;YACf,SAAS;YACT,WAAW;WACX;QACF;MACD;IACD;;;;;;IAOO,OAAO,oBACb,KACA,UAAoB;AAEpB,aAAO,IAAI,kBAAkB,SAAS,MAAM,GAAG,QAC5C,kCACC,mCAAc,oBAAoB,KAAK,QAAQ,KAC/C;IACL;;;;IAYY,qCAAiC,MAAA;8BAF7C,yCAAU,iDAAoC,GAAG,OACjD,8CAAc,CAAE;;;;oBAER;yDAAA,YAA8B;WAAA;;;;;;;;AADvC,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAA8D;AAE9D,YAAM,OAAO;AACb,WAAK,UAAU,QAAQ;AACvB,WAAK,UAAU,QAAQ;AAEvB,WAAK,kBAAkB,qBAAS,KAAK,QAAQ,eAAe,KACxD,qBAAS,QAAO;IACrB;IAEO,OAAO,KACb,MACA,MAAsB;AAGtB,YAAM,IAAI,uBACT,GAAG,KAAK,IAAI,qCACZ,4BAAgB,8BAA8B;IAMhD;IAEO;IACA;IACA;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,mBAAM,KAAK;QACzB,KAAK;QACL,KAAK;QACL,KAAK,gBAAgB,aAAY;OACjC;AACD,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,YAAY,KAAK;UACjB,YAAY,KAAK;UACjB,oBAAoB,KAAK,gBAAgB,SAAQ;;;IAGpD;;;;IAWY,wCAAoC,MAAA;8BADhD,yCAAU,iDAAoC,MAAM,CAAC;;;;oBAE7C;4DAAA,YAA8B;WAAA;;;;;;;;AADvC,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAAiE;AAEjE,YAAM,OAAO;AAGb,WAAK,UAAU,QAAQ;AACvB,WAAK,UAAU,QAAQ;AACvB,WAAK,kBAAkB,QAAQ;IAChC;IAEO,OAAO,KACb,KACA,KAAqB;AAErB,uCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,YAAM,UAAU,IAAI,QAAQ,CAAC;AAC7B,YAAM,UAAU,IAAI,QAAQ,CAAC;AAC7B,YAAM,kBAA4B,qBAAS,YAAY,IAAI,QAAQ,CAAC,CAAC,KACjE,qBAAS,QAAO;AAEpB,aAAO,IAAI,KAAK;QACf,QAAQ,IAAI;QACZ;QACA;QACA;OACA;IACF;IAEgB;IACA;IACA;IAET,cAAc,KAAyB;AAC7C,UAAI,CAAC,MAAM,cAAc,GAAG;AAAG,eAAO;AAGtC,UAAI,KAAK,YAAY;AAAG,eAAO;AAE/B,YAAM,eAAe,+DAAqC,QACzD,KAAK,OAAO;AAEb,WAAK,eAAe,KAAK,YAAY;AACrC,YAAM,uBAAuB,+DAC3B,gBAAgB,KAAK,OAAO;AAC9B,WAAK,eAAe,KAAK,oBAAoB;AAE7C,WAAK,SAAS,KAAK,cAAc,KAAK,OAAO;AAC7C,WAAK,SAAS,KAAK,sBAAsB,KAAK,eAAe;AAE7D,aAAO;IACR;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS;UACR,YAAY,KAAK;UACjB,YAAY,KAAK;UACjB,oBAAoB,KAAK,gBAAgB,SAAQ;;;IAGpD;;;;AAGD,SAAS,+CACR,MACA,UAA8C;AAI9C,SAAO,KAAK,YAAY,KAAK,SAAS,YAAY,KAAK;AACxD;AAPS;IAmBI,qCAAiC,MAAA;8BAL7C,yCAAU,iDAAoC,GAAG,OACjD,kDACA,sCACA,8CAA8C,CAC9C;;;;oBAEQ;yDAAA,YAA8B;WAAA;;;;;;;;AADvC,mBAAA,MAAA,mBAAA,EAAA,OAAA,WAAA,GAAA,kBAAA,EAAA,MAAA,SAAA,MAAA,WAAA,MAAA,UAAA,UAAA,GAAA,MAAA,uBAAA;;;AAAa,wBAAA,YAAA,uBAAA;;IAGZ,YACC,SAA8D;AAE9D,YAAM,OAAO;AACb,WAAK,UAAU,QAAQ;IACxB;IAEO,OAAO,KACb,MACA,MAAsB;AAGtB,YAAM,IAAI,uBACT,GAAG,KAAK,IAAI,qCACZ,4BAAgB,8BAA8B;IAMhD;IAEO;IAEA,UAAU,KAAsB;AACtC,WAAK,UAAU,mBAAM,KAAK,CAAC,KAAK,OAAO,CAAC;AACxC,aAAO,MAAM,UAAU,GAAG;IAC3B;IAEO,WAAW,KAAgB;AACjC,aAAO;QACN,GAAG,MAAM,WAAW,GAAG;QACvB,SAAS,EAAE,YAAY,KAAK,QAAO;;IAErC;;;;",
6
- "names": ["import_safe", "SceneControllerConfigurationCC"]
4
+ "sourcesContent": ["import type { CCEncodingContext, CCParsingContext } from \"@zwave-js/cc\";\nimport type { GetDeviceConfig } from \"@zwave-js/config\";\nimport {\n\tCommandClasses,\n\tDuration,\n\ttype EndpointId,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tgetCCName,\n\tvalidatePayload,\n} from \"@zwave-js/core\";\nimport { Bytes, pick } from \"@zwave-js/shared\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowMissingPropertyKey,\n\tthrowUnsupportedProperty,\n\tthrowUnsupportedPropertyKey,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { SceneControllerConfigurationCommand } from \"../lib/_Types.js\";\nimport { AssociationCC } from \"./AssociationCC.js\";\n\nexport const SceneControllerConfigurationCCValues = V.defineCCValues(\n\tCommandClasses[\"Scene Controller Configuration\"],\n\t{\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"sceneId\",\n\t\t\t\"sceneId\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"sceneId\" && typeof propertyKey === \"number\",\n\t\t\t(groupId: number) => ({\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: `Associated Scene ID (${groupId})`,\n\t\t\t\tvalueChangeOptions: [\"transitionDuration\"],\n\t\t\t} as const),\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"dimmingDuration\",\n\t\t\t\"dimmingDuration\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"dimmingDuration\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t(groupId: number) => ({\n\t\t\t\t...ValueMetadata.Duration,\n\t\t\t\tlabel: `Dimming duration (${groupId})`,\n\t\t\t} as const),\n\t\t),\n\t},\n);\n\n@API(CommandClasses[\"Scene Controller Configuration\"])\nexport class SceneControllerConfigurationCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: SceneControllerConfigurationCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase SceneControllerConfigurationCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase SceneControllerConfigurationCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneControllerConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t\toptions,\n\t\t) {\n\t\t\tif (propertyKey == undefined) {\n\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\tthrowUnsupportedPropertyKey(this.ccId, property, propertyKey);\n\t\t\t}\n\t\t\tif (property === \"sceneId\") {\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\t// Disable Group ID / Scene ID\n\t\t\t\t\treturn this.disable(propertyKey);\n\t\t\t\t} else {\n\t\t\t\t\t// We need to set the dimming duration along with the scene ID\n\t\t\t\t\t// Dimming duration is chosen with the following precedence:\n\t\t\t\t\t// 1. options.transitionDuration\n\t\t\t\t\t// 2. current stored value\n\t\t\t\t\t// 3. default value\n\t\t\t\t\tconst dimmingDuration =\n\t\t\t\t\t\tDuration.from(options?.transitionDuration)\n\t\t\t\t\t\t\t?? this.tryGetValueDB()?.getValue<Duration>(\n\t\t\t\t\t\t\t\tSceneControllerConfigurationCCValues\n\t\t\t\t\t\t\t\t\t.dimmingDuration(\n\t\t\t\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t?? Duration.default();\n\t\t\t\t\treturn this.set(propertyKey, value, dimmingDuration);\n\t\t\t\t}\n\t\t\t} else if (property === \"dimmingDuration\") {\n\t\t\t\tif (typeof value !== \"string\" && !Duration.isDuration(value)) {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"duration\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst dimmingDuration = Duration.from(value);\n\t\t\t\tif (dimmingDuration == undefined) {\n\t\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t\t`${\n\t\t\t\t\t\t\tgetCCName(\n\t\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}: \"${property}\" could not be set. ${\n\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} is not a valid duration.`,\n\t\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst valueDB = this.tryGetValueDB();\n\t\t\t\tconst sceneId = valueDB?.getValue<number>(\n\t\t\t\t\tSceneControllerConfigurationCCValues.sceneId(\n\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t).endpoint(this.endpoint.index),\n\t\t\t\t);\n\t\t\t\tif (sceneId == undefined || sceneId === 0) {\n\t\t\t\t\tif (valueDB) {\n\t\t\t\t\t\t// Can't actually send dimmingDuration without valid sceneId\n\t\t\t\t\t\t// So we save it in the valueDB without sending it to the node\n\t\t\t\t\t\tconst dimmingDurationValueId =\n\t\t\t\t\t\t\tSceneControllerConfigurationCCValues\n\t\t\t\t\t\t\t\t.dimmingDuration(\n\t\t\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t\t\t).endpoint(this.endpoint.index);\n\t\t\t\t\t\tvalueDB.setValue(\n\t\t\t\t\t\t\tdimmingDurationValueId,\n\t\t\t\t\t\t\tdimmingDuration,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\treturn this.set(propertyKey, sceneId, dimmingDuration);\n\t\t\t} else {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: SceneControllerConfigurationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"sceneId\":\n\t\t\t\tcase \"dimmingDuration\": {\n\t\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (await this.get(propertyKey))?.[property];\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t@validateArgs()\n\tpublic async disable(\n\t\tgroupId: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Set,\n\t\t);\n\n\t\treturn this.set(groupId, 0, new Duration(0, \"seconds\"));\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tgroupId: number,\n\t\tsceneId: number,\n\t\tdimmingDuration?: Duration | string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Set,\n\t\t);\n\n\t\tif (!this.endpoint.virtual) {\n\t\t\tconst groupCount = SceneControllerConfigurationCC\n\t\t\t\t.getGroupCountCached(\n\t\t\t\t\tthis.host,\n\t\t\t\t\tthis.endpoint,\n\t\t\t\t);\n\n\t\t\t// The client SHOULD NOT specify group 1 (the life-line group).\n\t\t\t// We don't block it here, because the specs don't forbid it,\n\t\t\t// and it may be needed for some devices.\n\t\t\tif (groupId < 1 || groupId > groupCount) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`${this.constructor.name}: The group ID must be between 1 and the number of supported groups ${groupCount}.`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (groupId < 1) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`The group ID must be greater than 0.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new SceneControllerConfigurationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tsceneId,\n\t\t\tdimmingDuration,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tpublic async getLastActivated(): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneControllerConfigurationCCReport,\n\t\t\t\t\"groupId\" | \"sceneId\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Get,\n\t\t);\n\n\t\tconst cc = new SceneControllerConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId: 0,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneControllerConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\t// Return value includes \"groupId\", because\n\t\t// the returned report will include the actual groupId of the\n\t\t// last activated groupId / sceneId\n\t\tif (response) {\n\t\t\treturn pick(response, [\"groupId\", \"sceneId\", \"dimmingDuration\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async get(\n\t\tgroupId: number,\n\t): Promise<\n\t\tMaybeNotKnown<\n\t\t\tPick<\n\t\t\t\tSceneControllerConfigurationCCReport,\n\t\t\t\t\"sceneId\" | \"dimmingDuration\"\n\t\t\t>\n\t\t>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tSceneControllerConfigurationCommand,\n\t\t\tSceneControllerConfigurationCommand.Get,\n\t\t);\n\n\t\tif (groupId === 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`Invalid group ID 0. To get the last activated group / scene, use getLastActivated() instead.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t} else if (groupId < 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`The group ID must be greater than 0.`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new SceneControllerConfigurationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tSceneControllerConfigurationCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\n\t\t// Since groupId is not allowed to be 0, only Reports with\n\t\t// groupId equal to the requested groupId will be accepted,\n\t\t// so we can omit groupId from the return.\n\t\tif (response) {\n\t\t\treturn pick(response, [\"sceneId\", \"dimmingDuration\"]);\n\t\t}\n\t}\n}\n\n@commandClass(CommandClasses[\"Scene Controller Configuration\"])\n@implementedVersion(1)\n@ccValues(SceneControllerConfigurationCCValues)\nexport class SceneControllerConfigurationCC extends CommandClass {\n\tdeclare ccCommand: SceneControllerConfigurationCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// AssociationCC is required and MUST be interviewed\n\t\t// before SceneControllerConfigurationCC to supply groupCount\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t];\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\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\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\tconst groupCount = SceneControllerConfigurationCC.getGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\t\tif (groupCount === 0) {\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`skipping Scene Controller Configuration interview because Association group count is unknown`,\n\t\t\t\tdirection: \"none\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Create metadata for each scene, but don't query their actual configuration\n\t\t// since some devices only support setting scenes\n\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\n\t\t\tconst sceneIdValue = SceneControllerConfigurationCCValues.sceneId(\n\t\t\t\tgroupId,\n\t\t\t);\n\t\t\tthis.ensureMetadata(ctx, sceneIdValue);\n\n\t\t\tconst dimmingDurationValue = SceneControllerConfigurationCCValues\n\t\t\t\t.dimmingDuration(groupId);\n\t\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\t\t}\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[\"Scene Controller Configuration\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst groupCount = SceneControllerConfigurationCC.getGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"querying all scene controller configurations...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\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 scene configuration for group #${groupId}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst group = await api.get(groupId);\n\t\t\tif (group != undefined) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received scene configuration for group #${groupId}:\nscene ID: ${group.sceneId}\ndimming duration: ${group.dimmingDuration.toString()}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the number of association groups reported by the node.\n\t * This only works AFTER the node has been interviewed by this CC\n\t * or the AssociationCC.\n\t */\n\tpublic static getGroupCountCached(\n\t\tctx: GetValueDB & GetDeviceConfig,\n\t\tendpoint: EndpointId,\n\t): number {\n\t\treturn ctx.getDeviceConfig?.(endpoint.nodeId)?.compat\n\t\t\t?.forceSceneControllerGroupCount\n\t\t\t?? AssociationCC.getGroupCountCached(ctx, endpoint)\n\t\t\t?? 0;\n\t}\n}\n\n// @publicAPI\nexport interface SceneControllerConfigurationCCSetOptions {\n\tgroupId: number;\n\tsceneId: number;\n\tdimmingDuration?: Duration | string;\n}\n\n@CCCommand(SceneControllerConfigurationCommand.Set)\n@useSupervision()\nexport class SceneControllerConfigurationCCSet\n\textends SceneControllerConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneControllerConfigurationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.groupId = options.groupId;\n\t\tthis.sceneId = options.sceneId;\n\t\t// if dimmingDuration was missing, use default duration.\n\t\tthis.dimmingDuration = Duration.from(options.dimmingDuration)\n\t\t\t?? Duration.default();\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneControllerConfigurationCCSet {\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 SceneControllerConfigurationCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic groupId: number;\n\tpublic sceneId: number;\n\tpublic dimmingDuration: Duration;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.groupId,\n\t\t\tthis.sceneId,\n\t\t\tthis.dimmingDuration.serializeSet(),\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\"group id\": this.groupId,\n\t\t\t\t\"scene id\": this.sceneId,\n\t\t\t\t\"dimming duration\": this.dimmingDuration.toString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface SceneControllerConfigurationCCReportOptions {\n\tgroupId: number;\n\tsceneId: number;\n\tdimmingDuration: Duration;\n}\n\n@CCCommand(SceneControllerConfigurationCommand.Report)\nexport class SceneControllerConfigurationCCReport\n\textends SceneControllerConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneControllerConfigurationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.groupId = options.groupId;\n\t\tthis.sceneId = options.sceneId;\n\t\tthis.dimmingDuration = options.dimmingDuration;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): SceneControllerConfigurationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst groupId = raw.payload[0];\n\t\tconst sceneId = raw.payload[1];\n\t\tconst dimmingDuration: Duration = Duration.parseReport(raw.payload[2])\n\t\t\t?? Duration.unknown();\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tsceneId,\n\t\t\tdimmingDuration,\n\t\t});\n\t}\n\n\tpublic readonly groupId: number;\n\tpublic readonly sceneId: number;\n\tpublic readonly dimmingDuration: Duration;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// If groupId = 0, values are meaningless\n\t\tif (this.groupId === 0) return false;\n\n\t\tconst sceneIdValue = SceneControllerConfigurationCCValues.sceneId(\n\t\t\tthis.groupId,\n\t\t);\n\t\tthis.ensureMetadata(ctx, sceneIdValue);\n\t\tconst dimmingDurationValue = SceneControllerConfigurationCCValues\n\t\t\t.dimmingDuration(this.groupId);\n\t\tthis.ensureMetadata(ctx, dimmingDurationValue);\n\n\t\tthis.setValue(ctx, sceneIdValue, this.sceneId);\n\t\tthis.setValue(ctx, dimmingDurationValue, this.dimmingDuration);\n\n\t\treturn true;\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\"group id\": this.groupId,\n\t\t\t\t\"scene id\": this.sceneId,\n\t\t\t\t\"dimming duration\": this.dimmingDuration.toString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\nfunction testResponseForSceneControllerConfigurationGet(\n\tsent: SceneControllerConfigurationCCGet,\n\treceived: SceneControllerConfigurationCCReport,\n) {\n\t// We expect a Scene Controller Configuration Report that matches\n\t// the requested groupId, unless groupId 0 was requested\n\treturn sent.groupId === 0 || received.groupId === sent.groupId;\n}\n\n// @publicAPI\nexport interface SceneControllerConfigurationCCGetOptions {\n\tgroupId: number;\n}\n\n@CCCommand(SceneControllerConfigurationCommand.Get)\n@expectedCCResponse(\n\tSceneControllerConfigurationCCReport,\n\ttestResponseForSceneControllerConfigurationGet,\n)\nexport class SceneControllerConfigurationCCGet\n\textends SceneControllerConfigurationCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<SceneControllerConfigurationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): SceneControllerConfigurationCCGet {\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 SceneControllerConfigurationCCGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupId]);\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: { \"group id\": this.groupId },\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SceneControllerConfigurationCC"]
7
7
  }
@@ -1,6 +1,5 @@
1
- import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
- import { CommandClasses, type GetValueDB, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core";
3
- import { type EndpointId, type MaybeNotKnown } from "@zwave-js/core/safe";
1
+ import type { CCEncodingContext, CCParsingContext } from "@zwave-js/cc";
2
+ import { CommandClasses, type EndpointId, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core";
4
3
  import { type AllOrNone, Bytes } from "@zwave-js/shared";
5
4
  import { CCAPI } from "../lib/API.js";
6
5
  import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext } from "../lib/CommandClass.js";