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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +139 -57
  2. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  3. package/build/cjs/cc/AssociationCC.d.ts +178 -43
  4. package/build/cjs/cc/AssociationCC.js +0 -4
  5. package/build/cjs/cc/AssociationCC.js.map +2 -2
  6. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +138 -38
  7. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  8. package/build/cjs/cc/BarrierOperatorCC.d.ts +275 -73
  9. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  10. package/build/cjs/cc/BasicCC.d.ts +316 -71
  11. package/build/cjs/cc/BasicCC.js.map +2 -2
  12. package/build/cjs/cc/BatteryCC.d.ts +759 -164
  13. package/build/cjs/cc/BatteryCC.js.map +2 -2
  14. package/build/cjs/cc/BinarySensorCC.d.ts +91 -26
  15. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  16. package/build/cjs/cc/BinarySwitchCC.d.ts +190 -38
  17. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  18. package/build/cjs/cc/CRC16CC.d.ts +4 -8
  19. package/build/cjs/cc/CRC16CC.js +4 -27
  20. package/build/cjs/cc/CRC16CC.js.map +2 -2
  21. package/build/cjs/cc/CentralSceneCC.d.ts +272 -53
  22. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  23. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +150 -37
  24. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  25. package/build/cjs/cc/ClockCC.d.ts +3 -3
  26. package/build/cjs/cc/ClockCC.js.map +2 -2
  27. package/build/cjs/cc/ColorSwitchCC.d.ts +423 -96
  28. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  29. package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
  30. package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
  31. package/build/cjs/cc/ConfigurationCC.d.ts +101 -37
  32. package/build/cjs/cc/ConfigurationCC.js +0 -8
  33. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  34. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
  35. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  36. package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
  37. package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
  38. package/build/cjs/cc/DoorLockCC.d.ts +1731 -419
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +64 -12
  41. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  42. package/build/cjs/cc/EnergyProductionCC.d.ts +29 -14
  43. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  44. package/build/cjs/cc/EntryControlCC.d.ts +308 -57
  45. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  46. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  47. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
  48. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  49. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +154 -8
  51. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlModeCC.d.ts +125 -27
  53. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  54. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  55. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  56. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +116 -39
  57. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  58. package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
  59. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  60. package/build/cjs/cc/IndicatorCC.d.ts +325 -83
  61. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  62. package/build/cjs/cc/IrrigationCC.d.ts +2170 -683
  63. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  64. package/build/cjs/cc/LanguageCC.d.ts +128 -26
  65. package/build/cjs/cc/LanguageCC.js.map +2 -2
  66. package/build/cjs/cc/LockCC.d.ts +64 -14
  67. package/build/cjs/cc/LockCC.js.map +2 -2
  68. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
  69. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  70. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +219 -57
  71. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  72. package/build/cjs/cc/MeterCC.d.ts +364 -89
  73. package/build/cjs/cc/MeterCC.js.map +2 -2
  74. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +138 -40
  75. package/build/cjs/cc/MultiChannelAssociationCC.js +0 -5
  76. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  77. package/build/cjs/cc/MultiChannelCC.d.ts +469 -99
  78. package/build/cjs/cc/MultiChannelCC.js +8 -72
  79. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  80. package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
  81. package/build/cjs/cc/MultiCommandCC.js +4 -37
  82. package/build/cjs/cc/MultiCommandCC.js.map +2 -2
  83. package/build/cjs/cc/MultilevelSensorCC.d.ts +118 -33
  84. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  85. package/build/cjs/cc/MultilevelSwitchCC.d.ts +490 -125
  86. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  87. package/build/cjs/cc/NodeNamingCC.d.ts +128 -26
  88. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  89. package/build/cjs/cc/NotificationCC.d.ts +603 -161
  90. package/build/cjs/cc/NotificationCC.js +12 -1
  91. package/build/cjs/cc/NotificationCC.js.map +2 -2
  92. package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
  93. package/build/cjs/cc/PowerlevelCC.js.map +2 -2
  94. package/build/cjs/cc/ProtectionCC.d.ts +496 -94
  95. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  96. package/build/cjs/cc/SceneActivationCC.d.ts +127 -28
  97. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  98. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  99. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  100. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +53 -25
  101. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  102. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +268 -64
  103. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  104. package/build/cjs/cc/Security2CC.d.ts +15 -21
  105. package/build/cjs/cc/Security2CC.js +32 -347
  106. package/build/cjs/cc/Security2CC.js.map +3 -3
  107. package/build/cjs/cc/SecurityCC.d.ts +12 -19
  108. package/build/cjs/cc/SecurityCC.js +12 -106
  109. package/build/cjs/cc/SecurityCC.js.map +2 -2
  110. package/build/cjs/cc/SoundSwitchCC.d.ts +253 -64
  111. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  112. package/build/cjs/cc/SupervisionCC.d.ts +28 -16
  113. package/build/cjs/cc/SupervisionCC.js +4 -29
  114. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  115. package/build/cjs/cc/ThermostatFanModeCC.d.ts +187 -38
  116. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  117. package/build/cjs/cc/ThermostatFanStateCC.d.ts +64 -18
  118. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  119. package/build/cjs/cc/ThermostatModeCC.d.ts +189 -40
  120. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  121. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +65 -19
  122. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  123. package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
  124. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  125. package/build/cjs/cc/ThermostatSetpointCC.d.ts +116 -36
  126. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  127. package/build/cjs/cc/TimeCC.d.ts +6 -6
  128. package/build/cjs/cc/TimeCC.js.map +2 -2
  129. package/build/cjs/cc/TimeParametersCC.d.ts +63 -12
  130. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  131. package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
  132. package/build/cjs/cc/TransportServiceCC.js +3 -20
  133. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  134. package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
  135. package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
  136. package/build/cjs/cc/UserCodeCC.d.ts +931 -176
  137. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  138. package/build/cjs/cc/VersionCC.d.ts +897 -185
  139. package/build/cjs/cc/VersionCC.js.map +2 -2
  140. package/build/cjs/cc/WakeUpCC.d.ts +190 -38
  141. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  142. package/build/cjs/cc/WindowCoveringCC.d.ts +193 -103
  143. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  144. package/build/cjs/cc/ZWavePlusCC.d.ts +311 -51
  145. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  146. package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
  147. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  148. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  149. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  150. package/build/cjs/index.d.ts +1 -0
  151. package/build/cjs/index.js.map +1 -1
  152. package/build/cjs/index_browser.d.ts +9 -0
  153. package/build/cjs/index_browser.js +41 -1
  154. package/build/cjs/index_browser.js.map +2 -2
  155. package/build/cjs/lib/API.d.ts +7 -5
  156. package/build/cjs/lib/API.js +1 -1
  157. package/build/cjs/lib/API.js.map +2 -2
  158. package/build/cjs/lib/CommandClass.d.ts +10 -21
  159. package/build/cjs/lib/CommandClass.js +51 -106
  160. package/build/cjs/lib/CommandClass.js.map +3 -3
  161. package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
  162. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  163. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  164. package/build/cjs/lib/Values.d.ts +2 -2
  165. package/build/cjs/lib/Values.js.map +2 -2
  166. package/build/cjs/lib/traits.d.ts +94 -0
  167. package/build/cjs/lib/traits.js +17 -0
  168. package/build/cjs/lib/traits.js.map +7 -0
  169. package/build/cjs/lib/utils.d.ts +2 -2
  170. package/build/cjs/lib/utils.js.map +2 -2
  171. package/build/esm/cc/AlarmSensorCC.d.ts +139 -57
  172. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  173. package/build/esm/cc/AlarmSensorCC.js +0 -1
  174. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  175. package/build/esm/cc/AssociationCC.d.ts +178 -43
  176. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  177. package/build/esm/cc/AssociationCC.js +0 -13
  178. package/build/esm/cc/AssociationCC.js.map +1 -1
  179. package/build/esm/cc/AssociationGroupInfoCC.d.ts +138 -38
  180. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  181. package/build/esm/cc/AssociationGroupInfoCC.js +0 -6
  182. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  183. package/build/esm/cc/BarrierOperatorCC.d.ts +275 -73
  184. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  185. package/build/esm/cc/BarrierOperatorCC.js +0 -3
  186. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  187. package/build/esm/cc/BasicCC.d.ts +316 -71
  188. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  189. package/build/esm/cc/BasicCC.js +0 -2
  190. package/build/esm/cc/BasicCC.js.map +1 -1
  191. package/build/esm/cc/BatteryCC.d.ts +759 -164
  192. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  193. package/build/esm/cc/BatteryCC.js +1 -2
  194. package/build/esm/cc/BatteryCC.js.map +1 -1
  195. package/build/esm/cc/BinarySensorCC.d.ts +91 -26
  196. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  197. package/build/esm/cc/BinarySensorCC.js +0 -3
  198. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  199. package/build/esm/cc/BinarySwitchCC.d.ts +190 -38
  200. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  201. package/build/esm/cc/BinarySwitchCC.js +0 -2
  202. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  203. package/build/esm/cc/CRC16CC.d.ts +4 -8
  204. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  205. package/build/esm/cc/CRC16CC.js +4 -34
  206. package/build/esm/cc/CRC16CC.js.map +1 -1
  207. package/build/esm/cc/CentralSceneCC.d.ts +272 -53
  208. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  209. package/build/esm/cc/CentralSceneCC.js +0 -1
  210. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  211. package/build/esm/cc/ClimateControlScheduleCC.d.ts +150 -37
  212. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  213. package/build/esm/cc/ClimateControlScheduleCC.js +0 -3
  214. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  215. package/build/esm/cc/ClockCC.d.ts +3 -3
  216. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  217. package/build/esm/cc/ClockCC.js +0 -1
  218. package/build/esm/cc/ClockCC.js.map +1 -1
  219. package/build/esm/cc/ColorSwitchCC.d.ts +423 -96
  220. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  221. package/build/esm/cc/ColorSwitchCC.js +0 -6
  222. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  223. package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
  224. package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
  225. package/build/esm/cc/ConfigurationCC.d.ts +101 -37
  226. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  227. package/build/esm/cc/ConfigurationCC.js +0 -25
  228. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  229. package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
  230. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  231. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  232. package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
  233. package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
  234. package/build/esm/cc/DoorLockCC.d.ts +1731 -419
  235. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  236. package/build/esm/cc/DoorLockCC.js +0 -2
  237. package/build/esm/cc/DoorLockCC.js.map +1 -1
  238. package/build/esm/cc/DoorLockLoggingCC.d.ts +64 -12
  239. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  240. package/build/esm/cc/DoorLockLoggingCC.js +0 -1
  241. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  242. package/build/esm/cc/EnergyProductionCC.d.ts +29 -14
  243. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  244. package/build/esm/cc/EnergyProductionCC.js +0 -2
  245. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  246. package/build/esm/cc/EntryControlCC.d.ts +308 -57
  247. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  248. package/build/esm/cc/EntryControlCC.js +0 -1
  249. package/build/esm/cc/EntryControlCC.js.map +1 -1
  250. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  251. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  252. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
  253. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  254. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +389 -64
  255. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  256. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +158 -30
  257. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  258. package/build/esm/cc/HumidityControlModeCC.d.ts +125 -27
  259. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  260. package/build/esm/cc/HumidityControlModeCC.js +0 -1
  261. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  262. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +64 -18
  263. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  264. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  265. package/build/esm/cc/HumidityControlSetpointCC.d.ts +116 -39
  266. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  267. package/build/esm/cc/HumidityControlSetpointCC.js +0 -4
  268. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  269. package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
  270. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  271. package/build/esm/cc/InclusionControllerCC.js +0 -2
  272. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  273. package/build/esm/cc/IndicatorCC.d.ts +325 -83
  274. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  275. package/build/esm/cc/IndicatorCC.js +0 -7
  276. package/build/esm/cc/IndicatorCC.js.map +1 -1
  277. package/build/esm/cc/IrrigationCC.d.ts +2170 -683
  278. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  279. package/build/esm/cc/IrrigationCC.js +0 -9
  280. package/build/esm/cc/IrrigationCC.js.map +1 -1
  281. package/build/esm/cc/LanguageCC.d.ts +128 -26
  282. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  283. package/build/esm/cc/LanguageCC.js +0 -1
  284. package/build/esm/cc/LanguageCC.js.map +1 -1
  285. package/build/esm/cc/LockCC.d.ts +64 -14
  286. package/build/esm/cc/LockCC.d.ts.map +1 -1
  287. package/build/esm/cc/LockCC.js +0 -1
  288. package/build/esm/cc/LockCC.js.map +1 -1
  289. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
  290. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  291. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  292. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  293. package/build/esm/cc/ManufacturerSpecificCC.d.ts +219 -57
  294. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  295. package/build/esm/cc/ManufacturerSpecificCC.js +0 -2
  296. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  297. package/build/esm/cc/MeterCC.d.ts +364 -89
  298. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  299. package/build/esm/cc/MeterCC.js +0 -4
  300. package/build/esm/cc/MeterCC.js.map +1 -1
  301. package/build/esm/cc/MultiChannelAssociationCC.d.ts +138 -40
  302. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  303. package/build/esm/cc/MultiChannelAssociationCC.js +0 -16
  304. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  305. package/build/esm/cc/MultiChannelCC.d.ts +469 -99
  306. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  307. package/build/esm/cc/MultiChannelCC.js +8 -101
  308. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  309. package/build/esm/cc/MultiCommandCC.d.ts +4 -8
  310. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  311. package/build/esm/cc/MultiCommandCC.js +4 -38
  312. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  313. package/build/esm/cc/MultilevelSensorCC.d.ts +118 -33
  314. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  315. package/build/esm/cc/MultilevelSensorCC.js +0 -5
  316. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  317. package/build/esm/cc/MultilevelSwitchCC.d.ts +490 -125
  318. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  319. package/build/esm/cc/MultilevelSwitchCC.js +0 -4
  320. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  321. package/build/esm/cc/NodeNamingCC.d.ts +128 -26
  322. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  323. package/build/esm/cc/NodeNamingCC.js +0 -2
  324. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  325. package/build/esm/cc/NotificationCC.d.ts +603 -161
  326. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  327. package/build/esm/cc/NotificationCC.js +18 -12
  328. package/build/esm/cc/NotificationCC.js.map +1 -1
  329. package/build/esm/cc/PowerlevelCC.d.ts +6 -6
  330. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  331. package/build/esm/cc/PowerlevelCC.js +0 -4
  332. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  333. package/build/esm/cc/ProtectionCC.d.ts +496 -94
  334. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  335. package/build/esm/cc/ProtectionCC.js +0 -3
  336. package/build/esm/cc/ProtectionCC.js.map +1 -1
  337. package/build/esm/cc/SceneActivationCC.d.ts +127 -28
  338. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  339. package/build/esm/cc/SceneActivationCC.js +0 -1
  340. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  341. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +52 -25
  342. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  343. package/build/esm/cc/SceneActuatorConfigurationCC.js +0 -2
  344. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  345. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +53 -25
  346. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  347. package/build/esm/cc/SceneControllerConfigurationCC.js +0 -2
  348. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  349. package/build/esm/cc/ScheduleEntryLockCC.d.ts +268 -64
  350. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  351. package/build/esm/cc/ScheduleEntryLockCC.js +0 -14
  352. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  353. package/build/esm/cc/Security2CC.d.ts +15 -21
  354. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  355. package/build/esm/cc/Security2CC.js +27 -475
  356. package/build/esm/cc/Security2CC.js.map +1 -1
  357. package/build/esm/cc/SecurityCC.d.ts +12 -19
  358. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  359. package/build/esm/cc/SecurityCC.js +13 -138
  360. package/build/esm/cc/SecurityCC.js.map +1 -1
  361. package/build/esm/cc/SoundSwitchCC.d.ts +253 -64
  362. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  363. package/build/esm/cc/SoundSwitchCC.js +0 -7
  364. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  365. package/build/esm/cc/SupervisionCC.d.ts +28 -16
  366. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  367. package/build/esm/cc/SupervisionCC.js +4 -34
  368. package/build/esm/cc/SupervisionCC.js.map +1 -1
  369. package/build/esm/cc/ThermostatFanModeCC.d.ts +187 -38
  370. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  371. package/build/esm/cc/ThermostatFanModeCC.js +0 -1
  372. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  373. package/build/esm/cc/ThermostatFanStateCC.d.ts +64 -18
  374. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  375. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  376. package/build/esm/cc/ThermostatModeCC.d.ts +189 -40
  377. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  378. package/build/esm/cc/ThermostatModeCC.js +0 -3
  379. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  380. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +65 -19
  381. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  382. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  383. package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
  384. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  385. package/build/esm/cc/ThermostatSetbackCC.js +0 -2
  386. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  387. package/build/esm/cc/ThermostatSetpointCC.d.ts +116 -36
  388. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  389. package/build/esm/cc/ThermostatSetpointCC.js +0 -6
  390. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  391. package/build/esm/cc/TimeCC.d.ts +6 -6
  392. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  393. package/build/esm/cc/TimeCC.js +0 -4
  394. package/build/esm/cc/TimeCC.js.map +1 -1
  395. package/build/esm/cc/TimeParametersCC.d.ts +63 -12
  396. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  397. package/build/esm/cc/TimeParametersCC.js +0 -1
  398. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  399. package/build/esm/cc/TransportServiceCC.d.ts +7 -12
  400. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  401. package/build/esm/cc/TransportServiceCC.js +5 -38
  402. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  403. package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
  404. package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
  405. package/build/esm/cc/UserCodeCC.d.ts +931 -176
  406. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  407. package/build/esm/cc/UserCodeCC.js +0 -12
  408. package/build/esm/cc/UserCodeCC.js.map +1 -1
  409. package/build/esm/cc/VersionCC.d.ts +897 -185
  410. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  411. package/build/esm/cc/VersionCC.js +0 -4
  412. package/build/esm/cc/VersionCC.js.map +1 -1
  413. package/build/esm/cc/WakeUpCC.d.ts +190 -38
  414. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  415. package/build/esm/cc/WakeUpCC.js +0 -1
  416. package/build/esm/cc/WakeUpCC.js.map +1 -1
  417. package/build/esm/cc/WindowCoveringCC.d.ts +193 -103
  418. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  419. package/build/esm/cc/WindowCoveringCC.js +0 -5
  420. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  421. package/build/esm/cc/ZWavePlusCC.d.ts +311 -51
  422. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  423. package/build/esm/cc/ZWavePlusCC.js +0 -1
  424. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  425. package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
  426. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  427. package/build/esm/cc/ZWaveProtocolCC.js +0 -27
  428. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  429. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  430. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  431. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
  432. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  433. package/build/esm/index.d.ts +1 -0
  434. package/build/esm/index.d.ts.map +1 -1
  435. package/build/esm/index_browser.d.ts +9 -0
  436. package/build/esm/index_browser.d.ts.map +1 -1
  437. package/build/esm/index_browser.js +8 -1
  438. package/build/esm/index_browser.js.map +1 -1
  439. package/build/esm/lib/API.d.ts +7 -5
  440. package/build/esm/lib/API.d.ts.map +1 -1
  441. package/build/esm/lib/API.js +1 -1
  442. package/build/esm/lib/API.js.map +1 -1
  443. package/build/esm/lib/CommandClass.d.ts +10 -21
  444. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  445. package/build/esm/lib/CommandClass.js +8 -101
  446. package/build/esm/lib/CommandClass.js.map +1 -1
  447. package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
  448. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  449. package/build/esm/lib/CommandClassDecorators.js +1 -1
  450. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  451. package/build/esm/lib/Values.d.ts +2 -2
  452. package/build/esm/lib/Values.d.ts.map +1 -1
  453. package/build/esm/lib/Values.js.map +1 -1
  454. package/build/esm/lib/traits.d.ts +94 -0
  455. package/build/esm/lib/traits.d.ts.map +1 -0
  456. package/build/esm/lib/traits.js +2 -0
  457. package/build/esm/lib/traits.js.map +1 -0
  458. package/build/esm/lib/utils.d.ts +2 -2
  459. package/build/esm/lib/utils.d.ts.map +1 -1
  460. package/build/esm/lib/utils.js.map +1 -1
  461. package/package.json +13 -13
@@ -1,150 +1,395 @@
1
- import { CommandClasses, type ControlsCC, Duration, type EndpointId, type GetEndpoint, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, type NodeId, type SupervisionResult, type SupportsCC, type ValueID, type WithAddress } from "@zwave-js/core/safe";
2
- import type { CCEncodingContext, CCParsingContext, GetDeviceConfig, GetNode, GetSupportedCCVersion, GetValueDB } from "@zwave-js/host/safe";
1
+ import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
+ import { type GetDeviceConfig } from "@zwave-js/config";
3
+ import { CommandClasses, type ControlsCC, Duration, type EndpointId, type GetEndpoint, type GetNode, type GetSupportedCCVersion, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, type NodeId, type SupervisionResult, type SupportsCC, type ValueID, ValueMetadata, type WithAddress } from "@zwave-js/core/safe";
3
4
  import { Bytes } from "@zwave-js/shared/safe";
4
5
  import { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory } from "../lib/API.js";
5
6
  import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext } from "../lib/CommandClass.js";
6
7
  import { BasicCommand } from "../lib/_Types.js";
7
8
  export declare const BasicCCValues: Readonly<{
8
9
  compatEvent: {
9
- readonly id: {
10
- commandClass: CommandClasses.Basic;
11
- property: "event";
12
- };
10
+ readonly id: ValueIDBase;
13
11
  readonly endpoint: (endpoint?: number | undefined) => {
14
12
  readonly commandClass: CommandClasses.Basic;
15
13
  readonly endpoint: number;
16
14
  readonly property: "event";
17
15
  };
18
16
  readonly is: (valueId: ValueID) => boolean;
19
- readonly meta: {
20
- readonly label: "Event value";
21
- readonly writeable: false;
22
- readonly min: 0;
23
- readonly max: 255;
24
- readonly type: "number";
17
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
18
+ readonly type: "any";
25
19
  readonly readable: true;
26
- };
27
- readonly options: {
20
+ readonly writeable: true;
21
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
22
+ readonly type: "any";
23
+ readonly readable: true;
24
+ readonly writeable: true;
25
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
26
+ readonly type: "any";
27
+ readonly readable: true;
28
+ readonly writeable: true;
29
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
30
+ readonly type: "any";
31
+ readonly readable: true;
32
+ readonly writeable: true;
33
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
34
+ readonly type: "any";
35
+ readonly readable: true;
36
+ readonly writeable: true;
37
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
38
+ readonly type: "any";
39
+ readonly readable: true;
40
+ readonly writeable: true;
41
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
42
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
43
+ readonly internal: false;
44
+ readonly minVersion: 1;
28
45
  readonly secret: false;
46
+ readonly stateful: true;
47
+ readonly supportsEndpoints: true;
48
+ readonly autoCreate: true;
49
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
29
50
  readonly internal: false;
30
51
  readonly minVersion: 1;
52
+ readonly secret: false;
53
+ readonly stateful: true;
31
54
  readonly supportsEndpoints: true;
32
- readonly stateful: false;
33
- readonly autoCreate: false;
34
- };
55
+ readonly autoCreate: true;
56
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
57
+ readonly internal: false;
58
+ readonly minVersion: 1;
59
+ readonly secret: false;
60
+ readonly stateful: true;
61
+ readonly supportsEndpoints: true;
62
+ readonly autoCreate: true;
63
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
64
+ readonly internal: false;
65
+ readonly minVersion: 1;
66
+ readonly secret: false;
67
+ readonly stateful: true;
68
+ readonly supportsEndpoints: true;
69
+ readonly autoCreate: true;
70
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
71
+ readonly internal: false;
72
+ readonly minVersion: 1;
73
+ readonly secret: false;
74
+ readonly stateful: true;
75
+ readonly supportsEndpoints: true;
76
+ readonly autoCreate: true;
77
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
78
+ readonly internal: false;
79
+ readonly minVersion: 1;
80
+ readonly secret: false;
81
+ readonly stateful: true;
82
+ readonly supportsEndpoints: true;
83
+ readonly autoCreate: true;
84
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
35
85
  };
36
86
  restorePrevious: {
37
- readonly id: {
38
- commandClass: CommandClasses.Basic;
39
- property: "restorePrevious";
40
- };
87
+ readonly id: ValueIDBase;
41
88
  readonly endpoint: (endpoint?: number | undefined) => {
42
89
  readonly commandClass: CommandClasses.Basic;
43
90
  readonly endpoint: number;
44
91
  readonly property: "restorePrevious";
45
92
  };
46
93
  readonly is: (valueId: ValueID) => boolean;
47
- readonly meta: {
48
- readonly label: "Restore previous value";
49
- readonly states: {
50
- true: string;
51
- };
52
- readonly readable: false;
53
- readonly type: "boolean";
94
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
95
+ readonly type: "any";
96
+ readonly readable: true;
54
97
  readonly writeable: true;
55
- };
56
- readonly options: {
98
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
99
+ readonly type: "any";
100
+ readonly readable: true;
101
+ readonly writeable: true;
102
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
103
+ readonly type: "any";
104
+ readonly readable: true;
105
+ readonly writeable: true;
106
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
107
+ readonly type: "any";
108
+ readonly readable: true;
109
+ readonly writeable: true;
110
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
111
+ readonly type: "any";
112
+ readonly readable: true;
113
+ readonly writeable: true;
114
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
115
+ readonly type: "any";
116
+ readonly readable: true;
117
+ readonly writeable: true;
118
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
119
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
57
120
  readonly internal: false;
58
121
  readonly minVersion: 1;
59
122
  readonly secret: false;
60
123
  readonly stateful: true;
61
124
  readonly supportsEndpoints: true;
62
125
  readonly autoCreate: true;
63
- };
126
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
127
+ readonly internal: false;
128
+ readonly minVersion: 1;
129
+ readonly secret: false;
130
+ readonly stateful: true;
131
+ readonly supportsEndpoints: true;
132
+ readonly autoCreate: true;
133
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
134
+ readonly internal: false;
135
+ readonly minVersion: 1;
136
+ readonly secret: false;
137
+ readonly stateful: true;
138
+ readonly supportsEndpoints: true;
139
+ readonly autoCreate: true;
140
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
141
+ readonly internal: false;
142
+ readonly minVersion: 1;
143
+ readonly secret: false;
144
+ readonly stateful: true;
145
+ readonly supportsEndpoints: true;
146
+ readonly autoCreate: true;
147
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
148
+ readonly internal: false;
149
+ readonly minVersion: 1;
150
+ readonly secret: false;
151
+ readonly stateful: true;
152
+ readonly supportsEndpoints: true;
153
+ readonly autoCreate: true;
154
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
155
+ readonly internal: false;
156
+ readonly minVersion: 1;
157
+ readonly secret: false;
158
+ readonly stateful: true;
159
+ readonly supportsEndpoints: true;
160
+ readonly autoCreate: true;
161
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
64
162
  };
65
163
  duration: {
66
- readonly id: {
67
- commandClass: CommandClasses.Basic;
68
- property: "duration";
69
- };
164
+ readonly id: ValueIDBase;
70
165
  readonly endpoint: (endpoint?: number | undefined) => {
71
166
  readonly commandClass: CommandClasses.Basic;
72
167
  readonly endpoint: number;
73
168
  readonly property: "duration";
74
169
  };
75
170
  readonly is: (valueId: ValueID) => boolean;
76
- readonly meta: {
77
- readonly label: "Remaining duration";
78
- readonly minVersion: number;
79
- readonly writeable: false;
80
- readonly type: "duration";
171
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
172
+ readonly type: "any";
81
173
  readonly readable: true;
82
- };
83
- readonly options: {
174
+ readonly writeable: true;
175
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
176
+ readonly type: "any";
177
+ readonly readable: true;
178
+ readonly writeable: true;
179
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
180
+ readonly type: "any";
181
+ readonly readable: true;
182
+ readonly writeable: true;
183
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
184
+ readonly type: "any";
185
+ readonly readable: true;
186
+ readonly writeable: true;
187
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
188
+ readonly type: "any";
189
+ readonly readable: true;
190
+ readonly writeable: true;
191
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
192
+ readonly type: "any";
193
+ readonly readable: true;
194
+ readonly writeable: true;
195
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
196
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
84
197
  readonly internal: false;
85
198
  readonly minVersion: 1;
86
199
  readonly secret: false;
87
200
  readonly stateful: true;
88
201
  readonly supportsEndpoints: true;
89
202
  readonly autoCreate: true;
90
- };
203
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
204
+ readonly internal: false;
205
+ readonly minVersion: 1;
206
+ readonly secret: false;
207
+ readonly stateful: true;
208
+ readonly supportsEndpoints: true;
209
+ readonly autoCreate: true;
210
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
211
+ readonly internal: false;
212
+ readonly minVersion: 1;
213
+ readonly secret: false;
214
+ readonly stateful: true;
215
+ readonly supportsEndpoints: true;
216
+ readonly autoCreate: true;
217
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
218
+ readonly internal: false;
219
+ readonly minVersion: 1;
220
+ readonly secret: false;
221
+ readonly stateful: true;
222
+ readonly supportsEndpoints: true;
223
+ readonly autoCreate: true;
224
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
225
+ readonly internal: false;
226
+ readonly minVersion: 1;
227
+ readonly secret: false;
228
+ readonly stateful: true;
229
+ readonly supportsEndpoints: true;
230
+ readonly autoCreate: true;
231
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
232
+ readonly internal: false;
233
+ readonly minVersion: 1;
234
+ readonly secret: false;
235
+ readonly stateful: true;
236
+ readonly supportsEndpoints: true;
237
+ readonly autoCreate: true;
238
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
91
239
  };
92
240
  targetValue: {
93
- readonly id: {
94
- commandClass: CommandClasses.Basic;
95
- property: "targetValue";
96
- };
241
+ readonly id: ValueIDBase;
97
242
  readonly endpoint: (endpoint?: number | undefined) => {
98
243
  readonly commandClass: CommandClasses.Basic;
99
244
  readonly endpoint: number;
100
245
  readonly property: "targetValue";
101
246
  };
102
247
  readonly is: (valueId: ValueID) => boolean;
103
- readonly meta: {
104
- readonly label: "Target value";
105
- readonly forceCreation: boolean;
106
- readonly min: 0;
107
- readonly max: 255;
108
- readonly type: "number";
248
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
249
+ readonly type: "any";
109
250
  readonly readable: true;
110
251
  readonly writeable: true;
111
- };
112
- readonly options: {
252
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
253
+ readonly type: "any";
254
+ readonly readable: true;
255
+ readonly writeable: true;
256
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
257
+ readonly type: "any";
258
+ readonly readable: true;
259
+ readonly writeable: true;
260
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
261
+ readonly type: "any";
262
+ readonly readable: true;
263
+ readonly writeable: true;
264
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
265
+ readonly type: "any";
266
+ readonly readable: true;
267
+ readonly writeable: true;
268
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
269
+ readonly type: "any";
270
+ readonly readable: true;
271
+ readonly writeable: true;
272
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
273
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
113
274
  readonly internal: false;
114
275
  readonly minVersion: 1;
115
276
  readonly secret: false;
116
277
  readonly stateful: true;
117
278
  readonly supportsEndpoints: true;
118
279
  readonly autoCreate: true;
119
- };
280
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
281
+ readonly internal: false;
282
+ readonly minVersion: 1;
283
+ readonly secret: false;
284
+ readonly stateful: true;
285
+ readonly supportsEndpoints: true;
286
+ readonly autoCreate: true;
287
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
288
+ readonly internal: false;
289
+ readonly minVersion: 1;
290
+ readonly secret: false;
291
+ readonly stateful: true;
292
+ readonly supportsEndpoints: true;
293
+ readonly autoCreate: true;
294
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
295
+ readonly internal: false;
296
+ readonly minVersion: 1;
297
+ readonly secret: false;
298
+ readonly stateful: true;
299
+ readonly supportsEndpoints: true;
300
+ readonly autoCreate: true;
301
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
302
+ readonly internal: false;
303
+ readonly minVersion: 1;
304
+ readonly secret: false;
305
+ readonly stateful: true;
306
+ readonly supportsEndpoints: true;
307
+ readonly autoCreate: true;
308
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
309
+ readonly internal: false;
310
+ readonly minVersion: 1;
311
+ readonly secret: false;
312
+ readonly stateful: true;
313
+ readonly supportsEndpoints: true;
314
+ readonly autoCreate: true;
315
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
120
316
  };
121
317
  currentValue: {
122
- readonly id: {
123
- commandClass: CommandClasses.Basic;
124
- property: "currentValue";
125
- };
318
+ readonly id: ValueIDBase;
126
319
  readonly endpoint: (endpoint?: number | undefined) => {
127
320
  readonly commandClass: CommandClasses.Basic;
128
321
  readonly endpoint: number;
129
322
  readonly property: "currentValue";
130
323
  };
131
324
  readonly is: (valueId: ValueID) => boolean;
132
- readonly meta: {
133
- readonly label: "Current value";
134
- readonly writeable: false;
135
- readonly max: 99;
136
- readonly min: 0;
137
- readonly type: "number";
325
+ readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
326
+ readonly type: "any";
138
327
  readonly readable: true;
139
- };
140
- readonly options: {
328
+ readonly writeable: true;
329
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
330
+ readonly type: "any";
331
+ readonly readable: true;
332
+ readonly writeable: true;
333
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
334
+ readonly type: "any";
335
+ readonly readable: true;
336
+ readonly writeable: true;
337
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
338
+ readonly type: "any";
339
+ readonly readable: true;
340
+ readonly writeable: true;
341
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
342
+ readonly type: "any";
343
+ readonly readable: true;
344
+ readonly writeable: true;
345
+ }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
346
+ readonly type: "any";
347
+ readonly readable: true;
348
+ readonly writeable: true;
349
+ }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
350
+ readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
141
351
  readonly internal: false;
142
352
  readonly minVersion: 1;
143
353
  readonly secret: false;
144
354
  readonly stateful: true;
145
355
  readonly supportsEndpoints: true;
146
356
  readonly autoCreate: true;
147
- };
357
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
358
+ readonly internal: false;
359
+ readonly minVersion: 1;
360
+ readonly secret: false;
361
+ readonly stateful: true;
362
+ readonly supportsEndpoints: true;
363
+ readonly autoCreate: true;
364
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
365
+ readonly internal: false;
366
+ readonly minVersion: 1;
367
+ readonly secret: false;
368
+ readonly stateful: true;
369
+ readonly supportsEndpoints: true;
370
+ readonly autoCreate: true;
371
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
372
+ readonly internal: false;
373
+ readonly minVersion: 1;
374
+ readonly secret: false;
375
+ readonly stateful: true;
376
+ readonly supportsEndpoints: true;
377
+ readonly autoCreate: true;
378
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
379
+ readonly internal: false;
380
+ readonly minVersion: 1;
381
+ readonly secret: false;
382
+ readonly stateful: true;
383
+ readonly supportsEndpoints: true;
384
+ readonly autoCreate: true;
385
+ } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
386
+ readonly internal: false;
387
+ readonly minVersion: 1;
388
+ readonly secret: false;
389
+ readonly stateful: true;
390
+ readonly supportsEndpoints: true;
391
+ readonly autoCreate: true;
392
+ }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
148
393
  };
149
394
  }>;
150
395
  export declare class BasicCCAPI extends CCAPI {
@@ -168,7 +413,7 @@ export declare class BasicCCSet extends BasicCC {
168
413
  constructor(options: WithAddress<BasicCCSetOptions>);
169
414
  static from(raw: CCRaw, ctx: CCParsingContext): BasicCCSet;
170
415
  targetValue: number;
171
- serialize(ctx: CCEncodingContext): Bytes;
416
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
172
417
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
173
418
  }
174
419
  export interface BasicCCReportOptions {
@@ -183,7 +428,7 @@ export declare class BasicCCReport extends BasicCC {
183
428
  readonly targetValue: MaybeUnknown<number> | undefined;
184
429
  readonly duration: Duration | undefined;
185
430
  persistValues(ctx: PersistValuesContext): boolean;
186
- serialize(ctx: CCEncodingContext): Bytes;
431
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
187
432
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
188
433
  }
189
434
  export declare class BasicCCGet extends BasicCC {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/BasicCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype ControlsCC,\n\tDuration,\n\ttype EndpointId,\n\ttype GetEndpoint,\n\ttype MaybeNotKnown,\n\ttype MaybeUnknown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype NodeId,\n\ttype SupervisionResult,\n\ttype SupportsCC,\n\ttype ValueID,\n\tValueMetadata,\n\ttype WithAddress,\n\tmaybeUnknownToString,\n\tparseMaybeNumber,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetDeviceConfig,\n\tGetNode,\n\tGetSupportedCCVersion,\n\tGetValueDB,\n} from \"@zwave-js/host/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\tSET_VALUE_HOOKS,\n\ttype SetValueImplementation,\n\ttype SetValueImplementationHooksFactory,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BasicCommand } from \"../lib/_Types.js\";\n\nexport const BasicCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses.Basic, {\n\t\t...V.staticProperty(\"currentValue\", {\n\t\t\t...ValueMetadata.ReadOnlyLevel,\n\t\t\tlabel: \"Current value\" as const,\n\t\t}),\n\t\t...V.staticProperty(\"targetValue\", {\n\t\t\t...ValueMetadata.UInt8,\n\t\t\tlabel: \"Target value\" as const,\n\t\t\tforceCreation: true,\n\t\t}),\n\t\t...V.staticProperty(\"duration\", {\n\t\t\t...ValueMetadata.ReadOnlyDuration,\n\t\t\tlabel: \"Remaining duration\" as const,\n\t\t\tminVersion: 2,\n\t\t}),\n\n\t\t...V.staticProperty(\"restorePrevious\", {\n\t\t\t...ValueMetadata.WriteOnlyBoolean,\n\t\t\tlabel: \"Restore previous value\" as const,\n\t\t\tstates: {\n\t\t\t\ttrue: \"Restore\",\n\t\t\t},\n\t\t}),\n\n\t\t...V.staticPropertyWithName(\n\t\t\t\"compatEvent\",\n\t\t\t\"event\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Event value\",\n\t\t\t} as const,\n\t\t\t{\n\t\t\t\tstateful: false,\n\t\t\t\tautoCreate: false,\n\t\t\t},\n\t\t),\n\t}),\n});\n\n@API(CommandClasses.Basic)\nexport class BasicCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: BasicCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase BasicCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase BasicCommand.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(this: BasicCCAPI, { property }, value) {\n\t\t\t// Enable restoring the previous non-zero value\n\t\t\tif (property === \"restorePrevious\") {\n\t\t\t\tproperty = \"targetValue\";\n\t\t\t\tvalue = 255;\n\t\t\t}\n\n\t\t\tif (property !== \"targetValue\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"number\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"number\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.set(value);\n\t\t};\n\t}\n\n\tprotected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = (\n\t\t{ property },\n\t\tvalue,\n\t\t_options,\n\t) => {\n\t\t// Enable restoring the previous non-zero value\n\t\tif (property === \"restorePrevious\") {\n\t\t\tproperty = \"targetValue\";\n\t\t\tvalue = 255;\n\t\t}\n\n\t\tif (property === \"targetValue\") {\n\t\t\tconst currentValueValueId = BasicCCValues.currentValue.endpoint(\n\t\t\t\tthis.endpoint.index,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\toptimisticallyUpdateRelatedValues: (\n\t\t\t\t\t_supervisedAndSuccessful,\n\t\t\t\t) => {\n\t\t\t\t\t// Only update currentValue for valid target values\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value === \"number\"\n\t\t\t\t\t\t&& value >= 0\n\t\t\t\t\t\t&& value <= 99\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\t\t\tcurrentValueValueId,\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (this.isMulticast()) {\n\t\t\t\t\t\t\t// Figure out which nodes were affected by this command\n\t\t\t\t\t\t\tconst affectedNodes = this.endpoint.node\n\t\t\t\t\t\t\t\t.physicalNodes.filter(\n\t\t\t\t\t\t\t\t\t(node) =>\n\t\t\t\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t\t\t\t\t\t.getEndpoint(this.endpoint.index)\n\t\t\t\t\t\t\t\t\t\t\t?.supportsCC(this.ccId),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// and optimistically update the currentValue\n\t\t\t\t\t\t\tfor (const node of affectedNodes) {\n\t\t\t\t\t\t\t\tthis.host\n\t\t\t\t\t\t\t\t\t.tryGetValueDB(node.id)\n\t\t\t\t\t\t\t\t\t?.setValue(currentValueValueId, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tforceVerifyChanges: () => {\n\t\t\t\t\t// If we don't know the actual value, we need to verify the change, regardless of the supervision result\n\t\t\t\t\treturn value === 255;\n\t\t\t\t},\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.isSinglecast()\n\t\t\t\t\t\t// We generally don't want to poll for multicasts because of how much traffic it can cause\n\t\t\t\t\t\t// However, when setting the value 255 (ON), we don't know the actual state\n\t\t\t\t\t\t|| (this.isMulticast() && value === 255)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n\t\t\t\t\t\t(this as this).schedulePoll(\n\t\t\t\t\t\t\tcurrentValueValueId,\n\t\t\t\t\t\t\tvalue === 255 ? undefined : value,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t};\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: BasicCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"currentValue\":\n\t\t\t\tcase \"targetValue\":\n\t\t\t\tcase \"duration\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(BasicCommand, BasicCommand.Get);\n\n\t\tconst cc = new BasicCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<BasicCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\tBasicCCValues.currentValue.endpoint(this.endpoint.index),\n\t\t\t\tresponse.currentValue,\n\t\t\t);\n\t\t\treturn pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\ttargetValue: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(BasicCommand, BasicCommand.Set);\n\n\t\tconst cc = new BasicCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\ttargetValue,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Basic)\n@implementedVersion(2) // Update tests in CommandClass.test.ts when changing this\n@ccValues(BasicCCValues)\nexport class BasicCC extends CommandClass {\n\tdeclare ccCommand: BasicCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Assume that the endpoint supports Basic CC, so the values get persisted correctly.\n\t\tendpoint.addCC(CommandClasses.Basic, { isSupported: true });\n\n\t\t// try to query the current state\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remove Basic CC support again when there was no response\n\t\tif (\n\t\t\tthis.getValue(ctx, BasicCCValues.currentValue) == undefined\n\t\t) {\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\"No response to Basic Get command, assuming Basic CC is unsupported...\",\n\t\t\t});\n\t\t\t// SDS14223: A controlling node MUST conclude that the Basic Command Class is not supported by a node (or\n\t\t\t// endpoint) if no Basic Report is returned.\n\t\t\tendpoint.addCC(CommandClasses.Basic, { isSupported: false });\n\t\t\tif (!endpoint.controlsCC(CommandClasses.Basic)) {\n\t\t\t\tendpoint.removeCC(CommandClasses.Basic);\n\t\t\t}\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.Basic,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// try to query the current state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying Basic CC state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst basicResponse = await api.get();\n\t\tif (basicResponse) {\n\t\t\tlet logMessage = `received Basic CC state:\ncurrent value: ${basicResponse.currentValue}`;\n\t\t\tif (basicResponse.targetValue != undefined) {\n\t\t\t\tlogMessage += `\ntarget value: ${basicResponse.targetValue}\nremaining duration: ${basicResponse.duration?.toString() ?? \"undefined\"}`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic override getDefinedValueIDs(\n\t\tctx:\n\t\t\t& GetValueDB\n\t\t\t& GetSupportedCCVersion\n\t\t\t& GetDeviceConfig\n\t\t\t& GetNode<\n\t\t\t\tNodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>\n\t\t\t>,\n\t): ValueID[] {\n\t\tconst ret: ValueID[] = [];\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\n\t\tconst compat = ctx.getDeviceConfig?.(endpoint.nodeId)?.compat;\n\t\tif (compat?.mapBasicSet === \"event\") {\n\t\t\t// Add the compat event value if it should be exposed\n\t\t\tret.push(BasicCCValues.compatEvent.endpoint(endpoint.index));\n\t\t}\n\n\t\tif (endpoint.supportsCC(this.ccId)) {\n\t\t\t// Defer to the base implementation if Basic CC is supported.\n\t\t\t// This implies that no other actuator CC is supported.\n\t\t\tret.push(...super.getDefinedValueIDs(ctx));\n\t\t} else if (endpoint.controlsCC(CommandClasses.Basic)) {\n\t\t\t// During the interview, we mark Basic CC as controlled only if we want to expose currentValue\n\t\t\tret.push(BasicCCValues.currentValue.endpoint(endpoint.index));\n\t\t}\n\n\t\treturn ret;\n\t}\n}\n\n// @publicAPI\nexport interface BasicCCSetOptions {\n\ttargetValue: number;\n}\n\n@CCCommand(BasicCommand.Set)\n@useSupervision()\nexport class BasicCCSet extends BasicCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BasicCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetValue = options.targetValue;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): BasicCCSet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst targetValue = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttargetValue,\n\t\t});\n\t}\n\n\tpublic targetValue: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.targetValue]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"target value\": this.targetValue },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BasicCCReportOptions {\n\tcurrentValue?: MaybeUnknown<number>;\n\ttargetValue?: MaybeUnknown<number>;\n\tduration?: Duration;\n}\n\n@CCCommand(BasicCommand.Report)\n@ccValueProperty(\"currentValue\", BasicCCValues.currentValue)\n@ccValueProperty(\"targetValue\", BasicCCValues.targetValue)\n@ccValueProperty(\"duration\", BasicCCValues.duration)\nexport class BasicCCReport extends BasicCC {\n\t// @noCCValues See comment in the constructor\n\tpublic constructor(\n\t\toptions: WithAddress<BasicCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.currentValue = options.currentValue;\n\t\tthis.targetValue = options.targetValue;\n\t\tthis.duration = options.duration;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): BasicCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst currentValue: MaybeUnknown<number> | undefined =\n\t\t\t// 0xff is a legacy value for 100% (99)\n\t\t\traw.payload[0] === 0xff\n\t\t\t\t? 99\n\t\t\t\t: parseMaybeNumber(raw.payload[0]);\n\t\tvalidatePayload(currentValue !== undefined);\n\n\t\tlet targetValue: MaybeUnknown<number> | undefined;\n\t\tlet duration: Duration | undefined;\n\n\t\tif (raw.payload.length >= 3) {\n\t\t\ttargetValue = parseMaybeNumber(raw.payload[1]);\n\t\t\tduration = Duration.parseReport(raw.payload[2]);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tcurrentValue,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic currentValue: MaybeUnknown<number> | undefined;\n\n\tpublic readonly targetValue: MaybeUnknown<number> | undefined;\n\n\tpublic readonly duration: Duration | undefined;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\t// Basic CC Report persists its values itself, since there are some\n\t\t// specific rules when which value may be persisted.\n\t\t// These rules are essentially encoded in the getDefinedValueIDs overload,\n\t\t// so we simply reuse that here.\n\n\t\t// Figure out which values may be persisted.\n\t\tconst definedValueIDs = this.getDefinedValueIDs(ctx);\n\t\tconst shouldPersistCurrentValue = definedValueIDs.some((vid) =>\n\t\t\tBasicCCValues.currentValue.is(vid)\n\t\t);\n\t\tconst shouldPersistTargetValue = definedValueIDs.some((vid) =>\n\t\t\tBasicCCValues.targetValue.is(vid)\n\t\t);\n\t\tconst shouldPersistDuration = definedValueIDs.some((vid) =>\n\t\t\tBasicCCValues.duration.is(vid)\n\t\t);\n\n\t\tif (this.currentValue !== undefined && shouldPersistCurrentValue) {\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tBasicCCValues.currentValue,\n\t\t\t\tthis.currentValue,\n\t\t\t);\n\t\t}\n\t\tif (this.targetValue !== undefined && shouldPersistTargetValue) {\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tBasicCCValues.targetValue,\n\t\t\t\tthis.targetValue,\n\t\t\t);\n\t\t}\n\t\tif (this.duration !== undefined && shouldPersistDuration) {\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tBasicCCValues.duration,\n\t\t\t\tthis.duration,\n\t\t\t);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.currentValue ?? 0xfe,\n\t\t\tthis.targetValue ?? 0xfe,\n\t\t\t(this.duration ?? Duration.unknown()).serializeReport(),\n\t\t]);\n\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (\n\t\t\tccVersion < 2 && ctx.getDeviceConfig?.(\n\t\t\t\tthis.nodeId as number,\n\t\t\t)?.compat?.encodeCCsUsingTargetVersion\n\t\t) {\n\t\t\t// When forcing CC version 1, only send the current value\n\t\t\tthis.payload = this.payload.subarray(0, 1);\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"current value\": maybeUnknownToString(this.currentValue),\n\t\t};\n\t\tif (this.targetValue !== undefined) {\n\t\t\tmessage[\"target value\"] = maybeUnknownToString(this.targetValue);\n\t\t}\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = this.duration.toString();\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(BasicCommand.Get)\n@expectedCCResponse(BasicCCReport)\nexport class BasicCCGet extends BasicCC {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport { type GetDeviceConfig } from \"@zwave-js/config\";\nimport {\n\tCommandClasses,\n\ttype ControlsCC,\n\tDuration,\n\ttype EndpointId,\n\ttype GetEndpoint,\n\ttype GetNode,\n\ttype GetSupportedCCVersion,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MaybeUnknown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype NodeId,\n\ttype SupervisionResult,\n\ttype SupportsCC,\n\ttype ValueID,\n\tValueMetadata,\n\ttype WithAddress,\n\tmaybeUnknownToString,\n\tparseMaybeNumber,\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\tSET_VALUE_HOOKS,\n\ttype SetValueImplementation,\n\ttype SetValueImplementationHooksFactory,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n\tgetEffectiveCCVersion,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BasicCommand } from \"../lib/_Types.js\";\n\nexport const BasicCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses.Basic, {\n\t\t...V.staticProperty(\"currentValue\", {\n\t\t\t...ValueMetadata.ReadOnlyLevel,\n\t\t\tlabel: \"Current value\" as const,\n\t\t}),\n\t\t...V.staticProperty(\"targetValue\", {\n\t\t\t...ValueMetadata.UInt8,\n\t\t\tlabel: \"Target value\" as const,\n\t\t\tforceCreation: true,\n\t\t}),\n\t\t...V.staticProperty(\"duration\", {\n\t\t\t...ValueMetadata.ReadOnlyDuration,\n\t\t\tlabel: \"Remaining duration\" as const,\n\t\t\tminVersion: 2,\n\t\t}),\n\n\t\t...V.staticProperty(\"restorePrevious\", {\n\t\t\t...ValueMetadata.WriteOnlyBoolean,\n\t\t\tlabel: \"Restore previous value\" as const,\n\t\t\tstates: {\n\t\t\t\ttrue: \"Restore\",\n\t\t\t},\n\t\t}),\n\n\t\t...V.staticPropertyWithName(\n\t\t\t\"compatEvent\",\n\t\t\t\"event\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Event value\",\n\t\t\t} as const,\n\t\t\t{\n\t\t\t\tstateful: false,\n\t\t\t\tautoCreate: false,\n\t\t\t},\n\t\t),\n\t}),\n});\n\n@API(CommandClasses.Basic)\nexport class BasicCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: BasicCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase BasicCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase BasicCommand.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(this: BasicCCAPI, { property }, value) {\n\t\t\t// Enable restoring the previous non-zero value\n\t\t\tif (property === \"restorePrevious\") {\n\t\t\t\tproperty = \"targetValue\";\n\t\t\t\tvalue = 255;\n\t\t\t}\n\n\t\t\tif (property !== \"targetValue\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"number\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"number\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn this.set(value);\n\t\t};\n\t}\n\n\tprotected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = (\n\t\t{ property },\n\t\tvalue,\n\t\t_options,\n\t) => {\n\t\t// Enable restoring the previous non-zero value\n\t\tif (property === \"restorePrevious\") {\n\t\t\tproperty = \"targetValue\";\n\t\t\tvalue = 255;\n\t\t}\n\n\t\tif (property === \"targetValue\") {\n\t\t\tconst currentValueValueId = BasicCCValues.currentValue.endpoint(\n\t\t\t\tthis.endpoint.index,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\toptimisticallyUpdateRelatedValues: (\n\t\t\t\t\t_supervisedAndSuccessful,\n\t\t\t\t) => {\n\t\t\t\t\t// Only update currentValue for valid target values\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value === \"number\"\n\t\t\t\t\t\t&& value >= 0\n\t\t\t\t\t\t&& value <= 99\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\t\t\tcurrentValueValueId,\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (this.isMulticast()) {\n\t\t\t\t\t\t\t// Figure out which nodes were affected by this command\n\t\t\t\t\t\t\tconst affectedNodes = this.endpoint.node\n\t\t\t\t\t\t\t\t.physicalNodes.filter(\n\t\t\t\t\t\t\t\t\t(node) =>\n\t\t\t\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t\t\t\t\t\t.getEndpoint(this.endpoint.index)\n\t\t\t\t\t\t\t\t\t\t\t?.supportsCC(this.ccId),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// and optimistically update the currentValue\n\t\t\t\t\t\t\tfor (const node of affectedNodes) {\n\t\t\t\t\t\t\t\tthis.host\n\t\t\t\t\t\t\t\t\t.tryGetValueDB(node.id)\n\t\t\t\t\t\t\t\t\t?.setValue(currentValueValueId, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tforceVerifyChanges: () => {\n\t\t\t\t\t// If we don't know the actual value, we need to verify the change, regardless of the supervision result\n\t\t\t\t\treturn value === 255;\n\t\t\t\t},\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.isSinglecast()\n\t\t\t\t\t\t// We generally don't want to poll for multicasts because of how much traffic it can cause\n\t\t\t\t\t\t// However, when setting the value 255 (ON), we don't know the actual state\n\t\t\t\t\t\t|| (this.isMulticast() && value === 255)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n\t\t\t\t\t\t(this as this).schedulePoll(\n\t\t\t\t\t\t\tcurrentValueValueId,\n\t\t\t\t\t\t\tvalue === 255 ? undefined : value,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t};\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: BasicCCAPI, { property }) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"currentValue\":\n\t\t\t\tcase \"targetValue\":\n\t\t\t\tcase \"duration\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(BasicCommand, BasicCommand.Get);\n\n\t\tconst cc = new BasicCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<BasicCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\tBasicCCValues.currentValue.endpoint(this.endpoint.index),\n\t\t\t\tresponse.currentValue,\n\t\t\t);\n\t\t\treturn pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\ttargetValue: number,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(BasicCommand, BasicCommand.Set);\n\n\t\tconst cc = new BasicCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\ttargetValue,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Basic)\n@implementedVersion(2) // Update tests in CommandClass.test.ts when changing this\n@ccValues(BasicCCValues)\nexport class BasicCC extends CommandClass {\n\tdeclare ccCommand: BasicCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Assume that the endpoint supports Basic CC, so the values get persisted correctly.\n\t\tendpoint.addCC(CommandClasses.Basic, { isSupported: true });\n\n\t\t// try to query the current state\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remove Basic CC support again when there was no response\n\t\tif (\n\t\t\tthis.getValue(ctx, BasicCCValues.currentValue) == undefined\n\t\t) {\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\"No response to Basic Get command, assuming Basic CC is unsupported...\",\n\t\t\t});\n\t\t\t// SDS14223: A controlling node MUST conclude that the Basic Command Class is not supported by a node (or\n\t\t\t// endpoint) if no Basic Report is returned.\n\t\t\tendpoint.addCC(CommandClasses.Basic, { isSupported: false });\n\t\t\tif (!endpoint.controlsCC(CommandClasses.Basic)) {\n\t\t\t\tendpoint.removeCC(CommandClasses.Basic);\n\t\t\t}\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.Basic,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\t// try to query the current state\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying Basic CC state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\n\t\tconst basicResponse = await api.get();\n\t\tif (basicResponse) {\n\t\t\tlet logMessage = `received Basic CC state:\ncurrent value: ${basicResponse.currentValue}`;\n\t\t\tif (basicResponse.targetValue != undefined) {\n\t\t\t\tlogMessage += `\ntarget value: ${basicResponse.targetValue}\nremaining duration: ${basicResponse.duration?.toString() ?? \"undefined\"}`;\n\t\t\t}\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic override getDefinedValueIDs(\n\t\tctx:\n\t\t\t& GetValueDB\n\t\t\t& GetSupportedCCVersion\n\t\t\t& GetDeviceConfig\n\t\t\t& GetNode<\n\t\t\t\tNodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>\n\t\t\t>,\n\t): ValueID[] {\n\t\tconst ret: ValueID[] = [];\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\n\t\tconst compat = ctx.getDeviceConfig?.(endpoint.nodeId)?.compat;\n\t\tif (compat?.mapBasicSet === \"event\") {\n\t\t\t// Add the compat event value if it should be exposed\n\t\t\tret.push(BasicCCValues.compatEvent.endpoint(endpoint.index));\n\t\t}\n\n\t\tif (endpoint.supportsCC(this.ccId)) {\n\t\t\t// Defer to the base implementation if Basic CC is supported.\n\t\t\t// This implies that no other actuator CC is supported.\n\t\t\tret.push(...super.getDefinedValueIDs(ctx));\n\t\t} else if (endpoint.controlsCC(CommandClasses.Basic)) {\n\t\t\t// During the interview, we mark Basic CC as controlled only if we want to expose currentValue\n\t\t\tret.push(BasicCCValues.currentValue.endpoint(endpoint.index));\n\t\t}\n\n\t\treturn ret;\n\t}\n}\n\n// @publicAPI\nexport interface BasicCCSetOptions {\n\ttargetValue: number;\n}\n\n@CCCommand(BasicCommand.Set)\n@useSupervision()\nexport class BasicCCSet extends BasicCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BasicCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetValue = options.targetValue;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): BasicCCSet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst targetValue = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\ttargetValue,\n\t\t});\n\t}\n\n\tpublic targetValue: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.targetValue]);\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: { \"target value\": this.targetValue },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BasicCCReportOptions {\n\tcurrentValue?: MaybeUnknown<number>;\n\ttargetValue?: MaybeUnknown<number>;\n\tduration?: Duration;\n}\n\n@CCCommand(BasicCommand.Report)\n@ccValueProperty(\"currentValue\", BasicCCValues.currentValue)\n@ccValueProperty(\"targetValue\", BasicCCValues.targetValue)\n@ccValueProperty(\"duration\", BasicCCValues.duration)\nexport class BasicCCReport extends BasicCC {\n\t// @noCCValues See comment in the constructor\n\tpublic constructor(\n\t\toptions: WithAddress<BasicCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.currentValue = options.currentValue;\n\t\tthis.targetValue = options.targetValue;\n\t\tthis.duration = options.duration;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): BasicCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst currentValue: MaybeUnknown<number> | undefined =\n\t\t\t// 0xff is a legacy value for 100% (99)\n\t\t\traw.payload[0] === 0xff\n\t\t\t\t? 99\n\t\t\t\t: parseMaybeNumber(raw.payload[0]);\n\t\tvalidatePayload(currentValue !== undefined);\n\n\t\tlet targetValue: MaybeUnknown<number> | undefined;\n\t\tlet duration: Duration | undefined;\n\n\t\tif (raw.payload.length >= 3) {\n\t\t\ttargetValue = parseMaybeNumber(raw.payload[1]);\n\t\t\tduration = Duration.parseReport(raw.payload[2]);\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tcurrentValue,\n\t\t\ttargetValue,\n\t\t\tduration,\n\t\t});\n\t}\n\n\tpublic currentValue: MaybeUnknown<number> | undefined;\n\n\tpublic readonly targetValue: MaybeUnknown<number> | undefined;\n\n\tpublic readonly duration: Duration | undefined;\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\t// Basic CC Report persists its values itself, since there are some\n\t\t// specific rules when which value may be persisted.\n\t\t// These rules are essentially encoded in the getDefinedValueIDs overload,\n\t\t// so we simply reuse that here.\n\n\t\t// Figure out which values may be persisted.\n\t\tconst definedValueIDs = this.getDefinedValueIDs(ctx);\n\t\tconst shouldPersistCurrentValue = definedValueIDs.some((vid) =>\n\t\t\tBasicCCValues.currentValue.is(vid)\n\t\t);\n\t\tconst shouldPersistTargetValue = definedValueIDs.some((vid) =>\n\t\t\tBasicCCValues.targetValue.is(vid)\n\t\t);\n\t\tconst shouldPersistDuration = definedValueIDs.some((vid) =>\n\t\t\tBasicCCValues.duration.is(vid)\n\t\t);\n\n\t\tif (this.currentValue !== undefined && shouldPersistCurrentValue) {\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tBasicCCValues.currentValue,\n\t\t\t\tthis.currentValue,\n\t\t\t);\n\t\t}\n\t\tif (this.targetValue !== undefined && shouldPersistTargetValue) {\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tBasicCCValues.targetValue,\n\t\t\t\tthis.targetValue,\n\t\t\t);\n\t\t}\n\t\tif (this.duration !== undefined && shouldPersistDuration) {\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tBasicCCValues.duration,\n\t\t\t\tthis.duration,\n\t\t\t);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.currentValue ?? 0xfe,\n\t\t\tthis.targetValue ?? 0xfe,\n\t\t\t(this.duration ?? Duration.unknown()).serializeReport(),\n\t\t]);\n\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\t\tif (\n\t\t\tccVersion < 2 && ctx.getDeviceConfig?.(\n\t\t\t\tthis.nodeId as number,\n\t\t\t)?.compat?.encodeCCsUsingTargetVersion\n\t\t) {\n\t\t\t// When forcing CC version 1, only send the current value\n\t\t\tthis.payload = this.payload.subarray(0, 1);\n\t\t}\n\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"current value\": maybeUnknownToString(this.currentValue),\n\t\t};\n\t\tif (this.targetValue !== undefined) {\n\t\t\tmessage[\"target value\"] = maybeUnknownToString(this.targetValue);\n\t\t}\n\t\tif (this.duration != undefined) {\n\t\t\tmessage.duration = this.duration.toString();\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(BasicCommand.Get)\n@expectedCCResponse(BasicCCReport)\nexport class BasicCCGet extends BasicCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }