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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +381 -266
  2. package/build/cjs/cc/AlarmSensorCC.js.map +3 -3
  3. package/build/cjs/cc/AssociationCC.js +669 -503
  4. package/build/cjs/cc/AssociationCC.js.map +3 -3
  5. package/build/cjs/cc/AssociationGroupInfoCC.js +633 -492
  6. package/build/cjs/cc/AssociationGroupInfoCC.js.map +3 -3
  7. package/build/cjs/cc/BarrierOperatorCC.js +595 -429
  8. package/build/cjs/cc/BarrierOperatorCC.js.map +3 -3
  9. package/build/cjs/cc/BasicCC.js +354 -260
  10. package/build/cjs/cc/BasicCC.js.map +3 -3
  11. package/build/cjs/cc/BatteryCC.js +427 -345
  12. package/build/cjs/cc/BatteryCC.js.map +3 -3
  13. package/build/cjs/cc/BinarySensorCC.js +391 -276
  14. package/build/cjs/cc/BinarySensorCC.js.map +3 -3
  15. package/build/cjs/cc/BinarySwitchCC.js +347 -253
  16. package/build/cjs/cc/BinarySwitchCC.js.map +3 -3
  17. package/build/cjs/cc/CRC16CC.js +160 -85
  18. package/build/cjs/cc/CRC16CC.js.map +3 -3
  19. package/build/cjs/cc/CentralSceneCC.js +459 -324
  20. package/build/cjs/cc/CentralSceneCC.js.map +3 -3
  21. package/build/cjs/cc/ClimateControlScheduleCC.js +459 -293
  22. package/build/cjs/cc/ClimateControlScheduleCC.js.map +3 -3
  23. package/build/cjs/cc/ClockCC.js +254 -150
  24. package/build/cjs/cc/ClockCC.js.map +3 -3
  25. package/build/cjs/cc/ColorSwitchCC.js +758 -610
  26. package/build/cjs/cc/ColorSwitchCC.js.map +3 -3
  27. package/build/cjs/cc/ConfigurationCC.js +1700 -1453
  28. package/build/cjs/cc/ConfigurationCC.js.map +3 -3
  29. package/build/cjs/cc/DeviceResetLocallyCC.js +125 -49
  30. package/build/cjs/cc/DeviceResetLocallyCC.js.map +3 -3
  31. package/build/cjs/cc/DoorLockCC.js +904 -777
  32. package/build/cjs/cc/DoorLockCC.js.map +3 -3
  33. package/build/cjs/cc/DoorLockLoggingCC.js +321 -206
  34. package/build/cjs/cc/DoorLockLoggingCC.js.map +3 -3
  35. package/build/cjs/cc/EnergyProductionCC.js +249 -160
  36. package/build/cjs/cc/EnergyProductionCC.js.map +3 -3
  37. package/build/cjs/cc/EntryControlCC.js +619 -458
  38. package/build/cjs/cc/EntryControlCC.js.map +3 -3
  39. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +898 -698
  40. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +3 -3
  41. package/build/cjs/cc/HailCC.js +57 -11
  42. package/build/cjs/cc/HailCC.js.map +2 -2
  43. package/build/cjs/cc/HumidityControlModeCC.js +359 -233
  44. package/build/cjs/cc/HumidityControlModeCC.js.map +3 -3
  45. package/build/cjs/cc/HumidityControlOperatingStateCC.js +189 -103
  46. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +3 -3
  47. package/build/cjs/cc/HumidityControlSetpointCC.js +682 -495
  48. package/build/cjs/cc/HumidityControlSetpointCC.js.map +3 -3
  49. package/build/cjs/cc/InclusionControllerCC.js +205 -114
  50. package/build/cjs/cc/InclusionControllerCC.js.map +3 -3
  51. package/build/cjs/cc/IndicatorCC.js +897 -736
  52. package/build/cjs/cc/IndicatorCC.js.map +3 -3
  53. package/build/cjs/cc/IrrigationCC.js +1651 -1405
  54. package/build/cjs/cc/IrrigationCC.js.map +3 -3
  55. package/build/cjs/cc/LanguageCC.js +268 -171
  56. package/build/cjs/cc/LanguageCC.js.map +3 -3
  57. package/build/cjs/cc/LockCC.js +254 -154
  58. package/build/cjs/cc/LockCC.js.map +3 -3
  59. package/build/cjs/cc/ManufacturerProprietaryCC.js +189 -129
  60. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  61. package/build/cjs/cc/ManufacturerSpecificCC.js +319 -213
  62. package/build/cjs/cc/ManufacturerSpecificCC.js.map +3 -3
  63. package/build/cjs/cc/MeterCC.js +827 -707
  64. package/build/cjs/cc/MeterCC.js.map +3 -3
  65. package/build/cjs/cc/MultiChannelAssociationCC.js +612 -478
  66. package/build/cjs/cc/MultiChannelAssociationCC.js.map +3 -3
  67. package/build/cjs/cc/MultiChannelCC.js +1037 -819
  68. package/build/cjs/cc/MultiChannelCC.js.map +3 -3
  69. package/build/cjs/cc/MultiCommandCC.js +172 -97
  70. package/build/cjs/cc/MultiCommandCC.js.map +3 -3
  71. package/build/cjs/cc/MultilevelSensorCC.js +589 -449
  72. package/build/cjs/cc/MultilevelSensorCC.js.map +3 -3
  73. package/build/cjs/cc/MultilevelSwitchCC.js +587 -439
  74. package/build/cjs/cc/MultilevelSwitchCC.js.map +3 -3
  75. package/build/cjs/cc/NoOperationCC.js +89 -27
  76. package/build/cjs/cc/NoOperationCC.js.map +2 -2
  77. package/build/cjs/cc/NodeNamingCC.js +417 -277
  78. package/build/cjs/cc/NodeNamingCC.js.map +3 -3
  79. package/build/cjs/cc/NotificationCC.js +972 -818
  80. package/build/cjs/cc/NotificationCC.js.map +3 -3
  81. package/build/cjs/cc/PowerlevelCC.js +450 -303
  82. package/build/cjs/cc/PowerlevelCC.js.map +3 -3
  83. package/build/cjs/cc/ProtectionCC.js +686 -494
  84. package/build/cjs/cc/ProtectionCC.js.map +3 -3
  85. package/build/cjs/cc/SceneActivationCC.js +165 -97
  86. package/build/cjs/cc/SceneActivationCC.js.map +3 -3
  87. package/build/cjs/cc/SceneActuatorConfigurationCC.js +346 -243
  88. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +3 -3
  89. package/build/cjs/cc/SceneControllerConfigurationCC.js +401 -298
  90. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +3 -3
  91. package/build/cjs/cc/ScheduleEntryLockCC.js +1552 -1272
  92. package/build/cjs/cc/ScheduleEntryLockCC.js.map +3 -3
  93. package/build/cjs/cc/Security2CC.js +1483 -1219
  94. package/build/cjs/cc/Security2CC.js.map +3 -3
  95. package/build/cjs/cc/SecurityCC.js +839 -619
  96. package/build/cjs/cc/SecurityCC.js.map +3 -3
  97. package/build/cjs/cc/SoundSwitchCC.js +707 -515
  98. package/build/cjs/cc/SoundSwitchCC.js.map +3 -3
  99. package/build/cjs/cc/SupervisionCC.js +327 -237
  100. package/build/cjs/cc/SupervisionCC.js.map +3 -3
  101. package/build/cjs/cc/ThermostatFanModeCC.js +386 -263
  102. package/build/cjs/cc/ThermostatFanModeCC.js.map +3 -3
  103. package/build/cjs/cc/ThermostatFanStateCC.js +192 -106
  104. package/build/cjs/cc/ThermostatFanStateCC.js.map +3 -3
  105. package/build/cjs/cc/ThermostatModeCC.js +425 -302
  106. package/build/cjs/cc/ThermostatModeCC.js.map +3 -3
  107. package/build/cjs/cc/ThermostatOperatingStateCC.js +188 -102
  108. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +3 -3
  109. package/build/cjs/cc/ThermostatSetbackCC.js +277 -173
  110. package/build/cjs/cc/ThermostatSetbackCC.js.map +3 -3
  111. package/build/cjs/cc/ThermostatSetpointCC.js +645 -491
  112. package/build/cjs/cc/ThermostatSetpointCC.js.map +3 -3
  113. package/build/cjs/cc/TimeCC.js +515 -353
  114. package/build/cjs/cc/TimeCC.js.map +3 -3
  115. package/build/cjs/cc/TimeParametersCC.js +302 -202
  116. package/build/cjs/cc/TimeParametersCC.js.map +3 -3
  117. package/build/cjs/cc/TransportServiceCC.js +433 -315
  118. package/build/cjs/cc/TransportServiceCC.js.map +3 -3
  119. package/build/cjs/cc/UserCodeCC.js +1385 -1102
  120. package/build/cjs/cc/UserCodeCC.js.map +3 -3
  121. package/build/cjs/cc/VersionCC.js +696 -562
  122. package/build/cjs/cc/VersionCC.js.map +3 -3
  123. package/build/cjs/cc/WakeUpCC.js +499 -346
  124. package/build/cjs/cc/WakeUpCC.js.map +3 -3
  125. package/build/cjs/cc/WindowCoveringCC.js +626 -478
  126. package/build/cjs/cc/WindowCoveringCC.js.map +3 -3
  127. package/build/cjs/cc/ZWaveLongRangeCC.js +57 -10
  128. package/build/cjs/cc/ZWaveLongRangeCC.js.map +2 -2
  129. package/build/cjs/cc/ZWavePlusCC.js +233 -159
  130. package/build/cjs/cc/ZWavePlusCC.js.map +3 -3
  131. package/build/cjs/cc/ZWaveProtocolCC.js +1515 -948
  132. package/build/cjs/cc/ZWaveProtocolCC.js.map +3 -3
  133. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  134. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
  135. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +395 -274
  136. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +3 -3
  137. package/build/cjs/lib/CommandClassDecorators.d.ts +11 -15
  138. package/build/cjs/lib/CommandClassDecorators.js +19 -20
  139. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  140. package/build/cjs/lib/Security2/Extension.d.ts +1 -1
  141. package/build/cjs/lib/Security2/Extension.js +217 -126
  142. package/build/cjs/lib/Security2/Extension.js.map +3 -3
  143. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  144. package/build/esm/cc/AlarmSensorCC.js +389 -291
  145. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  146. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  147. package/build/esm/cc/AssociationCC.js +678 -537
  148. package/build/esm/cc/AssociationCC.js.map +1 -1
  149. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  150. package/build/esm/cc/AssociationGroupInfoCC.js +659 -539
  151. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  152. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  153. package/build/esm/cc/BarrierOperatorCC.js +634 -493
  154. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  155. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  156. package/build/esm/cc/BasicCC.js +380 -302
  157. package/build/esm/cc/BasicCC.js.map +1 -1
  158. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  159. package/build/esm/cc/BatteryCC.js +449 -384
  160. package/build/esm/cc/BatteryCC.js.map +1 -1
  161. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  162. package/build/esm/cc/BinarySensorCC.js +395 -297
  163. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  164. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  165. package/build/esm/cc/BinarySwitchCC.js +353 -274
  166. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  167. package/build/esm/cc/CRC16CC.js +162 -98
  168. package/build/esm/cc/CRC16CC.js.map +1 -1
  169. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  170. package/build/esm/cc/CentralSceneCC.js +465 -351
  171. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  172. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  173. package/build/esm/cc/ClimateControlScheduleCC.js +454 -313
  174. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  175. package/build/esm/cc/ClockCC.js +248 -159
  176. package/build/esm/cc/ClockCC.js.map +1 -1
  177. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  178. package/build/esm/cc/ColorSwitchCC.js +802 -677
  179. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  180. package/build/esm/cc/ConfigurationCC.js +1899 -1687
  181. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  182. package/build/esm/cc/DeviceResetLocallyCC.js +124 -59
  183. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  184. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  185. package/build/esm/cc/DoorLockCC.js +951 -849
  186. package/build/esm/cc/DoorLockCC.js.map +1 -1
  187. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  188. package/build/esm/cc/DoorLockLoggingCC.js +316 -218
  189. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  190. package/build/esm/cc/EnergyProductionCC.js +240 -164
  191. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  192. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  193. package/build/esm/cc/EntryControlCC.js +629 -493
  194. package/build/esm/cc/EntryControlCC.js.map +1 -1
  195. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  196. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +938 -769
  197. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  198. package/build/esm/cc/HailCC.js +51 -12
  199. package/build/esm/cc/HailCC.js.map +1 -1
  200. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  201. package/build/esm/cc/HumidityControlModeCC.js +357 -250
  202. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  203. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  204. package/build/esm/cc/HumidityControlOperatingStateCC.js +182 -109
  205. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  206. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  207. package/build/esm/cc/HumidityControlSetpointCC.js +706 -546
  208. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  209. package/build/esm/cc/InclusionControllerCC.js +197 -119
  210. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  211. package/build/esm/cc/IndicatorCC.js +973 -835
  212. package/build/esm/cc/IndicatorCC.js.map +1 -1
  213. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  214. package/build/esm/cc/IrrigationCC.js +1697 -1496
  215. package/build/esm/cc/IrrigationCC.js.map +1 -1
  216. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  217. package/build/esm/cc/LanguageCC.js +266 -184
  218. package/build/esm/cc/LanguageCC.js.map +1 -1
  219. package/build/esm/cc/LockCC.d.ts.map +1 -1
  220. package/build/esm/cc/LockCC.js +247 -162
  221. package/build/esm/cc/LockCC.js.map +1 -1
  222. package/build/esm/cc/ManufacturerProprietaryCC.js +192 -141
  223. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  224. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  225. package/build/esm/cc/ManufacturerSpecificCC.js +312 -223
  226. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  227. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  228. package/build/esm/cc/MeterCC.js +896 -795
  229. package/build/esm/cc/MeterCC.js.map +1 -1
  230. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  231. package/build/esm/cc/MultiChannelAssociationCC.js +631 -518
  232. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  233. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  234. package/build/esm/cc/MultiChannelCC.js +1106 -921
  235. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  236. package/build/esm/cc/MultiCommandCC.js +166 -102
  237. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  238. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  239. package/build/esm/cc/MultilevelSensorCC.js +616 -497
  240. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  241. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  242. package/build/esm/cc/MultilevelSwitchCC.js +621 -496
  243. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  244. package/build/esm/cc/NoOperationCC.js +82 -29
  245. package/build/esm/cc/NoOperationCC.js.map +1 -1
  246. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  247. package/build/esm/cc/NodeNamingCC.js +413 -294
  248. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  249. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  250. package/build/esm/cc/NotificationCC.js +1097 -966
  251. package/build/esm/cc/NotificationCC.js.map +1 -1
  252. package/build/esm/cc/PowerlevelCC.js +437 -311
  253. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  254. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  255. package/build/esm/cc/ProtectionCC.js +704 -543
  256. package/build/esm/cc/ProtectionCC.js.map +1 -1
  257. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  258. package/build/esm/cc/SceneActivationCC.js +157 -100
  259. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  260. package/build/esm/cc/SceneActuatorConfigurationCC.js +357 -269
  261. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  262. package/build/esm/cc/SceneControllerConfigurationCC.js +434 -346
  263. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  264. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  265. package/build/esm/cc/ScheduleEntryLockCC.js +1596 -1357
  266. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  267. package/build/esm/cc/Security2CC.js +1633 -1406
  268. package/build/esm/cc/Security2CC.js.map +1 -1
  269. package/build/esm/cc/SecurityCC.js +876 -687
  270. package/build/esm/cc/SecurityCC.js.map +1 -1
  271. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  272. package/build/esm/cc/SoundSwitchCC.js +689 -526
  273. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  274. package/build/esm/cc/SupervisionCC.js +349 -272
  275. package/build/esm/cc/SupervisionCC.js.map +1 -1
  276. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  277. package/build/esm/cc/ThermostatFanModeCC.js +388 -284
  278. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  279. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  280. package/build/esm/cc/ThermostatFanStateCC.js +184 -111
  281. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  282. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  283. package/build/esm/cc/ThermostatModeCC.js +435 -331
  284. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  285. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  286. package/build/esm/cc/ThermostatOperatingStateCC.js +180 -107
  287. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  288. package/build/esm/cc/ThermostatSetbackCC.js +274 -185
  289. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  290. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  291. package/build/esm/cc/ThermostatSetpointCC.js +674 -543
  292. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  293. package/build/esm/cc/TimeCC.js +499 -360
  294. package/build/esm/cc/TimeCC.js.map +1 -1
  295. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  296. package/build/esm/cc/TimeParametersCC.js +296 -211
  297. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  298. package/build/esm/cc/TransportServiceCC.js +464 -363
  299. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  300. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  301. package/build/esm/cc/UserCodeCC.js +1443 -1205
  302. package/build/esm/cc/UserCodeCC.js.map +1 -1
  303. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  304. package/build/esm/cc/VersionCC.js +744 -635
  305. package/build/esm/cc/VersionCC.js.map +1 -1
  306. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  307. package/build/esm/cc/WakeUpCC.js +494 -364
  308. package/build/esm/cc/WakeUpCC.js.map +1 -1
  309. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  310. package/build/esm/cc/WindowCoveringCC.js +655 -530
  311. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  312. package/build/esm/cc/ZWaveLongRangeCC.js +51 -11
  313. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -1
  314. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  315. package/build/esm/cc/ZWavePlusCC.js +223 -162
  316. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  317. package/build/esm/cc/ZWaveProtocolCC.js +1443 -953
  318. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  319. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +4 -4
  320. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -1
  321. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +390 -286
  322. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  323. package/build/esm/lib/CommandClassDecorators.d.ts +11 -15
  324. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  325. package/build/esm/lib/CommandClassDecorators.js +24 -24
  326. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  327. package/build/esm/lib/Security2/Extension.d.ts +1 -1
  328. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  329. package/build/esm/lib/Security2/Extension.js +207 -123
  330. package/build/esm/lib/Security2/Extension.js.map +1 -1
  331. package/package.json +6 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/BarrierOperatorCC.ts"],
4
- "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MaybeUnknown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\tUNKNOWN_STATE,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tenumValuesToMetadataStates,\n\tmaybeUnknownToString,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\tgetEnumMemberName,\n\tisEnumMember,\n\tnoop,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\tSET_VALUE_HOOKS,\n\ttype SetValueImplementation,\n\ttype SetValueImplementationHooksFactory,\n\tthrowMissingPropertyKey,\n\tthrowUnsupportedProperty,\n\tthrowUnsupportedPropertyKey,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValue,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tBarrierOperatorCommand,\n\tBarrierState,\n\tSubsystemState,\n\tSubsystemType,\n} from \"../lib/_Types.js\";\n\nexport const BarrierOperatorCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Barrier Operator\"], {\n\t\t...V.staticProperty(\"supportedSubsystemTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\n\t\t...V.staticProperty(\n\t\t\t\"position\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Barrier Position\",\n\t\t\t\tunit: \"%\",\n\t\t\t\tmax: 100,\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"targetState\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: \"Target Barrier State\",\n\t\t\t\tstates: enumValuesToMetadataStates(BarrierState, [\n\t\t\t\t\tBarrierState.Open,\n\t\t\t\t\tBarrierState.Closed,\n\t\t\t\t]),\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"currentState\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Current Barrier State\",\n\t\t\t\tstates: enumValuesToMetadataStates(BarrierState),\n\t\t\t} as const,\n\t\t),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses[\"Barrier Operator\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"signalingState\",\n\t\t\t\"signalingState\",\n\t\t\t(subsystemType: SubsystemType) => subsystemType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"signalingState\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t(subsystemType: SubsystemType) => ({\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: `Signaling State (${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t\tstates: enumValuesToMetadataStates(SubsystemState),\n\t\t\t} as const),\n\t\t),\n\t}),\n});\n\n@API(CommandClasses[\"Barrier Operator\"])\nexport class BarrierOperatorCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: BarrierOperatorCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase BarrierOperatorCommand.Get:\n\t\t\tcase BarrierOperatorCommand.Set:\n\t\t\tcase BarrierOperatorCommand.SignalingCapabilitiesGet:\n\t\t\tcase BarrierOperatorCommand.EventSignalingGet:\n\t\t\tcase BarrierOperatorCommand.EventSignalingSet:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.Get,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tBarrierOperatorCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"currentState\", \"position\"]);\n\t\t}\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\ttargetState: BarrierState.Open | BarrierState.Closed,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.Set,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\ttargetState,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async getSignalingCapabilities(): Promise<\n\t\tMaybeNotKnown<readonly SubsystemType[]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.SignalingCapabilitiesGet,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCSignalingCapabilitiesGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tBarrierOperatorCCSignalingCapabilitiesReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedSubsystemTypes;\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async getEventSignaling(\n\t\tsubsystemType: SubsystemType,\n\t): Promise<MaybeNotKnown<SubsystemState>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.EventSignalingGet,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCEventSignalingGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsubsystemType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tBarrierOperatorCCEventSignalingReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.subsystemState;\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async setEventSignaling(\n\t\tsubsystemType: SubsystemType,\n\t\tsubsystemState: SubsystemState,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.EventSignalingSet,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCEventSignalingSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsubsystemType,\n\t\t\tsubsystemState,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: BarrierOperatorCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t) {\n\t\t\tif (property === \"targetState\") {\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst targetValue = value === BarrierState.Closed\n\t\t\t\t\t? BarrierState.Closed\n\t\t\t\t\t: BarrierState.Open;\n\t\t\t\treturn this.set(targetValue);\n\t\t\t} else if (property === \"signalingState\") {\n\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn this.setEventSignaling(propertyKey, value);\n\t\t\t} else {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = (\n\t\t{ property, propertyKey },\n\t\tvalue,\n\t\t_options,\n\t) => {\n\t\tconst valueId = {\n\t\t\tcommandClass: this.ccId,\n\t\t\tproperty,\n\t\t\tpropertyKey,\n\t\t};\n\n\t\tif (BarrierOperatorCCValues.targetState.is(valueId)) {\n\t\t\tconst currentStateValueId = BarrierOperatorCCValues.currentState\n\t\t\t\t.endpoint(\n\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t);\n\n\t\t\tconst targetValue = value === BarrierState.Closed\n\t\t\t\t? BarrierState.Closed\n\t\t\t\t: BarrierState.Open;\n\n\t\t\treturn {\n\t\t\t\t// Barrier Operator commands may take some time to be executed.\n\t\t\t\t// Therefore we try to supervise the command execution and delay the\n\t\t\t\t// optimistic update until the final result is received.\n\t\t\t\tsupervisionDelayedUpdates: true,\n\t\t\t\tsupervisionOnSuccess: () => {\n\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\tcurrentStateValueId,\n\t\t\t\t\t\ttargetValue,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tsupervisionOnFailure: async () => {\n\t\t\t\t\t// The command failed, so now we don't know the status - refresh the current value\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this.get();\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\toptimisticallyUpdateRelatedValues: (\n\t\t\t\t\tsupervisedAndSuccessful,\n\t\t\t\t) => {\n\t\t\t\t\t// For barriers, do not update the current value unless we actually know the command was successful\n\t\t\t\t\tif (!supervisedAndSuccessful) return;\n\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\t\tcurrentStateValueId,\n\t\t\t\t\t\t\ttargetValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (this.isMulticast()) {\n\t\t\t\t\t\t// Figure out which nodes were affected by this command\n\t\t\t\t\t\tconst affectedNodes = this.endpoint.node.physicalNodes\n\t\t\t\t\t\t\t.filter((node) =>\n\t\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t\t\t\t.getEndpoint(this.endpoint.index)\n\t\t\t\t\t\t\t\t\t?.supportsCC(this.ccId)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t// and optimistically update the currentValue\n\t\t\t\t\t\tfor (const node of affectedNodes) {\n\t\t\t\t\t\t\tthis.host\n\t\t\t\t\t\t\t\t.tryGetValueDB(node.id)\n\t\t\t\t\t\t\t\t?.setValue(currentStateValueId, targetValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\t// We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n\t\t\t\t\t\tthis.schedulePoll(currentStateValueId, targetValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t} else if (BarrierOperatorCCValues.signalingState.is(valueId)) {\n\t\t\tconst subsystemType = propertyKey as SubsystemType;\n\t\t\tconst signalingStateValueId = BarrierOperatorCCValues\n\t\t\t\t.signalingState(subsystemType).endpoint(\n\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\tthis.schedulePoll(signalingStateValueId, value, {\n\t\t\t\t\t\t\t// Signaling state changes are fast\n\t\t\t\t\t\t\ttransition: \"fast\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t};\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: BarrierOperatorCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"currentState\":\n\t\t\t\tcase \"position\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\t\t\t\tcase \"signalingState\":\n\t\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.getEventSignaling(propertyKey);\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses[\"Barrier Operator\"])\n@implementedVersion(1)\n@ccValues(BarrierOperatorCCValues)\nexport class BarrierOperatorCC extends CommandClass {\n\tdeclare ccCommand: BarrierOperatorCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Barrier Operator\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Create targetState value if it does not exist\n\t\tthis.ensureMetadata(ctx, BarrierOperatorCCValues.targetState);\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"Querying signaling capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst resp = await api.getSignalingCapabilities();\n\t\tif (resp) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage: `Received supported subsystem types: ${\n\t\t\t\t\tresp\n\t\t\t\t\t\t.map((t) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\n\t\t\t// Enable all supported subsystems\n\t\t\tfor (const subsystemType of resp) {\n\t\t\t\t// Some devices report invalid subsystem types, but the CC API checks\n\t\t\t\t// for valid values and throws otherwise.\n\t\t\t\tif (!isEnumMember(SubsystemType, subsystemType)) continue;\n\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tmessage: `Enabling subsystem ${\n\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t\t)\n\t\t\t\t\t}...`,\n\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t});\n\t\t\t\tawait api.setEventSignaling(subsystemType, SubsystemState.On)\n\t\t\t\t\t.catch(noop);\n\t\t\t}\n\t\t}\n\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Barrier Operator\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst supportedSubsystems: SubsystemType[] = this.getValue(\n\t\t\tctx,\n\t\t\tBarrierOperatorCCValues.supportedSubsystemTypes,\n\t\t) ?? [];\n\n\t\tfor (const subsystemType of supportedSubsystems) {\n\t\t\t// Some devices report invalid subsystem types, but the CC API checks\n\t\t\t// for valid values and throws otherwise.\n\t\t\tif (!isEnumMember(SubsystemType, subsystemType)) continue;\n\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage: `Querying event signaling state for subsystem ${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t)\n\t\t\t\t}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst state = await api.getEventSignaling(subsystemType);\n\t\t\tif (state != undefined) {\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tmessage: `Subsystem ${\n\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t\t)\n\t\t\t\t\t} has state ${getEnumMemberName(SubsystemState, state)}`,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"querying current barrier state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tawait api.get();\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCSetOptions {\n\ttargetState: BarrierState.Open | BarrierState.Closed;\n}\n\n@CCCommand(BarrierOperatorCommand.Set)\n@useSupervision()\nexport class BarrierOperatorCCSet extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetState = options.targetState;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): BarrierOperatorCCSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new BarrierOperatorCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic targetState: BarrierState.Open | BarrierState.Closed;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.targetState]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"target state\": this.targetState },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCReportOptions {\n\tposition: MaybeUnknown<number>;\n\tcurrentState: MaybeUnknown<BarrierState>;\n}\n\n@CCCommand(BarrierOperatorCommand.Report)\nexport class BarrierOperatorCCReport extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.position = options.position;\n\t\tthis.currentState = options.currentState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BarrierOperatorCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\t// The payload byte encodes information about the state and position in a single value\n\t\tconst payloadValue = raw.payload[0];\n\t\tlet position: MaybeUnknown<number>;\n\t\tif (payloadValue <= 99) {\n\t\t\t// known position\n\t\t\tposition = payloadValue;\n\t\t} else if (payloadValue === 255) {\n\t\t\t// known position, fully opened\n\t\t\tposition = 100;\n\t\t} else {\n\t\t\t// unknown position\n\t\t\tposition = UNKNOWN_STATE;\n\t\t}\n\n\t\tlet currentState: MaybeUnknown<BarrierState>;\n\t\tif (\n\t\t\tpayloadValue === BarrierState.Closed\n\t\t\t|| payloadValue >= BarrierState.Closing\n\t\t) {\n\t\t\t// predefined states\n\t\t\tcurrentState = payloadValue;\n\t\t} else if (payloadValue > 0 && payloadValue <= 99) {\n\t\t\t// stopped at exact position\n\t\t\tcurrentState = BarrierState.Stopped;\n\t\t} else {\n\t\t\t// invalid value, assume unknown\n\t\t\tcurrentState = UNKNOWN_STATE;\n\t\t}\n\n\t\treturn new BarrierOperatorCCReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tposition,\n\t\t\tcurrentState,\n\t\t});\n\t}\n\n\t@ccValue(BarrierOperatorCCValues.currentState)\n\tpublic readonly currentState: MaybeUnknown<BarrierState>;\n\n\t@ccValue(BarrierOperatorCCValues.position)\n\tpublic readonly position: MaybeUnknown<number>;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"barrier position\": maybeUnknownToString(this.position),\n\t\t\t\t\"barrier state\": this.currentState != undefined\n\t\t\t\t\t? getEnumMemberName(BarrierState, this.currentState)\n\t\t\t\t\t: \"unknown\",\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(BarrierOperatorCommand.Get)\n@expectedCCResponse(BarrierOperatorCCReport)\nexport class BarrierOperatorCCGet extends BarrierOperatorCC {}\n\n// @publicAPI\nexport interface BarrierOperatorCCSignalingCapabilitiesReportOptions {\n\tsupportedSubsystemTypes: SubsystemType[];\n}\n\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesReport)\nexport class BarrierOperatorCCSignalingCapabilitiesReport\n\textends BarrierOperatorCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tBarrierOperatorCCSignalingCapabilitiesReportOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedSubsystemTypes = options.supportedSubsystemTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BarrierOperatorCCSignalingCapabilitiesReport {\n\t\tconst supportedSubsystemTypes: SubsystemType[] = parseBitMask(\n\t\t\traw.payload,\n\t\t\tSubsystemType.Audible,\n\t\t);\n\n\t\treturn new BarrierOperatorCCSignalingCapabilitiesReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedSubsystemTypes,\n\t\t});\n\t}\n\n\t@ccValue(BarrierOperatorCCValues.supportedSubsystemTypes)\n\tpublic readonly supportedSubsystemTypes: readonly SubsystemType[];\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"supported types\": this.supportedSubsystemTypes\n\t\t\t\t\t.map((t) => `\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesGet)\n@expectedCCResponse(BarrierOperatorCCSignalingCapabilitiesReport)\nexport class BarrierOperatorCCSignalingCapabilitiesGet\n\textends BarrierOperatorCC\n{}\n\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingSetOptions {\n\tsubsystemType: SubsystemType;\n\tsubsystemState: SubsystemState;\n}\n\n@CCCommand(BarrierOperatorCommand.EventSignalingSet)\n@useSupervision()\nexport class BarrierOperatorCCEventSignalingSet extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCEventSignalingSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.subsystemType = options.subsystemType;\n\t\tthis.subsystemState = options.subsystemState;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): BarrierOperatorCCEventSignalingSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new BarrierOperatorCCEventSignalingSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic subsystemType: SubsystemType;\n\tpublic subsystemState: SubsystemState;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.subsystemType, this.subsystemState]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"subsystem type\": getEnumMemberName(\n\t\t\t\t\tSubsystemType,\n\t\t\t\t\tthis.subsystemType,\n\t\t\t\t),\n\t\t\t\t\"subsystem state\": getEnumMemberName(\n\t\t\t\t\tSubsystemState,\n\t\t\t\t\tthis.subsystemState,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingReportOptions {\n\tsubsystemType: SubsystemType;\n\tsubsystemState: SubsystemState;\n}\n\n@CCCommand(BarrierOperatorCommand.EventSignalingReport)\nexport class BarrierOperatorCCEventSignalingReport extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCEventSignalingReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.subsystemType = options.subsystemType;\n\t\tthis.subsystemState = options.subsystemState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BarrierOperatorCCEventSignalingReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst subsystemType: SubsystemType = raw.payload[0];\n\t\tconst subsystemState: SubsystemState = raw.payload[1];\n\n\t\treturn new BarrierOperatorCCEventSignalingReport({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsubsystemType,\n\t\t\tsubsystemState,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tconst signalingStateValue = BarrierOperatorCCValues.signalingState(\n\t\t\tthis.subsystemType,\n\t\t);\n\n\t\tthis.ensureMetadata(ctx, signalingStateValue);\n\t\tthis.setValue(ctx, signalingStateValue, this.subsystemState);\n\n\t\treturn true;\n\t}\n\n\tpublic readonly subsystemType: SubsystemType;\n\tpublic readonly subsystemState: SubsystemState;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"subsystem type\": getEnumMemberName(\n\t\t\t\t\tSubsystemType,\n\t\t\t\t\tthis.subsystemType,\n\t\t\t\t),\n\t\t\t\t\"subsystem state\": getEnumMemberName(\n\t\t\t\t\tSubsystemState,\n\t\t\t\t\tthis.subsystemState,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingGetOptions {\n\tsubsystemType: SubsystemType;\n}\n\n@CCCommand(BarrierOperatorCommand.EventSignalingGet)\n@expectedCCResponse(BarrierOperatorCCEventSignalingReport)\nexport class BarrierOperatorCCEventSignalingGet extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCEventSignalingGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.subsystemType = options.subsystemType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): BarrierOperatorCCEventSignalingGet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new BarrierOperatorCCEventSignalingGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic subsystemType: SubsystemType;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.subsystemType]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"subsystem type\": getEnumMemberName(\n\t\t\t\t\tSubsystemType,\n\t\t\t\t\tthis.subsystemType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAgBO;AAMP,IAAAA,eAAsB;AACtB,IAAAA,eAKO;AAEP,iBAYO;AACP,0BAMO;AACP,oCASO;AACP,oBAAkB;AAClB,mBAKO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,0BAA0B,OAAO,OAAO;EACpD,GAAG,gBAAE,qBAAqB,2BAAe,kBAAkB,GAAG;IAC7D,GAAG,gBAAE,eAAe,2BAA2B,QAAW;MACzD,UAAU;KACV;IAED,GAAG,gBAAE,eACJ,YACA;MACC,GAAG,0BAAc;MACjB,OAAO;MACP,MAAM;MACN,KAAK;KACI;IAGX,GAAG,gBAAE,eACJ,eACA;MACC,GAAG,0BAAc;MACjB,OAAO;MACP,YAAQ,wCAA2B,2BAAc;QAChD,0BAAa;QACb,0BAAa;OACb;KACQ;IAGX,GAAG,gBAAE,eACJ,gBACA;MACC,GAAG,0BAAc;MACjB,OAAO;MACP,YAAQ,wCAA2B,yBAAY;KACtC;GAEX;EAED,GAAG,gBAAE,sBAAsB,2BAAe,kBAAkB,GAAG;IAC9D,GAAG,gBAAE,8BACJ,kBACA,kBACA,CAAC,kBAAiC,eAClC,CAAC,EAAE,UAAU,YAAW,MACvB,aAAa,oBACV,OAAO,gBAAgB,UAC3B,CAAC,mBAAkC;MAClC,GAAG,0BAAc;MACjB,OAAO,wBACN,gCACC,4BACA,aAAa,CAEf;MACA,YAAQ,wCAA2B,2BAAc;MACvC;GAEZ;CACD;AAGM,IAAM,uBAAN,MAAMC,8BAA6B,iBAAK;EACvC,gBACN,KAA2B;AAE3B,YAAQ,KAAK;MACZ,KAAK,oCAAuB;MAC5B,KAAK,oCAAuB;MAC5B,KAAK,oCAAuB;MAC5B,KAAK,oCAAuB;MAC5B,KAAK,oCAAuB;AAC3B,eAAO;IACT;AACA,WAAO,MAAM,gBAAgB,GAAG;EACjC;;EAGO,MAAM,MAAG;AACf,SAAK,sBACJ,qCACA,oCAAuB,GAAG;AAG3B,UAAM,KAAK,IAAI,qBAAqB;MACnC,QAAQ,KAAK,SAAS;MACtB,eAAe,KAAK,SAAS;KAC7B;AACD,UAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,QAAI,UAAU;AACb,iBAAO,mBAAK,UAAU,CAAC,gBAAgB,UAAU,CAAC;IACnD;EACD;EAGO,MAAM,IACZ,aAAoD;;AAEpD,SAAK,sBACJ,qCACA,oCAAuB,GAAG;AAG3B,UAAM,KAAK,IAAI,qBAAqB;MACnC,QAAQ,KAAK,SAAS;MACtB,eAAe,KAAK,SAAS;MAC7B;KACA;AACD,WAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;;EAI9C,MAAM,2BAAwB;AAGpC,SAAK,sBACJ,qCACA,oCAAuB,wBAAwB;AAGhD,UAAM,KAAK,IAAI,0CAA0C;MACxD,QAAQ,KAAK,SAAS;MACtB,eAAe,KAAK,SAAS;KAC7B;AACD,UAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,WAAO,UAAU;;EAIX,MAAM,kBACZ,eAA4B;;AAE5B,SAAK,sBACJ,qCACA,oCAAuB,iBAAiB;AAGzC,UAAM,KAAK,IAAI,mCAAmC;MACjD,QAAQ,KAAK,SAAS;MACtB,eAAe,KAAK,SAAS;MAC7B;KACA;AACD,UAAM,WAAW,MAAM,KAAK,KAAK,YAGhC,IACA,KAAK,cAAc;AAEpB,WAAO,UAAU;;EAIX,MAAM,kBACZ,eACA,gBAA8B;;;AAE9B,SAAK,sBACJ,qCACA,oCAAuB,iBAAiB;AAGzC,UAAM,KAAK,IAAI,mCAAmC;MACjD,QAAQ,KAAK,SAAS;MACtB,eAAe,KAAK,SAAS;MAC7B;MACA;KACA;AAED,WAAO,KAAK,KAAK,YAAY,IAAI,KAAK,cAAc;;EAGrD,KAAwB,oBAAS,IAAC;AACjC,WAAO,eAEN,EAAE,UAAU,YAAW,GACvB,OAAK;AAEL,UAAI,aAAa,eAAe;AAC/B,YAAI,OAAO,UAAU,UAAU;AAC9B,8CACC,KAAK,MACL,UACA,UACA,OAAO,KAAK;QAEd;AAEA,cAAM,cAAc,UAAU,0BAAa,SACxC,0BAAa,SACb,0BAAa;AAChB,eAAO,KAAK,IAAI,WAAW;MAC5B,WAAW,aAAa,kBAAkB;AACzC,YAAI,eAAe,QAAW;AAC7B,kDAAwB,KAAK,MAAM,QAAQ;QAC5C,WAAW,OAAO,gBAAgB,UAAU;AAC3C,sDACC,KAAK,MACL,UACA,WAAW;QAEb;AACA,YAAI,OAAO,UAAU,UAAU;AAC9B,8CACC,KAAK,MACL,UACA,UACA,OAAO,KAAK;QAEd;AACA,eAAO,KAAK,kBAAkB,aAAa,KAAK;MACjD,OAAO;AACN,iDAAyB,KAAK,MAAM,QAAQ;MAC7C;IACD;EACD;EAEU,CAAC,0BAAe,IAAwC,CACjE,EAAE,UAAU,YAAW,GACvB,OACA,aACG;AACH,UAAM,UAAU;MACf,cAAc,KAAK;MACnB;MACA;;AAGD,QAAI,wBAAwB,YAAY,GAAG,OAAO,GAAG;AACpD,YAAM,sBAAsB,wBAAwB,aAClD,SACA,KAAK,SAAS,KAAK;AAGrB,YAAM,cAAc,UAAU,0BAAa,SACxC,0BAAa,SACb,0BAAa;AAEhB,aAAO;;;;QAIN,2BAA2B;QAC3B,sBAAsB,MAAK;AAC1B,eAAK,cAAa,GAAI,SACrB,qBACA,WAAW;QAEb;QACA,sBAAsB,YAAW;AAEhC,cAAI;AACH,kBAAM,KAAK,IAAG;UACf,QAAQ;UAER;QACD;QAEA,mCAAmC,CAClC,4BACG;AAEH,cAAI,CAAC;AAAyB;AAE9B,cAAI,KAAK,aAAY,GAAI;AACxB,iBAAK,cAAa,GAAI,SACrB,qBACA,WAAW;UAEb,WAAW,KAAK,YAAW,GAAI;AAE9B,kBAAM,gBAAgB,KAAK,SAAS,KAAK,cACvC,OAAO,CAAC,SACR,KACE,YAAY,KAAK,SAAS,KAAK,GAC9B,WAAW,KAAK,IAAI,CAAC;AAG1B,uBAAW,QAAQ,eAAe;AACjC,mBAAK,KACH,cAAc,KAAK,EAAE,GACpB,SAAS,qBAAqB,WAAW;YAC7C;UACD;QACD;QAEA,eAAe,MAAK;AACnB,cAAI,KAAK,aAAY,GAAI;AAExB,iBAAK,aAAa,qBAAqB,WAAW;UACnD,OAAO;UAEP;QACD;;IAEF,WAAW,wBAAwB,eAAe,GAAG,OAAO,GAAG;AAC9D,YAAM,gBAAgB;AACtB,YAAM,wBAAwB,wBAC5B,eAAe,aAAa,EAAE,SAC9B,KAAK,SAAS,KAAK;AAGrB,aAAO;QACN,eAAe,MAAK;AACnB,cAAI,KAAK,aAAY,GAAI;AACxB,iBAAK,aAAa,uBAAuB,OAAO;;cAE/C,YAAY;aACZ;UACF;QACD;;IAEF;EACD;EAEA,KAAe,qBAAU,IAAC;AACzB,WAAO,eAEN,EAAE,UAAU,YAAW,GAAE;AAEzB,cAAQ,UAAU;QACjB,KAAK;QACL,KAAK;AACJ,kBAAQ,MAAM,KAAK,IAAG,KAAM,QAAQ;QACrC,KAAK;AACJ,cAAI,eAAe,QAAW;AAC7B,oDAAwB,KAAK,MAAM,QAAQ;UAC5C,WAAW,OAAO,gBAAgB,UAAU;AAC3C,wDACC,KAAK,MACL,UACA,WAAW;UAEb;AACA,iBAAO,KAAK,kBAAkB,WAAW;QAC1C;AACC,mDAAyB,KAAK,MAAM,QAAQ;MAC9C;IACD;EACD;;AA9RY,uBAAoB,WAAA;MADhC,mCAAI,2BAAe,kBAAkB,CAAC;GAC1B,oBAAoB;AAoS1B,IAAM,oBAAN,MAAMC,2BAA0B,iCAAY;EAG3C,MAAM,UACZ,KAAqB;AAErB,UAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,UAAM,WAAW,KAAK,YAAY,GAAG;AACrC,UAAM,MAAM,iBAAM,OACjB,2BAAe,kBAAkB,GACjC,KACA,QAAQ,EACP,YAAY;MACb,UAAU,4BAAgB;KAC1B;AAED,QAAI,QAAQ,KAAK,IAAI;MACpB,UAAU,KAAK;MACf,SAAS,gBAAgB,KAAK,MAAM;MACpC,WAAW;KACX;AAGD,SAAK,eAAe,KAAK,wBAAwB,WAAW;AAE5D,QAAI,QAAQ,KAAK,IAAI;MACpB,SAAS;MACT,WAAW;KACX;AACD,UAAM,OAAO,MAAM,IAAI,yBAAwB;AAC/C,QAAI,MAAM;AACT,UAAI,QAAQ,KAAK,IAAI;QACpB,SAAS,uCACR,KACE,IAAI,CAAC,MACL;WAAO,gCAAkB,4BAAe,CAAC,CAAC,EAAE,EAE5C,KAAK,EAAE,CACV;QACA,WAAW;OACX;AAGD,iBAAW,iBAAiB,MAAM;AAGjC,YAAI,KAAC,2BAAa,4BAAe,aAAa;AAAG;AAEjD,YAAI,QAAQ,KAAK,IAAI;UACpB,SAAS,0BACR,gCACC,4BACA,aAAa,CAEf;UACA,WAAW;SACX;AACD,cAAM,IAAI,kBAAkB,eAAe,4BAAe,EAAE,EAC1D,MAAM,iBAAI;MACb;IACD;AAEA,UAAM,KAAK,cAAc,GAAG;AAG5B,SAAK,qBAAqB,KAAK,IAAI;EACpC;EAEO,MAAM,cACZ,KAAyB;AAEzB,UAAM,OAAO,KAAK,QAAQ,GAAG;AAC7B,UAAM,WAAW,KAAK,YAAY,GAAG;AACrC,UAAM,MAAM,iBAAM,OACjB,2BAAe,kBAAkB,GACjC,KACA,QAAQ,EACP,YAAY;MACb,UAAU,4BAAgB;KAC1B;AAED,UAAM,sBAAuC,KAAK,SACjD,KACA,wBAAwB,uBAAuB,KAC3C,CAAA;AAEL,eAAW,iBAAiB,qBAAqB;AAGhD,UAAI,KAAC,2BAAa,4BAAe,aAAa;AAAG;AAEjD,UAAI,QAAQ,KAAK,IAAI;QACpB,SAAS,oDACR,gCACC,4BACA,aAAa,CAEf;QACA,WAAW;OACX;AACD,YAAM,QAAQ,MAAM,IAAI,kBAAkB,aAAa;AACvD,UAAI,SAAS,QAAW;AACvB,YAAI,QAAQ,KAAK,IAAI;UACpB,SAAS,iBACR,gCACC,4BACA,aAAa,CAEf,kBAAc,gCAAkB,6BAAgB,KAAK,CAAC;UACtD,WAAW;SACX;MACF;IACD;AAEA,QAAI,QAAQ,KAAK,IAAI;MACpB,SAAS;MACT,WAAW;KACX;AACD,UAAM,IAAI,IAAG;EACd;;AAvHY,oBAAiB,WAAA;MAH7B,4CAAa,2BAAe,kBAAkB,CAAC;MAC/C,kDAAmB,CAAC;MACpB,wCAAS,uBAAuB;GACpB,iBAAiB;AAiIvB,IAAM,uBAAN,MAAMC,8BAA6B,kBAAiB;EAC1D,YACC,SAAiD;AAEjD,UAAM,OAAO;AACb,SAAK,cAAc,QAAQ;EAC5B;EAEO,OAAO,KACb,MACA,MAAsB;AAEtB,UAAM,IAAI,uBACT,GAAG,KAAK,IAAI,qCACZ,4BAAgB,8BAA8B;EAMhD;EAEO;EAEA,UAAU,KAAsB;AACtC,SAAK,UAAU,mBAAM,KAAK,CAAC,KAAK,WAAW,CAAC;AAC5C,WAAO,MAAM,UAAU,GAAG;EAC3B;EAEO,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;MACvB,SAAS,EAAE,gBAAgB,KAAK,YAAW;;EAE7C;;AAlCY,uBAAoB,WAAA;MAFhC,yCAAU,oCAAuB,GAAG;MACpC,8CAAc;GACF,oBAAoB;AA4C1B,IAAM,0BAAuB,4BAA7B,MAAMC,iCAAgC,kBAAiB;EAC7D,YACC,SAAoD;AAEpD,UAAM,OAAO;AAGb,SAAK,WAAW,QAAQ;AACxB,SAAK,eAAe,QAAQ;EAC7B;EAEO,OAAO,KACb,KACA,KAAqB;AAErB,qCAAgB,IAAI,QAAQ,UAAU,CAAC;AAEvC,UAAM,eAAe,IAAI,QAAQ,CAAC;AAClC,QAAI;AACJ,QAAI,gBAAgB,IAAI;AAEvB,iBAAW;IACZ,WAAW,iBAAiB,KAAK;AAEhC,iBAAW;IACZ,OAAO;AAEN,iBAAW;IACZ;AAEA,QAAI;AACJ,QACC,iBAAiB,0BAAa,UAC3B,gBAAgB,0BAAa,SAC/B;AAED,qBAAe;IAChB,WAAW,eAAe,KAAK,gBAAgB,IAAI;AAElD,qBAAe,0BAAa;IAC7B,OAAO;AAEN,qBAAe;IAChB;AAEA,WAAO,IAAI,0BAAwB;MAClC,QAAQ,IAAI;MACZ;MACA;KACA;EACF;EAGgB;EAGA;EAET,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;MACvB,SAAS;QACR,wBAAoB,kCAAqB,KAAK,QAAQ;QACtD,iBAAiB,KAAK,gBAAgB,aACnC,gCAAkB,2BAAc,KAAK,YAAY,IACjD;;;EAGN;;AAfgB,WAAA;MADf,uCAAQ,wBAAwB,YAAY;;AAI7B,WAAA;MADf,uCAAQ,wBAAwB,QAAQ;;AAvD7B,0BAAuB,4BAAA,WAAA;MADnC,yCAAU,oCAAuB,MAAM;GAC3B,uBAAuB;AAyE7B,IAAM,uBAAN,MAAMC,8BAA6B,kBAAiB;;AAA9C,uBAAoB,WAAA;MAFhC,yCAAU,oCAAuB,GAAG;MACpC,kDAAmB,uBAAuB;GAC9B,oBAAoB;AAQ1B,IAAM,+CAA4C,iDAAlD,MAAMC,sDACJ,kBAAiB;EAEzB,YACC,SAEC;AAED,UAAM,OAAO;AAGb,SAAK,0BAA0B,QAAQ;EACxC;EAEO,OAAO,KACb,KACA,KAAqB;AAErB,UAAM,8BAA2C,0BAChD,IAAI,SACJ,2BAAc,OAAO;AAGtB,WAAO,IAAI,+CAA6C;MACvD,QAAQ,IAAI;MACZ;KACA;EACF;EAGgB;EAET,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;MACvB,SAAS;QACR,mBAAmB,KAAK,wBACtB,IAAI,CAAC,MAAM;WAAO,gCAAkB,4BAAe,CAAC,CAAC,EAAE,EACvD,KAAK,EAAE;;;EAGZ;;AAXgB,WAAA;MADf,uCAAQ,wBAAwB,uBAAuB;;AA7B5C,+CAA4C,iDAAA,WAAA;MADxD,yCAAU,oCAAuB,2BAA2B;GAChD,4CAA4C;AA8ClD,IAAM,4CAAN,MAAMC,mDACJ,kBAAiB;;AADb,4CAAyC,WAAA;MAFrD,yCAAU,oCAAuB,wBAAwB;MACzD,kDAAmB,4CAA4C;GACnD,yCAAyC;AAY/C,IAAM,qCAAN,MAAMC,4CAA2C,kBAAiB;EACxE,YACC,SAA+D;AAE/D,UAAM,OAAO;AACb,SAAK,gBAAgB,QAAQ;AAC7B,SAAK,iBAAiB,QAAQ;EAC/B;EAEO,OAAO,KACb,MACA,MAAsB;AAGtB,UAAM,IAAI,uBACT,GAAG,KAAK,IAAI,qCACZ,4BAAgB,8BAA8B;EAMhD;EAEO;EACA;EAEA,UAAU,KAAsB;AACtC,SAAK,UAAU,mBAAM,KAAK,CAAC,KAAK,eAAe,KAAK,cAAc,CAAC;AACnE,WAAO,MAAM,UAAU,GAAG;EAC3B;EAEO,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;MACvB,SAAS;QACR,sBAAkB,gCACjB,4BACA,KAAK,aAAa;QAEnB,uBAAmB,gCAClB,6BACA,KAAK,cAAc;;;EAIvB;;AA9CY,qCAAkC,WAAA;MAF9C,yCAAU,oCAAuB,iBAAiB;MAClD,8CAAc;GACF,kCAAkC;AAwDxC,IAAM,wCAAqC,0CAA3C,MAAMC,+CAA8C,kBAAiB;EAC3E,YACC,SAAkE;AAElE,UAAM,OAAO;AAGb,SAAK,gBAAgB,QAAQ;AAC7B,SAAK,iBAAiB,QAAQ;EAC/B;EAEO,OAAO,KACb,KACA,KAAqB;AAErB,qCAAgB,IAAI,QAAQ,UAAU,CAAC;AACvC,UAAM,gBAA+B,IAAI,QAAQ,CAAC;AAClD,UAAM,iBAAiC,IAAI,QAAQ,CAAC;AAEpD,WAAO,IAAI,wCAAsC;MAChD,QAAQ,IAAI;MACZ;MACA;KACA;EACF;EAEO,cAAc,KAAyB;AAC7C,QAAI,CAAC,MAAM,cAAc,GAAG;AAAG,aAAO;AAEtC,UAAM,sBAAsB,wBAAwB,eACnD,KAAK,aAAa;AAGnB,SAAK,eAAe,KAAK,mBAAmB;AAC5C,SAAK,SAAS,KAAK,qBAAqB,KAAK,cAAc;AAE3D,WAAO;EACR;EAEgB;EACA;EAET,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;MACvB,SAAS;QACR,sBAAkB,gCACjB,4BACA,KAAK,aAAa;QAEnB,uBAAmB,gCAClB,6BACA,KAAK,cAAc;;;EAIvB;;AAxDY,wCAAqC,0CAAA,WAAA;MADjD,yCAAU,oCAAuB,oBAAoB;GACzC,qCAAqC;AAkE3C,IAAM,qCAAN,MAAMC,4CAA2C,kBAAiB;EACxE,YACC,SAA+D;AAE/D,UAAM,OAAO;AACb,SAAK,gBAAgB,QAAQ;EAC9B;EAEO,OAAO,KACb,MACA,MAAsB;AAGtB,UAAM,IAAI,uBACT,GAAG,KAAK,IAAI,qCACZ,4BAAgB,8BAA8B;EAMhD;EAEO;EAEA,UAAU,KAAsB;AACtC,SAAK,UAAU,mBAAM,KAAK,CAAC,KAAK,aAAa,CAAC;AAC9C,WAAO,MAAM,UAAU,GAAG;EAC3B;EAEO,WAAW,KAAgB;AACjC,WAAO;MACN,GAAG,MAAM,WAAW,GAAG;MACvB,SAAS;QACR,sBAAkB,gCACjB,4BACA,KAAK,aAAa;;;EAItB;;AAxCY,qCAAkC,WAAA;MAF9C,yCAAU,oCAAuB,iBAAiB;MAClD,kDAAmB,qCAAqC;GAC5C,kCAAkC;",
6
- "names": ["import_safe", "BarrierOperatorCCAPI", "BarrierOperatorCC", "BarrierOperatorCCSet", "BarrierOperatorCCReport", "BarrierOperatorCCGet", "BarrierOperatorCCSignalingCapabilitiesReport", "BarrierOperatorCCSignalingCapabilitiesGet", "BarrierOperatorCCEventSignalingSet", "BarrierOperatorCCEventSignalingReport", "BarrierOperatorCCEventSignalingGet"]
4
+ "sourcesContent": ["import {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\ttype MaybeUnknown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\tUNKNOWN_STATE,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tenumValuesToMetadataStates,\n\tmaybeUnknownToString,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport {\n\tgetEnumMemberName,\n\tisEnumMember,\n\tnoop,\n\tpick,\n} from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\tSET_VALUE_HOOKS,\n\ttype SetValueImplementation,\n\ttype SetValueImplementationHooksFactory,\n\tthrowMissingPropertyKey,\n\tthrowUnsupportedProperty,\n\tthrowUnsupportedPropertyKey,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport {\n\tBarrierOperatorCommand,\n\tBarrierState,\n\tSubsystemState,\n\tSubsystemType,\n} from \"../lib/_Types.js\";\n\nexport const BarrierOperatorCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses[\"Barrier Operator\"], {\n\t\t...V.staticProperty(\"supportedSubsystemTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\n\t\t...V.staticProperty(\n\t\t\t\"position\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Barrier Position\",\n\t\t\t\tunit: \"%\",\n\t\t\t\tmax: 100,\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"targetState\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: \"Target Barrier State\",\n\t\t\t\tstates: enumValuesToMetadataStates(BarrierState, [\n\t\t\t\t\tBarrierState.Open,\n\t\t\t\t\tBarrierState.Closed,\n\t\t\t\t]),\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"currentState\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Current Barrier State\",\n\t\t\t\tstates: enumValuesToMetadataStates(BarrierState),\n\t\t\t} as const,\n\t\t),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses[\"Barrier Operator\"], {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"signalingState\",\n\t\t\t\"signalingState\",\n\t\t\t(subsystemType: SubsystemType) => subsystemType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"signalingState\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\t(subsystemType: SubsystemType) => ({\n\t\t\t\t...ValueMetadata.UInt8,\n\t\t\t\tlabel: `Signaling State (${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t\tstates: enumValuesToMetadataStates(SubsystemState),\n\t\t\t} as const),\n\t\t),\n\t}),\n});\n\n@API(CommandClasses[\"Barrier Operator\"])\nexport class BarrierOperatorCCAPI extends CCAPI {\n\tpublic supportsCommand(\n\t\tcmd: BarrierOperatorCommand,\n\t): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase BarrierOperatorCommand.Get:\n\t\t\tcase BarrierOperatorCommand.Set:\n\t\t\tcase BarrierOperatorCommand.SignalingCapabilitiesGet:\n\t\t\tcase BarrierOperatorCommand.EventSignalingGet:\n\t\t\tcase BarrierOperatorCommand.EventSignalingSet:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.Get,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tBarrierOperatorCCReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"currentState\", \"position\"]);\n\t\t}\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async set(\n\t\ttargetState: BarrierState.Open | BarrierState.Closed,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.Set,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\ttargetState,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\tpublic async getSignalingCapabilities(): Promise<\n\t\tMaybeNotKnown<readonly SubsystemType[]>\n\t> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.SignalingCapabilitiesGet,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCSignalingCapabilitiesGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tBarrierOperatorCCSignalingCapabilitiesReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedSubsystemTypes;\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async getEventSignaling(\n\t\tsubsystemType: SubsystemType,\n\t): Promise<MaybeNotKnown<SubsystemState>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.EventSignalingGet,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCEventSignalingGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsubsystemType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tBarrierOperatorCCEventSignalingReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.subsystemState;\n\t}\n\n\t@validateArgs({ strictEnums: true })\n\tpublic async setEventSignaling(\n\t\tsubsystemType: SubsystemType,\n\t\tsubsystemState: SubsystemState,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tBarrierOperatorCommand,\n\t\t\tBarrierOperatorCommand.EventSignalingSet,\n\t\t);\n\n\t\tconst cc = new BarrierOperatorCCEventSignalingSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tsubsystemType,\n\t\t\tsubsystemState,\n\t\t});\n\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(\n\t\t\tthis: BarrierOperatorCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t\tvalue,\n\t\t) {\n\t\t\tif (property === \"targetState\") {\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst targetValue = value === BarrierState.Closed\n\t\t\t\t\t? BarrierState.Closed\n\t\t\t\t\t: BarrierState.Open;\n\t\t\t\treturn this.set(targetValue);\n\t\t\t} else if (property === \"signalingState\") {\n\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (typeof value !== \"number\") {\n\t\t\t\t\tthrowWrongValueType(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\"number\",\n\t\t\t\t\t\ttypeof value,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn this.setEventSignaling(propertyKey, value);\n\t\t\t} else {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory = (\n\t\t{ property, propertyKey },\n\t\tvalue,\n\t\t_options,\n\t) => {\n\t\tconst valueId = {\n\t\t\tcommandClass: this.ccId,\n\t\t\tproperty,\n\t\t\tpropertyKey,\n\t\t};\n\n\t\tif (BarrierOperatorCCValues.targetState.is(valueId)) {\n\t\t\tconst currentStateValueId = BarrierOperatorCCValues.currentState\n\t\t\t\t.endpoint(\n\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t);\n\n\t\t\tconst targetValue = value === BarrierState.Closed\n\t\t\t\t? BarrierState.Closed\n\t\t\t\t: BarrierState.Open;\n\n\t\t\treturn {\n\t\t\t\t// Barrier Operator commands may take some time to be executed.\n\t\t\t\t// Therefore we try to supervise the command execution and delay the\n\t\t\t\t// optimistic update until the final result is received.\n\t\t\t\tsupervisionDelayedUpdates: true,\n\t\t\t\tsupervisionOnSuccess: () => {\n\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\tcurrentStateValueId,\n\t\t\t\t\t\ttargetValue,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tsupervisionOnFailure: async () => {\n\t\t\t\t\t// The command failed, so now we don't know the status - refresh the current value\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this.get();\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\toptimisticallyUpdateRelatedValues: (\n\t\t\t\t\tsupervisedAndSuccessful,\n\t\t\t\t) => {\n\t\t\t\t\t// For barriers, do not update the current value unless we actually know the command was successful\n\t\t\t\t\tif (!supervisedAndSuccessful) return;\n\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\tthis.tryGetValueDB()?.setValue(\n\t\t\t\t\t\t\tcurrentStateValueId,\n\t\t\t\t\t\t\ttargetValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (this.isMulticast()) {\n\t\t\t\t\t\t// Figure out which nodes were affected by this command\n\t\t\t\t\t\tconst affectedNodes = this.endpoint.node.physicalNodes\n\t\t\t\t\t\t\t.filter((node) =>\n\t\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t\t\t\t.getEndpoint(this.endpoint.index)\n\t\t\t\t\t\t\t\t\t?.supportsCC(this.ccId)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t// and optimistically update the currentValue\n\t\t\t\t\t\tfor (const node of affectedNodes) {\n\t\t\t\t\t\t\tthis.host\n\t\t\t\t\t\t\t\t.tryGetValueDB(node.id)\n\t\t\t\t\t\t\t\t?.setValue(currentStateValueId, targetValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\t// We query currentValue instead of targetValue to make sure that unsolicited updates cancel the scheduled poll\n\t\t\t\t\t\tthis.schedulePoll(currentStateValueId, targetValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// For multicasts, do not schedule a refresh - this could cause a LOT of traffic\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t} else if (BarrierOperatorCCValues.signalingState.is(valueId)) {\n\t\t\tconst subsystemType = propertyKey as SubsystemType;\n\t\t\tconst signalingStateValueId = BarrierOperatorCCValues\n\t\t\t\t.signalingState(subsystemType).endpoint(\n\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tverifyChanges: () => {\n\t\t\t\t\tif (this.isSinglecast()) {\n\t\t\t\t\t\tthis.schedulePoll(signalingStateValueId, value, {\n\t\t\t\t\t\t\t// Signaling state changes are fast\n\t\t\t\t\t\t\ttransition: \"fast\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t};\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: BarrierOperatorCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tswitch (property) {\n\t\t\t\tcase \"currentState\":\n\t\t\t\tcase \"position\":\n\t\t\t\t\treturn (await this.get())?.[property];\n\t\t\t\tcase \"signalingState\":\n\t\t\t\t\tif (propertyKey == undefined) {\n\t\t\t\t\t\tthrowMissingPropertyKey(this.ccId, property);\n\t\t\t\t\t} else if (typeof propertyKey !== \"number\") {\n\t\t\t\t\t\tthrowUnsupportedPropertyKey(\n\t\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\t\tproperty,\n\t\t\t\t\t\t\tpropertyKey,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.getEventSignaling(propertyKey);\n\t\t\t\tdefault:\n\t\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses[\"Barrier Operator\"])\n@implementedVersion(1)\n@ccValues(BarrierOperatorCCValues)\nexport class BarrierOperatorCC extends CommandClass {\n\tdeclare ccCommand: BarrierOperatorCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Barrier Operator\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Create targetState value if it does not exist\n\t\tthis.ensureMetadata(ctx, BarrierOperatorCCValues.targetState);\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"Querying signaling capabilities...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst resp = await api.getSignalingCapabilities();\n\t\tif (resp) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage: `Received supported subsystem types: ${\n\t\t\t\t\tresp\n\t\t\t\t\t\t.map((t) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")\n\t\t\t\t}`,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\n\t\t\t// Enable all supported subsystems\n\t\t\tfor (const subsystemType of resp) {\n\t\t\t\t// Some devices report invalid subsystem types, but the CC API checks\n\t\t\t\t// for valid values and throws otherwise.\n\t\t\t\tif (!isEnumMember(SubsystemType, subsystemType)) continue;\n\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tmessage: `Enabling subsystem ${\n\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t\t)\n\t\t\t\t\t}...`,\n\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t});\n\t\t\t\tawait api.setEventSignaling(subsystemType, SubsystemState.On)\n\t\t\t\t\t.catch(noop);\n\t\t\t}\n\t\t}\n\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses[\"Barrier Operator\"],\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst supportedSubsystems: SubsystemType[] = this.getValue(\n\t\t\tctx,\n\t\t\tBarrierOperatorCCValues.supportedSubsystemTypes,\n\t\t) ?? [];\n\n\t\tfor (const subsystemType of supportedSubsystems) {\n\t\t\t// Some devices report invalid subsystem types, but the CC API checks\n\t\t\t// for valid values and throws otherwise.\n\t\t\tif (!isEnumMember(SubsystemType, subsystemType)) continue;\n\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage: `Querying event signaling state for subsystem ${\n\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t)\n\t\t\t\t}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst state = await api.getEventSignaling(subsystemType);\n\t\t\tif (state != undefined) {\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tmessage: `Subsystem ${\n\t\t\t\t\t\tgetEnumMemberName(\n\t\t\t\t\t\t\tSubsystemType,\n\t\t\t\t\t\t\tsubsystemType,\n\t\t\t\t\t\t)\n\t\t\t\t\t} has state ${getEnumMemberName(SubsystemState, state)}`,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"querying current barrier state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tawait api.get();\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCSetOptions {\n\ttargetState: BarrierState.Open | BarrierState.Closed;\n}\n\n@CCCommand(BarrierOperatorCommand.Set)\n@useSupervision()\nexport class BarrierOperatorCCSet extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.targetState = options.targetState;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): BarrierOperatorCCSet {\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new BarrierOperatorCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic targetState: BarrierState.Open | BarrierState.Closed;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.targetState]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"target state\": this.targetState },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCReportOptions {\n\tposition: MaybeUnknown<number>;\n\tcurrentState: MaybeUnknown<BarrierState>;\n}\n\n@CCCommand(BarrierOperatorCommand.Report)\n@ccValueProperty(\"currentState\", BarrierOperatorCCValues.currentState)\n@ccValueProperty(\"position\", BarrierOperatorCCValues.position)\nexport class BarrierOperatorCCReport extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.position = options.position;\n\t\tthis.currentState = options.currentState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BarrierOperatorCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\t// The payload byte encodes information about the state and position in a single value\n\t\tconst payloadValue = raw.payload[0];\n\t\tlet position: MaybeUnknown<number>;\n\t\tif (payloadValue <= 99) {\n\t\t\t// known position\n\t\t\tposition = payloadValue;\n\t\t} else if (payloadValue === 255) {\n\t\t\t// known position, fully opened\n\t\t\tposition = 100;\n\t\t} else {\n\t\t\t// unknown position\n\t\t\tposition = UNKNOWN_STATE;\n\t\t}\n\n\t\tlet currentState: MaybeUnknown<BarrierState>;\n\t\tif (\n\t\t\tpayloadValue === BarrierState.Closed\n\t\t\t|| payloadValue >= BarrierState.Closing\n\t\t) {\n\t\t\t// predefined states\n\t\t\tcurrentState = payloadValue;\n\t\t} else if (payloadValue > 0 && payloadValue <= 99) {\n\t\t\t// stopped at exact position\n\t\t\tcurrentState = BarrierState.Stopped;\n\t\t} else {\n\t\t\t// invalid value, assume unknown\n\t\t\tcurrentState = UNKNOWN_STATE;\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tposition,\n\t\t\tcurrentState,\n\t\t});\n\t}\n\n\tpublic readonly currentState: MaybeUnknown<BarrierState>;\n\n\tpublic readonly position: MaybeUnknown<number>;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"barrier position\": maybeUnknownToString(this.position),\n\t\t\t\t\"barrier state\": this.currentState != undefined\n\t\t\t\t\t? getEnumMemberName(BarrierState, this.currentState)\n\t\t\t\t\t: \"unknown\",\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(BarrierOperatorCommand.Get)\n@expectedCCResponse(BarrierOperatorCCReport)\nexport class BarrierOperatorCCGet extends BarrierOperatorCC {}\n\n// @publicAPI\nexport interface BarrierOperatorCCSignalingCapabilitiesReportOptions {\n\tsupportedSubsystemTypes: SubsystemType[];\n}\n\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesReport)\n@ccValueProperty(\n\t\"supportedSubsystemTypes\",\n\tBarrierOperatorCCValues.supportedSubsystemTypes,\n)\nexport class BarrierOperatorCCSignalingCapabilitiesReport\n\textends BarrierOperatorCC\n{\n\tpublic constructor(\n\t\toptions: WithAddress<\n\t\t\tBarrierOperatorCCSignalingCapabilitiesReportOptions\n\t\t>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.supportedSubsystemTypes = options.supportedSubsystemTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BarrierOperatorCCSignalingCapabilitiesReport {\n\t\tconst supportedSubsystemTypes: SubsystemType[] = parseBitMask(\n\t\t\traw.payload,\n\t\t\tSubsystemType.Audible,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportedSubsystemTypes,\n\t\t});\n\t}\n\n\tpublic readonly supportedSubsystemTypes: readonly SubsystemType[];\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"supported types\": this.supportedSubsystemTypes\n\t\t\t\t\t.map((t) => `\\n\u00B7 ${getEnumMemberName(SubsystemType, t)}`)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(BarrierOperatorCommand.SignalingCapabilitiesGet)\n@expectedCCResponse(BarrierOperatorCCSignalingCapabilitiesReport)\nexport class BarrierOperatorCCSignalingCapabilitiesGet\n\textends BarrierOperatorCC\n{}\n\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingSetOptions {\n\tsubsystemType: SubsystemType;\n\tsubsystemState: SubsystemState;\n}\n\n@CCCommand(BarrierOperatorCommand.EventSignalingSet)\n@useSupervision()\nexport class BarrierOperatorCCEventSignalingSet extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCEventSignalingSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.subsystemType = options.subsystemType;\n\t\tthis.subsystemState = options.subsystemState;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): BarrierOperatorCCEventSignalingSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new BarrierOperatorCCEventSignalingSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic subsystemType: SubsystemType;\n\tpublic subsystemState: SubsystemState;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.subsystemType, this.subsystemState]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"subsystem type\": getEnumMemberName(\n\t\t\t\t\tSubsystemType,\n\t\t\t\t\tthis.subsystemType,\n\t\t\t\t),\n\t\t\t\t\"subsystem state\": getEnumMemberName(\n\t\t\t\t\tSubsystemState,\n\t\t\t\t\tthis.subsystemState,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingReportOptions {\n\tsubsystemType: SubsystemType;\n\tsubsystemState: SubsystemState;\n}\n\n@CCCommand(BarrierOperatorCommand.EventSignalingReport)\nexport class BarrierOperatorCCEventSignalingReport extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCEventSignalingReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.subsystemType = options.subsystemType;\n\t\tthis.subsystemState = options.subsystemState;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): BarrierOperatorCCEventSignalingReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst subsystemType: SubsystemType = raw.payload[0];\n\t\tconst subsystemState: SubsystemState = raw.payload[1];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsubsystemType,\n\t\t\tsubsystemState,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tconst signalingStateValue = BarrierOperatorCCValues.signalingState(\n\t\t\tthis.subsystemType,\n\t\t);\n\n\t\tthis.ensureMetadata(ctx, signalingStateValue);\n\t\tthis.setValue(ctx, signalingStateValue, this.subsystemState);\n\n\t\treturn true;\n\t}\n\n\tpublic readonly subsystemType: SubsystemType;\n\tpublic readonly subsystemState: SubsystemState;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"subsystem type\": getEnumMemberName(\n\t\t\t\t\tSubsystemType,\n\t\t\t\t\tthis.subsystemType,\n\t\t\t\t),\n\t\t\t\t\"subsystem state\": getEnumMemberName(\n\t\t\t\t\tSubsystemState,\n\t\t\t\t\tthis.subsystemState,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface BarrierOperatorCCEventSignalingGetOptions {\n\tsubsystemType: SubsystemType;\n}\n\n@CCCommand(BarrierOperatorCommand.EventSignalingGet)\n@expectedCCResponse(BarrierOperatorCCEventSignalingReport)\nexport class BarrierOperatorCCEventSignalingGet extends BarrierOperatorCC {\n\tpublic constructor(\n\t\toptions: WithAddress<BarrierOperatorCCEventSignalingGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.subsystemType = options.subsystemType;\n\t}\n\n\tpublic static from(\n\t\t_raw: CCRaw,\n\t\t_ctx: CCParsingContext,\n\t): BarrierOperatorCCEventSignalingGet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new BarrierOperatorCCEventSignalingGet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic subsystemType: SubsystemType;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.subsystemType]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"subsystem type\": getEnumMemberName(\n\t\t\t\t\tSubsystemType,\n\t\t\t\t\tthis.subsystemType,\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_safe"]
7
7
  }