@zwave-js/cc 15.22.0 → 15.22.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/build/cjs/cc/AlarmSensorCC._validateArgs.d.ts +1 -1
  2. package/build/cjs/cc/AlarmSensorCC.d.ts +1 -1
  3. package/build/cjs/cc/AssociationCC._validateArgs.d.ts +8 -8
  4. package/build/cjs/cc/AssociationGroupInfoCC._validateArgs.d.ts +6 -6
  5. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +1 -1
  6. package/build/cjs/cc/BarrierOperatorCC._validateArgs.d.ts +4 -4
  7. package/build/cjs/cc/BarrierOperatorCC.d.ts +1 -1
  8. package/build/cjs/cc/BarrierOperatorCC.js +2 -0
  9. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  10. package/build/cjs/cc/BasicCC._validateArgs.d.ts +1 -1
  11. package/build/cjs/cc/BasicCC.d.ts +1 -1
  12. package/build/cjs/cc/BasicCC.js +2 -0
  13. package/build/cjs/cc/BasicCC.js.map +2 -2
  14. package/build/cjs/cc/BasicWindowCoveringCC._validateArgs.d.ts +2 -2
  15. package/build/cjs/cc/BatteryCC.d.ts +1 -1
  16. package/build/cjs/cc/BinarySensorCC._validateArgs.d.ts +3 -3
  17. package/build/cjs/cc/BinarySwitchCC._validateArgs.d.ts +1 -1
  18. package/build/cjs/cc/BinarySwitchCC.js +2 -0
  19. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  20. package/build/cjs/cc/CentralSceneCC._validateArgs.d.ts +1 -1
  21. package/build/cjs/cc/CentralSceneCC.d.ts +1 -1
  22. package/build/cjs/cc/ClimateControlScheduleCC._validateArgs.d.ts +3 -3
  23. package/build/cjs/cc/ClockCC._validateArgs.d.ts +1 -1
  24. package/build/cjs/cc/ClockCC.d.ts +1 -1
  25. package/build/cjs/cc/ColorSwitchCC._validateArgs.d.ts +4 -4
  26. package/build/cjs/cc/ColorSwitchCC.d.ts +1 -1
  27. package/build/cjs/cc/ConfigurationCC._validateArgs.d.ts +9 -9
  28. package/build/cjs/cc/ConfigurationCC.d.ts +1 -6
  29. package/build/cjs/cc/ConfigurationCC.js.map +1 -1
  30. package/build/cjs/cc/DoorLockCC._validateArgs.d.ts +2 -2
  31. package/build/cjs/cc/DoorLockCC.d.ts +3 -3
  32. package/build/cjs/cc/DoorLockLoggingCC._validateArgs.d.ts +1 -1
  33. package/build/cjs/cc/EnergyProductionCC._validateArgs.d.ts +1 -1
  34. package/build/cjs/cc/EntryControlCC._validateArgs.d.ts +1 -1
  35. package/build/cjs/cc/EntryControlCC.d.ts +1 -1
  36. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +6 -6
  37. package/build/cjs/cc/HumidityControlModeCC._validateArgs.d.ts +1 -1
  38. package/build/cjs/cc/HumidityControlSetpointCC._validateArgs.d.ts +4 -4
  39. package/build/cjs/cc/IndicatorCC._validateArgs.d.ts +9 -9
  40. package/build/cjs/cc/IrrigationCC._validateArgs.d.ts +10 -10
  41. package/build/cjs/cc/IrrigationCC.d.ts +5 -5
  42. package/build/cjs/cc/LanguageCC._validateArgs.d.ts +1 -1
  43. package/build/cjs/cc/LanguageCC.d.ts +1 -1
  44. package/build/cjs/cc/LockCC._validateArgs.d.ts +1 -1
  45. package/build/cjs/cc/ManufacturerProprietaryCC._validateArgs.d.ts +2 -2
  46. package/build/cjs/cc/ManufacturerSpecificCC._validateArgs.d.ts +2 -2
  47. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +1 -1
  48. package/build/cjs/cc/MeterCC._validateArgs.d.ts +5 -5
  49. package/build/cjs/cc/MeterCC.d.ts +1 -1
  50. package/build/cjs/cc/MultiChannelAssociationCC._validateArgs.d.ts +5 -5
  51. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +1 -1
  52. package/build/cjs/cc/MultiChannelCC._validateArgs.d.ts +4 -4
  53. package/build/cjs/cc/MultiCommandCC._validateArgs.d.ts +1 -1
  54. package/build/cjs/cc/MultilevelSensorCC._validateArgs.d.ts +3 -3
  55. package/build/cjs/cc/MultilevelSwitchCC._validateArgs.d.ts +2 -2
  56. package/build/cjs/cc/MultilevelSwitchCC.d.ts +1 -1
  57. package/build/cjs/cc/MultilevelSwitchCC.js +2 -0
  58. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  59. package/build/cjs/cc/NodeNamingCC._validateArgs.d.ts +2 -2
  60. package/build/cjs/cc/NotificationCC._validateArgs.d.ts +4 -4
  61. package/build/cjs/cc/NotificationCC.d.ts +2 -2
  62. package/build/cjs/cc/PowerlevelCC._validateArgs.d.ts +4 -4
  63. package/build/cjs/cc/PowerlevelCC.d.ts +2 -2
  64. package/build/cjs/cc/ProtectionCC._validateArgs.d.ts +3 -3
  65. package/build/cjs/cc/ProtectionCC.d.ts +1 -1
  66. package/build/cjs/cc/SceneActivationCC._validateArgs.d.ts +1 -1
  67. package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.d.ts +2 -2
  68. package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.d.ts +3 -3
  69. package/build/cjs/cc/ScheduleEntryLockCC._validateArgs.d.ts +8 -8
  70. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +1 -1
  71. package/build/cjs/cc/Security2CC.d.ts +1 -1
  72. package/build/cjs/cc/SecurityCC.d.ts +1 -1
  73. package/build/cjs/cc/SecurityCC.js.map +2 -2
  74. package/build/cjs/cc/SoundSwitchCC._validateArgs.d.ts +3 -3
  75. package/build/cjs/cc/SoundSwitchCC.d.ts +2 -2
  76. package/build/cjs/cc/ThermostatFanModeCC._validateArgs.d.ts +1 -1
  77. package/build/cjs/cc/ThermostatModeCC._validateArgs.d.ts +1 -1
  78. package/build/cjs/cc/ThermostatModeCC.d.ts +1 -1
  79. package/build/cjs/cc/ThermostatSetbackCC._validateArgs.d.ts +1 -1
  80. package/build/cjs/cc/ThermostatSetbackCC.d.ts +1 -1
  81. package/build/cjs/cc/ThermostatSetpointCC._validateArgs.d.ts +3 -3
  82. package/build/cjs/cc/ThermostatSetpointCC.d.ts +1 -1
  83. package/build/cjs/cc/TimeCC._validateArgs.d.ts +4 -4
  84. package/build/cjs/cc/TimeCC.d.ts +1 -1
  85. package/build/cjs/cc/TimeParametersCC._validateArgs.d.ts +1 -1
  86. package/build/cjs/cc/UserCodeCC._validateArgs.d.ts +6 -6
  87. package/build/cjs/cc/UserCodeCC.d.ts +1 -1
  88. package/build/cjs/cc/VersionCC._validateArgs.d.ts +3 -3
  89. package/build/cjs/cc/VersionCC.d.ts +2 -2
  90. package/build/cjs/cc/WakeUpCC._validateArgs.d.ts +1 -1
  91. package/build/cjs/cc/WakeUpCC.d.ts +1 -1
  92. package/build/cjs/cc/WindowCoveringCC._validateArgs.d.ts +4 -4
  93. package/build/cjs/cc/WindowCoveringCC.d.ts +1 -1
  94. package/build/cjs/cc/WindowCoveringCC.js +2 -0
  95. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  96. package/build/cjs/cc/ZWavePlusCC._validateArgs.d.ts +1 -1
  97. package/build/cjs/cc/ZWavePlusCC.d.ts +1 -1
  98. package/build/cjs/cc/_CCValues.generated.d.ts +1056 -1056
  99. package/build/cjs/cc/manufacturerProprietary/FibaroCC._validateArgs.d.ts +2 -2
  100. package/build/cjs/lib/API.d.ts +1 -0
  101. package/build/cjs/lib/API.js.map +2 -2
  102. package/build/cjs/lib/CommandClass.js +1 -0
  103. package/build/cjs/lib/CommandClass.js.map +1 -1
  104. package/build/cjs/lib/Security2/Extension.js.map +1 -1
  105. package/build/cjs/lib/Values.d.ts +5 -5
  106. package/build/cjs/lib/Values.js.map +1 -1
  107. package/build/cjs/lib/_CCAPI.generated.d.ts +64 -64
  108. package/build/esm/cc/AlarmSensorCC._validateArgs.d.ts +1 -1
  109. package/build/esm/cc/AlarmSensorCC._validateArgs.d.ts.map +1 -1
  110. package/build/esm/cc/AlarmSensorCC.d.ts +1 -1
  111. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  112. package/build/esm/cc/ApplicationStatusCC.d.ts.map +1 -1
  113. package/build/esm/cc/AssociationCC._validateArgs.d.ts +8 -8
  114. package/build/esm/cc/AssociationCC._validateArgs.d.ts.map +1 -1
  115. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  116. package/build/esm/cc/AssociationGroupInfoCC._validateArgs.d.ts +6 -6
  117. package/build/esm/cc/AssociationGroupInfoCC._validateArgs.d.ts.map +1 -1
  118. package/build/esm/cc/AssociationGroupInfoCC.d.ts +1 -1
  119. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  120. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  121. package/build/esm/cc/BarrierOperatorCC._validateArgs.d.ts +4 -4
  122. package/build/esm/cc/BarrierOperatorCC._validateArgs.d.ts.map +1 -1
  123. package/build/esm/cc/BarrierOperatorCC.d.ts +1 -1
  124. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  125. package/build/esm/cc/BarrierOperatorCC.js +2 -0
  126. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  127. package/build/esm/cc/BasicCC._validateArgs.d.ts +1 -1
  128. package/build/esm/cc/BasicCC._validateArgs.d.ts.map +1 -1
  129. package/build/esm/cc/BasicCC.d.ts +1 -1
  130. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  131. package/build/esm/cc/BasicCC.js +2 -0
  132. package/build/esm/cc/BasicCC.js.map +1 -1
  133. package/build/esm/cc/BasicWindowCoveringCC._validateArgs.d.ts +2 -2
  134. package/build/esm/cc/BasicWindowCoveringCC._validateArgs.d.ts.map +1 -1
  135. package/build/esm/cc/BasicWindowCoveringCC.d.ts.map +1 -1
  136. package/build/esm/cc/BatteryCC.d.ts +1 -1
  137. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  138. package/build/esm/cc/BinarySensorCC._validateArgs.d.ts +3 -3
  139. package/build/esm/cc/BinarySensorCC._validateArgs.d.ts.map +1 -1
  140. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  141. package/build/esm/cc/BinarySwitchCC._validateArgs.d.ts +1 -1
  142. package/build/esm/cc/BinarySwitchCC._validateArgs.d.ts.map +1 -1
  143. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  144. package/build/esm/cc/BinarySwitchCC.js +2 -0
  145. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  146. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  147. package/build/esm/cc/CentralSceneCC._validateArgs.d.ts +1 -1
  148. package/build/esm/cc/CentralSceneCC._validateArgs.d.ts.map +1 -1
  149. package/build/esm/cc/CentralSceneCC.d.ts +1 -1
  150. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  151. package/build/esm/cc/ClimateControlScheduleCC._validateArgs.d.ts +3 -3
  152. package/build/esm/cc/ClimateControlScheduleCC._validateArgs.d.ts.map +1 -1
  153. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  154. package/build/esm/cc/ClockCC._validateArgs.d.ts +1 -1
  155. package/build/esm/cc/ClockCC._validateArgs.d.ts.map +1 -1
  156. package/build/esm/cc/ClockCC.d.ts +1 -1
  157. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  158. package/build/esm/cc/ColorSwitchCC._validateArgs.d.ts +4 -4
  159. package/build/esm/cc/ColorSwitchCC._validateArgs.d.ts.map +1 -1
  160. package/build/esm/cc/ColorSwitchCC.d.ts +1 -1
  161. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  162. package/build/esm/cc/ConfigurationCC._validateArgs.d.ts +9 -9
  163. package/build/esm/cc/ConfigurationCC._validateArgs.d.ts.map +1 -1
  164. package/build/esm/cc/ConfigurationCC.d.ts +1 -6
  165. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  166. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  167. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  168. package/build/esm/cc/DoorLockCC._validateArgs.d.ts +2 -2
  169. package/build/esm/cc/DoorLockCC._validateArgs.d.ts.map +1 -1
  170. package/build/esm/cc/DoorLockCC.d.ts +3 -3
  171. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  172. package/build/esm/cc/DoorLockLoggingCC._validateArgs.d.ts +1 -1
  173. package/build/esm/cc/DoorLockLoggingCC._validateArgs.d.ts.map +1 -1
  174. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  175. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  176. package/build/esm/cc/EnergyProductionCC._validateArgs.d.ts +1 -1
  177. package/build/esm/cc/EnergyProductionCC._validateArgs.d.ts.map +1 -1
  178. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  179. package/build/esm/cc/EntryControlCC._validateArgs.d.ts +1 -1
  180. package/build/esm/cc/EntryControlCC._validateArgs.d.ts.map +1 -1
  181. package/build/esm/cc/EntryControlCC.d.ts +1 -1
  182. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  183. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +6 -6
  184. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  185. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  186. package/build/esm/cc/HumidityControlModeCC._validateArgs.d.ts +1 -1
  187. package/build/esm/cc/HumidityControlModeCC._validateArgs.d.ts.map +1 -1
  188. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  189. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  190. package/build/esm/cc/HumidityControlSetpointCC._validateArgs.d.ts +4 -4
  191. package/build/esm/cc/HumidityControlSetpointCC._validateArgs.d.ts.map +1 -1
  192. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  193. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  194. package/build/esm/cc/IndicatorCC._validateArgs.d.ts +9 -9
  195. package/build/esm/cc/IndicatorCC._validateArgs.d.ts.map +1 -1
  196. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  197. package/build/esm/cc/IrrigationCC._validateArgs.d.ts +10 -10
  198. package/build/esm/cc/IrrigationCC._validateArgs.d.ts.map +1 -1
  199. package/build/esm/cc/IrrigationCC.d.ts +5 -5
  200. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  201. package/build/esm/cc/LanguageCC._validateArgs.d.ts +1 -1
  202. package/build/esm/cc/LanguageCC._validateArgs.d.ts.map +1 -1
  203. package/build/esm/cc/LanguageCC.d.ts +1 -1
  204. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  205. package/build/esm/cc/LockCC._validateArgs.d.ts +1 -1
  206. package/build/esm/cc/LockCC._validateArgs.d.ts.map +1 -1
  207. package/build/esm/cc/LockCC.d.ts.map +1 -1
  208. package/build/esm/cc/ManufacturerProprietaryCC._validateArgs.d.ts +2 -2
  209. package/build/esm/cc/ManufacturerProprietaryCC._validateArgs.d.ts.map +1 -1
  210. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  211. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  212. package/build/esm/cc/ManufacturerSpecificCC._validateArgs.d.ts +2 -2
  213. package/build/esm/cc/ManufacturerSpecificCC._validateArgs.d.ts.map +1 -1
  214. package/build/esm/cc/ManufacturerSpecificCC.d.ts +1 -1
  215. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  216. package/build/esm/cc/MeterCC._validateArgs.d.ts +5 -5
  217. package/build/esm/cc/MeterCC._validateArgs.d.ts.map +1 -1
  218. package/build/esm/cc/MeterCC.d.ts +1 -1
  219. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  220. package/build/esm/cc/MeterCC.js.map +1 -1
  221. package/build/esm/cc/MultiChannelAssociationCC._validateArgs.d.ts +5 -5
  222. package/build/esm/cc/MultiChannelAssociationCC._validateArgs.d.ts.map +1 -1
  223. package/build/esm/cc/MultiChannelAssociationCC.d.ts +1 -1
  224. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  225. package/build/esm/cc/MultiChannelCC._validateArgs.d.ts +4 -4
  226. package/build/esm/cc/MultiChannelCC._validateArgs.d.ts.map +1 -1
  227. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  228. package/build/esm/cc/MultiCommandCC._validateArgs.d.ts +1 -1
  229. package/build/esm/cc/MultiCommandCC._validateArgs.d.ts.map +1 -1
  230. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  231. package/build/esm/cc/MultilevelSensorCC._validateArgs.d.ts +3 -3
  232. package/build/esm/cc/MultilevelSensorCC._validateArgs.d.ts.map +1 -1
  233. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  234. package/build/esm/cc/MultilevelSwitchCC._validateArgs.d.ts +2 -2
  235. package/build/esm/cc/MultilevelSwitchCC._validateArgs.d.ts.map +1 -1
  236. package/build/esm/cc/MultilevelSwitchCC.d.ts +1 -1
  237. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  238. package/build/esm/cc/MultilevelSwitchCC.js +2 -0
  239. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  240. package/build/esm/cc/NoOperationCC.d.ts.map +1 -1
  241. package/build/esm/cc/NodeNamingCC._validateArgs.d.ts +2 -2
  242. package/build/esm/cc/NodeNamingCC._validateArgs.d.ts.map +1 -1
  243. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  244. package/build/esm/cc/NotificationCC._validateArgs.d.ts +4 -4
  245. package/build/esm/cc/NotificationCC._validateArgs.d.ts.map +1 -1
  246. package/build/esm/cc/NotificationCC.d.ts +2 -2
  247. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  248. package/build/esm/cc/PowerlevelCC._validateArgs.d.ts +4 -4
  249. package/build/esm/cc/PowerlevelCC._validateArgs.d.ts.map +1 -1
  250. package/build/esm/cc/PowerlevelCC.d.ts +2 -2
  251. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  252. package/build/esm/cc/ProtectionCC._validateArgs.d.ts +3 -3
  253. package/build/esm/cc/ProtectionCC._validateArgs.d.ts.map +1 -1
  254. package/build/esm/cc/ProtectionCC.d.ts +1 -1
  255. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  256. package/build/esm/cc/ProtectionCC.js.map +1 -1
  257. package/build/esm/cc/SceneActivationCC._validateArgs.d.ts +1 -1
  258. package/build/esm/cc/SceneActivationCC._validateArgs.d.ts.map +1 -1
  259. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  260. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.d.ts +2 -2
  261. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.d.ts.map +1 -1
  262. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  263. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  264. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.d.ts +3 -3
  265. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.d.ts.map +1 -1
  266. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  267. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  268. package/build/esm/cc/ScheduleEntryLockCC._validateArgs.d.ts +8 -8
  269. package/build/esm/cc/ScheduleEntryLockCC._validateArgs.d.ts.map +1 -1
  270. package/build/esm/cc/ScheduleEntryLockCC.d.ts +1 -1
  271. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  272. package/build/esm/cc/Security2CC.d.ts +1 -1
  273. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  274. package/build/esm/cc/Security2CC.js.map +1 -1
  275. package/build/esm/cc/SecurityCC.d.ts +1 -1
  276. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  277. package/build/esm/cc/SecurityCC.js +1 -2
  278. package/build/esm/cc/SecurityCC.js.map +1 -1
  279. package/build/esm/cc/SoundSwitchCC._validateArgs.d.ts +3 -3
  280. package/build/esm/cc/SoundSwitchCC._validateArgs.d.ts.map +1 -1
  281. package/build/esm/cc/SoundSwitchCC.d.ts +2 -2
  282. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  283. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  284. package/build/esm/cc/SupervisionCC.js.map +1 -1
  285. package/build/esm/cc/ThermostatFanModeCC._validateArgs.d.ts +1 -1
  286. package/build/esm/cc/ThermostatFanModeCC._validateArgs.d.ts.map +1 -1
  287. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  288. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  289. package/build/esm/cc/ThermostatModeCC._validateArgs.d.ts +1 -1
  290. package/build/esm/cc/ThermostatModeCC._validateArgs.d.ts.map +1 -1
  291. package/build/esm/cc/ThermostatModeCC.d.ts +1 -1
  292. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  293. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  294. package/build/esm/cc/ThermostatSetbackCC._validateArgs.d.ts +1 -1
  295. package/build/esm/cc/ThermostatSetbackCC._validateArgs.d.ts.map +1 -1
  296. package/build/esm/cc/ThermostatSetbackCC.d.ts +1 -1
  297. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  298. package/build/esm/cc/ThermostatSetpointCC._validateArgs.d.ts +3 -3
  299. package/build/esm/cc/ThermostatSetpointCC._validateArgs.d.ts.map +1 -1
  300. package/build/esm/cc/ThermostatSetpointCC.d.ts +1 -1
  301. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  302. package/build/esm/cc/TimeCC._validateArgs.d.ts +4 -4
  303. package/build/esm/cc/TimeCC._validateArgs.d.ts.map +1 -1
  304. package/build/esm/cc/TimeCC.d.ts +1 -1
  305. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  306. package/build/esm/cc/TimeParametersCC._validateArgs.d.ts +1 -1
  307. package/build/esm/cc/TimeParametersCC._validateArgs.d.ts.map +1 -1
  308. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  309. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  310. package/build/esm/cc/UserCodeCC._validateArgs.d.ts +6 -6
  311. package/build/esm/cc/UserCodeCC._validateArgs.d.ts.map +1 -1
  312. package/build/esm/cc/UserCodeCC.d.ts +1 -1
  313. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  314. package/build/esm/cc/UserCodeCC.js.map +1 -1
  315. package/build/esm/cc/VersionCC._validateArgs.d.ts +3 -3
  316. package/build/esm/cc/VersionCC._validateArgs.d.ts.map +1 -1
  317. package/build/esm/cc/VersionCC.d.ts +2 -2
  318. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  319. package/build/esm/cc/VersionCC.js.map +1 -1
  320. package/build/esm/cc/WakeUpCC._validateArgs.d.ts +1 -1
  321. package/build/esm/cc/WakeUpCC._validateArgs.d.ts.map +1 -1
  322. package/build/esm/cc/WakeUpCC.d.ts +1 -1
  323. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  324. package/build/esm/cc/WindowCoveringCC._validateArgs.d.ts +4 -4
  325. package/build/esm/cc/WindowCoveringCC._validateArgs.d.ts.map +1 -1
  326. package/build/esm/cc/WindowCoveringCC.d.ts +1 -1
  327. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  328. package/build/esm/cc/WindowCoveringCC.js +2 -0
  329. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  330. package/build/esm/cc/ZWavePlusCC._validateArgs.d.ts +1 -1
  331. package/build/esm/cc/ZWavePlusCC._validateArgs.d.ts.map +1 -1
  332. package/build/esm/cc/ZWavePlusCC.d.ts +1 -1
  333. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  334. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  335. package/build/esm/cc/_CCValues.generated.d.ts +1056 -1056
  336. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -1
  337. package/build/esm/cc/_CCValues.generated.js.map +1 -1
  338. package/build/esm/cc/manufacturerProprietary/FibaroCC._validateArgs.d.ts +2 -2
  339. package/build/esm/cc/manufacturerProprietary/FibaroCC._validateArgs.d.ts.map +1 -1
  340. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  341. package/build/esm/lib/API.d.ts +1 -0
  342. package/build/esm/lib/API.d.ts.map +1 -1
  343. package/build/esm/lib/API.js.map +1 -1
  344. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  345. package/build/esm/lib/CommandClass.js +3 -1
  346. package/build/esm/lib/CommandClass.js.map +1 -1
  347. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  348. package/build/esm/lib/Security2/Extension.js.map +1 -1
  349. package/build/esm/lib/Values.d.ts +5 -5
  350. package/build/esm/lib/Values.d.ts.map +1 -1
  351. package/build/esm/lib/Values.js +4 -1
  352. package/build/esm/lib/Values.js.map +1 -1
  353. package/build/esm/lib/_CCAPI.generated.d.ts +64 -64
  354. package/build/esm/lib/_CCAPI.generated.d.ts.map +1 -1
  355. package/build/esm/lib/serializers.js.map +1 -1
  356. package/package.json +14 -13
@@ -1,2 +1,2 @@
1
- export declare function validateArgs_AlarmSensorCCAPI_get(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_AlarmSensorCCAPI_get(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
2
  //# sourceMappingURL=AlarmSensorCC._validateArgs.d.ts.map
@@ -12,7 +12,7 @@ export declare class AlarmSensorCCAPI extends PhysicalCCAPI {
12
12
  * Retrieves the current value from this sensor
13
13
  * @param sensorType The (optional) sensor type to retrieve the value for
14
14
  */
15
- get(sensorType?: AlarmSensorType): Promise<Pick<AlarmSensorCCReport, "state" | "severity" | "duration"> | undefined>;
15
+ get(sensorType?: AlarmSensorType): Promise<Pick<AlarmSensorCCReport, "duration" | "severity" | "state"> | undefined>;
16
16
  getSupportedSensorTypes(): Promise<AlarmSensorType[] | undefined>;
17
17
  }
18
18
  export declare class AlarmSensorCC extends CommandClass {
@@ -1,9 +1,9 @@
1
- export declare function validateArgs_AssociationCCAPI_reportGroupCount(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
2
- export declare function validateArgs_AssociationCCAPI_getGroup(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
3
- export declare function validateArgs_AssociationCCAPI_sendReport(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
4
- export declare function validateArgs_AssociationCCAPI_addNodeIds(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
5
- export declare function validateArgs_AssociationCCAPI_removeNodeIds(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
6
- export declare function validateArgs_AssociationCCAPI_removeNodeIdsFromAllGroups(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
7
- export declare function validateArgs_AssociationCCAPI_getSpecificGroup(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
8
- export declare function validateArgs_AssociationCCAPI_reportSpecificGroup(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_AssociationCCAPI_reportGroupCount(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
+ export declare function validateArgs_AssociationCCAPI_getGroup(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
3
+ export declare function validateArgs_AssociationCCAPI_sendReport(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
4
+ export declare function validateArgs_AssociationCCAPI_addNodeIds(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
5
+ export declare function validateArgs_AssociationCCAPI_removeNodeIds(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
6
+ export declare function validateArgs_AssociationCCAPI_removeNodeIdsFromAllGroups(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
7
+ export declare function validateArgs_AssociationCCAPI_getSpecificGroup(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
8
+ export declare function validateArgs_AssociationCCAPI_reportSpecificGroup(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
9
9
  //# sourceMappingURL=AssociationCC._validateArgs.d.ts.map
@@ -1,7 +1,7 @@
1
- export declare function validateArgs_AssociationGroupInfoCCAPI_getGroupName(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
2
- export declare function validateArgs_AssociationGroupInfoCCAPI_reportGroupName(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
3
- export declare function validateArgs_AssociationGroupInfoCCAPI_getGroupInfo(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
4
- export declare function validateArgs_AssociationGroupInfoCCAPI_reportGroupInfo(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
5
- export declare function validateArgs_AssociationGroupInfoCCAPI_getCommands(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
6
- export declare function validateArgs_AssociationGroupInfoCCAPI_reportCommands(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_AssociationGroupInfoCCAPI_getGroupName(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
+ export declare function validateArgs_AssociationGroupInfoCCAPI_reportGroupName(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
3
+ export declare function validateArgs_AssociationGroupInfoCCAPI_getGroupInfo(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
4
+ export declare function validateArgs_AssociationGroupInfoCCAPI_reportGroupInfo(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
5
+ export declare function validateArgs_AssociationGroupInfoCCAPI_getCommands(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
6
+ export declare function validateArgs_AssociationGroupInfoCCAPI_reportCommands(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
7
7
  //# sourceMappingURL=AssociationGroupInfoCC._validateArgs.d.ts.map
@@ -11,10 +11,10 @@ export declare class AssociationGroupInfoCCAPI extends PhysicalCCAPI {
11
11
  getGroupName(groupId: number): Promise<MaybeNotKnown<string>>;
12
12
  reportGroupName(groupId: number, name: string): Promise<void>;
13
13
  getGroupInfo(groupId: number, refreshCache?: boolean): Promise<{
14
+ hasDynamicInfo: boolean;
14
15
  mode: number;
15
16
  profile: number;
16
17
  eventCode: number;
17
- hasDynamicInfo: boolean;
18
18
  } | undefined>;
19
19
  reportGroupInfo(options: AssociationGroupInfoCCInfoReportOptions): Promise<void>;
20
20
  getCommands(groupId: number, allowCache?: boolean): Promise<MaybeNotKnown<AssociationGroupInfoCCCommandListReport["commands"]>>;
@@ -1,5 +1,5 @@
1
- export declare function validateArgs_BarrierOperatorCCAPI_set(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
2
- export declare function validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
3
- export declare function validateArgs_BarrierOperatorCCAPI_getEventSignaling(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
4
- export declare function validateArgs_BarrierOperatorCCAPI_setEventSignaling(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_BarrierOperatorCCAPI_set(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
+ export declare function validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
3
+ export declare function validateArgs_BarrierOperatorCCAPI_getEventSignaling(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
4
+ export declare function validateArgs_BarrierOperatorCCAPI_setEventSignaling(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
5
5
  //# sourceMappingURL=BarrierOperatorCC._validateArgs.d.ts.map
@@ -8,7 +8,7 @@ import { BarrierOperatorCCValues } from "./_CCValues.generated.js";
8
8
  export { BarrierOperatorCCValues };
9
9
  export declare class BarrierOperatorCCAPI extends CCAPI {
10
10
  supportsCommand(cmd: BarrierOperatorCommand): MaybeNotKnown<boolean>;
11
- get(): Promise<Pick<BarrierOperatorCCReport, "position" | "currentState"> | undefined>;
11
+ get(): Promise<Pick<BarrierOperatorCCReport, "currentState" | "position"> | undefined>;
12
12
  set(targetState: BarrierState.Open | BarrierState.Closed): Promise<SupervisionResult | undefined>;
13
13
  getSignalingCapabilities(): Promise<MaybeNotKnown<readonly SubsystemType[]>>;
14
14
  getEventSignaling(subsystemType: SubsystemType): Promise<MaybeNotKnown<SubsystemState>>;
@@ -176,6 +176,8 @@ let BarrierOperatorCCAPI = (() => {
176
176
  const currentStateValueId = import_CCValues_generated.BarrierOperatorCCValues.currentState.endpoint(this.endpoint.index);
177
177
  const targetValue = value === import_Types.BarrierState.Closed ? import_Types.BarrierState.Closed : import_Types.BarrierState.Open;
178
178
  return {
179
+ // This is the target value for a split target/current state pair.
180
+ isSplitStateTargetValue: true,
179
181
  // Barrier Operator commands may take some time to be executed.
180
182
  // Therefore we try to supervise the command execution and delay the
181
183
  // optimistic update until the final result is received.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src_gen/cc/BarrierOperatorCC.ts"],
4
- "sourcesContent": ["import * as __validateArgs from \"./BarrierOperatorCC._validateArgs.js\";\nconst { validateArgs_BarrierOperatorCCAPI_set, validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities, validateArgs_BarrierOperatorCCAPI_getEventSignaling, validateArgs_BarrierOperatorCCAPI_setEventSignaling } = __validateArgs;\nimport { CommandClasses, type GetNode, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type NodeId, type SupervisionResult, type SupportsCC, UNKNOWN_STATE, ValueMetadata, type WithAddress, ZWaveError, ZWaveErrorCodes, enumValuesToMetadataStates, maybeUnknownToString, parseBitMask, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, isEnumMember, noop, pick, } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwMissingPropertyKey, throwUnsupportedProperty, throwUnsupportedPropertyKey, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BarrierOperatorCommand, BarrierState, SubsystemState, SubsystemType, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { ApplicationStatusCCRejectedRequest } from \"./ApplicationStatusCC.js\";\nimport { BarrierOperatorCCValues } from \"./_CCValues.generated.js\";\nexport { BarrierOperatorCCValues };\n@API(CommandClasses[\"Barrier Operator\"])\nexport class BarrierOperatorCCAPI extends CCAPI {\n public supportsCommand(cmd: BarrierOperatorCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case BarrierOperatorCommand.Get:\n case BarrierOperatorCommand.Set:\n case BarrierOperatorCommand.SignalingCapabilitiesGet:\n case BarrierOperatorCommand.EventSignalingGet:\n case BarrierOperatorCommand.EventSignalingSet:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.Get);\n const cc = new BarrierOperatorCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BarrierOperatorCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"currentState\", \"position\"]);\n }\n }\n @validateArgs_BarrierOperatorCCAPI_set()\n public async set(targetState: BarrierState.Open | BarrierState.Closed): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.Set);\n const cc = new BarrierOperatorCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetState,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities()\n public async getSignalingCapabilities(): Promise<MaybeNotKnown<readonly SubsystemType[]>> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.SignalingCapabilitiesGet);\n const cc = new BarrierOperatorCCSignalingCapabilitiesGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BarrierOperatorCCSignalingCapabilitiesReport>(cc, this.commandOptions);\n return response?.supportedSubsystemTypes;\n }\n @validateArgs_BarrierOperatorCCAPI_getEventSignaling()\n public async getEventSignaling(subsystemType: SubsystemType): Promise<MaybeNotKnown<SubsystemState>> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.EventSignalingGet);\n const cc = new BarrierOperatorCCEventSignalingGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n subsystemType,\n });\n const response = await this.host.sendCommand<BarrierOperatorCCEventSignalingReport>(cc, this.commandOptions);\n return response?.subsystemState;\n }\n @validateArgs_BarrierOperatorCCAPI_setEventSignaling()\n public async setEventSignaling(subsystemType: SubsystemType, subsystemState: SubsystemState): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.EventSignalingSet);\n const cc = new BarrierOperatorCCEventSignalingSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n subsystemType,\n subsystemState,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: BarrierOperatorCCAPI, { property, propertyKey }, value) {\n if (property === \"targetState\") {\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n const targetValue = value === BarrierState.Closed\n ? BarrierState.Closed\n : BarrierState.Open;\n return this.set(targetValue);\n }\n else if (property === \"signalingState\") {\n if (propertyKey == undefined) {\n throwMissingPropertyKey(this.ccId, property);\n }\n else if (typeof propertyKey !== \"number\") {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey);\n }\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n return this.setEventSignaling(propertyKey, value);\n }\n else {\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property, propertyKey }, value, _options) => {\n const valueId = {\n commandClass: this.ccId,\n property,\n propertyKey,\n };\n if (BarrierOperatorCCValues.targetState.is(valueId)) {\n const currentStateValueId = BarrierOperatorCCValues.currentState\n .endpoint(this.endpoint.index);\n const targetValue = value === BarrierState.Closed\n ? BarrierState.Closed\n : BarrierState.Open;\n return {\n // Barrier Operator commands may take some time to be executed.\n // Therefore we try to supervise the command execution and delay the\n // optimistic update until the final result is received.\n supervisionDelayedUpdates: true,\n supervisionOnSuccess: () => {\n this.tryGetValueDB()?.setValue(currentStateValueId, targetValue);\n },\n supervisionOnFailure: async () => {\n // The command failed, so now we don't know the status - refresh the current value\n try {\n await this.get();\n }\n catch {\n // ignore\n }\n },\n optimisticallyUpdateRelatedValues: (supervisedAndSuccessful) => {\n // For barriers, do not update the current value unless we actually know the command was successful\n if (!supervisedAndSuccessful)\n return;\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentStateValueId, targetValue);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node.physicalNodes\n .filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentStateValueId, targetValue);\n }\n }\n },\n verifyChanges: () => {\n if (this.isSinglecast()) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n this.schedulePoll(currentStateValueId, targetValue);\n }\n else {\n // For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n }\n },\n };\n }\n else if (BarrierOperatorCCValues.signalingState.is(valueId)) {\n const subsystemType = propertyKey as SubsystemType;\n const signalingStateValueId = BarrierOperatorCCValues\n .signalingState(subsystemType).endpoint(this.endpoint.index);\n return {\n verifyChanges: () => {\n if (this.isSinglecast()) {\n this.schedulePoll(signalingStateValueId, value, {\n // Signaling state changes are fast\n transition: \"fast\",\n });\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: BarrierOperatorCCAPI, { property, propertyKey }) {\n switch (property) {\n case \"currentState\":\n case \"position\":\n return (await this.get())?.[property];\n case \"signalingState\":\n if (propertyKey == undefined) {\n throwMissingPropertyKey(this.ccId, property);\n }\n else if (typeof propertyKey !== \"number\") {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey);\n }\n return this.getEventSignaling(propertyKey);\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n}\n@commandClass(CommandClasses[\"Barrier Operator\"])\n@implementedVersion(1)\n@ccValues(BarrierOperatorCCValues)\nexport class BarrierOperatorCC extends CommandClass {\n declare ccCommand: BarrierOperatorCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Barrier Operator\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n // Create targetState value if it does not exist\n this.ensureMetadata(ctx, BarrierOperatorCCValues.targetState);\n ctx.logNode(node.id, {\n message: \"Querying signaling capabilities...\",\n direction: \"outbound\",\n });\n const resp = await api.getSignalingCapabilities();\n if (resp) {\n ctx.logNode(node.id, {\n message: `Received supported subsystem types: ${resp\n .map((t) => `\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`)\n .join(\"\")}`,\n direction: \"inbound\",\n });\n // Enable all supported subsystems\n for (const subsystemType of resp) {\n // Some devices report invalid subsystem types, but the CC API checks\n // for valid values and throws otherwise.\n if (!isEnumMember(SubsystemType, subsystemType))\n continue;\n ctx.logNode(node.id, {\n message: `Enabling subsystem ${getEnumMemberName(SubsystemType, subsystemType)}...`,\n direction: \"outbound\",\n });\n await api.setEventSignaling(subsystemType, SubsystemState.On)\n .catch(noop);\n }\n }\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Barrier Operator\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n const supportedSubsystems: SubsystemType[] = this.getValue(ctx, BarrierOperatorCCValues.supportedSubsystemTypes) ?? [];\n for (const subsystemType of supportedSubsystems) {\n // Some devices report invalid subsystem types, but the CC API checks\n // for valid values and throws otherwise.\n if (!isEnumMember(SubsystemType, subsystemType))\n continue;\n ctx.logNode(node.id, {\n message: `Querying event signaling state for subsystem ${getEnumMemberName(SubsystemType, subsystemType)}...`,\n direction: \"outbound\",\n });\n const state = await api.getEventSignaling(subsystemType);\n if (state != undefined) {\n ctx.logNode(node.id, {\n message: `Subsystem ${getEnumMemberName(SubsystemType, subsystemType)} has state ${getEnumMemberName(SubsystemState, state)}`,\n direction: \"inbound\",\n });\n }\n }\n ctx.logNode(node.id, {\n message: \"querying current barrier state...\",\n direction: \"outbound\",\n });\n await api.get();\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCSetOptions {\n targetState: BarrierState.Open | BarrierState.Closed;\n}\nfunction getCCResponseForBarrierOperatorCCSet(ctx: GetNode<NodeId & SupportsCC>, sent: BarrierOperatorCCSet) {\n // CC:0066.01.01.11.009: If the requested operation is prohibited by\n // the specific device class [...], the device MUST notify the requester\n // by issuing an Application Rejected Request Command\n if (sent.isSinglecast()\n && !sent.isEncapsulatedWith(CommandClasses.Supervision)\n && ctx.getNode(sent.nodeId)?.supportsCC(CommandClasses[\"Application Status\"])) {\n return ApplicationStatusCCRejectedRequest;\n }\n}\n@CCCommand(BarrierOperatorCommand.Set)\n@expectedCCResponse(getCCResponseForBarrierOperatorCCSet)\n@useSupervision()\nexport class BarrierOperatorCCSet extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCSetOptions>) {\n super(options);\n this.targetState = options.targetState;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): BarrierOperatorCCSet {\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new BarrierOperatorCCSet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public targetState: BarrierState.Open | BarrierState.Closed;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.targetState]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"target state\": this.targetState },\n };\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCReportOptions {\n position: MaybeUnknown<number>;\n currentState: MaybeUnknown<BarrierState>;\n}\n@CCCommand(BarrierOperatorCommand.Report)\n@ccValueProperty(\"currentState\", BarrierOperatorCCValues.currentState)\n@ccValueProperty(\"position\", BarrierOperatorCCValues.position)\nexport class BarrierOperatorCCReport extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.position = options.position;\n this.currentState = options.currentState;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BarrierOperatorCCReport {\n validatePayload(raw.payload.length >= 1);\n // The payload byte encodes information about the state and position in a single value\n const payloadValue = raw.payload[0];\n let position: MaybeUnknown<number>;\n if (payloadValue <= 99) {\n // known position\n position = payloadValue;\n }\n else if (payloadValue === 255) {\n // known position, fully opened\n position = 100;\n }\n else {\n // unknown position\n position = UNKNOWN_STATE;\n }\n let currentState: MaybeUnknown<BarrierState>;\n if (payloadValue === BarrierState.Closed\n || payloadValue >= BarrierState.Closing) {\n // predefined states\n currentState = payloadValue;\n }\n else if (payloadValue > 0 && payloadValue <= 99) {\n // stopped at exact position\n currentState = BarrierState.Stopped;\n }\n else {\n // invalid value, assume unknown\n currentState = UNKNOWN_STATE;\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n position,\n currentState,\n });\n }\n public readonly currentState: MaybeUnknown<BarrierState>;\n public readonly position: MaybeUnknown<number>;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"barrier position\": maybeUnknownToString(this.position),\n \"barrier state\": this.currentState != undefined\n ? getEnumMemberName(BarrierState, this.currentState)\n : \"unknown\",\n },\n };\n }\n}\n@CCCommand(BarrierOperatorCommand.Get)\n@expectedCCResponse(BarrierOperatorCCReport)\nexport class BarrierOperatorCCGet extends BarrierOperatorCC {\n}\n// @publicAPI\nexport interface BarrierOperatorCCSignalingCapabilitiesReportOptions {\n supportedSubsystemTypes: SubsystemType[];\n}\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesReport)\n@ccValueProperty(\"supportedSubsystemTypes\", BarrierOperatorCCValues.supportedSubsystemTypes)\nexport class BarrierOperatorCCSignalingCapabilitiesReport extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCSignalingCapabilitiesReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.supportedSubsystemTypes = options.supportedSubsystemTypes;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BarrierOperatorCCSignalingCapabilitiesReport {\n const supportedSubsystemTypes: SubsystemType[] = parseBitMask(raw.payload, SubsystemType.Audible);\n return new this({\n nodeId: ctx.sourceNodeId,\n supportedSubsystemTypes,\n });\n }\n public readonly supportedSubsystemTypes: readonly SubsystemType[];\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"supported types\": this.supportedSubsystemTypes\n .map((t) => `\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`)\n .join(\"\"),\n },\n };\n }\n}\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesGet)\n@expectedCCResponse(BarrierOperatorCCSignalingCapabilitiesReport)\nexport class BarrierOperatorCCSignalingCapabilitiesGet extends BarrierOperatorCC {\n}\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingSetOptions {\n subsystemType: SubsystemType;\n subsystemState: SubsystemState;\n}\n@CCCommand(BarrierOperatorCommand.EventSignalingSet)\n@useSupervision()\nexport class BarrierOperatorCCEventSignalingSet extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCEventSignalingSetOptions>) {\n super(options);\n this.subsystemType = options.subsystemType;\n this.subsystemState = options.subsystemState;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): BarrierOperatorCCEventSignalingSet {\n // TODO: Deserialize payload\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new BarrierOperatorCCEventSignalingSet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public subsystemType: SubsystemType;\n public subsystemState: SubsystemState;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.subsystemType, this.subsystemState]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"subsystem type\": getEnumMemberName(SubsystemType, this.subsystemType),\n \"subsystem state\": getEnumMemberName(SubsystemState, this.subsystemState),\n },\n };\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingReportOptions {\n subsystemType: SubsystemType;\n subsystemState: SubsystemState;\n}\n@CCCommand(BarrierOperatorCommand.EventSignalingReport)\nexport class BarrierOperatorCCEventSignalingReport extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCEventSignalingReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.subsystemType = options.subsystemType;\n this.subsystemState = options.subsystemState;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BarrierOperatorCCEventSignalingReport {\n validatePayload(raw.payload.length >= 2);\n const subsystemType: SubsystemType = raw.payload[0];\n const subsystemState: SubsystemState = raw.payload[1];\n return new this({\n nodeId: ctx.sourceNodeId,\n subsystemType,\n subsystemState,\n });\n }\n public persistValues(ctx: PersistValuesContext): boolean {\n if (!super.persistValues(ctx))\n return false;\n const signalingStateValue = BarrierOperatorCCValues.signalingState(this.subsystemType);\n this.ensureMetadata(ctx, signalingStateValue);\n this.setValue(ctx, signalingStateValue, this.subsystemState);\n return true;\n }\n public readonly subsystemType: SubsystemType;\n public readonly subsystemState: SubsystemState;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"subsystem type\": getEnumMemberName(SubsystemType, this.subsystemType),\n \"subsystem state\": getEnumMemberName(SubsystemState, this.subsystemState),\n },\n };\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingGetOptions {\n subsystemType: SubsystemType;\n}\n@CCCommand(BarrierOperatorCommand.EventSignalingGet)\n@expectedCCResponse(BarrierOperatorCCEventSignalingReport)\nexport class BarrierOperatorCCEventSignalingGet extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCEventSignalingGetOptions>) {\n super(options);\n this.subsystemType = options.subsystemType;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): BarrierOperatorCCEventSignalingGet {\n // TODO: Deserialize payload\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new BarrierOperatorCCEventSignalingGet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public subsystemType: SubsystemType;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.subsystemType]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"subsystem type\": getEnumMemberName(SubsystemType, this.subsystemType),\n },\n };\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as __validateArgs from \"./BarrierOperatorCC._validateArgs.js\";\nconst { validateArgs_BarrierOperatorCCAPI_set, validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities, validateArgs_BarrierOperatorCCAPI_getEventSignaling, validateArgs_BarrierOperatorCCAPI_setEventSignaling } = __validateArgs;\nimport { CommandClasses, type GetNode, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type NodeId, type SupervisionResult, type SupportsCC, UNKNOWN_STATE, ValueMetadata, type WithAddress, ZWaveError, ZWaveErrorCodes, enumValuesToMetadataStates, maybeUnknownToString, parseBitMask, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, getEnumMemberName, isEnumMember, noop, pick, } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwMissingPropertyKey, throwUnsupportedProperty, throwUnsupportedPropertyKey, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, type RefreshValuesOptions, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BarrierOperatorCommand, BarrierState, SubsystemState, SubsystemType, } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { ApplicationStatusCCRejectedRequest } from \"./ApplicationStatusCC.js\";\nimport { BarrierOperatorCCValues } from \"./_CCValues.generated.js\";\nexport { BarrierOperatorCCValues };\n@API(CommandClasses[\"Barrier Operator\"])\nexport class BarrierOperatorCCAPI extends CCAPI {\n public supportsCommand(cmd: BarrierOperatorCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case BarrierOperatorCommand.Get:\n case BarrierOperatorCommand.Set:\n case BarrierOperatorCommand.SignalingCapabilitiesGet:\n case BarrierOperatorCommand.EventSignalingGet:\n case BarrierOperatorCommand.EventSignalingSet:\n return true; // This is mandatory\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.Get);\n const cc = new BarrierOperatorCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BarrierOperatorCCReport>(cc, this.commandOptions);\n if (response) {\n return pick(response, [\"currentState\", \"position\"]);\n }\n }\n @validateArgs_BarrierOperatorCCAPI_set()\n public async set(targetState: BarrierState.Open | BarrierState.Closed): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.Set);\n const cc = new BarrierOperatorCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetState,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n @validateArgs_BarrierOperatorCCAPI_getSignalingCapabilities()\n public async getSignalingCapabilities(): Promise<MaybeNotKnown<readonly SubsystemType[]>> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.SignalingCapabilitiesGet);\n const cc = new BarrierOperatorCCSignalingCapabilitiesGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BarrierOperatorCCSignalingCapabilitiesReport>(cc, this.commandOptions);\n return response?.supportedSubsystemTypes;\n }\n @validateArgs_BarrierOperatorCCAPI_getEventSignaling()\n public async getEventSignaling(subsystemType: SubsystemType): Promise<MaybeNotKnown<SubsystemState>> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.EventSignalingGet);\n const cc = new BarrierOperatorCCEventSignalingGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n subsystemType,\n });\n const response = await this.host.sendCommand<BarrierOperatorCCEventSignalingReport>(cc, this.commandOptions);\n return response?.subsystemState;\n }\n @validateArgs_BarrierOperatorCCAPI_setEventSignaling()\n public async setEventSignaling(subsystemType: SubsystemType, subsystemState: SubsystemState): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BarrierOperatorCommand, BarrierOperatorCommand.EventSignalingSet);\n const cc = new BarrierOperatorCCEventSignalingSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n subsystemType,\n subsystemState,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: BarrierOperatorCCAPI, { property, propertyKey }, value) {\n if (property === \"targetState\") {\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n const targetValue = value === BarrierState.Closed\n ? BarrierState.Closed\n : BarrierState.Open;\n return this.set(targetValue);\n }\n else if (property === \"signalingState\") {\n if (propertyKey == undefined) {\n throwMissingPropertyKey(this.ccId, property);\n }\n else if (typeof propertyKey !== \"number\") {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey);\n }\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n return this.setEventSignaling(propertyKey, value);\n }\n else {\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property, propertyKey }, value, _options) => {\n const valueId = {\n commandClass: this.ccId,\n property,\n propertyKey,\n };\n if (BarrierOperatorCCValues.targetState.is(valueId)) {\n const currentStateValueId = BarrierOperatorCCValues.currentState\n .endpoint(this.endpoint.index);\n const targetValue = value === BarrierState.Closed\n ? BarrierState.Closed\n : BarrierState.Open;\n return {\n // This is the target value for a split target/current state pair.\n isSplitStateTargetValue: true,\n // Barrier Operator commands may take some time to be executed.\n // Therefore we try to supervise the command execution and delay the\n // optimistic update until the final result is received.\n supervisionDelayedUpdates: true,\n supervisionOnSuccess: () => {\n this.tryGetValueDB()?.setValue(currentStateValueId, targetValue);\n },\n supervisionOnFailure: async () => {\n // The command failed, so now we don't know the status - refresh the current value\n try {\n await this.get();\n }\n catch {\n // ignore\n }\n },\n optimisticallyUpdateRelatedValues: (supervisedAndSuccessful) => {\n // For barriers, do not update the current value unless we actually know the command was successful\n if (!supervisedAndSuccessful)\n return;\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentStateValueId, targetValue);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node.physicalNodes\n .filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentStateValueId, targetValue);\n }\n }\n },\n verifyChanges: () => {\n if (this.isSinglecast()) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n this.schedulePoll(currentStateValueId, targetValue);\n }\n else {\n // For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n }\n },\n };\n }\n else if (BarrierOperatorCCValues.signalingState.is(valueId)) {\n const subsystemType = propertyKey as SubsystemType;\n const signalingStateValueId = BarrierOperatorCCValues\n .signalingState(subsystemType).endpoint(this.endpoint.index);\n return {\n verifyChanges: () => {\n if (this.isSinglecast()) {\n this.schedulePoll(signalingStateValueId, value, {\n // Signaling state changes are fast\n transition: \"fast\",\n });\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: BarrierOperatorCCAPI, { property, propertyKey }) {\n switch (property) {\n case \"currentState\":\n case \"position\":\n return (await this.get())?.[property];\n case \"signalingState\":\n if (propertyKey == undefined) {\n throwMissingPropertyKey(this.ccId, property);\n }\n else if (typeof propertyKey !== \"number\") {\n throwUnsupportedPropertyKey(this.ccId, property, propertyKey);\n }\n return this.getEventSignaling(propertyKey);\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n}\n@commandClass(CommandClasses[\"Barrier Operator\"])\n@implementedVersion(1)\n@ccValues(BarrierOperatorCCValues)\nexport class BarrierOperatorCC extends CommandClass {\n declare ccCommand: BarrierOperatorCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Barrier Operator\"], ctx, endpoint).withOptions({\n priority: MessagePriority.NodeQuery,\n });\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n // Create targetState value if it does not exist\n this.ensureMetadata(ctx, BarrierOperatorCCValues.targetState);\n ctx.logNode(node.id, {\n message: \"Querying signaling capabilities...\",\n direction: \"outbound\",\n });\n const resp = await api.getSignalingCapabilities();\n if (resp) {\n ctx.logNode(node.id, {\n message: `Received supported subsystem types: ${resp\n .map((t) => `\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`)\n .join(\"\")}`,\n direction: \"inbound\",\n });\n // Enable all supported subsystems\n for (const subsystemType of resp) {\n // Some devices report invalid subsystem types, but the CC API checks\n // for valid values and throws otherwise.\n if (!isEnumMember(SubsystemType, subsystemType))\n continue;\n ctx.logNode(node.id, {\n message: `Enabling subsystem ${getEnumMemberName(SubsystemType, subsystemType)}...`,\n direction: \"outbound\",\n });\n await api.setEventSignaling(subsystemType, SubsystemState.On)\n .catch(noop);\n }\n }\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Barrier Operator\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n const supportedSubsystems: SubsystemType[] = this.getValue(ctx, BarrierOperatorCCValues.supportedSubsystemTypes) ?? [];\n for (const subsystemType of supportedSubsystems) {\n // Some devices report invalid subsystem types, but the CC API checks\n // for valid values and throws otherwise.\n if (!isEnumMember(SubsystemType, subsystemType))\n continue;\n ctx.logNode(node.id, {\n message: `Querying event signaling state for subsystem ${getEnumMemberName(SubsystemType, subsystemType)}...`,\n direction: \"outbound\",\n });\n const state = await api.getEventSignaling(subsystemType);\n if (state != undefined) {\n ctx.logNode(node.id, {\n message: `Subsystem ${getEnumMemberName(SubsystemType, subsystemType)} has state ${getEnumMemberName(SubsystemState, state)}`,\n direction: \"inbound\",\n });\n }\n }\n ctx.logNode(node.id, {\n message: \"querying current barrier state...\",\n direction: \"outbound\",\n });\n await api.get();\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCSetOptions {\n targetState: BarrierState.Open | BarrierState.Closed;\n}\nfunction getCCResponseForBarrierOperatorCCSet(ctx: GetNode<NodeId & SupportsCC>, sent: BarrierOperatorCCSet) {\n // CC:0066.01.01.11.009: If the requested operation is prohibited by\n // the specific device class [...], the device MUST notify the requester\n // by issuing an Application Rejected Request Command\n if (sent.isSinglecast()\n && !sent.isEncapsulatedWith(CommandClasses.Supervision)\n && ctx.getNode(sent.nodeId)?.supportsCC(CommandClasses[\"Application Status\"])) {\n return ApplicationStatusCCRejectedRequest;\n }\n}\n@CCCommand(BarrierOperatorCommand.Set)\n@expectedCCResponse(getCCResponseForBarrierOperatorCCSet)\n@useSupervision()\nexport class BarrierOperatorCCSet extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCSetOptions>) {\n super(options);\n this.targetState = options.targetState;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): BarrierOperatorCCSet {\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new BarrierOperatorCCSet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public targetState: BarrierState.Open | BarrierState.Closed;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.targetState]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"target state\": this.targetState },\n };\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCReportOptions {\n position: MaybeUnknown<number>;\n currentState: MaybeUnknown<BarrierState>;\n}\n@CCCommand(BarrierOperatorCommand.Report)\n@ccValueProperty(\"currentState\", BarrierOperatorCCValues.currentState)\n@ccValueProperty(\"position\", BarrierOperatorCCValues.position)\nexport class BarrierOperatorCCReport extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.position = options.position;\n this.currentState = options.currentState;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BarrierOperatorCCReport {\n validatePayload(raw.payload.length >= 1);\n // The payload byte encodes information about the state and position in a single value\n const payloadValue = raw.payload[0];\n let position: MaybeUnknown<number>;\n if (payloadValue <= 99) {\n // known position\n position = payloadValue;\n }\n else if (payloadValue === 255) {\n // known position, fully opened\n position = 100;\n }\n else {\n // unknown position\n position = UNKNOWN_STATE;\n }\n let currentState: MaybeUnknown<BarrierState>;\n if (payloadValue === BarrierState.Closed\n || payloadValue >= BarrierState.Closing) {\n // predefined states\n currentState = payloadValue;\n }\n else if (payloadValue > 0 && payloadValue <= 99) {\n // stopped at exact position\n currentState = BarrierState.Stopped;\n }\n else {\n // invalid value, assume unknown\n currentState = UNKNOWN_STATE;\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n position,\n currentState,\n });\n }\n public readonly currentState: MaybeUnknown<BarrierState>;\n public readonly position: MaybeUnknown<number>;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"barrier position\": maybeUnknownToString(this.position),\n \"barrier state\": this.currentState != undefined\n ? getEnumMemberName(BarrierState, this.currentState)\n : \"unknown\",\n },\n };\n }\n}\n@CCCommand(BarrierOperatorCommand.Get)\n@expectedCCResponse(BarrierOperatorCCReport)\nexport class BarrierOperatorCCGet extends BarrierOperatorCC {\n}\n// @publicAPI\nexport interface BarrierOperatorCCSignalingCapabilitiesReportOptions {\n supportedSubsystemTypes: SubsystemType[];\n}\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesReport)\n@ccValueProperty(\"supportedSubsystemTypes\", BarrierOperatorCCValues.supportedSubsystemTypes)\nexport class BarrierOperatorCCSignalingCapabilitiesReport extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCSignalingCapabilitiesReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.supportedSubsystemTypes = options.supportedSubsystemTypes;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BarrierOperatorCCSignalingCapabilitiesReport {\n const supportedSubsystemTypes: SubsystemType[] = parseBitMask(raw.payload, SubsystemType.Audible);\n return new this({\n nodeId: ctx.sourceNodeId,\n supportedSubsystemTypes,\n });\n }\n public readonly supportedSubsystemTypes: readonly SubsystemType[];\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"supported types\": this.supportedSubsystemTypes\n .map((t) => `\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`)\n .join(\"\"),\n },\n };\n }\n}\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesGet)\n@expectedCCResponse(BarrierOperatorCCSignalingCapabilitiesReport)\nexport class BarrierOperatorCCSignalingCapabilitiesGet extends BarrierOperatorCC {\n}\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingSetOptions {\n subsystemType: SubsystemType;\n subsystemState: SubsystemState;\n}\n@CCCommand(BarrierOperatorCommand.EventSignalingSet)\n@useSupervision()\nexport class BarrierOperatorCCEventSignalingSet extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCEventSignalingSetOptions>) {\n super(options);\n this.subsystemType = options.subsystemType;\n this.subsystemState = options.subsystemState;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): BarrierOperatorCCEventSignalingSet {\n // TODO: Deserialize payload\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new BarrierOperatorCCEventSignalingSet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public subsystemType: SubsystemType;\n public subsystemState: SubsystemState;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.subsystemType, this.subsystemState]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"subsystem type\": getEnumMemberName(SubsystemType, this.subsystemType),\n \"subsystem state\": getEnumMemberName(SubsystemState, this.subsystemState),\n },\n };\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingReportOptions {\n subsystemType: SubsystemType;\n subsystemState: SubsystemState;\n}\n@CCCommand(BarrierOperatorCommand.EventSignalingReport)\nexport class BarrierOperatorCCEventSignalingReport extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCEventSignalingReportOptions>) {\n super(options);\n // TODO: Check implementation:\n this.subsystemType = options.subsystemType;\n this.subsystemState = options.subsystemState;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BarrierOperatorCCEventSignalingReport {\n validatePayload(raw.payload.length >= 2);\n const subsystemType: SubsystemType = raw.payload[0];\n const subsystemState: SubsystemState = raw.payload[1];\n return new this({\n nodeId: ctx.sourceNodeId,\n subsystemType,\n subsystemState,\n });\n }\n public persistValues(ctx: PersistValuesContext): boolean {\n if (!super.persistValues(ctx))\n return false;\n const signalingStateValue = BarrierOperatorCCValues.signalingState(this.subsystemType);\n this.ensureMetadata(ctx, signalingStateValue);\n this.setValue(ctx, signalingStateValue, this.subsystemState);\n return true;\n }\n public readonly subsystemType: SubsystemType;\n public readonly subsystemState: SubsystemState;\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"subsystem type\": getEnumMemberName(SubsystemType, this.subsystemType),\n \"subsystem state\": getEnumMemberName(SubsystemState, this.subsystemState),\n },\n };\n }\n}\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingGetOptions {\n subsystemType: SubsystemType;\n}\n@CCCommand(BarrierOperatorCommand.EventSignalingGet)\n@expectedCCResponse(BarrierOperatorCCEventSignalingReport)\nexport class BarrierOperatorCCEventSignalingGet extends BarrierOperatorCC {\n public constructor(options: WithAddress<BarrierOperatorCCEventSignalingGetOptions>) {\n super(options);\n this.subsystemType = options.subsystemType;\n }\n public static from(_raw: CCRaw, _ctx: CCParsingContext): BarrierOperatorCCEventSignalingGet {\n // TODO: Deserialize payload\n throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);\n // return new BarrierOperatorCCEventSignalingGet({\n // \tnodeId: ctx.sourceNodeId,\n // });\n }\n public subsystemType: SubsystemType;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.subsystemType]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: {\n \"subsystem type\": getEnumMemberName(SubsystemType, this.subsystemType),\n },\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- export declare function validateArgs_BasicCCAPI_set(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_BasicCCAPI_set(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
2
  //# sourceMappingURL=BasicCC._validateArgs.d.ts.map
@@ -12,7 +12,7 @@ export declare class BasicCCAPI extends CCAPI {
12
12
  protected get [SET_VALUE](): SetValueImplementation;
13
13
  protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory;
14
14
  protected get [POLL_VALUE](): PollValueImplementation;
15
- get(): Promise<Pick<BasicCCReport, "duration" | "currentValue" | "targetValue"> | undefined>;
15
+ get(): Promise<Pick<BasicCCReport, "currentValue" | "duration" | "targetValue"> | undefined>;
16
16
  set(targetValue: number): Promise<SupervisionResult | undefined>;
17
17
  }
18
18
  export declare class BasicCC extends CommandClass {
@@ -103,6 +103,8 @@ let BasicCCAPI = (() => {
103
103
  if (property === "targetValue") {
104
104
  const currentValueValueId = import_CCValues_generated.BasicCCValues.currentValue.endpoint(this.endpoint.index);
105
105
  return {
106
+ // This is the target value for a split target/current state pair.
107
+ isSplitStateTargetValue: true,
106
108
  optimisticallyUpdateRelatedValues: /* @__PURE__ */ __name((_supervisedAndSuccessful) => {
107
109
  if (typeof value === "number" && value >= 0 && value <= 99) {
108
110
  if (this.isSinglecast()) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src_gen/cc/BasicCC.ts"],
4
- "sourcesContent": ["import * as __validateArgs from \"./BasicCC._validateArgs.js\";\nconst { validateArgs_BasicCCAPI_set } = __validateArgs;\nimport type { GetDeviceConfig } from \"@zwave-js/config\";\nimport { CommandClasses, type ControlsCC, Duration, type EndpointId, type GetEndpoint, type GetNode, type GetSupportedCCVersion, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type NodeId, type SupervisionResult, type SupportsCC, type ValueID, ValueMetadata, type WithAddress, maybeUnknownToString, parseMaybeNumber, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, pick } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, type RefreshValuesOptions, getEffectiveCCVersion, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BasicCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { BasicCCValues } from \"./_CCValues.generated.js\";\nexport { BasicCCValues };\n@API(CommandClasses.Basic)\nexport class BasicCCAPI extends CCAPI {\n public supportsCommand(cmd: BasicCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case BasicCommand.Get:\n return this.isSinglecast();\n case BasicCommand.Set:\n return true;\n }\n return super.supportsCommand(cmd);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: BasicCCAPI, { property }, value) {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property !== \"targetValue\") {\n throwUnsupportedProperty(this.ccId, property);\n }\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n return this.set(value);\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property }, value, _options) => {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property === \"targetValue\") {\n const currentValueValueId = BasicCCValues.currentValue.endpoint(this.endpoint.index);\n return {\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node\n .physicalNodes.filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n }\n },\n forceVerifyChanges: () => {\n // If we don't know the actual value, we need to verify the change, regardless of the supervision result\n return value === 255;\n },\n verifyChanges: () => {\n if (this.isSinglecast()\n // We generally don't want to poll for multicasts because of how much traffic it can cause\n // However, when setting the value 255 (ON), we don't know the actual state\n || (this.isMulticast() && value === 255)) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n (this as this).schedulePoll(currentValueValueId, value === 255 ? undefined : value);\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: BasicCCAPI, { property }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n return (await this.get())?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(BasicCommand, BasicCommand.Get);\n const cc = new BasicCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BasicCCReport>(cc, this.commandOptions);\n if (response) {\n this.tryGetValueDB()?.setValue(BasicCCValues.currentValue.endpoint(this.endpoint.index), response.currentValue);\n return pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n }\n }\n @validateArgs_BasicCCAPI_set()\n public async set(targetValue: number): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BasicCommand, BasicCommand.Set);\n const cc = new BasicCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValue,\n });\n return this.host.sendCommand(cc, this.commandOptions);\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 declare ccCommand: BasicCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n // Assume that the endpoint supports Basic CC, so the values get persisted correctly.\n endpoint.addCC(CommandClasses.Basic, { isSupported: true });\n // try to query the current state\n await this.refreshValues(ctx);\n // Remove Basic CC support again when there was no response\n if (this.getValue(ctx, BasicCCValues.currentValue) == undefined) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"No response to Basic Get command, assuming Basic CC is unsupported...\",\n });\n // SDS14223: A controlling node MUST conclude that the Basic Command Class is not supported by a node (or\n // endpoint) if no Basic Report is returned.\n endpoint.addCC(CommandClasses.Basic, { isSupported: false });\n if (!endpoint.controlsCC(CommandClasses.Basic)) {\n endpoint.removeCC(CommandClasses.Basic);\n }\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses.Basic, ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n // try to query the current state\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying Basic CC state...\",\n direction: \"outbound\",\n });\n const basicResponse = await api.get();\n if (basicResponse) {\n let logMessage = `received Basic CC state:\ncurrent value: ${basicResponse.currentValue}`;\n if (basicResponse.targetValue != undefined) {\n logMessage += `\ntarget value: ${basicResponse.targetValue}\nremaining duration: ${basicResponse.duration?.toString() ?? \"undefined\"}`;\n }\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n public override getDefinedValueIDs(ctx: GetValueDB & GetSupportedCCVersion & GetDeviceConfig & GetNode<NodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>>): ValueID[] {\n const ret: ValueID[] = [];\n const endpoint = this.getEndpoint(ctx)!;\n const compat = ctx.getDeviceConfig?.(endpoint.nodeId)?.compat;\n if (compat?.mapBasicSet === \"event\") {\n // Add the compat event value if it should be exposed\n ret.push(BasicCCValues.compatEvent.endpoint(endpoint.index));\n }\n if (endpoint.supportsCC(this.ccId)) {\n // Defer to the base implementation if Basic CC is supported.\n // This implies that no other actuator CC is supported.\n ret.push(...super.getDefinedValueIDs(ctx));\n }\n else if (endpoint.controlsCC(CommandClasses.Basic)) {\n // During the interview, we mark Basic CC as controlled only if we want to expose currentValue\n ret.push(BasicCCValues.currentValue.endpoint(endpoint.index));\n }\n return ret;\n }\n}\n// @publicAPI\nexport interface BasicCCSetOptions {\n targetValue: number;\n}\n@CCCommand(BasicCommand.Set)\n@useSupervision()\nexport class BasicCCSet extends BasicCC {\n public constructor(options: WithAddress<BasicCCSetOptions>) {\n super(options);\n this.targetValue = options.targetValue;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BasicCCSet {\n validatePayload(raw.payload.length >= 1);\n const targetValue = raw.payload[0];\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValue,\n });\n }\n public targetValue: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.targetValue]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"target value\": this.targetValue },\n };\n }\n}\n// @publicAPI\nexport interface BasicCCReportOptions {\n currentValue?: MaybeUnknown<number>;\n targetValue?: MaybeUnknown<number>;\n duration?: Duration;\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 // @noCCValues See comment in the constructor\n public constructor(options: WithAddress<BasicCCReportOptions>) {\n super(options);\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = options.duration;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BasicCCReport {\n validatePayload(raw.payload.length >= 1);\n const currentValue: MaybeUnknown<number> | undefined = \n // 0xff is a legacy value for 100% (99)\n raw.payload[0] === 0xff\n ? 99\n : parseMaybeNumber(raw.payload[0]);\n validatePayload(currentValue !== undefined);\n let targetValue: MaybeUnknown<number> | undefined;\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n targetValue = parseMaybeNumber(raw.payload[1]);\n duration = Duration.parseReport(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n currentValue,\n targetValue,\n duration,\n });\n }\n public currentValue: MaybeUnknown<number> | undefined;\n public readonly targetValue: MaybeUnknown<number> | undefined;\n public readonly duration: Duration | undefined;\n public persistValues(ctx: PersistValuesContext): boolean {\n // Basic CC Report persists its values itself, since there are some\n // specific rules when which value may be persisted.\n // These rules are essentially encoded in the getDefinedValueIDs overload,\n // so we simply reuse that here.\n // Figure out which values may be persisted.\n const definedValueIDs = this.getDefinedValueIDs(ctx);\n const shouldPersistCurrentValue = definedValueIDs.some((vid) => BasicCCValues.currentValue.is(vid));\n const shouldPersistTargetValue = definedValueIDs.some((vid) => BasicCCValues.targetValue.is(vid));\n const shouldPersistDuration = definedValueIDs.some((vid) => BasicCCValues.duration.is(vid));\n if (this.currentValue !== undefined && shouldPersistCurrentValue) {\n this.setValue(ctx, BasicCCValues.currentValue, this.currentValue);\n }\n if (this.targetValue !== undefined && shouldPersistTargetValue) {\n this.setValue(ctx, BasicCCValues.targetValue, this.targetValue);\n }\n if (this.duration !== undefined && shouldPersistDuration) {\n this.setValue(ctx, BasicCCValues.duration, this.duration);\n }\n return true;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.currentValue ?? 0xfe,\n this.targetValue ?? 0xfe,\n (this.duration ?? Duration.unknown()).serializeReport(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, only send the current value\n this.payload = this.payload.subarray(0, 1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"current value\": maybeUnknownToString(this.currentValue),\n };\n if (this.targetValue !== undefined) {\n message[\"target value\"] = maybeUnknownToString(this.targetValue);\n }\n if (this.duration != undefined) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(BasicCommand.Get)\n@expectedCCResponse(BasicCCReport)\nexport class BasicCCGet extends BasicCC {\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as __validateArgs from \"./BasicCC._validateArgs.js\";\nconst { validateArgs_BasicCCAPI_set } = __validateArgs;\nimport type { GetDeviceConfig } from \"@zwave-js/config\";\nimport { CommandClasses, type ControlsCC, Duration, type EndpointId, type GetEndpoint, type GetNode, type GetSupportedCCVersion, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type NodeId, type SupervisionResult, type SupportsCC, type ValueID, ValueMetadata, type WithAddress, maybeUnknownToString, parseMaybeNumber, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes, pick } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, type RefreshValuesOptions, getEffectiveCCVersion, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BasicCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { BasicCCValues } from \"./_CCValues.generated.js\";\nexport { BasicCCValues };\n@API(CommandClasses.Basic)\nexport class BasicCCAPI extends CCAPI {\n public supportsCommand(cmd: BasicCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case BasicCommand.Get:\n return this.isSinglecast();\n case BasicCommand.Set:\n return true;\n }\n return super.supportsCommand(cmd);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: BasicCCAPI, { property }, value) {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property !== \"targetValue\") {\n throwUnsupportedProperty(this.ccId, property);\n }\n if (typeof value !== \"number\") {\n throwWrongValueType(this.ccId, property, \"number\", typeof value);\n }\n return this.set(value);\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property }, value, _options) => {\n // Enable restoring the previous non-zero value\n if (property === \"restorePrevious\") {\n property = \"targetValue\";\n value = 255;\n }\n if (property === \"targetValue\") {\n const currentValueValueId = BasicCCValues.currentValue.endpoint(this.endpoint.index);\n return {\n // This is the target value for a split target/current state pair.\n isSplitStateTargetValue: true,\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // Only update currentValue for valid target values\n if (typeof value === \"number\"\n && value >= 0\n && value <= 99) {\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node\n .physicalNodes.filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n }\n },\n forceVerifyChanges: () => {\n // If we don't know the actual value, we need to verify the change, regardless of the supervision result\n return value === 255;\n },\n verifyChanges: () => {\n if (this.isSinglecast()\n // We generally don't want to poll for multicasts because of how much traffic it can cause\n // However, when setting the value 255 (ON), we don't know the actual state\n || (this.isMulticast() && value === 255)) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n (this as this).schedulePoll(currentValueValueId, value === 255 ? undefined : value);\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: BasicCCAPI, { property }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n return (await this.get())?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(BasicCommand, BasicCommand.Get);\n const cc = new BasicCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BasicCCReport>(cc, this.commandOptions);\n if (response) {\n this.tryGetValueDB()?.setValue(BasicCCValues.currentValue.endpoint(this.endpoint.index), response.currentValue);\n return pick(response, [\"currentValue\", \"targetValue\", \"duration\"]);\n }\n }\n @validateArgs_BasicCCAPI_set()\n public async set(targetValue: number): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BasicCommand, BasicCommand.Set);\n const cc = new BasicCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValue,\n });\n return this.host.sendCommand(cc, this.commandOptions);\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 declare ccCommand: BasicCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n // Assume that the endpoint supports Basic CC, so the values get persisted correctly.\n endpoint.addCC(CommandClasses.Basic, { isSupported: true });\n // try to query the current state\n await this.refreshValues(ctx);\n // Remove Basic CC support again when there was no response\n if (this.getValue(ctx, BasicCCValues.currentValue) == undefined) {\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"No response to Basic Get command, assuming Basic CC is unsupported...\",\n });\n // SDS14223: A controlling node MUST conclude that the Basic Command Class is not supported by a node (or\n // endpoint) if no Basic Report is returned.\n endpoint.addCC(CommandClasses.Basic, { isSupported: false });\n if (!endpoint.controlsCC(CommandClasses.Basic)) {\n endpoint.removeCC(CommandClasses.Basic);\n }\n }\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses.Basic, ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n // try to query the current state\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying Basic CC state...\",\n direction: \"outbound\",\n });\n const basicResponse = await api.get();\n if (basicResponse) {\n let logMessage = `received Basic CC state:\ncurrent value: ${basicResponse.currentValue}`;\n if (basicResponse.targetValue != undefined) {\n logMessage += `\ntarget value: ${basicResponse.targetValue}\nremaining duration: ${basicResponse.duration?.toString() ?? \"undefined\"}`;\n }\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n public override getDefinedValueIDs(ctx: GetValueDB & GetSupportedCCVersion & GetDeviceConfig & GetNode<NodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>>): ValueID[] {\n const ret: ValueID[] = [];\n const endpoint = this.getEndpoint(ctx)!;\n const compat = ctx.getDeviceConfig?.(endpoint.nodeId)?.compat;\n if (compat?.mapBasicSet === \"event\") {\n // Add the compat event value if it should be exposed\n ret.push(BasicCCValues.compatEvent.endpoint(endpoint.index));\n }\n if (endpoint.supportsCC(this.ccId)) {\n // Defer to the base implementation if Basic CC is supported.\n // This implies that no other actuator CC is supported.\n ret.push(...super.getDefinedValueIDs(ctx));\n }\n else if (endpoint.controlsCC(CommandClasses.Basic)) {\n // During the interview, we mark Basic CC as controlled only if we want to expose currentValue\n ret.push(BasicCCValues.currentValue.endpoint(endpoint.index));\n }\n return ret;\n }\n}\n// @publicAPI\nexport interface BasicCCSetOptions {\n targetValue: number;\n}\n@CCCommand(BasicCommand.Set)\n@useSupervision()\nexport class BasicCCSet extends BasicCC {\n public constructor(options: WithAddress<BasicCCSetOptions>) {\n super(options);\n this.targetValue = options.targetValue;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BasicCCSet {\n validatePayload(raw.payload.length >= 1);\n const targetValue = raw.payload[0];\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValue,\n });\n }\n public targetValue: number;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([this.targetValue]);\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n return {\n ...super.toLogEntry(ctx),\n message: { \"target value\": this.targetValue },\n };\n }\n}\n// @publicAPI\nexport interface BasicCCReportOptions {\n currentValue?: MaybeUnknown<number>;\n targetValue?: MaybeUnknown<number>;\n duration?: Duration;\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 // @noCCValues See comment in the constructor\n public constructor(options: WithAddress<BasicCCReportOptions>) {\n super(options);\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = options.duration;\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BasicCCReport {\n validatePayload(raw.payload.length >= 1);\n const currentValue: MaybeUnknown<number> | undefined = \n // 0xff is a legacy value for 100% (99)\n raw.payload[0] === 0xff\n ? 99\n : parseMaybeNumber(raw.payload[0]);\n validatePayload(currentValue !== undefined);\n let targetValue: MaybeUnknown<number> | undefined;\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n targetValue = parseMaybeNumber(raw.payload[1]);\n duration = Duration.parseReport(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n currentValue,\n targetValue,\n duration,\n });\n }\n public currentValue: MaybeUnknown<number> | undefined;\n public readonly targetValue: MaybeUnknown<number> | undefined;\n public readonly duration: Duration | undefined;\n public persistValues(ctx: PersistValuesContext): boolean {\n // Basic CC Report persists its values itself, since there are some\n // specific rules when which value may be persisted.\n // These rules are essentially encoded in the getDefinedValueIDs overload,\n // so we simply reuse that here.\n // Figure out which values may be persisted.\n const definedValueIDs = this.getDefinedValueIDs(ctx);\n const shouldPersistCurrentValue = definedValueIDs.some((vid) => BasicCCValues.currentValue.is(vid));\n const shouldPersistTargetValue = definedValueIDs.some((vid) => BasicCCValues.targetValue.is(vid));\n const shouldPersistDuration = definedValueIDs.some((vid) => BasicCCValues.duration.is(vid));\n if (this.currentValue !== undefined && shouldPersistCurrentValue) {\n this.setValue(ctx, BasicCCValues.currentValue, this.currentValue);\n }\n if (this.targetValue !== undefined && shouldPersistTargetValue) {\n this.setValue(ctx, BasicCCValues.targetValue, this.targetValue);\n }\n if (this.duration !== undefined && shouldPersistDuration) {\n this.setValue(ctx, BasicCCValues.duration, this.duration);\n }\n return true;\n }\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.currentValue ?? 0xfe,\n this.targetValue ?? 0xfe,\n (this.duration ?? Duration.unknown()).serializeReport(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, only send the current value\n this.payload = this.payload.subarray(0, 1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"current value\": maybeUnknownToString(this.currentValue),\n };\n if (this.targetValue !== undefined) {\n message[\"target value\"] = maybeUnknownToString(this.targetValue);\n }\n if (this.duration != undefined) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(BasicCommand.Get)\n@expectedCCResponse(BasicCCReport)\nexport class BasicCCGet extends BasicCC {\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,3 @@
1
- export declare function validateArgs_BasicWindowCoveringCCAPI_startLevelChange(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
2
- export declare function validateArgs_BasicWindowCoveringCCAPI_stopLevelChange(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_BasicWindowCoveringCCAPI_startLevelChange(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
+ export declare function validateArgs_BasicWindowCoveringCCAPI_stopLevelChange(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
3
3
  //# sourceMappingURL=BasicWindowCoveringCC._validateArgs.d.ts.map
@@ -10,7 +10,7 @@ export { BatteryCCValues };
10
10
  export declare class BatteryCCAPI extends PhysicalCCAPI {
11
11
  supportsCommand(cmd: BatteryCommand): MaybeNotKnown<boolean>;
12
12
  protected get [POLL_VALUE](): PollValueImplementation;
13
- get(): Promise<Pick<BatteryCCReport, "level" | "chargingStatus" | "rechargeable" | "backup" | "overheating" | "lowFluid" | "rechargeOrReplace" | "disconnected" | "lowTemperatureStatus"> | undefined>;
13
+ get(): Promise<Pick<BatteryCCReport, "backup" | "chargingStatus" | "disconnected" | "level" | "lowFluid" | "lowTemperatureStatus" | "overheating" | "rechargeOrReplace" | "rechargeable"> | undefined>;
14
14
  getHealth(): Promise<Pick<BatteryCCHealthReport, "maximumCapacity" | "temperature"> | undefined>;
15
15
  }
16
16
  export declare class BatteryCC extends CommandClass {
@@ -1,4 +1,4 @@
1
- export declare function validateArgs_BinarySensorCCAPI_get(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
2
- export declare function validateArgs_BinarySensorCCAPI_sendReport(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
3
- export declare function validateArgs_BinarySensorCCAPI_reportSupportedSensorTypes(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_BinarySensorCCAPI_get(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
+ export declare function validateArgs_BinarySensorCCAPI_sendReport(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
3
+ export declare function validateArgs_BinarySensorCCAPI_reportSupportedSensorTypes(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
4
4
  //# sourceMappingURL=BinarySensorCC._validateArgs.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare function validateArgs_BinarySwitchCCAPI_set(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
1
+ export declare function validateArgs_BinarySwitchCCAPI_set(): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext<unknown, (this: unknown, ...args: any) => any>) => void | T;
2
2
  //# sourceMappingURL=BinarySwitchCC._validateArgs.d.ts.map
@@ -127,6 +127,8 @@ let BinarySwitchCCAPI = (() => {
127
127
  if (property === "targetValue") {
128
128
  const currentValueValueId = import_CCValues_generated.BinarySwitchCCValues.currentValue.endpoint(this.endpoint.index);
129
129
  return {
130
+ // This is the target value for a split target/current state pair.
131
+ isSplitStateTargetValue: true,
130
132
  optimisticallyUpdateRelatedValues: /* @__PURE__ */ __name((_supervisedAndSuccessful) => {
131
133
  if (this.isSinglecast()) {
132
134
  this.tryGetValueDB()?.setValue(currentValueValueId, value);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src_gen/cc/BinarySwitchCC.ts"],
4
- "sourcesContent": ["import * as __validateArgs from \"./BinarySwitchCC._validateArgs.js\";\nconst { validateArgs_BinarySwitchCCAPI_set } = __validateArgs;\nimport { CommandClasses, Duration, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type SupervisionResult, UNKNOWN_STATE, ValueMetadata, type WithAddress, encodeMaybeBoolean, maybeUnknownToString, parseMaybeBoolean, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, getEffectiveCCVersion, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BinarySwitchCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { BinarySwitchCCValues } from \"./_CCValues.generated.js\";\nexport { BinarySwitchCCValues };\n@API(CommandClasses[\"Binary Switch\"])\nexport class BinarySwitchCCAPI extends CCAPI {\n public supportsCommand(cmd: BinarySwitchCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case BinarySwitchCommand.Get:\n return this.isSinglecast();\n case BinarySwitchCommand.Set:\n return true;\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(BinarySwitchCommand, BinarySwitchCommand.Get);\n const cc = new BinarySwitchCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BinarySwitchCCReport>(cc, this.commandOptions);\n if (response) {\n return {\n // interpret unknown values as false\n currentValue: response.currentValue || false,\n targetValue: response.targetValue,\n duration: response.duration,\n };\n }\n }\n /**\n * Sets the switch to the given value\n * @param targetValue The target value to set\n * @param duration The duration after which the target value should be reached. Can be a Duration instance or a user-friendly duration string like `\"1m17s\"`. Only supported in V2 and above.\n */\n @validateArgs_BinarySwitchCCAPI_set()\n public async set(targetValue: boolean, duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BinarySwitchCommand, BinarySwitchCommand.Set);\n const cc = new BinarySwitchCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValue,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: BinarySwitchCCAPI, { property }, value, options) {\n if (property !== \"targetValue\") {\n throwUnsupportedProperty(this.ccId, property);\n }\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"boolean\", typeof value);\n }\n const duration = Duration.from(options?.transitionDuration);\n return this.set(value, duration);\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property }, value, options) => {\n if (property === \"targetValue\") {\n const currentValueValueId = BinarySwitchCCValues.currentValue\n .endpoint(this.endpoint.index);\n return {\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // After setting targetValue, optimistically update currentValue\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node.physicalNodes\n .filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n },\n verifyChanges: () => {\n if (this.isSinglecast()) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n this.schedulePoll(currentValueValueId, value, {\n duration: Duration.from(options?.transitionDuration),\n // on/off \"transitions\" are usually fast\n transition: \"fast\",\n });\n }\n else {\n // For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: BinarySwitchCCAPI, { property }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n return (await this.get())?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n}\n@commandClass(CommandClasses[\"Binary Switch\"])\n@implementedVersion(2)\n@ccValues(BinarySwitchCCValues)\nexport class BinarySwitchCC extends CommandClass {\n declare ccCommand: BinarySwitchCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Binary Switch\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n // Query the current state\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying Binary Switch state...\",\n direction: \"outbound\",\n });\n const resp = await api.get();\n if (resp) {\n let logMessage = `received Binary Switch state:\ncurrent value: ${resp.currentValue}`;\n if (resp.targetValue != undefined) {\n logMessage += `\ntarget value: ${resp.targetValue}\nremaining duration: ${resp.duration?.toString() ?? \"undefined\"}`;\n }\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n public setMappedBasicValue(ctx: GetValueDB, value: number): boolean {\n this.setValue(ctx, BinarySwitchCCValues.currentValue, value > 0);\n return true;\n }\n}\n// @publicAPI\nexport interface BinarySwitchCCSetOptions {\n targetValue: boolean;\n duration?: Duration | string;\n}\n@CCCommand(BinarySwitchCommand.Set)\n@useSupervision()\nexport class BinarySwitchCCSet extends BinarySwitchCC {\n public constructor(options: WithAddress<BinarySwitchCCSetOptions>) {\n super(options);\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BinarySwitchCCSet {\n validatePayload(raw.payload.length >= 1);\n const targetValue = !!raw.payload[0];\n let duration: Duration | undefined;\n if (raw.payload.length >= 2) {\n duration = Duration.parseSet(raw.payload[1]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValue,\n duration,\n });\n }\n public targetValue: boolean;\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.targetValue ? 0xff : 0x00,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, only send the target value\n this.payload = this.payload.subarray(0, 1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"target value\": this.targetValue,\n };\n if (this.duration != undefined) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface BinarySwitchCCReportOptions {\n currentValue?: MaybeUnknown<boolean>;\n targetValue?: MaybeUnknown<boolean>;\n duration?: Duration | string;\n}\n@CCCommand(BinarySwitchCommand.Report)\n@ccValueProperty(\"currentValue\", BinarySwitchCCValues.currentValue)\n@ccValueProperty(\"targetValue\", BinarySwitchCCValues.targetValue)\n@ccValueProperty(\"duration\", BinarySwitchCCValues.duration)\nexport class BinarySwitchCCReport extends BinarySwitchCC {\n public constructor(options: WithAddress<BinarySwitchCCReportOptions>) {\n super(options);\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BinarySwitchCCReport {\n validatePayload(raw.payload.length >= 1);\n const currentValue: MaybeUnknown<boolean> | undefined = parseMaybeBoolean(raw.payload[0]);\n let targetValue: MaybeUnknown<boolean> | undefined;\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n targetValue = parseMaybeBoolean(raw.payload[1]);\n duration = Duration.parseReport(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n currentValue,\n targetValue,\n duration,\n });\n }\n public readonly currentValue: MaybeUnknown<boolean> | undefined;\n public readonly targetValue: MaybeUnknown<boolean> | undefined;\n public readonly duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n encodeMaybeBoolean(this.currentValue ?? UNKNOWN_STATE),\n ]);\n if (this.targetValue !== undefined) {\n this.payload = Bytes.concat([\n this.payload,\n [\n encodeMaybeBoolean(this.targetValue),\n (this.duration ?? Duration.default()).serializeReport(),\n ],\n ]);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"current value\": maybeUnknownToString(this.currentValue),\n };\n if (this.targetValue !== undefined) {\n message[\"target value\"] = maybeUnknownToString(this.targetValue);\n }\n if (this.duration != undefined) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(BinarySwitchCommand.Get)\n@expectedCCResponse(BinarySwitchCCReport)\nexport class BinarySwitchCCGet extends BinarySwitchCC {\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as __validateArgs from \"./BinarySwitchCC._validateArgs.js\";\nconst { validateArgs_BinarySwitchCCAPI_set } = __validateArgs;\nimport { CommandClasses, Duration, type GetValueDB, type MaybeNotKnown, type MaybeUnknown, type MessageOrCCLogEntry, MessagePriority, type MessageRecord, type SupervisionResult, UNKNOWN_STATE, ValueMetadata, type WithAddress, encodeMaybeBoolean, maybeUnknownToString, parseMaybeBoolean, validatePayload, } from \"@zwave-js/core\";\nimport { Bytes } from \"@zwave-js/shared\";\nimport { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, SET_VALUE_HOOKS, type SetValueImplementation, type SetValueImplementationHooksFactory, throwUnsupportedProperty, throwWrongValueType, } from \"../lib/API.js\";\nimport { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext, type RefreshValuesOptions, getEffectiveCCVersion, } from \"../lib/CommandClass.js\";\nimport { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { BinarySwitchCommand } from \"../lib/_Types.js\";\nimport type { CCEncodingContext, CCParsingContext } from \"../lib/traits.js\";\nimport { BinarySwitchCCValues } from \"./_CCValues.generated.js\";\nexport { BinarySwitchCCValues };\n@API(CommandClasses[\"Binary Switch\"])\nexport class BinarySwitchCCAPI extends CCAPI {\n public supportsCommand(cmd: BinarySwitchCommand): MaybeNotKnown<boolean> {\n switch (cmd) {\n case BinarySwitchCommand.Get:\n return this.isSinglecast();\n case BinarySwitchCommand.Set:\n return true;\n }\n return super.supportsCommand(cmd);\n }\n // oxlint-disable-next-line typescript/explicit-module-boundary-types\n public async get() {\n this.assertSupportsCommand(BinarySwitchCommand, BinarySwitchCommand.Get);\n const cc = new BinarySwitchCCGet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n });\n const response = await this.host.sendCommand<BinarySwitchCCReport>(cc, this.commandOptions);\n if (response) {\n return {\n // interpret unknown values as false\n currentValue: response.currentValue || false,\n targetValue: response.targetValue,\n duration: response.duration,\n };\n }\n }\n /**\n * Sets the switch to the given value\n * @param targetValue The target value to set\n * @param duration The duration after which the target value should be reached. Can be a Duration instance or a user-friendly duration string like `\"1m17s\"`. Only supported in V2 and above.\n */\n @validateArgs_BinarySwitchCCAPI_set()\n public async set(targetValue: boolean, duration?: Duration | string): Promise<SupervisionResult | undefined> {\n this.assertSupportsCommand(BinarySwitchCommand, BinarySwitchCommand.Set);\n const cc = new BinarySwitchCCSet({\n nodeId: this.endpoint.nodeId,\n endpointIndex: this.endpoint.index,\n targetValue,\n duration,\n });\n return this.host.sendCommand(cc, this.commandOptions);\n }\n protected override get [SET_VALUE](): SetValueImplementation {\n return async function (this: BinarySwitchCCAPI, { property }, value, options) {\n if (property !== \"targetValue\") {\n throwUnsupportedProperty(this.ccId, property);\n }\n if (typeof value !== \"boolean\") {\n throwWrongValueType(this.ccId, property, \"boolean\", typeof value);\n }\n const duration = Duration.from(options?.transitionDuration);\n return this.set(value, duration);\n };\n }\n protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = ({ property }, value, options) => {\n if (property === \"targetValue\") {\n const currentValueValueId = BinarySwitchCCValues.currentValue\n .endpoint(this.endpoint.index);\n return {\n // This is the target value for a split target/current state pair.\n isSplitStateTargetValue: true,\n optimisticallyUpdateRelatedValues: (_supervisedAndSuccessful) => {\n // After setting targetValue, optimistically update currentValue\n if (this.isSinglecast()) {\n this.tryGetValueDB()?.setValue(currentValueValueId, value);\n }\n else if (this.isMulticast()) {\n // Figure out which nodes were affected by this command\n const affectedNodes = this.endpoint.node.physicalNodes\n .filter((node) => node\n .getEndpoint(this.endpoint.index)\n ?.supportsCC(this.ccId));\n // and optimistically update the currentValue\n for (const node of affectedNodes) {\n this.host\n .tryGetValueDB(node.id)\n ?.setValue(currentValueValueId, value);\n }\n }\n },\n verifyChanges: () => {\n if (this.isSinglecast()) {\n // We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n this.schedulePoll(currentValueValueId, value, {\n duration: Duration.from(options?.transitionDuration),\n // on/off \"transitions\" are usually fast\n transition: \"fast\",\n });\n }\n else {\n // For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n }\n },\n };\n }\n };\n protected get [POLL_VALUE](): PollValueImplementation {\n return async function (this: BinarySwitchCCAPI, { property }) {\n switch (property) {\n case \"currentValue\":\n case \"targetValue\":\n case \"duration\":\n return (await this.get())?.[property];\n default:\n throwUnsupportedProperty(this.ccId, property);\n }\n };\n }\n}\n@commandClass(CommandClasses[\"Binary Switch\"])\n@implementedVersion(2)\n@ccValues(BinarySwitchCCValues)\nexport class BinarySwitchCC extends CommandClass {\n declare ccCommand: BinarySwitchCommand;\n public async interview(ctx: InterviewContext): Promise<void> {\n const node = this.getNode(ctx)!;\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: `Interviewing ${this.ccName}...`,\n direction: \"none\",\n });\n await this.refreshValues(ctx);\n // Remember that the interview is complete\n this.setInterviewComplete(ctx, true);\n }\n public async refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void> {\n const node = this.getNode(ctx)!;\n const endpoint = this.getEndpoint(ctx)!;\n const api = CCAPI.create(CommandClasses[\"Binary Switch\"], ctx, endpoint).withOptions({\n priority: options?.priority ?? MessagePriority.NodeQuery,\n });\n // Query the current state\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: \"querying Binary Switch state...\",\n direction: \"outbound\",\n });\n const resp = await api.get();\n if (resp) {\n let logMessage = `received Binary Switch state:\ncurrent value: ${resp.currentValue}`;\n if (resp.targetValue != undefined) {\n logMessage += `\ntarget value: ${resp.targetValue}\nremaining duration: ${resp.duration?.toString() ?? \"undefined\"}`;\n }\n ctx.logNode(node.id, {\n endpoint: this.endpointIndex,\n message: logMessage,\n direction: \"inbound\",\n });\n }\n }\n public setMappedBasicValue(ctx: GetValueDB, value: number): boolean {\n this.setValue(ctx, BinarySwitchCCValues.currentValue, value > 0);\n return true;\n }\n}\n// @publicAPI\nexport interface BinarySwitchCCSetOptions {\n targetValue: boolean;\n duration?: Duration | string;\n}\n@CCCommand(BinarySwitchCommand.Set)\n@useSupervision()\nexport class BinarySwitchCCSet extends BinarySwitchCC {\n public constructor(options: WithAddress<BinarySwitchCCSetOptions>) {\n super(options);\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BinarySwitchCCSet {\n validatePayload(raw.payload.length >= 1);\n const targetValue = !!raw.payload[0];\n let duration: Duration | undefined;\n if (raw.payload.length >= 2) {\n duration = Duration.parseSet(raw.payload[1]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n targetValue,\n duration,\n });\n }\n public targetValue: boolean;\n public duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n this.targetValue ? 0xff : 0x00,\n (this.duration ?? Duration.default()).serializeSet(),\n ]);\n const ccVersion = getEffectiveCCVersion(ctx, this);\n if (ccVersion < 2 && ctx.getDeviceConfig?.(this.nodeId as number)?.compat?.encodeCCsUsingTargetVersion) {\n // When forcing CC version 1, only send the target value\n this.payload = this.payload.subarray(0, 1);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"target value\": this.targetValue,\n };\n if (this.duration != undefined) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n// @publicAPI\nexport interface BinarySwitchCCReportOptions {\n currentValue?: MaybeUnknown<boolean>;\n targetValue?: MaybeUnknown<boolean>;\n duration?: Duration | string;\n}\n@CCCommand(BinarySwitchCommand.Report)\n@ccValueProperty(\"currentValue\", BinarySwitchCCValues.currentValue)\n@ccValueProperty(\"targetValue\", BinarySwitchCCValues.targetValue)\n@ccValueProperty(\"duration\", BinarySwitchCCValues.duration)\nexport class BinarySwitchCCReport extends BinarySwitchCC {\n public constructor(options: WithAddress<BinarySwitchCCReportOptions>) {\n super(options);\n this.currentValue = options.currentValue;\n this.targetValue = options.targetValue;\n this.duration = Duration.from(options.duration);\n }\n public static from(raw: CCRaw, ctx: CCParsingContext): BinarySwitchCCReport {\n validatePayload(raw.payload.length >= 1);\n const currentValue: MaybeUnknown<boolean> | undefined = parseMaybeBoolean(raw.payload[0]);\n let targetValue: MaybeUnknown<boolean> | undefined;\n let duration: Duration | undefined;\n if (raw.payload.length >= 3) {\n targetValue = parseMaybeBoolean(raw.payload[1]);\n duration = Duration.parseReport(raw.payload[2]);\n }\n return new this({\n nodeId: ctx.sourceNodeId,\n currentValue,\n targetValue,\n duration,\n });\n }\n public readonly currentValue: MaybeUnknown<boolean> | undefined;\n public readonly targetValue: MaybeUnknown<boolean> | undefined;\n public readonly duration: Duration | undefined;\n public serialize(ctx: CCEncodingContext): Promise<Bytes> {\n this.payload = Bytes.from([\n encodeMaybeBoolean(this.currentValue ?? UNKNOWN_STATE),\n ]);\n if (this.targetValue !== undefined) {\n this.payload = Bytes.concat([\n this.payload,\n [\n encodeMaybeBoolean(this.targetValue),\n (this.duration ?? Duration.default()).serializeReport(),\n ],\n ]);\n }\n return super.serialize(ctx);\n }\n public toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n const message: MessageRecord = {\n \"current value\": maybeUnknownToString(this.currentValue),\n };\n if (this.targetValue !== undefined) {\n message[\"target value\"] = maybeUnknownToString(this.targetValue);\n }\n if (this.duration != undefined) {\n message.duration = this.duration.toString();\n }\n return {\n ...super.toLogEntry(ctx),\n message,\n };\n }\n}\n@CCCommand(BinarySwitchCommand.Get)\n@expectedCCResponse(BinarySwitchCCReport)\nexport class BinarySwitchCCGet extends BinarySwitchCC {\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }