@zwave-js/cc 14.0.0-beta.1 → 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 (923) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +194 -0
  2. package/build/cjs/cc/AlarmSensorCC.js +510 -0
  3. package/build/cjs/cc/AlarmSensorCC.js.map +7 -0
  4. package/build/cjs/cc/AssociationCC.d.ts +253 -0
  5. package/build/cjs/cc/AssociationCC.js +877 -0
  6. package/build/cjs/cc/AssociationCC.js.map +7 -0
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +230 -0
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +887 -0
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +7 -0
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +243 -0
  11. package/build/cjs/cc/BarrierOperatorCC.js +748 -0
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +7 -0
  13. package/build/cjs/cc/BasicCC.d.ts +191 -0
  14. package/build/cjs/cc/BasicCC.js +478 -0
  15. package/build/cjs/cc/BasicCC.js.map +7 -0
  16. package/build/cjs/cc/BatteryCC.d.ts +406 -0
  17. package/build/cjs/cc/BatteryCC.js +590 -0
  18. package/build/cjs/cc/BatteryCC.js.map +7 -0
  19. package/build/cjs/cc/BinarySensorCC.d.ts +122 -0
  20. package/build/cjs/cc/BinarySensorCC.js +546 -0
  21. package/build/cjs/cc/BinarySensorCC.js.map +7 -0
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +139 -0
  23. package/build/cjs/cc/BinarySwitchCC.js +472 -0
  24. package/build/cjs/cc/BinarySwitchCC.js.map +7 -0
  25. package/build/cjs/cc/CRC16CC.d.ts +29 -0
  26. package/build/cjs/cc/CRC16CC.js +208 -0
  27. package/build/cjs/cc/CRC16CC.js.map +7 -0
  28. package/build/cjs/cc/CentralSceneCC.d.ts +210 -0
  29. package/build/cjs/cc/CentralSceneCC.js +584 -0
  30. package/build/cjs/cc/CentralSceneCC.js.map +7 -0
  31. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +177 -0
  32. package/build/cjs/cc/ClimateControlScheduleCC.js +646 -0
  33. package/build/cjs/cc/ClimateControlScheduleCC.js.map +7 -0
  34. package/build/cjs/cc/ClockCC.d.ts +47 -0
  35. package/build/cjs/cc/ClockCC.js +330 -0
  36. package/build/cjs/cc/ClockCC.js.map +7 -0
  37. package/build/cjs/cc/ColorSwitchCC.d.ts +339 -0
  38. package/build/cjs/cc/ColorSwitchCC.js +1265 -0
  39. package/build/cjs/cc/ColorSwitchCC.js.map +7 -0
  40. package/build/cjs/cc/ConfigurationCC.d.ts +396 -0
  41. package/build/cjs/cc/ConfigurationCC.js +2477 -0
  42. package/build/cjs/cc/ConfigurationCC.js.map +7 -0
  43. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +17 -0
  44. package/build/cjs/cc/DeviceResetLocallyCC.js +168 -0
  45. package/build/cjs/cc/DeviceResetLocallyCC.js.map +7 -0
  46. package/build/cjs/cc/DoorLockCC.d.ts +837 -0
  47. package/build/cjs/cc/DoorLockCC.js +1366 -0
  48. package/build/cjs/cc/DoorLockCC.js.map +7 -0
  49. package/build/cjs/cc/DoorLockLoggingCC.d.ts +77 -0
  50. package/build/cjs/cc/DoorLockLoggingCC.js +458 -0
  51. package/build/cjs/cc/DoorLockLoggingCC.js.map +7 -0
  52. package/build/cjs/cc/EnergyProductionCC.d.ts +77 -0
  53. package/build/cjs/cc/EnergyProductionCC.js +329 -0
  54. package/build/cjs/cc/EnergyProductionCC.js.map +7 -0
  55. package/build/cjs/cc/EntryControlCC.d.ts +231 -0
  56. package/build/cjs/cc/EntryControlCC.js +754 -0
  57. package/build/cjs/cc/EntryControlCC.js.map +7 -0
  58. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +359 -0
  59. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +1322 -0
  60. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +7 -0
  61. package/build/cjs/cc/HailCC.d.ts +6 -0
  62. package/build/cjs/cc/HailCC.js +91 -0
  63. package/build/cjs/cc/HailCC.js.map +7 -0
  64. package/build/cjs/cc/HumidityControlModeCC.d.ts +111 -0
  65. package/build/cjs/cc/HumidityControlModeCC.js +449 -0
  66. package/build/cjs/cc/HumidityControlModeCC.js.map +7 -0
  67. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +60 -0
  68. package/build/cjs/cc/HumidityControlOperatingStateCC.js +250 -0
  69. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +7 -0
  70. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +209 -0
  71. package/build/cjs/cc/HumidityControlSetpointCC.js +821 -0
  72. package/build/cjs/cc/HumidityControlSetpointCC.js.map +7 -0
  73. package/build/cjs/cc/InclusionControllerCC.d.ts +42 -0
  74. package/build/cjs/cc/InclusionControllerCC.js +251 -0
  75. package/build/cjs/cc/InclusionControllerCC.js.map +7 -0
  76. package/build/cjs/cc/IndicatorCC.d.ts +338 -0
  77. package/build/cjs/cc/IndicatorCC.js +1395 -0
  78. package/build/cjs/cc/IndicatorCC.js.map +7 -0
  79. package/build/cjs/cc/IrrigationCC.d.ts +1496 -0
  80. package/build/cjs/cc/IrrigationCC.js +2224 -0
  81. package/build/cjs/cc/IrrigationCC.js.map +7 -0
  82. package/build/cjs/cc/LanguageCC.d.ts +101 -0
  83. package/build/cjs/cc/LanguageCC.js +364 -0
  84. package/build/cjs/cc/LanguageCC.js.map +7 -0
  85. package/build/cjs/cc/LockCC.d.ts +73 -0
  86. package/build/cjs/cc/LockCC.js +322 -0
  87. package/build/cjs/cc/LockCC.js.map +7 -0
  88. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +32 -0
  89. package/build/cjs/cc/ManufacturerProprietaryCC.js +269 -0
  90. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +7 -0
  91. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +171 -0
  92. package/build/cjs/cc/ManufacturerSpecificCC.js +440 -0
  93. package/build/cjs/cc/ManufacturerSpecificCC.js.map +7 -0
  94. package/build/cjs/cc/MeterCC.d.ts +318 -0
  95. package/build/cjs/cc/MeterCC.js +1355 -0
  96. package/build/cjs/cc/MeterCC.js.map +7 -0
  97. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +241 -0
  98. package/build/cjs/cc/MultiChannelAssociationCC.js +1090 -0
  99. package/build/cjs/cc/MultiChannelAssociationCC.js.map +7 -0
  100. package/build/cjs/cc/MultiChannelCC.d.ts +394 -0
  101. package/build/cjs/cc/MultiChannelCC.js +1268 -0
  102. package/build/cjs/cc/MultiChannelCC.js.map +7 -0
  103. package/build/cjs/cc/MultiCommandCC.d.ts +27 -0
  104. package/build/cjs/cc/MultiCommandCC.js +234 -0
  105. package/build/cjs/cc/MultiCommandCC.js.map +7 -0
  106. package/build/cjs/cc/MultilevelSensorCC.d.ts +185 -0
  107. package/build/cjs/cc/MultilevelSensorCC.js +856 -0
  108. package/build/cjs/cc/MultilevelSensorCC.js.map +7 -0
  109. package/build/cjs/cc/MultilevelSwitchCC.d.ts +357 -0
  110. package/build/cjs/cc/MultilevelSwitchCC.js +928 -0
  111. package/build/cjs/cc/MultilevelSwitchCC.js.map +7 -0
  112. package/build/cjs/cc/NoOperationCC.d.ts +9 -0
  113. package/build/cjs/cc/NoOperationCC.js +126 -0
  114. package/build/cjs/cc/NoOperationCC.js.map +7 -0
  115. package/build/cjs/cc/NodeNamingCC.d.ts +118 -0
  116. package/build/cjs/cc/NodeNamingCC.js +504 -0
  117. package/build/cjs/cc/NodeNamingCC.js.map +7 -0
  118. package/build/cjs/cc/NotificationCC.d.ts +479 -0
  119. package/build/cjs/cc/NotificationCC.js +1399 -0
  120. package/build/cjs/cc/NotificationCC.js.map +7 -0
  121. package/build/cjs/cc/PowerlevelCC.d.ts +82 -0
  122. package/build/cjs/cc/PowerlevelCC.js +657 -0
  123. package/build/cjs/cc/PowerlevelCC.js.map +7 -0
  124. package/build/cjs/cc/ProtectionCC.d.ts +325 -0
  125. package/build/cjs/cc/ProtectionCC.js +859 -0
  126. package/build/cjs/cc/ProtectionCC.js.map +7 -0
  127. package/build/cjs/cc/SceneActivationCC.d.ts +89 -0
  128. package/build/cjs/cc/SceneActivationCC.js +261 -0
  129. package/build/cjs/cc/SceneActivationCC.js.map +7 -0
  130. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +120 -0
  131. package/build/cjs/cc/SceneActuatorConfigurationCC.js +473 -0
  132. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +7 -0
  133. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +129 -0
  134. package/build/cjs/cc/SceneControllerConfigurationCC.js +526 -0
  135. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +7 -0
  136. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +434 -0
  137. package/build/cjs/cc/ScheduleEntryLockCC.js +2043 -0
  138. package/build/cjs/cc/ScheduleEntryLockCC.js.map +7 -0
  139. package/build/cjs/cc/Security2CC.d.ts +251 -0
  140. package/build/cjs/cc/Security2CC.js +1853 -0
  141. package/build/cjs/cc/Security2CC.js.map +7 -0
  142. package/build/cjs/cc/SecurityCC.d.ts +128 -0
  143. package/build/cjs/cc/SecurityCC.js +977 -0
  144. package/build/cjs/cc/SecurityCC.js.map +7 -0
  145. package/build/cjs/cc/SoundSwitchCC.d.ts +232 -0
  146. package/build/cjs/cc/SoundSwitchCC.js +853 -0
  147. package/build/cjs/cc/SoundSwitchCC.js.map +7 -0
  148. package/build/cjs/cc/SupervisionCC.d.ts +104 -0
  149. package/build/cjs/cc/SupervisionCC.js +398 -0
  150. package/build/cjs/cc/SupervisionCC.js.map +7 -0
  151. package/build/cjs/cc/ThermostatFanModeCC.d.ts +141 -0
  152. package/build/cjs/cc/ThermostatFanModeCC.js +495 -0
  153. package/build/cjs/cc/ThermostatFanModeCC.js.map +7 -0
  154. package/build/cjs/cc/ThermostatFanStateCC.d.ts +60 -0
  155. package/build/cjs/cc/ThermostatFanStateCC.js +252 -0
  156. package/build/cjs/cc/ThermostatFanStateCC.js.map +7 -0
  157. package/build/cjs/cc/ThermostatModeCC.d.ts +150 -0
  158. package/build/cjs/cc/ThermostatModeCC.js +559 -0
  159. package/build/cjs/cc/ThermostatModeCC.js.map +7 -0
  160. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +61 -0
  161. package/build/cjs/cc/ThermostatOperatingStateCC.js +248 -0
  162. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +7 -0
  163. package/build/cjs/cc/ThermostatSetbackCC.d.ts +46 -0
  164. package/build/cjs/cc/ThermostatSetbackCC.js +366 -0
  165. package/build/cjs/cc/ThermostatSetbackCC.js.map +7 -0
  166. package/build/cjs/cc/ThermostatSetpointCC.d.ts +197 -0
  167. package/build/cjs/cc/ThermostatSetpointCC.js +792 -0
  168. package/build/cjs/cc/ThermostatSetpointCC.js.map +7 -0
  169. package/build/cjs/cc/TimeCC.d.ts +88 -0
  170. package/build/cjs/cc/TimeCC.js +635 -0
  171. package/build/cjs/cc/TimeCC.js.map +7 -0
  172. package/build/cjs/cc/TimeParametersCC.d.ts +72 -0
  173. package/build/cjs/cc/TimeParametersCC.js +413 -0
  174. package/build/cjs/cc/TimeParametersCC.js.map +7 -0
  175. package/build/cjs/cc/TransportServiceCC.d.ts +107 -0
  176. package/build/cjs/cc/TransportServiceCC.js +522 -0
  177. package/build/cjs/cc/TransportServiceCC.js.map +7 -0
  178. package/build/cjs/cc/UserCodeCC.d.ts +683 -0
  179. package/build/cjs/cc/UserCodeCC.js +1903 -0
  180. package/build/cjs/cc/UserCodeCC.js.map +7 -0
  181. package/build/cjs/cc/VersionCC.d.ts +469 -0
  182. package/build/cjs/cc/VersionCC.js +962 -0
  183. package/build/cjs/cc/VersionCC.js.map +7 -0
  184. package/build/cjs/cc/WakeUpCC.d.ts +150 -0
  185. package/build/cjs/cc/WakeUpCC.js +609 -0
  186. package/build/cjs/cc/WakeUpCC.js.map +7 -0
  187. package/build/cjs/cc/WindowCoveringCC.d.ts +315 -0
  188. package/build/cjs/cc/WindowCoveringCC.js +924 -0
  189. package/build/cjs/cc/WindowCoveringCC.js.map +7 -0
  190. package/build/cjs/cc/ZWaveLongRangeCC.d.ts +4 -0
  191. package/build/cjs/cc/ZWaveLongRangeCC.js +90 -0
  192. package/build/cjs/cc/ZWaveLongRangeCC.js.map +7 -0
  193. package/build/cjs/cc/ZWavePlusCC.d.ts +163 -0
  194. package/build/cjs/cc/ZWavePlusCC.js +362 -0
  195. package/build/cjs/cc/ZWavePlusCC.js.map +7 -0
  196. package/build/cjs/cc/ZWaveProtocolCC.d.ts +344 -0
  197. package/build/cjs/cc/ZWaveProtocolCC.js +1638 -0
  198. package/build/cjs/cc/ZWaveProtocolCC.js.map +7 -0
  199. package/build/cjs/cc/index.d.ts +132 -0
  200. package/build/cjs/cc/index.js +1180 -0
  201. package/build/cjs/cc/index.js.map +7 -0
  202. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +64 -0
  203. package/build/cjs/cc/manufacturerProprietary/Decorators.js +76 -0
  204. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +7 -0
  205. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +79 -0
  206. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +533 -0
  207. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +7 -0
  208. package/build/cjs/index.d.ts +15 -0
  209. package/build/cjs/index.js +77 -0
  210. package/build/cjs/index.js.map +7 -0
  211. package/build/cjs/index_safe.d.ts +3 -0
  212. package/build/cjs/index_safe.js +25 -0
  213. package/build/cjs/index_safe.js.map +7 -0
  214. package/build/cjs/lib/API.d.ts +271 -0
  215. package/build/cjs/lib/API.js +413 -0
  216. package/build/cjs/lib/API.js.map +7 -0
  217. package/build/cjs/lib/CommandClass.d.ts +234 -0
  218. package/build/cjs/lib/CommandClass.js +692 -0
  219. package/build/cjs/lib/CommandClass.js.map +7 -0
  220. package/build/cjs/lib/CommandClassDecorators.d.ts +108 -0
  221. package/build/cjs/lib/CommandClassDecorators.js +181 -0
  222. package/build/cjs/lib/CommandClassDecorators.js.map +7 -0
  223. package/build/cjs/lib/EncapsulatingCommandClass.d.ts +22 -0
  224. package/build/cjs/lib/EncapsulatingCommandClass.js +71 -0
  225. package/build/cjs/lib/EncapsulatingCommandClass.js.map +7 -0
  226. package/build/cjs/lib/ICommandClassContainer.js +17 -0
  227. package/build/cjs/lib/ICommandClassContainer.js.map +7 -0
  228. package/build/cjs/lib/NotificationEventPayload.d.ts +10 -0
  229. package/build/cjs/lib/NotificationEventPayload.js +31 -0
  230. package/build/cjs/lib/NotificationEventPayload.js.map +7 -0
  231. package/build/cjs/lib/Security2/Extension.d.ts +106 -0
  232. package/build/cjs/lib/Security2/Extension.js +424 -0
  233. package/build/cjs/lib/Security2/Extension.js.map +7 -0
  234. package/build/cjs/lib/Security2/shared.js +69 -0
  235. package/build/cjs/lib/Security2/shared.js.map +7 -0
  236. package/build/cjs/lib/SetValueResult.js +65 -0
  237. package/build/cjs/lib/SetValueResult.js.map +7 -0
  238. package/build/cjs/lib/Values.d.ts +223 -0
  239. package/build/cjs/lib/Values.js +191 -0
  240. package/build/cjs/lib/Values.js.map +7 -0
  241. package/build/cjs/lib/_Types.js +1676 -0
  242. package/build/cjs/lib/_Types.js.map +7 -0
  243. package/build/cjs/lib/serializers.d.ts +34 -0
  244. package/build/cjs/lib/serializers.js +110 -0
  245. package/build/cjs/lib/serializers.js.map +7 -0
  246. package/build/cjs/lib/utils.d.ts +17 -0
  247. package/build/cjs/lib/utils.js +678 -0
  248. package/build/cjs/lib/utils.js.map +7 -0
  249. package/build/cjs/package.json +3 -0
  250. package/build/esm/cc/AlarmSensorCC.d.ts +194 -0
  251. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -0
  252. package/build/esm/cc/AlarmSensorCC.js +490 -0
  253. package/build/esm/cc/AlarmSensorCC.js.map +1 -0
  254. package/build/esm/cc/AssociationCC.d.ts +253 -0
  255. package/build/esm/cc/AssociationCC.d.ts.map +1 -0
  256. package/build/esm/cc/AssociationCC.js +847 -0
  257. package/build/esm/cc/AssociationCC.js.map +1 -0
  258. package/build/esm/cc/AssociationGroupInfoCC.d.ts +230 -0
  259. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -0
  260. package/build/esm/cc/AssociationGroupInfoCC.js +889 -0
  261. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -0
  262. package/build/esm/cc/BarrierOperatorCC.d.ts +243 -0
  263. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -0
  264. package/build/esm/cc/BarrierOperatorCC.js +751 -0
  265. package/build/esm/cc/BarrierOperatorCC.js.map +1 -0
  266. package/build/esm/cc/BasicCC.d.ts +191 -0
  267. package/build/esm/cc/BasicCC.d.ts.map +1 -0
  268. package/build/esm/cc/BasicCC.js +468 -0
  269. package/build/esm/cc/BasicCC.js.map +1 -0
  270. package/build/esm/cc/BatteryCC.d.ts +406 -0
  271. package/build/esm/cc/BatteryCC.d.ts.map +1 -0
  272. package/build/esm/cc/BatteryCC.js +578 -0
  273. package/build/esm/cc/BatteryCC.js.map +1 -0
  274. package/build/esm/cc/BinarySensorCC.d.ts +122 -0
  275. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -0
  276. package/build/esm/cc/BinarySensorCC.js +515 -0
  277. package/build/esm/cc/BinarySensorCC.js.map +1 -0
  278. package/build/esm/cc/BinarySwitchCC.d.ts +139 -0
  279. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -0
  280. package/build/esm/cc/BinarySwitchCC.js +441 -0
  281. package/build/esm/cc/BinarySwitchCC.js.map +1 -0
  282. package/build/esm/cc/CRC16CC.d.ts +29 -0
  283. package/build/esm/cc/CRC16CC.d.ts.map +1 -0
  284. package/build/esm/cc/CRC16CC.js +187 -0
  285. package/build/esm/cc/CRC16CC.js.map +1 -0
  286. package/build/esm/cc/CentralSceneCC.d.ts +210 -0
  287. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -0
  288. package/build/esm/cc/CentralSceneCC.js +541 -0
  289. package/build/esm/cc/CentralSceneCC.js.map +1 -0
  290. package/build/esm/cc/ClimateControlScheduleCC.d.ts +177 -0
  291. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -0
  292. package/build/esm/cc/ClimateControlScheduleCC.js +607 -0
  293. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -0
  294. package/build/esm/cc/ClockCC.d.ts +47 -0
  295. package/build/esm/cc/ClockCC.d.ts.map +1 -0
  296. package/build/esm/cc/ClockCC.js +294 -0
  297. package/build/esm/cc/ClockCC.js.map +1 -0
  298. package/build/esm/cc/ColorSwitchCC.d.ts +339 -0
  299. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -0
  300. package/build/esm/cc/ColorSwitchCC.js +1274 -0
  301. package/build/esm/cc/ColorSwitchCC.js.map +1 -0
  302. package/build/esm/cc/ConfigurationCC.d.ts +396 -0
  303. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -0
  304. package/build/esm/cc/ConfigurationCC.js +2666 -0
  305. package/build/esm/cc/ConfigurationCC.js.map +1 -0
  306. package/build/esm/cc/DeviceResetLocallyCC.d.ts +17 -0
  307. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -0
  308. package/build/esm/cc/DeviceResetLocallyCC.js +138 -0
  309. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -0
  310. package/build/esm/cc/DoorLockCC.d.ts +837 -0
  311. package/build/esm/cc/DoorLockCC.d.ts.map +1 -0
  312. package/build/esm/cc/DoorLockCC.js +1372 -0
  313. package/build/esm/cc/DoorLockCC.js.map +1 -0
  314. package/build/esm/cc/DoorLockLoggingCC.d.ts +77 -0
  315. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -0
  316. package/build/esm/cc/DoorLockLoggingCC.js +414 -0
  317. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -0
  318. package/build/esm/cc/EnergyProductionCC.d.ts +77 -0
  319. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -0
  320. package/build/esm/cc/EnergyProductionCC.js +289 -0
  321. package/build/esm/cc/EnergyProductionCC.js.map +1 -0
  322. package/build/esm/cc/EntryControlCC.d.ts +231 -0
  323. package/build/esm/cc/EntryControlCC.d.ts.map +1 -0
  324. package/build/esm/cc/EntryControlCC.js +717 -0
  325. package/build/esm/cc/EntryControlCC.js.map +1 -0
  326. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +359 -0
  327. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -0
  328. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +1311 -0
  329. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -0
  330. package/build/esm/cc/HailCC.d.ts +6 -0
  331. package/build/esm/cc/HailCC.d.ts.map +1 -0
  332. package/build/esm/cc/HailCC.js +60 -0
  333. package/build/esm/cc/HailCC.js.map +1 -0
  334. package/build/esm/cc/HumidityControlModeCC.d.ts +111 -0
  335. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -0
  336. package/build/esm/cc/HumidityControlModeCC.js +412 -0
  337. package/build/esm/cc/HumidityControlModeCC.js.map +1 -0
  338. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +60 -0
  339. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -0
  340. package/build/esm/cc/HumidityControlOperatingStateCC.js +210 -0
  341. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -0
  342. package/build/esm/cc/HumidityControlSetpointCC.d.ts +209 -0
  343. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -0
  344. package/build/esm/cc/HumidityControlSetpointCC.js +805 -0
  345. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -0
  346. package/build/esm/cc/InclusionControllerCC.d.ts +42 -0
  347. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -0
  348. package/build/esm/cc/InclusionControllerCC.js +211 -0
  349. package/build/esm/cc/InclusionControllerCC.js.map +1 -0
  350. package/build/esm/cc/IndicatorCC.d.ts +338 -0
  351. package/build/esm/cc/IndicatorCC.d.ts.map +1 -0
  352. package/build/esm/cc/IndicatorCC.js +1455 -0
  353. package/build/esm/cc/IndicatorCC.js.map +1 -0
  354. package/build/esm/cc/IrrigationCC.d.ts +1496 -0
  355. package/build/esm/cc/IrrigationCC.d.ts.map +1 -0
  356. package/build/esm/cc/IrrigationCC.js +2239 -0
  357. package/build/esm/cc/IrrigationCC.js.map +1 -0
  358. package/build/esm/cc/LanguageCC.d.ts +101 -0
  359. package/build/esm/cc/LanguageCC.d.ts.map +1 -0
  360. package/build/esm/cc/LanguageCC.js +325 -0
  361. package/build/esm/cc/LanguageCC.js.map +1 -0
  362. package/build/esm/cc/LockCC.d.ts +73 -0
  363. package/build/esm/cc/LockCC.d.ts.map +1 -0
  364. package/build/esm/cc/LockCC.js +282 -0
  365. package/build/esm/cc/LockCC.js.map +1 -0
  366. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +32 -0
  367. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -0
  368. package/build/esm/cc/ManufacturerProprietaryCC.js +252 -0
  369. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -0
  370. package/build/esm/cc/ManufacturerSpecificCC.d.ts +171 -0
  371. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -0
  372. package/build/esm/cc/ManufacturerSpecificCC.js +404 -0
  373. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -0
  374. package/build/esm/cc/MeterCC.d.ts +318 -0
  375. package/build/esm/cc/MeterCC.d.ts.map +1 -0
  376. package/build/esm/cc/MeterCC.js +1409 -0
  377. package/build/esm/cc/MeterCC.js.map +1 -0
  378. package/build/esm/cc/MultiChannelAssociationCC.d.ts +241 -0
  379. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -0
  380. package/build/esm/cc/MultiChannelAssociationCC.js +1094 -0
  381. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -0
  382. package/build/esm/cc/MultiChannelCC.d.ts +394 -0
  383. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -0
  384. package/build/esm/cc/MultiChannelCC.js +1312 -0
  385. package/build/esm/cc/MultiChannelCC.js.map +1 -0
  386. package/build/esm/cc/MultiCommandCC.d.ts +27 -0
  387. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -0
  388. package/build/esm/cc/MultiCommandCC.js +206 -0
  389. package/build/esm/cc/MultiCommandCC.js.map +1 -0
  390. package/build/esm/cc/MultilevelSensorCC.d.ts +185 -0
  391. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -0
  392. package/build/esm/cc/MultilevelSensorCC.js +872 -0
  393. package/build/esm/cc/MultilevelSensorCC.js.map +1 -0
  394. package/build/esm/cc/MultilevelSwitchCC.d.ts +357 -0
  395. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -0
  396. package/build/esm/cc/MultilevelSwitchCC.js +935 -0
  397. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -0
  398. package/build/esm/cc/NoOperationCC.d.ts +9 -0
  399. package/build/esm/cc/NoOperationCC.d.ts.map +1 -0
  400. package/build/esm/cc/NoOperationCC.js +92 -0
  401. package/build/esm/cc/NoOperationCC.js.map +1 -0
  402. package/build/esm/cc/NodeNamingCC.d.ts +118 -0
  403. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -0
  404. package/build/esm/cc/NodeNamingCC.js +464 -0
  405. package/build/esm/cc/NodeNamingCC.js.map +1 -0
  406. package/build/esm/cc/NotificationCC.d.ts +479 -0
  407. package/build/esm/cc/NotificationCC.d.ts.map +1 -0
  408. package/build/esm/cc/NotificationCC.js +1481 -0
  409. package/build/esm/cc/NotificationCC.js.map +1 -0
  410. package/build/esm/cc/PowerlevelCC.d.ts +82 -0
  411. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -0
  412. package/build/esm/cc/PowerlevelCC.js +611 -0
  413. package/build/esm/cc/PowerlevelCC.js.map +1 -0
  414. package/build/esm/cc/ProtectionCC.d.ts +325 -0
  415. package/build/esm/cc/ProtectionCC.d.ts.map +1 -0
  416. package/build/esm/cc/ProtectionCC.js +830 -0
  417. package/build/esm/cc/ProtectionCC.js.map +1 -0
  418. package/build/esm/cc/SceneActivationCC.d.ts +89 -0
  419. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -0
  420. package/build/esm/cc/SceneActivationCC.js +223 -0
  421. package/build/esm/cc/SceneActivationCC.js.map +1 -0
  422. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +120 -0
  423. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -0
  424. package/build/esm/cc/SceneActuatorConfigurationCC.js +462 -0
  425. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -0
  426. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +129 -0
  427. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -0
  428. package/build/esm/cc/SceneControllerConfigurationCC.js +534 -0
  429. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -0
  430. package/build/esm/cc/ScheduleEntryLockCC.d.ts +434 -0
  431. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -0
  432. package/build/esm/cc/ScheduleEntryLockCC.js +2065 -0
  433. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -0
  434. package/build/esm/cc/Security2CC.d.ts +251 -0
  435. package/build/esm/cc/Security2CC.d.ts.map +1 -0
  436. package/build/esm/cc/Security2CC.js +2041 -0
  437. package/build/esm/cc/Security2CC.js.map +1 -0
  438. package/build/esm/cc/SecurityCC.d.ts +128 -0
  439. package/build/esm/cc/SecurityCC.d.ts.map +1 -0
  440. package/build/esm/cc/SecurityCC.js +989 -0
  441. package/build/esm/cc/SecurityCC.js.map +1 -0
  442. package/build/esm/cc/SoundSwitchCC.d.ts +232 -0
  443. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -0
  444. package/build/esm/cc/SoundSwitchCC.js +796 -0
  445. package/build/esm/cc/SoundSwitchCC.js.map +1 -0
  446. package/build/esm/cc/SupervisionCC.d.ts +104 -0
  447. package/build/esm/cc/SupervisionCC.d.ts.map +1 -0
  448. package/build/esm/cc/SupervisionCC.js +396 -0
  449. package/build/esm/cc/SupervisionCC.js.map +1 -0
  450. package/build/esm/cc/ThermostatFanModeCC.d.ts +141 -0
  451. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -0
  452. package/build/esm/cc/ThermostatFanModeCC.js +463 -0
  453. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -0
  454. package/build/esm/cc/ThermostatFanStateCC.d.ts +60 -0
  455. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -0
  456. package/build/esm/cc/ThermostatFanStateCC.js +212 -0
  457. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -0
  458. package/build/esm/cc/ThermostatModeCC.d.ts +150 -0
  459. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -0
  460. package/build/esm/cc/ThermostatModeCC.js +530 -0
  461. package/build/esm/cc/ThermostatModeCC.js.map +1 -0
  462. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +61 -0
  463. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -0
  464. package/build/esm/cc/ThermostatOperatingStateCC.js +208 -0
  465. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -0
  466. package/build/esm/cc/ThermostatSetbackCC.d.ts +46 -0
  467. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -0
  468. package/build/esm/cc/ThermostatSetbackCC.js +333 -0
  469. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -0
  470. package/build/esm/cc/ThermostatSetpointCC.d.ts +197 -0
  471. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -0
  472. package/build/esm/cc/ThermostatSetpointCC.js +786 -0
  473. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -0
  474. package/build/esm/cc/TimeCC.d.ts +88 -0
  475. package/build/esm/cc/TimeCC.d.ts.map +1 -0
  476. package/build/esm/cc/TimeCC.js +590 -0
  477. package/build/esm/cc/TimeCC.js.map +1 -0
  478. package/build/esm/cc/TimeParametersCC.d.ts +72 -0
  479. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -0
  480. package/build/esm/cc/TimeParametersCC.js +385 -0
  481. package/build/esm/cc/TimeParametersCC.js.map +1 -0
  482. package/build/esm/cc/TransportServiceCC.d.ts +107 -0
  483. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -0
  484. package/build/esm/cc/TransportServiceCC.js +523 -0
  485. package/build/esm/cc/TransportServiceCC.js.map +1 -0
  486. package/build/esm/cc/UserCodeCC.d.ts +683 -0
  487. package/build/esm/cc/UserCodeCC.d.ts.map +1 -0
  488. package/build/esm/cc/UserCodeCC.js +1933 -0
  489. package/build/esm/cc/UserCodeCC.js.map +1 -0
  490. package/build/esm/cc/VersionCC.d.ts +469 -0
  491. package/build/esm/cc/VersionCC.d.ts.map +1 -0
  492. package/build/esm/cc/VersionCC.js +971 -0
  493. package/build/esm/cc/VersionCC.js.map +1 -0
  494. package/build/esm/cc/WakeUpCC.d.ts +150 -0
  495. package/build/esm/cc/WakeUpCC.d.ts.map +1 -0
  496. package/build/esm/cc/WakeUpCC.js +568 -0
  497. package/build/esm/cc/WakeUpCC.js.map +1 -0
  498. package/build/esm/cc/WindowCoveringCC.d.ts +315 -0
  499. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -0
  500. package/build/esm/cc/WindowCoveringCC.js +905 -0
  501. package/build/esm/cc/WindowCoveringCC.js.map +1 -0
  502. package/build/esm/cc/ZWaveLongRangeCC.d.ts +4 -0
  503. package/build/esm/cc/ZWaveLongRangeCC.d.ts.map +1 -0
  504. package/build/esm/cc/ZWaveLongRangeCC.js +57 -0
  505. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -0
  506. package/build/esm/cc/ZWavePlusCC.d.ts +163 -0
  507. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -0
  508. package/build/esm/cc/ZWavePlusCC.js +328 -0
  509. package/build/esm/cc/ZWavePlusCC.js.map +1 -0
  510. package/build/esm/cc/ZWaveProtocolCC.d.ts +344 -0
  511. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -0
  512. package/build/esm/cc/ZWaveProtocolCC.js +1520 -0
  513. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -0
  514. package/build/esm/cc/index.d.ts +132 -0
  515. package/build/esm/cc/index.d.ts.map +1 -0
  516. package/build/esm/cc/index.js +71 -0
  517. package/build/esm/cc/index.js.map +1 -0
  518. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +64 -0
  519. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -0
  520. package/build/esm/cc/manufacturerProprietary/Decorators.js +79 -0
  521. package/build/esm/cc/manufacturerProprietary/Decorators.js.map +1 -0
  522. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +79 -0
  523. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -0
  524. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +489 -0
  525. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -0
  526. package/build/esm/index.d.ts +15 -0
  527. package/build/esm/index.d.ts.map +1 -0
  528. package/build/esm/index.js +14 -0
  529. package/build/esm/index.js.map +1 -0
  530. package/build/esm/index_safe.d.ts +3 -0
  531. package/build/esm/index_safe.d.ts.map +1 -0
  532. package/build/esm/index_safe.js +4 -0
  533. package/build/esm/index_safe.js.map +1 -0
  534. package/build/esm/lib/API.d.ts +271 -0
  535. package/build/esm/lib/API.d.ts.map +1 -0
  536. package/build/esm/lib/API.js +448 -0
  537. package/build/esm/lib/API.js.map +1 -0
  538. package/build/esm/lib/CommandClass.d.ts +234 -0
  539. package/build/esm/lib/CommandClass.d.ts.map +1 -0
  540. package/build/esm/lib/CommandClass.js +781 -0
  541. package/build/esm/lib/CommandClass.js.map +1 -0
  542. package/build/esm/lib/CommandClassDecorators.d.ts +108 -0
  543. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -0
  544. package/build/esm/lib/CommandClassDecorators.js +229 -0
  545. package/build/esm/lib/CommandClassDecorators.js.map +1 -0
  546. package/build/esm/lib/EncapsulatingCommandClass.d.ts +22 -0
  547. package/build/esm/lib/EncapsulatingCommandClass.d.ts.map +1 -0
  548. package/build/esm/lib/EncapsulatingCommandClass.js +56 -0
  549. package/build/esm/lib/EncapsulatingCommandClass.js.map +1 -0
  550. package/build/esm/lib/ICommandClassContainer.d.ts +2 -0
  551. package/build/esm/lib/ICommandClassContainer.d.ts.map +1 -0
  552. package/build/esm/lib/ICommandClassContainer.js +2 -0
  553. package/build/esm/lib/ICommandClassContainer.js.map +1 -0
  554. package/build/esm/lib/NotificationEventPayload.d.ts +10 -0
  555. package/build/esm/lib/NotificationEventPayload.d.ts.map +1 -0
  556. package/build/esm/lib/NotificationEventPayload.js +7 -0
  557. package/build/esm/lib/NotificationEventPayload.js.map +1 -0
  558. package/build/esm/lib/Security2/Extension.d.ts +106 -0
  559. package/build/esm/lib/Security2/Extension.d.ts.map +1 -0
  560. package/build/esm/lib/Security2/Extension.js +380 -0
  561. package/build/esm/lib/Security2/Extension.js.map +1 -0
  562. package/build/esm/lib/Security2/shared.d.ts +37 -0
  563. package/build/esm/lib/Security2/shared.d.ts.map +1 -0
  564. package/build/esm/lib/Security2/shared.js +40 -0
  565. package/build/esm/lib/Security2/shared.js.map +1 -0
  566. package/build/esm/lib/SetValueResult.d.ts +55 -0
  567. package/build/esm/lib/SetValueResult.d.ts.map +1 -0
  568. package/build/esm/lib/SetValueResult.js +53 -0
  569. package/build/esm/lib/SetValueResult.js.map +1 -0
  570. package/build/esm/lib/Values.d.ts +223 -0
  571. package/build/esm/lib/Values.d.ts.map +1 -0
  572. package/build/esm/lib/Values.js +169 -0
  573. package/build/esm/lib/Values.js.map +1 -0
  574. package/build/esm/lib/_Types.d.ts +1461 -0
  575. package/build/esm/lib/_Types.d.ts.map +1 -0
  576. package/build/esm/lib/_Types.js +1432 -0
  577. package/build/esm/lib/_Types.js.map +1 -0
  578. package/build/esm/lib/serializers.d.ts +34 -0
  579. package/build/esm/lib/serializers.d.ts.map +1 -0
  580. package/build/esm/lib/serializers.js +98 -0
  581. package/build/esm/lib/serializers.js.map +1 -0
  582. package/build/esm/lib/utils.d.ts +17 -0
  583. package/build/esm/lib/utils.d.ts.map +1 -0
  584. package/build/esm/lib/utils.js +847 -0
  585. package/build/esm/lib/utils.js.map +1 -0
  586. package/build/esm/package.json +3 -0
  587. package/package.json +28 -23
  588. package/build/cc/AlarmSensorCC.d.ts +0 -194
  589. package/build/cc/AlarmSensorCC.d.ts.map +0 -1
  590. package/build/cc/AlarmSensorCC.js +0 -395
  591. package/build/cc/AlarmSensorCC.js.map +0 -1
  592. package/build/cc/AssociationCC.d.ts +0 -253
  593. package/build/cc/AssociationCC.d.ts.map +0 -1
  594. package/build/cc/AssociationCC.js +0 -732
  595. package/build/cc/AssociationCC.js.map +0 -1
  596. package/build/cc/AssociationGroupInfoCC.d.ts +0 -230
  597. package/build/cc/AssociationGroupInfoCC.d.ts.map +0 -1
  598. package/build/cc/AssociationGroupInfoCC.js +0 -772
  599. package/build/cc/AssociationGroupInfoCC.js.map +0 -1
  600. package/build/cc/BarrierOperatorCC.d.ts +0 -243
  601. package/build/cc/BarrierOperatorCC.d.ts.map +0 -1
  602. package/build/cc/BarrierOperatorCC.js +0 -613
  603. package/build/cc/BarrierOperatorCC.js.map +0 -1
  604. package/build/cc/BasicCC.d.ts +0 -191
  605. package/build/cc/BasicCC.d.ts.map +0 -1
  606. package/build/cc/BasicCC.js +0 -393
  607. package/build/cc/BasicCC.js.map +0 -1
  608. package/build/cc/BatteryCC.d.ts +0 -406
  609. package/build/cc/BatteryCC.d.ts.map +0 -1
  610. package/build/cc/BatteryCC.js +0 -516
  611. package/build/cc/BatteryCC.js.map +0 -1
  612. package/build/cc/BinarySensorCC.d.ts +0 -122
  613. package/build/cc/BinarySensorCC.d.ts.map +0 -1
  614. package/build/cc/BinarySensorCC.js +0 -420
  615. package/build/cc/BinarySensorCC.js.map +0 -1
  616. package/build/cc/BinarySwitchCC.d.ts +0 -139
  617. package/build/cc/BinarySwitchCC.d.ts.map +0 -1
  618. package/build/cc/BinarySwitchCC.js +0 -365
  619. package/build/cc/BinarySwitchCC.js.map +0 -1
  620. package/build/cc/CRC16CC.d.ts +0 -29
  621. package/build/cc/CRC16CC.d.ts.map +0 -1
  622. package/build/cc/CRC16CC.js +0 -126
  623. package/build/cc/CRC16CC.js.map +0 -1
  624. package/build/cc/CentralSceneCC.d.ts +0 -210
  625. package/build/cc/CentralSceneCC.d.ts.map +0 -1
  626. package/build/cc/CentralSceneCC.js +0 -453
  627. package/build/cc/CentralSceneCC.js.map +0 -1
  628. package/build/cc/ClimateControlScheduleCC.d.ts +0 -177
  629. package/build/cc/ClimateControlScheduleCC.d.ts.map +0 -1
  630. package/build/cc/ClimateControlScheduleCC.js +0 -469
  631. package/build/cc/ClimateControlScheduleCC.js.map +0 -1
  632. package/build/cc/ClockCC.d.ts +0 -47
  633. package/build/cc/ClockCC.d.ts.map +0 -1
  634. package/build/cc/ClockCC.js +0 -208
  635. package/build/cc/ClockCC.js.map +0 -1
  636. package/build/cc/ColorSwitchCC.d.ts +0 -339
  637. package/build/cc/ColorSwitchCC.d.ts.map +0 -1
  638. package/build/cc/ColorSwitchCC.js +0 -1152
  639. package/build/cc/ColorSwitchCC.js.map +0 -1
  640. package/build/cc/ConfigurationCC.d.ts +0 -396
  641. package/build/cc/ConfigurationCC.d.ts.map +0 -1
  642. package/build/cc/ConfigurationCC.js +0 -2458
  643. package/build/cc/ConfigurationCC.js.map +0 -1
  644. package/build/cc/DeviceResetLocallyCC.d.ts +0 -17
  645. package/build/cc/DeviceResetLocallyCC.d.ts.map +0 -1
  646. package/build/cc/DeviceResetLocallyCC.js +0 -76
  647. package/build/cc/DeviceResetLocallyCC.js.map +0 -1
  648. package/build/cc/DoorLockCC.d.ts +0 -837
  649. package/build/cc/DoorLockCC.d.ts.map +0 -1
  650. package/build/cc/DoorLockCC.js +0 -1273
  651. package/build/cc/DoorLockCC.js.map +0 -1
  652. package/build/cc/DoorLockLoggingCC.d.ts +0 -77
  653. package/build/cc/DoorLockLoggingCC.d.ts.map +0 -1
  654. package/build/cc/DoorLockLoggingCC.js +0 -319
  655. package/build/cc/DoorLockLoggingCC.js.map +0 -1
  656. package/build/cc/EnergyProductionCC.d.ts +0 -77
  657. package/build/cc/EnergyProductionCC.d.ts.map +0 -1
  658. package/build/cc/EnergyProductionCC.js +0 -216
  659. package/build/cc/EnergyProductionCC.js.map +0 -1
  660. package/build/cc/EntryControlCC.d.ts +0 -231
  661. package/build/cc/EntryControlCC.d.ts.map +0 -1
  662. package/build/cc/EntryControlCC.js +0 -607
  663. package/build/cc/EntryControlCC.js.map +0 -1
  664. package/build/cc/FirmwareUpdateMetaDataCC.d.ts +0 -359
  665. package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +0 -1
  666. package/build/cc/FirmwareUpdateMetaDataCC.js +0 -1145
  667. package/build/cc/FirmwareUpdateMetaDataCC.js.map +0 -1
  668. package/build/cc/HailCC.d.ts +0 -6
  669. package/build/cc/HailCC.d.ts.map +0 -1
  670. package/build/cc/HailCC.js +0 -24
  671. package/build/cc/HailCC.js.map +0 -1
  672. package/build/cc/HumidityControlModeCC.d.ts +0 -111
  673. package/build/cc/HumidityControlModeCC.d.ts.map +0 -1
  674. package/build/cc/HumidityControlModeCC.js +0 -308
  675. package/build/cc/HumidityControlModeCC.js.map +0 -1
  676. package/build/cc/HumidityControlOperatingStateCC.d.ts +0 -60
  677. package/build/cc/HumidityControlOperatingStateCC.d.ts.map +0 -1
  678. package/build/cc/HumidityControlOperatingStateCC.js +0 -140
  679. package/build/cc/HumidityControlOperatingStateCC.js.map +0 -1
  680. package/build/cc/HumidityControlSetpointCC.d.ts +0 -209
  681. package/build/cc/HumidityControlSetpointCC.d.ts.map +0 -1
  682. package/build/cc/HumidityControlSetpointCC.js +0 -648
  683. package/build/cc/HumidityControlSetpointCC.js.map +0 -1
  684. package/build/cc/InclusionControllerCC.d.ts +0 -42
  685. package/build/cc/InclusionControllerCC.d.ts.map +0 -1
  686. package/build/cc/InclusionControllerCC.js +0 -136
  687. package/build/cc/InclusionControllerCC.js.map +0 -1
  688. package/build/cc/IndicatorCC.d.ts +0 -338
  689. package/build/cc/IndicatorCC.d.ts.map +0 -1
  690. package/build/cc/IndicatorCC.js +0 -1320
  691. package/build/cc/IndicatorCC.js.map +0 -1
  692. package/build/cc/IrrigationCC.d.ts +0 -1496
  693. package/build/cc/IrrigationCC.d.ts.map +0 -1
  694. package/build/cc/IrrigationCC.js +0 -2041
  695. package/build/cc/IrrigationCC.js.map +0 -1
  696. package/build/cc/LanguageCC.d.ts +0 -101
  697. package/build/cc/LanguageCC.d.ts.map +0 -1
  698. package/build/cc/LanguageCC.js +0 -246
  699. package/build/cc/LanguageCC.js.map +0 -1
  700. package/build/cc/LockCC.d.ts +0 -73
  701. package/build/cc/LockCC.d.ts.map +0 -1
  702. package/build/cc/LockCC.js +0 -200
  703. package/build/cc/LockCC.js.map +0 -1
  704. package/build/cc/ManufacturerProprietaryCC.d.ts +0 -32
  705. package/build/cc/ManufacturerProprietaryCC.d.ts.map +0 -1
  706. package/build/cc/ManufacturerProprietaryCC.js +0 -204
  707. package/build/cc/ManufacturerProprietaryCC.js.map +0 -1
  708. package/build/cc/ManufacturerSpecificCC.d.ts +0 -171
  709. package/build/cc/ManufacturerSpecificCC.d.ts.map +0 -1
  710. package/build/cc/ManufacturerSpecificCC.js +0 -318
  711. package/build/cc/ManufacturerSpecificCC.js.map +0 -1
  712. package/build/cc/MeterCC.d.ts +0 -318
  713. package/build/cc/MeterCC.d.ts.map +0 -1
  714. package/build/cc/MeterCC.js +0 -1312
  715. package/build/cc/MeterCC.js.map +0 -1
  716. package/build/cc/MultiChannelAssociationCC.d.ts +0 -241
  717. package/build/cc/MultiChannelAssociationCC.d.ts.map +0 -1
  718. package/build/cc/MultiChannelAssociationCC.js +0 -1007
  719. package/build/cc/MultiChannelAssociationCC.js.map +0 -1
  720. package/build/cc/MultiChannelCC.d.ts +0 -394
  721. package/build/cc/MultiChannelCC.d.ts.map +0 -1
  722. package/build/cc/MultiChannelCC.js +0 -1130
  723. package/build/cc/MultiChannelCC.js.map +0 -1
  724. package/build/cc/MultiCommandCC.d.ts +0 -27
  725. package/build/cc/MultiCommandCC.d.ts.map +0 -1
  726. package/build/cc/MultiCommandCC.js +0 -145
  727. package/build/cc/MultiCommandCC.js.map +0 -1
  728. package/build/cc/MultilevelSensorCC.d.ts +0 -185
  729. package/build/cc/MultilevelSensorCC.d.ts.map +0 -1
  730. package/build/cc/MultilevelSensorCC.js +0 -756
  731. package/build/cc/MultilevelSensorCC.js.map +0 -1
  732. package/build/cc/MultilevelSwitchCC.d.ts +0 -357
  733. package/build/cc/MultilevelSwitchCC.d.ts.map +0 -1
  734. package/build/cc/MultilevelSwitchCC.js +0 -813
  735. package/build/cc/MultilevelSwitchCC.js.map +0 -1
  736. package/build/cc/NoOperationCC.d.ts +0 -9
  737. package/build/cc/NoOperationCC.d.ts.map +0 -1
  738. package/build/cc/NoOperationCC.js +0 -42
  739. package/build/cc/NoOperationCC.js.map +0 -1
  740. package/build/cc/NodeNamingCC.d.ts +0 -118
  741. package/build/cc/NodeNamingCC.d.ts.map +0 -1
  742. package/build/cc/NodeNamingCC.js +0 -348
  743. package/build/cc/NodeNamingCC.js.map +0 -1
  744. package/build/cc/NotificationCC.d.ts +0 -479
  745. package/build/cc/NotificationCC.d.ts.map +0 -1
  746. package/build/cc/NotificationCC.js +0 -1379
  747. package/build/cc/NotificationCC.js.map +0 -1
  748. package/build/cc/PowerlevelCC.d.ts +0 -82
  749. package/build/cc/PowerlevelCC.d.ts.map +0 -1
  750. package/build/cc/PowerlevelCC.js +0 -488
  751. package/build/cc/PowerlevelCC.js.map +0 -1
  752. package/build/cc/ProtectionCC.d.ts +0 -325
  753. package/build/cc/ProtectionCC.d.ts.map +0 -1
  754. package/build/cc/ProtectionCC.js +0 -672
  755. package/build/cc/ProtectionCC.js.map +0 -1
  756. package/build/cc/SceneActivationCC.d.ts +0 -89
  757. package/build/cc/SceneActivationCC.d.ts.map +0 -1
  758. package/build/cc/SceneActivationCC.js +0 -169
  759. package/build/cc/SceneActivationCC.js.map +0 -1
  760. package/build/cc/SceneActuatorConfigurationCC.d.ts +0 -120
  761. package/build/cc/SceneActuatorConfigurationCC.d.ts.map +0 -1
  762. package/build/cc/SceneActuatorConfigurationCC.js +0 -377
  763. package/build/cc/SceneActuatorConfigurationCC.js.map +0 -1
  764. package/build/cc/SceneControllerConfigurationCC.d.ts +0 -129
  765. package/build/cc/SceneControllerConfigurationCC.d.ts.map +0 -1
  766. package/build/cc/SceneControllerConfigurationCC.js +0 -449
  767. package/build/cc/SceneControllerConfigurationCC.js.map +0 -1
  768. package/build/cc/ScheduleEntryLockCC.d.ts +0 -434
  769. package/build/cc/ScheduleEntryLockCC.d.ts.map +0 -1
  770. package/build/cc/ScheduleEntryLockCC.js +0 -1829
  771. package/build/cc/ScheduleEntryLockCC.js.map +0 -1
  772. package/build/cc/Security2CC.d.ts +0 -251
  773. package/build/cc/Security2CC.d.ts.map +0 -1
  774. package/build/cc/Security2CC.js +0 -1817
  775. package/build/cc/Security2CC.js.map +0 -1
  776. package/build/cc/SecurityCC.d.ts +0 -128
  777. package/build/cc/SecurityCC.d.ts.map +0 -1
  778. package/build/cc/SecurityCC.js +0 -803
  779. package/build/cc/SecurityCC.js.map +0 -1
  780. package/build/cc/SoundSwitchCC.d.ts +0 -232
  781. package/build/cc/SoundSwitchCC.d.ts.map +0 -1
  782. package/build/cc/SoundSwitchCC.js +0 -636
  783. package/build/cc/SoundSwitchCC.js.map +0 -1
  784. package/build/cc/SupervisionCC.d.ts +0 -104
  785. package/build/cc/SupervisionCC.d.ts.map +0 -1
  786. package/build/cc/SupervisionCC.js +0 -322
  787. package/build/cc/SupervisionCC.js.map +0 -1
  788. package/build/cc/ThermostatFanModeCC.d.ts +0 -141
  789. package/build/cc/ThermostatFanModeCC.d.ts.map +0 -1
  790. package/build/cc/ThermostatFanModeCC.js +0 -362
  791. package/build/cc/ThermostatFanModeCC.js.map +0 -1
  792. package/build/cc/ThermostatFanStateCC.d.ts +0 -60
  793. package/build/cc/ThermostatFanStateCC.d.ts.map +0 -1
  794. package/build/cc/ThermostatFanStateCC.js +0 -142
  795. package/build/cc/ThermostatFanStateCC.js.map +0 -1
  796. package/build/cc/ThermostatModeCC.d.ts +0 -150
  797. package/build/cc/ThermostatModeCC.d.ts.map +0 -1
  798. package/build/cc/ThermostatModeCC.js +0 -429
  799. package/build/cc/ThermostatModeCC.js.map +0 -1
  800. package/build/cc/ThermostatOperatingStateCC.d.ts +0 -61
  801. package/build/cc/ThermostatOperatingStateCC.d.ts.map +0 -1
  802. package/build/cc/ThermostatOperatingStateCC.js +0 -138
  803. package/build/cc/ThermostatOperatingStateCC.js.map +0 -1
  804. package/build/cc/ThermostatSetbackCC.d.ts +0 -46
  805. package/build/cc/ThermostatSetbackCC.d.ts.map +0 -1
  806. package/build/cc/ThermostatSetbackCC.js +0 -247
  807. package/build/cc/ThermostatSetbackCC.js.map +0 -1
  808. package/build/cc/ThermostatSetpointCC.d.ts +0 -197
  809. package/build/cc/ThermostatSetpointCC.d.ts.map +0 -1
  810. package/build/cc/ThermostatSetpointCC.js +0 -658
  811. package/build/cc/ThermostatSetpointCC.js.map +0 -1
  812. package/build/cc/TimeCC.d.ts +0 -88
  813. package/build/cc/TimeCC.d.ts.map +0 -1
  814. package/build/cc/TimeCC.js +0 -454
  815. package/build/cc/TimeCC.js.map +0 -1
  816. package/build/cc/TimeParametersCC.d.ts +0 -72
  817. package/build/cc/TimeParametersCC.d.ts.map +0 -1
  818. package/build/cc/TimeParametersCC.js +0 -303
  819. package/build/cc/TimeParametersCC.js.map +0 -1
  820. package/build/cc/TransportServiceCC.d.ts +0 -107
  821. package/build/cc/TransportServiceCC.d.ts.map +0 -1
  822. package/build/cc/TransportServiceCC.js +0 -426
  823. package/build/cc/TransportServiceCC.js.map +0 -1
  824. package/build/cc/UserCodeCC.d.ts +0 -683
  825. package/build/cc/UserCodeCC.d.ts.map +0 -1
  826. package/build/cc/UserCodeCC.js +0 -1699
  827. package/build/cc/UserCodeCC.js.map +0 -1
  828. package/build/cc/VersionCC.d.ts +0 -469
  829. package/build/cc/VersionCC.d.ts.map +0 -1
  830. package/build/cc/VersionCC.js +0 -865
  831. package/build/cc/VersionCC.js.map +0 -1
  832. package/build/cc/WakeUpCC.d.ts +0 -150
  833. package/build/cc/WakeUpCC.d.ts.map +0 -1
  834. package/build/cc/WakeUpCC.js +0 -441
  835. package/build/cc/WakeUpCC.js.map +0 -1
  836. package/build/cc/WindowCoveringCC.d.ts +0 -315
  837. package/build/cc/WindowCoveringCC.d.ts.map +0 -1
  838. package/build/cc/WindowCoveringCC.js +0 -783
  839. package/build/cc/WindowCoveringCC.js.map +0 -1
  840. package/build/cc/ZWaveLongRangeCC.d.ts +0 -4
  841. package/build/cc/ZWaveLongRangeCC.d.ts.map +0 -1
  842. package/build/cc/ZWaveLongRangeCC.js +0 -20
  843. package/build/cc/ZWaveLongRangeCC.js.map +0 -1
  844. package/build/cc/ZWavePlusCC.d.ts +0 -163
  845. package/build/cc/ZWavePlusCC.d.ts.map +0 -1
  846. package/build/cc/ZWavePlusCC.js +0 -270
  847. package/build/cc/ZWavePlusCC.js.map +0 -1
  848. package/build/cc/ZWaveProtocolCC.d.ts +0 -344
  849. package/build/cc/ZWaveProtocolCC.d.ts.map +0 -1
  850. package/build/cc/ZWaveProtocolCC.js +0 -1033
  851. package/build/cc/ZWaveProtocolCC.js.map +0 -1
  852. package/build/cc/index.d.ts +0 -132
  853. package/build/cc/index.d.ts.map +0 -1
  854. package/build/cc/index.js +0 -627
  855. package/build/cc/index.js.map +0 -1
  856. package/build/cc/manufacturerProprietary/Decorators.d.ts +0 -64
  857. package/build/cc/manufacturerProprietary/Decorators.d.ts.map +0 -1
  858. package/build/cc/manufacturerProprietary/Decorators.js +0 -83
  859. package/build/cc/manufacturerProprietary/Decorators.js.map +0 -1
  860. package/build/cc/manufacturerProprietary/FibaroCC.d.ts +0 -79
  861. package/build/cc/manufacturerProprietary/FibaroCC.d.ts.map +0 -1
  862. package/build/cc/manufacturerProprietary/FibaroCC.js +0 -392
  863. package/build/cc/manufacturerProprietary/FibaroCC.js.map +0 -1
  864. package/build/index.d.ts +0 -15
  865. package/build/index.d.ts.map +0 -1
  866. package/build/index.js +0 -52
  867. package/build/index.js.map +0 -1
  868. package/build/index_safe.d.ts +0 -3
  869. package/build/index_safe.d.ts.map +0 -1
  870. package/build/index_safe.js +0 -20
  871. package/build/index_safe.js.map +0 -1
  872. package/build/lib/API.d.ts +0 -271
  873. package/build/lib/API.d.ts.map +0 -1
  874. package/build/lib/API.js +0 -458
  875. package/build/lib/API.js.map +0 -1
  876. package/build/lib/CommandClass.d.ts +0 -234
  877. package/build/lib/CommandClass.d.ts.map +0 -1
  878. package/build/lib/CommandClass.js +0 -788
  879. package/build/lib/CommandClass.js.map +0 -1
  880. package/build/lib/CommandClassDecorators.d.ts +0 -112
  881. package/build/lib/CommandClassDecorators.d.ts.map +0 -1
  882. package/build/lib/CommandClassDecorators.js +0 -243
  883. package/build/lib/CommandClassDecorators.js.map +0 -1
  884. package/build/lib/EncapsulatingCommandClass.d.ts +0 -22
  885. package/build/lib/EncapsulatingCommandClass.d.ts.map +0 -1
  886. package/build/lib/EncapsulatingCommandClass.js +0 -61
  887. package/build/lib/EncapsulatingCommandClass.js.map +0 -1
  888. package/build/lib/ICommandClassContainer.d.ts.map +0 -1
  889. package/build/lib/ICommandClassContainer.js +0 -3
  890. package/build/lib/ICommandClassContainer.js.map +0 -1
  891. package/build/lib/NotificationEventPayload.d.ts +0 -10
  892. package/build/lib/NotificationEventPayload.d.ts.map +0 -1
  893. package/build/lib/NotificationEventPayload.js +0 -10
  894. package/build/lib/NotificationEventPayload.js.map +0 -1
  895. package/build/lib/Security2/Extension.d.ts +0 -106
  896. package/build/lib/Security2/Extension.d.ts.map +0 -1
  897. package/build/lib/Security2/Extension.js +0 -303
  898. package/build/lib/Security2/Extension.js.map +0 -1
  899. package/build/lib/Security2/shared.d.ts.map +0 -1
  900. package/build/lib/Security2/shared.js +0 -43
  901. package/build/lib/Security2/shared.js.map +0 -1
  902. package/build/lib/SetValueResult.d.ts.map +0 -1
  903. package/build/lib/SetValueResult.js +0 -60
  904. package/build/lib/SetValueResult.js.map +0 -1
  905. package/build/lib/Values.d.ts +0 -223
  906. package/build/lib/Values.d.ts.map +0 -1
  907. package/build/lib/Values.js +0 -172
  908. package/build/lib/Values.js.map +0 -1
  909. package/build/lib/_Types.d.ts.map +0 -1
  910. package/build/lib/_Types.js +0 -1443
  911. package/build/lib/_Types.js.map +0 -1
  912. package/build/lib/serializers.d.ts +0 -34
  913. package/build/lib/serializers.d.ts.map +0 -1
  914. package/build/lib/serializers.js +0 -107
  915. package/build/lib/serializers.js.map +0 -1
  916. package/build/lib/utils.d.ts +0 -17
  917. package/build/lib/utils.d.ts.map +0 -1
  918. package/build/lib/utils.js +0 -860
  919. package/build/lib/utils.js.map +0 -1
  920. /package/build/{lib → cjs/lib}/ICommandClassContainer.d.ts +0 -0
  921. /package/build/{lib → cjs/lib}/Security2/shared.d.ts +0 -0
  922. /package/build/{lib → cjs/lib}/SetValueResult.d.ts +0 -0
  923. /package/build/{lib → cjs/lib}/_Types.d.ts +0 -0
@@ -0,0 +1,1312 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ function __assertType(argName, typeName, boundHasError) {
36
+ const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
37
+ if (boundHasError()) {
38
+ throw new ZWaveError(typeName ? `${argName} is not a ${typeName}` : `${argName} has the wrong type`, ZWaveErrorCodes.Argument_Invalid);
39
+ }
40
+ }
41
+ const __assertType__number = $o => {
42
+ function _number($o) {
43
+ return typeof $o !== "number" ? {} : null;
44
+ }
45
+ return _number($o);
46
+ };
47
+ import { CommandClasses, MessagePriority, ZWaveError, ZWaveErrorCodes, encodeApplicationNodeInformation, encodeBitMask, getCCName, getGenericDeviceClass, getSpecificDeviceClass, parseApplicationNodeInformation, parseBitMask, validatePayload, } from "@zwave-js/core/safe";
48
+ import { Bytes } from "@zwave-js/shared/safe";
49
+ import { distinct } from "alcalzone-shared/arrays/index.js";
50
+ import { CCAPI } from "../lib/API.js";
51
+ import { CommandClass, getEffectiveCCVersion, } from "../lib/CommandClass.js";
52
+ import { API, CCCommand, ccValueProperty, ccValues, commandClass, expectedCCResponse, implementedVersion, } from "../lib/CommandClassDecorators.js";
53
+ import { isEncapsulatingCommandClass, isMultiEncapsulatingCommandClass, } from "../lib/EncapsulatingCommandClass.js";
54
+ import { V } from "../lib/Values.js";
55
+ import { MultiChannelCommand } from "../lib/_Types.js";
56
+ // TODO: Handle removal reports of dynamic endpoints
57
+ export const MultiChannelCCValues = Object.freeze({
58
+ ...V.defineStaticCCValues(CommandClasses["Multi Channel"], {
59
+ ...V.staticProperty("endpointIndizes", undefined, {
60
+ internal: true,
61
+ supportsEndpoints: false,
62
+ }),
63
+ ...V.staticPropertyWithName("individualEndpointCount", "individualCount", undefined, {
64
+ internal: true,
65
+ supportsEndpoints: false,
66
+ }),
67
+ ...V.staticPropertyWithName("aggregatedEndpointCount", "aggregatedCount", undefined, {
68
+ internal: true,
69
+ supportsEndpoints: false,
70
+ }),
71
+ ...V.staticPropertyWithName("endpointCountIsDynamic", "countIsDynamic", undefined, {
72
+ internal: true,
73
+ supportsEndpoints: false,
74
+ }),
75
+ ...V.staticPropertyWithName("endpointsHaveIdenticalCapabilities", "identicalCapabilities", undefined, {
76
+ internal: true,
77
+ supportsEndpoints: false,
78
+ }),
79
+ ...V.staticPropertyWithName("endpointCCs", "commandClasses", undefined, { internal: true }),
80
+ ...V.staticPropertyWithName("endpointDeviceClass", "deviceClass", undefined, { internal: true }),
81
+ }),
82
+ ...V.defineDynamicCCValues(CommandClasses["Multi Channel"], {
83
+ ...V.dynamicPropertyAndKeyWithName("aggregatedEndpointMembers", "members", (endpointIndex) => endpointIndex, ({ property, propertyKey }) => property === "members" && typeof propertyKey === "number", undefined, { internal: true }),
84
+ }),
85
+ });
86
+ // @noSetValueAPI
87
+ /**
88
+ * Many devices unnecessarily use endpoints when they could (or do) provide all functionality via the root device.
89
+ * This function gives an estimate if this is the case (i.e. all endpoints have a different device class)
90
+ */
91
+ function areEndpointsUnnecessary(ctx, nodeId, endpointIndizes) {
92
+ // Gather all device classes
93
+ const deviceClasses = new Map();
94
+ for (const endpoint of endpointIndizes) {
95
+ const devClassValueId = MultiChannelCCValues.endpointDeviceClass
96
+ .endpoint(endpoint);
97
+ const deviceClass = ctx.getValueDB(nodeId).getValue(devClassValueId);
98
+ if (deviceClass) {
99
+ deviceClasses.set(endpoint, {
100
+ generic: deviceClass.generic,
101
+ specific: deviceClass.specific,
102
+ });
103
+ }
104
+ }
105
+ // Endpoints may be useless if all of them have different device classes
106
+ const distinctDeviceClasses = distinct([...deviceClasses.values()].map(({ generic, specific }) => generic * 256 + specific));
107
+ if (distinctDeviceClasses.length !== endpointIndizes.length) {
108
+ // There are endpoints with the same device class, so they are not unnecessary
109
+ return false;
110
+ }
111
+ // Endpoints are necessary if more than 1 of them has a switch-type device class
112
+ const switchTypeDeviceClasses = [
113
+ 0x10, // Binary Switch
114
+ 0x11, // Multilevel Switch
115
+ 0x12, // Remote Switch
116
+ 0x13, // Toggle Switch
117
+ ];
118
+ const numSwitchEndpoints = [...deviceClasses.values()].filter(({ generic }) => switchTypeDeviceClasses.includes(generic)).length;
119
+ if (numSwitchEndpoints > 1)
120
+ return false;
121
+ return true;
122
+ }
123
+ let MultiChannelCCAPI = (() => {
124
+ let _classDecorators = [API(CommandClasses["Multi Channel"])];
125
+ let _classDescriptor;
126
+ let _classExtraInitializers = [];
127
+ let _classThis;
128
+ let _classSuper = CCAPI;
129
+ var MultiChannelCCAPI = class extends _classSuper {
130
+ static { _classThis = this; }
131
+ static {
132
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
133
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
134
+ MultiChannelCCAPI = _classThis = _classDescriptor.value;
135
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
136
+ __runInitializers(_classThis, _classExtraInitializers);
137
+ }
138
+ supportsCommand(cmd) {
139
+ switch (cmd) {
140
+ // Legacy commands:
141
+ case MultiChannelCommand.GetV1:
142
+ return this.isSinglecast() && this.version === 1;
143
+ case MultiChannelCommand.CommandEncapsulationV1:
144
+ return this.version === 1;
145
+ // The specs start at version 3 but according to OZW,
146
+ // these do seem to be supported in version 2
147
+ case MultiChannelCommand.EndPointGet:
148
+ case MultiChannelCommand.CapabilityGet:
149
+ return this.version >= 2 && this.isSinglecast();
150
+ case MultiChannelCommand.CommandEncapsulation:
151
+ return this.version >= 2;
152
+ case MultiChannelCommand.EndPointFind:
153
+ return this.version >= 3 && this.isSinglecast();
154
+ case MultiChannelCommand.AggregatedMembersGet:
155
+ return this.version >= 4 && this.isSinglecast();
156
+ }
157
+ return super.supportsCommand(cmd);
158
+ }
159
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
160
+ async getEndpoints() {
161
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.EndPointGet);
162
+ const cc = new MultiChannelCCEndPointGet({
163
+ nodeId: this.endpoint.nodeId,
164
+ endpointIndex: this.endpoint.index,
165
+ });
166
+ const response = await this.host.sendCommand(cc, this.commandOptions);
167
+ if (response) {
168
+ return {
169
+ isDynamicEndpointCount: response.countIsDynamic,
170
+ identicalCapabilities: response.identicalCapabilities,
171
+ individualEndpointCount: response.individualCount,
172
+ aggregatedEndpointCount: response.aggregatedCount,
173
+ };
174
+ }
175
+ }
176
+ async getEndpointCapabilities(endpoint) {
177
+ __assertType("endpoint", "number", __assertType__number.bind(void 0, endpoint));
178
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.CapabilityGet);
179
+ const cc = new MultiChannelCCCapabilityGet({
180
+ nodeId: this.endpoint.nodeId,
181
+ endpointIndex: this.endpoint.index,
182
+ requestedEndpoint: endpoint,
183
+ });
184
+ const response = await this.host.sendCommand(cc, this.commandOptions);
185
+ if (response) {
186
+ const generic = getGenericDeviceClass(response.genericDeviceClass);
187
+ const specific = getSpecificDeviceClass(response.genericDeviceClass, response.specificDeviceClass);
188
+ return {
189
+ isDynamic: response.isDynamic,
190
+ wasRemoved: response.wasRemoved,
191
+ supportedCCs: response.supportedCCs,
192
+ generic,
193
+ specific,
194
+ };
195
+ }
196
+ }
197
+ async findEndpoints(genericClass, specificClass) {
198
+ __assertType("genericClass", "number", __assertType__number.bind(void 0, genericClass));
199
+ __assertType("specificClass", "number", __assertType__number.bind(void 0, specificClass));
200
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.EndPointFind);
201
+ const cc = new MultiChannelCCEndPointFind({
202
+ nodeId: this.endpoint.nodeId,
203
+ endpointIndex: this.endpoint.index,
204
+ genericClass,
205
+ specificClass,
206
+ });
207
+ const response = await this.host.sendCommand(cc, this.commandOptions);
208
+ return response?.foundEndpoints;
209
+ }
210
+ async getAggregatedMembers(endpoint) {
211
+ __assertType("endpoint", "number", __assertType__number.bind(void 0, endpoint));
212
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.AggregatedMembersGet);
213
+ const cc = new MultiChannelCCAggregatedMembersGet({
214
+ nodeId: this.endpoint.nodeId,
215
+ endpointIndex: this.endpoint.index,
216
+ requestedEndpoint: endpoint,
217
+ });
218
+ const response = await this.host.sendCommand(cc, this.commandOptions);
219
+ return response?.members;
220
+ }
221
+ // Encapsulation is used internally and too frequently that we
222
+ // want to pay the cost of validating each call
223
+ // eslint-disable-next-line @zwave-js/ccapi-validate-args
224
+ async sendEncapsulated(options) {
225
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.CommandEncapsulation);
226
+ const cc = new MultiChannelCCCommandEncapsulation({
227
+ nodeId: this.endpoint.nodeId,
228
+ ...options,
229
+ });
230
+ await this.host.sendCommand(cc, this.commandOptions);
231
+ }
232
+ async getEndpointCountV1(ccId) {
233
+ __assertType("ccId", "CommandClasses", __assertType__number.bind(void 0, ccId));
234
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.GetV1);
235
+ const cc = new MultiChannelCCV1Get({
236
+ nodeId: this.endpoint.nodeId,
237
+ requestedCC: ccId,
238
+ });
239
+ const response = await this.host.sendCommand(cc, this.commandOptions);
240
+ return response?.endpointCount;
241
+ }
242
+ // Encapsulation is used internally and too frequently that we
243
+ // want to pay the cost of validating each call
244
+ // eslint-disable-next-line @zwave-js/ccapi-validate-args
245
+ async sendEncapsulatedV1(encapsulated) {
246
+ this.assertSupportsCommand(MultiChannelCommand, MultiChannelCommand.CommandEncapsulationV1);
247
+ const cc = new MultiChannelCCV1CommandEncapsulation({
248
+ nodeId: this.endpoint.nodeId,
249
+ encapsulated,
250
+ });
251
+ await this.host.sendCommand(cc, this.commandOptions);
252
+ }
253
+ };
254
+ return MultiChannelCCAPI = _classThis;
255
+ })();
256
+ export { MultiChannelCCAPI };
257
+ let MultiChannelCC = (() => {
258
+ let _classDecorators = [commandClass(CommandClasses["Multi Channel"]), implementedVersion(4), ccValues(MultiChannelCCValues)];
259
+ let _classDescriptor;
260
+ let _classExtraInitializers = [];
261
+ let _classThis;
262
+ let _classSuper = CommandClass;
263
+ var MultiChannelCC = class extends _classSuper {
264
+ static { _classThis = this; }
265
+ static {
266
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
267
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
268
+ MultiChannelCC = _classThis = _classDescriptor.value;
269
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
270
+ __runInitializers(_classThis, _classExtraInitializers);
271
+ }
272
+ /** Tests if a command targets a specific endpoint and thus requires encapsulation */
273
+ static requiresEncapsulation(cc) {
274
+ return (cc.endpointIndex !== 0
275
+ && !(cc instanceof MultiChannelCCCommandEncapsulation)
276
+ && !(cc instanceof MultiChannelCCV1CommandEncapsulation));
277
+ }
278
+ /** Encapsulates a command that targets a specific endpoint, with version 2+ of the Multi Channel CC */
279
+ static encapsulate(cc) {
280
+ const ret = new MultiChannelCCCommandEncapsulation({
281
+ nodeId: cc.nodeId,
282
+ encapsulated: cc,
283
+ destination: cc.endpointIndex,
284
+ });
285
+ // Copy the encapsulation flags from the encapsulated command
286
+ ret.encapsulationFlags = cc.encapsulationFlags;
287
+ return ret;
288
+ }
289
+ /** Encapsulates a command that targets a specific endpoint, with version 1 of the Multi Channel CC */
290
+ static encapsulateV1(cc) {
291
+ const ret = new MultiChannelCCV1CommandEncapsulation({
292
+ nodeId: cc.nodeId,
293
+ encapsulated: cc,
294
+ });
295
+ // Copy the encapsulation flags from the encapsulated command
296
+ ret.encapsulationFlags = cc.encapsulationFlags;
297
+ return ret;
298
+ }
299
+ skipEndpointInterview() {
300
+ // The endpoints are discovered by querying the root device
301
+ return true;
302
+ }
303
+ async interview(ctx) {
304
+ const node = this.getNode(ctx);
305
+ const removeEndpoints = ctx.getDeviceConfig?.(node.id)?.compat
306
+ ?.removeEndpoints;
307
+ if (removeEndpoints === "*") {
308
+ ctx.logNode(node.id, {
309
+ endpoint: this.endpointIndex,
310
+ message: `Skipping ${this.ccName} interview b/c all endpoints are ignored by the device config file...`,
311
+ direction: "none",
312
+ });
313
+ return;
314
+ }
315
+ ctx.logNode(node.id, {
316
+ endpoint: this.endpointIndex,
317
+ message: `Interviewing ${this.ccName}...`,
318
+ direction: "none",
319
+ });
320
+ // Special interview procedure for legacy nodes
321
+ const ccVersion = getEffectiveCCVersion(ctx, this);
322
+ if (ccVersion === 1)
323
+ return this.interviewV1(ctx);
324
+ const endpoint = node.getEndpoint(this.endpointIndex);
325
+ const api = CCAPI.create(CommandClasses["Multi Channel"], ctx, endpoint).withOptions({
326
+ priority: MessagePriority.NodeQuery,
327
+ });
328
+ const valueDB = this.getValueDB(ctx);
329
+ // Step 1: Retrieve general information about end points
330
+ ctx.logNode(node.id, {
331
+ endpoint: this.endpointIndex,
332
+ message: "querying device endpoint information...",
333
+ direction: "outbound",
334
+ });
335
+ const multiResponse = await api.getEndpoints();
336
+ if (!multiResponse) {
337
+ ctx.logNode(node.id, {
338
+ endpoint: this.endpointIndex,
339
+ message: "Querying device endpoint information timed out, aborting interview...",
340
+ level: "warn",
341
+ });
342
+ return this.throwMissingCriticalInterviewResponse();
343
+ }
344
+ let logMessage = `received response for device endpoints:
345
+ endpoint count (individual): ${multiResponse.individualEndpointCount}
346
+ count is dynamic: ${multiResponse.isDynamicEndpointCount}
347
+ identical capabilities: ${multiResponse.identicalCapabilities}`;
348
+ if (multiResponse.aggregatedEndpointCount != undefined) {
349
+ logMessage +=
350
+ `\nendpoint count (aggregated): ${multiResponse.aggregatedEndpointCount}`;
351
+ }
352
+ ctx.logNode(node.id, {
353
+ endpoint: this.endpointIndex,
354
+ message: logMessage,
355
+ direction: "inbound",
356
+ });
357
+ let allEndpoints = [];
358
+ const addSequentialEndpoints = () => {
359
+ for (let i = 1; i
360
+ <= multiResponse.individualEndpointCount
361
+ + (multiResponse.aggregatedEndpointCount ?? 0); i++) {
362
+ allEndpoints.push(i);
363
+ }
364
+ };
365
+ if (api.supportsCommand(MultiChannelCommand.EndPointFind)) {
366
+ // Step 2a: Find all endpoints
367
+ ctx.logNode(node.id, {
368
+ endpoint: this.endpointIndex,
369
+ message: "querying all endpoints...",
370
+ direction: "outbound",
371
+ });
372
+ const foundEndpoints = await api.findEndpoints(0xff, 0xff);
373
+ if (foundEndpoints)
374
+ allEndpoints.push(...foundEndpoints);
375
+ if (!allEndpoints.length) {
376
+ // Create a sequential list of endpoints
377
+ ctx.logNode(node.id, {
378
+ endpoint: this.endpointIndex,
379
+ message: `Endpoint query returned no results, assuming that endpoints are sequential`,
380
+ direction: "inbound",
381
+ });
382
+ addSequentialEndpoints();
383
+ }
384
+ else {
385
+ ctx.logNode(node.id, {
386
+ endpoint: this.endpointIndex,
387
+ message: `received endpoints: ${allEndpoints
388
+ .map(String)
389
+ .join(", ")}`,
390
+ direction: "inbound",
391
+ });
392
+ }
393
+ }
394
+ else {
395
+ // Step 2b: Assume that the endpoints are in sequential order
396
+ ctx.logNode(node.id, {
397
+ endpoint: this.endpointIndex,
398
+ message: `does not support EndPointFind, assuming that endpoints are sequential`,
399
+ direction: "none",
400
+ });
401
+ addSequentialEndpoints();
402
+ }
403
+ // Step 2.5: remove ignored endpoints
404
+ if (removeEndpoints?.length) {
405
+ ctx.logNode(node.id, {
406
+ endpoint: this.endpointIndex,
407
+ message: `The following endpoints are ignored through the config file: ${removeEndpoints.join(", ")}`,
408
+ direction: "none",
409
+ });
410
+ allEndpoints = allEndpoints.filter((e) => !removeEndpoints.includes(e));
411
+ }
412
+ // Step 3: Query endpoints
413
+ let hasQueriedCapabilities = false;
414
+ for (const endpoint of allEndpoints) {
415
+ if (endpoint > multiResponse.individualEndpointCount
416
+ && ccVersion >= 4) {
417
+ // Find members of aggregated end point
418
+ ctx.logNode(node.id, {
419
+ endpoint: this.endpointIndex,
420
+ message: `querying members of aggregated endpoint #${endpoint}...`,
421
+ direction: "outbound",
422
+ });
423
+ const members = await api.getAggregatedMembers(endpoint);
424
+ if (members) {
425
+ ctx.logNode(node.id, {
426
+ endpoint: this.endpointIndex,
427
+ message: `aggregated endpoint #${endpoint} has members ${members
428
+ .map(String)
429
+ .join(", ")}`,
430
+ direction: "inbound",
431
+ });
432
+ }
433
+ }
434
+ // When the device reports identical capabilities for all endpoints,
435
+ // we don't need to query them all
436
+ if (multiResponse.identicalCapabilities && hasQueriedCapabilities) {
437
+ ctx.logNode(node.id, {
438
+ endpoint: this.endpointIndex,
439
+ message: `all endpoints identical, skipping capability query for endpoint #${endpoint}...`,
440
+ direction: "none",
441
+ });
442
+ // copy the capabilities from the first endpoint
443
+ const devClass = valueDB.getValue(MultiChannelCCValues.endpointDeviceClass.endpoint(allEndpoints[0]));
444
+ valueDB.setValue(MultiChannelCCValues.endpointDeviceClass.endpoint(endpoint), devClass);
445
+ const ep1Caps = valueDB.getValue(MultiChannelCCValues.endpointCCs.endpoint(allEndpoints[0]));
446
+ valueDB.setValue(MultiChannelCCValues.endpointCCs.endpoint(endpoint), [...ep1Caps]);
447
+ continue;
448
+ }
449
+ ctx.logNode(node.id, {
450
+ endpoint: this.endpointIndex,
451
+ message: `querying capabilities for endpoint #${endpoint}...`,
452
+ direction: "outbound",
453
+ });
454
+ const caps = await api.getEndpointCapabilities(endpoint);
455
+ if (caps) {
456
+ hasQueriedCapabilities = true;
457
+ logMessage =
458
+ `received response for endpoint capabilities (#${endpoint}):
459
+ generic device class: ${caps.generic.label}
460
+ specific device class: ${caps.specific.label}
461
+ is dynamic end point: ${caps.isDynamic}
462
+ supported CCs:`;
463
+ for (const cc of caps.supportedCCs) {
464
+ logMessage += `\n · ${getCCName(cc)}`;
465
+ }
466
+ ctx.logNode(node.id, {
467
+ endpoint: this.endpointIndex,
468
+ message: logMessage,
469
+ direction: "inbound",
470
+ });
471
+ }
472
+ else {
473
+ ctx.logNode(node.id, {
474
+ endpoint: this.endpointIndex,
475
+ message: `Querying endpoint #${endpoint} capabilities timed out, aborting interview...`,
476
+ level: "warn",
477
+ });
478
+ return this.throwMissingCriticalInterviewResponse();
479
+ }
480
+ }
481
+ // Now that all endpoints have been interviewed, remember which ones are there
482
+ // But first figure out if they seem unnecessary and if they do, which ones should be preserved
483
+ if (!multiResponse.identicalCapabilities
484
+ && areEndpointsUnnecessary(ctx, node.id, allEndpoints)) {
485
+ const preserve = ctx.getDeviceConfig?.(node.id)?.compat
486
+ ?.preserveEndpoints;
487
+ if (!preserve) {
488
+ allEndpoints = [];
489
+ ctx.logNode(node.id, {
490
+ message: `Endpoints seem unnecessary b/c they have different device classes, ignoring all...`,
491
+ });
492
+ }
493
+ else if (preserve === "*") {
494
+ // preserve all endpoints, do nothing
495
+ ctx.logNode(node.id, {
496
+ message: `Endpoints seem unnecessary, but are configured to be preserved.`,
497
+ });
498
+ }
499
+ else {
500
+ allEndpoints = allEndpoints.filter((ep) => preserve.includes(ep));
501
+ ctx.logNode(node.id, {
502
+ message: `Endpoints seem unnecessary, but endpoints ${allEndpoints.join(", ")} are configured to be preserved.`,
503
+ });
504
+ }
505
+ }
506
+ this.setValue(ctx, MultiChannelCCValues.endpointIndizes, allEndpoints);
507
+ // Remember that the interview is complete
508
+ this.setInterviewComplete(ctx, true);
509
+ }
510
+ async interviewV1(ctx) {
511
+ const node = this.getNode(ctx);
512
+ const endpoint = this.getEndpoint(ctx);
513
+ const api = CCAPI.create(CommandClasses["Multi Channel"], ctx, endpoint);
514
+ const valueDB = this.getValueDB(ctx);
515
+ // V1 works the opposite way - we scan all CCs and remember how many
516
+ // endpoints they have
517
+ const supportedCCs = [...node.getCCs()]
518
+ // Don't query CCs the node only controls
519
+ .filter(([, info]) => info.isSupported)
520
+ .map(([cc]) => cc)
521
+ // Don't query CCs that want to skip the endpoint interview
522
+ .filter((cc) => !CommandClass.createInstanceUnchecked(node, cc)?.skipEndpointInterview());
523
+ const endpointCounts = new Map();
524
+ for (const ccId of supportedCCs) {
525
+ ctx.logNode(node.id, {
526
+ message: `Querying endpoint count for CommandClass ${getCCName(ccId)}...`,
527
+ direction: "outbound",
528
+ });
529
+ const endpointCount = await api.getEndpointCountV1(ccId);
530
+ if (endpointCount != undefined) {
531
+ endpointCounts.set(ccId, endpointCount);
532
+ ctx.logNode(node.id, {
533
+ message: `CommandClass ${getCCName(ccId)} has ${endpointCount} endpoints`,
534
+ direction: "inbound",
535
+ });
536
+ }
537
+ }
538
+ // Store the collected information
539
+ // We have only individual and no dynamic and no aggregated endpoints
540
+ const numEndpoints = Math.max(...endpointCounts.values());
541
+ this.setValue(ctx, MultiChannelCCValues.endpointCountIsDynamic, false);
542
+ this.setValue(ctx, MultiChannelCCValues.aggregatedEndpointCount, 0);
543
+ this.setValue(ctx, MultiChannelCCValues.individualEndpointCount, numEndpoints);
544
+ // Since we queried all CCs separately, we can assume that all
545
+ // endpoints have different capabilities
546
+ this.setValue(ctx, MultiChannelCCValues.endpointsHaveIdenticalCapabilities, false);
547
+ for (let endpoint = 1; endpoint <= numEndpoints; endpoint++) {
548
+ // Check which CCs exist on this endpoint
549
+ const endpointCCs = [...endpointCounts.entries()]
550
+ .filter(([, ccEndpoints]) => ccEndpoints >= endpoint)
551
+ .map(([ccId]) => ccId);
552
+ // And store it per endpoint
553
+ valueDB.setValue(MultiChannelCCValues.endpointCCs.endpoint(endpoint), endpointCCs);
554
+ }
555
+ // Remember that the interview is complete
556
+ this.setInterviewComplete(ctx, true);
557
+ }
558
+ };
559
+ return MultiChannelCC = _classThis;
560
+ })();
561
+ export { MultiChannelCC };
562
+ let MultiChannelCCEndPointReport = (() => {
563
+ let _classDecorators = [CCCommand(MultiChannelCommand.EndPointReport), ccValueProperty("countIsDynamic", MultiChannelCCValues.endpointCountIsDynamic), ccValueProperty("identicalCapabilities", MultiChannelCCValues.endpointsHaveIdenticalCapabilities), ccValueProperty("individualCount", MultiChannelCCValues.individualEndpointCount), ccValueProperty("aggregatedCount", MultiChannelCCValues.aggregatedEndpointCount)];
564
+ let _classDescriptor;
565
+ let _classExtraInitializers = [];
566
+ let _classThis;
567
+ let _classSuper = MultiChannelCC;
568
+ var MultiChannelCCEndPointReport = class extends _classSuper {
569
+ static { _classThis = this; }
570
+ static {
571
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
572
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
573
+ MultiChannelCCEndPointReport = _classThis = _classDescriptor.value;
574
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
575
+ __runInitializers(_classThis, _classExtraInitializers);
576
+ }
577
+ constructor(options) {
578
+ super(options);
579
+ this.countIsDynamic = options.countIsDynamic;
580
+ this.identicalCapabilities = options.identicalCapabilities;
581
+ this.individualCount = options.individualCount;
582
+ this.aggregatedCount = options.aggregatedCount;
583
+ }
584
+ static from(raw, ctx) {
585
+ validatePayload(raw.payload.length >= 2);
586
+ const countIsDynamic = !!(raw.payload[0] & 0b10000000);
587
+ const identicalCapabilities = !!(raw.payload[0] & 0b01000000);
588
+ const individualCount = raw.payload[1] & 0b01111111;
589
+ let aggregatedCount;
590
+ if (raw.payload.length >= 3) {
591
+ aggregatedCount = raw.payload[2] & 0b01111111;
592
+ }
593
+ return new this({
594
+ nodeId: ctx.sourceNodeId,
595
+ countIsDynamic,
596
+ identicalCapabilities,
597
+ individualCount,
598
+ aggregatedCount,
599
+ });
600
+ }
601
+ countIsDynamic;
602
+ identicalCapabilities;
603
+ individualCount;
604
+ aggregatedCount;
605
+ serialize(ctx) {
606
+ this.payload = Bytes.from([
607
+ (this.countIsDynamic ? 0b10000000 : 0)
608
+ | (this.identicalCapabilities ? 0b01000000 : 0),
609
+ this.individualCount & 0b01111111,
610
+ this.aggregatedCount ?? 0,
611
+ ]);
612
+ return super.serialize(ctx);
613
+ }
614
+ toLogEntry(ctx) {
615
+ const message = {
616
+ "endpoint count (individual)": this.individualCount,
617
+ "count is dynamic": this.countIsDynamic,
618
+ "identical capabilities": this.identicalCapabilities,
619
+ };
620
+ if (this.aggregatedCount != undefined) {
621
+ message["endpoint count (aggregated)"] = this.aggregatedCount;
622
+ }
623
+ const ret = {
624
+ ...super.toLogEntry(ctx),
625
+ message,
626
+ };
627
+ return ret;
628
+ }
629
+ };
630
+ return MultiChannelCCEndPointReport = _classThis;
631
+ })();
632
+ export { MultiChannelCCEndPointReport };
633
+ let MultiChannelCCEndPointGet = (() => {
634
+ let _classDecorators = [CCCommand(MultiChannelCommand.EndPointGet), expectedCCResponse(MultiChannelCCEndPointReport)];
635
+ let _classDescriptor;
636
+ let _classExtraInitializers = [];
637
+ let _classThis;
638
+ let _classSuper = MultiChannelCC;
639
+ var MultiChannelCCEndPointGet = class extends _classSuper {
640
+ static { _classThis = this; }
641
+ static {
642
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
643
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
644
+ MultiChannelCCEndPointGet = _classThis = _classDescriptor.value;
645
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
646
+ __runInitializers(_classThis, _classExtraInitializers);
647
+ }
648
+ };
649
+ return MultiChannelCCEndPointGet = _classThis;
650
+ })();
651
+ export { MultiChannelCCEndPointGet };
652
+ let MultiChannelCCCapabilityReport = (() => {
653
+ let _classDecorators = [CCCommand(MultiChannelCommand.CapabilityReport)];
654
+ let _classDescriptor;
655
+ let _classExtraInitializers = [];
656
+ let _classThis;
657
+ let _classSuper = MultiChannelCC;
658
+ var MultiChannelCCCapabilityReport = class extends _classSuper {
659
+ static { _classThis = this; }
660
+ static {
661
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
662
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
663
+ MultiChannelCCCapabilityReport = _classThis = _classDescriptor.value;
664
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
665
+ __runInitializers(_classThis, _classExtraInitializers);
666
+ }
667
+ constructor(options) {
668
+ super(options);
669
+ this.endpointIndex = options.endpointIndex;
670
+ this.genericDeviceClass = options.genericDeviceClass;
671
+ this.specificDeviceClass = options.specificDeviceClass;
672
+ this.supportedCCs = options.supportedCCs;
673
+ this.isDynamic = options.isDynamic;
674
+ this.wasRemoved = options.wasRemoved;
675
+ }
676
+ static from(raw, ctx) {
677
+ // Only validate the bytes we expect to see here
678
+ // parseApplicationNodeInformation does its own validation
679
+ validatePayload(raw.payload.length >= 1);
680
+ const endpointIndex = raw.payload[0] & 0b01111111;
681
+ const isDynamic = !!(raw.payload[0] & 0b10000000);
682
+ const NIF = parseApplicationNodeInformation(raw.payload.subarray(1));
683
+ const genericDeviceClass = NIF.genericDeviceClass;
684
+ const specificDeviceClass = NIF.specificDeviceClass;
685
+ const supportedCCs = NIF.supportedCCs;
686
+ // Removal reports have very specific information
687
+ const wasRemoved = isDynamic
688
+ && genericDeviceClass === 0xff // "Non-Interoperable"
689
+ && specificDeviceClass === 0x00;
690
+ return new this({
691
+ nodeId: ctx.sourceNodeId,
692
+ endpointIndex,
693
+ isDynamic,
694
+ genericDeviceClass,
695
+ specificDeviceClass,
696
+ supportedCCs,
697
+ wasRemoved,
698
+ });
699
+ }
700
+ persistValues(ctx) {
701
+ if (!super.persistValues(ctx))
702
+ return false;
703
+ const deviceClassValue = MultiChannelCCValues.endpointDeviceClass;
704
+ const ccsValue = MultiChannelCCValues.endpointCCs;
705
+ if (this.wasRemoved) {
706
+ this.removeValue(ctx, deviceClassValue);
707
+ this.removeValue(ctx, ccsValue);
708
+ }
709
+ else {
710
+ this.setValue(ctx, deviceClassValue, {
711
+ generic: this.genericDeviceClass,
712
+ specific: this.specificDeviceClass,
713
+ });
714
+ this.setValue(ctx, ccsValue, this.supportedCCs);
715
+ }
716
+ return true;
717
+ }
718
+ // The endpoint index must be overridden to be able to attribute the information to the correct endpoint
719
+ genericDeviceClass;
720
+ specificDeviceClass;
721
+ supportedCCs;
722
+ isDynamic;
723
+ wasRemoved;
724
+ serialize(ctx) {
725
+ this.payload = Bytes.concat([
726
+ Bytes.from([
727
+ (this.endpointIndex & 0b01111111)
728
+ | (this.isDynamic ? 0b10000000 : 0),
729
+ ]),
730
+ encodeApplicationNodeInformation(this),
731
+ ]);
732
+ return super.serialize(ctx);
733
+ }
734
+ toLogEntry(ctx) {
735
+ return {
736
+ ...super.toLogEntry(ctx),
737
+ message: {
738
+ "endpoint index": this.endpointIndex,
739
+ "generic device class": getGenericDeviceClass(this.genericDeviceClass).label,
740
+ "specific device class": getSpecificDeviceClass(this.genericDeviceClass, this.specificDeviceClass).label,
741
+ "is dynamic end point": this.isDynamic,
742
+ "supported CCs": this.supportedCCs
743
+ .map((cc) => `\n· ${getCCName(cc)}`)
744
+ .join(""),
745
+ },
746
+ };
747
+ }
748
+ };
749
+ return MultiChannelCCCapabilityReport = _classThis;
750
+ })();
751
+ export { MultiChannelCCCapabilityReport };
752
+ function testResponseForMultiChannelCapabilityGet(sent, received) {
753
+ return received.endpointIndex === sent.requestedEndpoint;
754
+ }
755
+ let MultiChannelCCCapabilityGet = (() => {
756
+ let _classDecorators = [CCCommand(MultiChannelCommand.CapabilityGet), expectedCCResponse(MultiChannelCCCapabilityReport, testResponseForMultiChannelCapabilityGet)];
757
+ let _classDescriptor;
758
+ let _classExtraInitializers = [];
759
+ let _classThis;
760
+ let _classSuper = MultiChannelCC;
761
+ var MultiChannelCCCapabilityGet = class extends _classSuper {
762
+ static { _classThis = this; }
763
+ static {
764
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
765
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
766
+ MultiChannelCCCapabilityGet = _classThis = _classDescriptor.value;
767
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
768
+ __runInitializers(_classThis, _classExtraInitializers);
769
+ }
770
+ constructor(options) {
771
+ super(options);
772
+ this.requestedEndpoint = options.requestedEndpoint;
773
+ }
774
+ static from(raw, ctx) {
775
+ validatePayload(raw.payload.length >= 1);
776
+ const requestedEndpoint = raw.payload[0] & 0b01111111;
777
+ return new this({
778
+ nodeId: ctx.sourceNodeId,
779
+ requestedEndpoint,
780
+ });
781
+ }
782
+ requestedEndpoint;
783
+ serialize(ctx) {
784
+ this.payload = Bytes.from([this.requestedEndpoint & 0b01111111]);
785
+ return super.serialize(ctx);
786
+ }
787
+ toLogEntry(ctx) {
788
+ return {
789
+ ...super.toLogEntry(ctx),
790
+ message: { endpoint: this.requestedEndpoint },
791
+ };
792
+ }
793
+ };
794
+ return MultiChannelCCCapabilityGet = _classThis;
795
+ })();
796
+ export { MultiChannelCCCapabilityGet };
797
+ let MultiChannelCCEndPointFindReport = (() => {
798
+ let _classDecorators = [CCCommand(MultiChannelCommand.EndPointFindReport)];
799
+ let _classDescriptor;
800
+ let _classExtraInitializers = [];
801
+ let _classThis;
802
+ let _classSuper = MultiChannelCC;
803
+ var MultiChannelCCEndPointFindReport = class extends _classSuper {
804
+ static { _classThis = this; }
805
+ static {
806
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
807
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
808
+ MultiChannelCCEndPointFindReport = _classThis = _classDescriptor.value;
809
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
810
+ __runInitializers(_classThis, _classExtraInitializers);
811
+ }
812
+ constructor(options) {
813
+ super(options);
814
+ this.genericClass = options.genericClass;
815
+ this.specificClass = options.specificClass;
816
+ this.foundEndpoints = options.foundEndpoints;
817
+ this.reportsToFollow = options.reportsToFollow;
818
+ }
819
+ static from(raw, ctx) {
820
+ validatePayload(raw.payload.length >= 3);
821
+ const reportsToFollow = raw.payload[0];
822
+ const genericClass = raw.payload[1];
823
+ const specificClass = raw.payload[2];
824
+ // Some devices omit the endpoint list although that is not allowed in the specs
825
+ // therefore don't validatePayload here.
826
+ const foundEndpoints = [...raw.payload.subarray(3)]
827
+ .map((e) => e & 0b01111111)
828
+ .filter((e) => e !== 0);
829
+ return new this({
830
+ nodeId: ctx.sourceNodeId,
831
+ reportsToFollow,
832
+ genericClass,
833
+ specificClass,
834
+ foundEndpoints,
835
+ });
836
+ }
837
+ genericClass;
838
+ specificClass;
839
+ foundEndpoints;
840
+ reportsToFollow;
841
+ serialize(ctx) {
842
+ this.payload = Bytes.concat([
843
+ Bytes.from([
844
+ this.reportsToFollow,
845
+ this.genericClass,
846
+ this.specificClass,
847
+ ]),
848
+ Bytes.from(this.foundEndpoints.map((e) => e & 0b01111111)),
849
+ ]);
850
+ return super.serialize(ctx);
851
+ }
852
+ getPartialCCSessionId() {
853
+ // Distinguish sessions by the requested device classes
854
+ return {
855
+ genericClass: this.genericClass,
856
+ specificClass: this.specificClass,
857
+ };
858
+ }
859
+ expectMoreMessages() {
860
+ return this.reportsToFollow > 0;
861
+ }
862
+ mergePartialCCs(partials, _ctx) {
863
+ // Concat the list of end points
864
+ this.foundEndpoints = [...partials, this]
865
+ .map((report) => report.foundEndpoints)
866
+ .reduce((prev, cur) => prev.concat(...cur), []);
867
+ }
868
+ toLogEntry(ctx) {
869
+ return {
870
+ ...super.toLogEntry(ctx),
871
+ message: {
872
+ "generic device class": getGenericDeviceClass(this.genericClass).label,
873
+ "specific device class": getSpecificDeviceClass(this.genericClass, this.specificClass).label,
874
+ "found endpoints": this.foundEndpoints.join(", "),
875
+ "# of reports to follow": this.reportsToFollow,
876
+ },
877
+ };
878
+ }
879
+ };
880
+ return MultiChannelCCEndPointFindReport = _classThis;
881
+ })();
882
+ export { MultiChannelCCEndPointFindReport };
883
+ let MultiChannelCCEndPointFind = (() => {
884
+ let _classDecorators = [CCCommand(MultiChannelCommand.EndPointFind), expectedCCResponse(MultiChannelCCEndPointFindReport)];
885
+ let _classDescriptor;
886
+ let _classExtraInitializers = [];
887
+ let _classThis;
888
+ let _classSuper = MultiChannelCC;
889
+ var MultiChannelCCEndPointFind = class extends _classSuper {
890
+ static { _classThis = this; }
891
+ static {
892
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
893
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
894
+ MultiChannelCCEndPointFind = _classThis = _classDescriptor.value;
895
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
896
+ __runInitializers(_classThis, _classExtraInitializers);
897
+ }
898
+ constructor(options) {
899
+ super(options);
900
+ this.genericClass = options.genericClass;
901
+ this.specificClass = options.specificClass;
902
+ }
903
+ static from(raw, ctx) {
904
+ validatePayload(raw.payload.length >= 2);
905
+ const genericClass = raw.payload[0];
906
+ const specificClass = raw.payload[1];
907
+ return new this({
908
+ nodeId: ctx.sourceNodeId,
909
+ genericClass,
910
+ specificClass,
911
+ });
912
+ }
913
+ genericClass;
914
+ specificClass;
915
+ serialize(ctx) {
916
+ this.payload = Bytes.from([this.genericClass, this.specificClass]);
917
+ return super.serialize(ctx);
918
+ }
919
+ toLogEntry(ctx) {
920
+ return {
921
+ ...super.toLogEntry(ctx),
922
+ message: {
923
+ "generic device class": getGenericDeviceClass(this.genericClass).label,
924
+ "specific device class": getSpecificDeviceClass(this.genericClass, this.specificClass).label,
925
+ },
926
+ };
927
+ }
928
+ };
929
+ return MultiChannelCCEndPointFind = _classThis;
930
+ })();
931
+ export { MultiChannelCCEndPointFind };
932
+ let MultiChannelCCAggregatedMembersReport = (() => {
933
+ let _classDecorators = [CCCommand(MultiChannelCommand.AggregatedMembersReport), ccValueProperty("members", MultiChannelCCValues.aggregatedEndpointMembers, (self) => [self.aggregatedEndpointIndex])];
934
+ let _classDescriptor;
935
+ let _classExtraInitializers = [];
936
+ let _classThis;
937
+ let _classSuper = MultiChannelCC;
938
+ var MultiChannelCCAggregatedMembersReport = class extends _classSuper {
939
+ static { _classThis = this; }
940
+ static {
941
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
942
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
943
+ MultiChannelCCAggregatedMembersReport = _classThis = _classDescriptor.value;
944
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
945
+ __runInitializers(_classThis, _classExtraInitializers);
946
+ }
947
+ constructor(options) {
948
+ super(options);
949
+ // TODO: Check implementation:
950
+ this.aggregatedEndpointIndex = options.aggregatedEndpointIndex;
951
+ this.members = options.members;
952
+ }
953
+ static from(raw, ctx) {
954
+ validatePayload(raw.payload.length >= 2);
955
+ const aggregatedEndpointIndex = raw.payload[0] & 0b0111_1111;
956
+ const bitMaskLength = raw.payload[1];
957
+ validatePayload(raw.payload.length >= 2 + bitMaskLength);
958
+ const bitMask = raw.payload.subarray(2, 2 + bitMaskLength);
959
+ const members = parseBitMask(bitMask);
960
+ return new this({
961
+ nodeId: ctx.sourceNodeId,
962
+ aggregatedEndpointIndex,
963
+ members,
964
+ });
965
+ }
966
+ aggregatedEndpointIndex;
967
+ members;
968
+ toLogEntry(ctx) {
969
+ return {
970
+ ...super.toLogEntry(ctx),
971
+ message: {
972
+ "aggregated endpoint": this.aggregatedEndpointIndex,
973
+ members: this.members.join(", "),
974
+ },
975
+ };
976
+ }
977
+ };
978
+ return MultiChannelCCAggregatedMembersReport = _classThis;
979
+ })();
980
+ export { MultiChannelCCAggregatedMembersReport };
981
+ let MultiChannelCCAggregatedMembersGet = (() => {
982
+ let _classDecorators = [CCCommand(MultiChannelCommand.AggregatedMembersGet), expectedCCResponse(MultiChannelCCAggregatedMembersReport)];
983
+ let _classDescriptor;
984
+ let _classExtraInitializers = [];
985
+ let _classThis;
986
+ let _classSuper = MultiChannelCC;
987
+ var MultiChannelCCAggregatedMembersGet = class extends _classSuper {
988
+ static { _classThis = this; }
989
+ static {
990
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
991
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
992
+ MultiChannelCCAggregatedMembersGet = _classThis = _classDescriptor.value;
993
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
994
+ __runInitializers(_classThis, _classExtraInitializers);
995
+ }
996
+ constructor(options) {
997
+ super(options);
998
+ this.requestedEndpoint = options.requestedEndpoint;
999
+ }
1000
+ static from(_raw, _ctx) {
1001
+ // TODO: Deserialize payload
1002
+ throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);
1003
+ // return new MultiChannelCCAggregatedMembersGet({
1004
+ // nodeId: ctx.sourceNodeId,
1005
+ // });
1006
+ }
1007
+ requestedEndpoint;
1008
+ serialize(ctx) {
1009
+ this.payload = Bytes.from([this.requestedEndpoint & 0b0111_1111]);
1010
+ return super.serialize(ctx);
1011
+ }
1012
+ toLogEntry(ctx) {
1013
+ return {
1014
+ ...super.toLogEntry(ctx),
1015
+ message: { endpoint: this.requestedEndpoint },
1016
+ };
1017
+ }
1018
+ };
1019
+ return MultiChannelCCAggregatedMembersGet = _classThis;
1020
+ })();
1021
+ export { MultiChannelCCAggregatedMembersGet };
1022
+ // SDS13783: A receiving node MAY respond to a Multi Channel encapsulated command if the Destination
1023
+ // End Point field specifies a single End Point. In that case, the response MUST be Multi Channel
1024
+ // encapsulated.
1025
+ // A receiving node MUST NOT respond to a Multi Channel encapsulated command if the
1026
+ // Destination End Point field specifies multiple End Points via bit mask addressing.
1027
+ function getCCResponseForCommandEncapsulation(sent) {
1028
+ if (typeof sent.destination === "number"
1029
+ && sent.encapsulated.expectsCCResponse()) {
1030
+ // Allow both versions of the encapsulation command
1031
+ // Our implementation check is a bit too strict, so change the return type
1032
+ return [
1033
+ MultiChannelCCCommandEncapsulation,
1034
+ MultiChannelCCV1CommandEncapsulation,
1035
+ ];
1036
+ }
1037
+ }
1038
+ function testResponseForCommandEncapsulation(sent, received) {
1039
+ if (typeof sent.destination === "number"
1040
+ && sent.destination === received.endpointIndex) {
1041
+ return "checkEncapsulated";
1042
+ }
1043
+ return false;
1044
+ }
1045
+ let MultiChannelCCCommandEncapsulation = (() => {
1046
+ let _classDecorators = [CCCommand(MultiChannelCommand.CommandEncapsulation), expectedCCResponse(getCCResponseForCommandEncapsulation, testResponseForCommandEncapsulation)];
1047
+ let _classDescriptor;
1048
+ let _classExtraInitializers = [];
1049
+ let _classThis;
1050
+ let _classSuper = MultiChannelCC;
1051
+ var MultiChannelCCCommandEncapsulation = class extends _classSuper {
1052
+ static { _classThis = this; }
1053
+ static {
1054
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1055
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1056
+ MultiChannelCCCommandEncapsulation = _classThis = _classDescriptor.value;
1057
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1058
+ __runInitializers(_classThis, _classExtraInitializers);
1059
+ }
1060
+ constructor(options) {
1061
+ super(options);
1062
+ this.encapsulated = options.encapsulated;
1063
+ this.encapsulated.encapsulatingCC = this;
1064
+ // Propagate the endpoint index all the way down
1065
+ let cur = this;
1066
+ while (cur) {
1067
+ if (isMultiEncapsulatingCommandClass(cur)) {
1068
+ for (const cc of cur.encapsulated) {
1069
+ cc.endpointIndex = this.endpointIndex;
1070
+ }
1071
+ break;
1072
+ }
1073
+ else if (isEncapsulatingCommandClass(cur)) {
1074
+ cur.encapsulated.endpointIndex = this.endpointIndex;
1075
+ cur = cur.encapsulated;
1076
+ }
1077
+ else {
1078
+ break;
1079
+ }
1080
+ }
1081
+ this.destination = options.destination;
1082
+ }
1083
+ static from(raw, ctx) {
1084
+ validatePayload(raw.payload.length >= 2);
1085
+ let endpointIndex;
1086
+ let destination;
1087
+ if (ctx.getDeviceConfig?.(ctx.sourceNodeId)
1088
+ ?.compat?.treatDestinationEndpointAsSource) {
1089
+ // This device incorrectly uses the destination field to indicate the source endpoint
1090
+ endpointIndex = raw.payload[1] & 0b0111_1111;
1091
+ destination = 0;
1092
+ }
1093
+ else {
1094
+ // Parse normally
1095
+ endpointIndex = raw.payload[0] & 0b0111_1111;
1096
+ const isBitMask = !!(raw.payload[1] & 0b1000_0000);
1097
+ destination = raw.payload[1] & 0b0111_1111;
1098
+ if (isBitMask) {
1099
+ destination = parseBitMask(Bytes.from([destination]));
1100
+ }
1101
+ }
1102
+ // No need to validate further, each CC does it for itself
1103
+ const encapsulated = CommandClass.parse(raw.payload.subarray(2), ctx);
1104
+ return new this({
1105
+ nodeId: ctx.sourceNodeId,
1106
+ endpointIndex,
1107
+ destination,
1108
+ encapsulated,
1109
+ });
1110
+ }
1111
+ encapsulated;
1112
+ /** The destination end point (0-127) or an array of destination end points (1-7) */
1113
+ destination;
1114
+ serialize(ctx) {
1115
+ if (ctx.getDeviceConfig?.(this.nodeId)?.compat
1116
+ ?.treatDestinationEndpointAsSource) {
1117
+ // This device incorrectly responds from the endpoint we've passed as our source endpoint
1118
+ if (typeof this.destination === "number") {
1119
+ this.endpointIndex = this.destination;
1120
+ }
1121
+ }
1122
+ const destination = typeof this.destination === "number"
1123
+ // The destination is a single number
1124
+ ? this.destination & 0b0111_1111
1125
+ // The destination is a bit mask
1126
+ : encodeBitMask(this.destination, 7)[0] | 0b1000_0000;
1127
+ this.payload = Bytes.concat([
1128
+ Bytes.from([this.endpointIndex & 0b0111_1111, destination]),
1129
+ this.encapsulated.serialize(ctx),
1130
+ ]);
1131
+ return super.serialize(ctx);
1132
+ }
1133
+ toLogEntry(ctx) {
1134
+ return {
1135
+ ...super.toLogEntry(ctx),
1136
+ message: {
1137
+ source: this.endpointIndex,
1138
+ destination: typeof this.destination === "number"
1139
+ ? this.destination
1140
+ : this.destination.join(", "),
1141
+ },
1142
+ };
1143
+ }
1144
+ computeEncapsulationOverhead() {
1145
+ // Multi Channel CC adds two bytes for the source and destination endpoint
1146
+ return super.computeEncapsulationOverhead() + 2;
1147
+ }
1148
+ };
1149
+ return MultiChannelCCCommandEncapsulation = _classThis;
1150
+ })();
1151
+ export { MultiChannelCCCommandEncapsulation };
1152
+ let MultiChannelCCV1Report = (() => {
1153
+ let _classDecorators = [CCCommand(MultiChannelCommand.ReportV1)];
1154
+ let _classDescriptor;
1155
+ let _classExtraInitializers = [];
1156
+ let _classThis;
1157
+ let _classSuper = MultiChannelCC;
1158
+ var MultiChannelCCV1Report = class extends _classSuper {
1159
+ static { _classThis = this; }
1160
+ static {
1161
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1162
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1163
+ MultiChannelCCV1Report = _classThis = _classDescriptor.value;
1164
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1165
+ __runInitializers(_classThis, _classExtraInitializers);
1166
+ }
1167
+ constructor(options) {
1168
+ super(options);
1169
+ // TODO: Check implementation:
1170
+ this.requestedCC = options.requestedCC;
1171
+ this.endpointCount = options.endpointCount;
1172
+ }
1173
+ static from(raw, ctx) {
1174
+ // V1 won't be extended in the future, so do an exact check
1175
+ validatePayload(raw.payload.length === 2);
1176
+ const requestedCC = raw.payload[0];
1177
+ const endpointCount = raw.payload[1];
1178
+ return new this({
1179
+ nodeId: ctx.sourceNodeId,
1180
+ requestedCC,
1181
+ endpointCount,
1182
+ });
1183
+ }
1184
+ requestedCC;
1185
+ endpointCount;
1186
+ toLogEntry(ctx) {
1187
+ return {
1188
+ ...super.toLogEntry(ctx),
1189
+ message: {
1190
+ CC: getCCName(this.requestedCC),
1191
+ "# of endpoints": this.endpointCount,
1192
+ },
1193
+ };
1194
+ }
1195
+ };
1196
+ return MultiChannelCCV1Report = _classThis;
1197
+ })();
1198
+ export { MultiChannelCCV1Report };
1199
+ function testResponseForMultiChannelV1Get(sent, received) {
1200
+ return sent.requestedCC === received.requestedCC;
1201
+ }
1202
+ let MultiChannelCCV1Get = (() => {
1203
+ let _classDecorators = [CCCommand(MultiChannelCommand.GetV1), expectedCCResponse(MultiChannelCCV1Report, testResponseForMultiChannelV1Get)];
1204
+ let _classDescriptor;
1205
+ let _classExtraInitializers = [];
1206
+ let _classThis;
1207
+ let _classSuper = MultiChannelCC;
1208
+ var MultiChannelCCV1Get = class extends _classSuper {
1209
+ static { _classThis = this; }
1210
+ static {
1211
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1212
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1213
+ MultiChannelCCV1Get = _classThis = _classDescriptor.value;
1214
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1215
+ __runInitializers(_classThis, _classExtraInitializers);
1216
+ }
1217
+ constructor(options) {
1218
+ super(options);
1219
+ this.requestedCC = options.requestedCC;
1220
+ }
1221
+ static from(_raw, _ctx) {
1222
+ // TODO: Deserialize payload
1223
+ throw new ZWaveError(`${this.name}: deserialization not implemented`, ZWaveErrorCodes.Deserialization_NotImplemented);
1224
+ // return new MultiChannelCCV1Get({
1225
+ // nodeId: ctx.sourceNodeId,
1226
+ // });
1227
+ }
1228
+ requestedCC;
1229
+ serialize(ctx) {
1230
+ this.payload = Bytes.from([this.requestedCC]);
1231
+ return super.serialize(ctx);
1232
+ }
1233
+ toLogEntry(ctx) {
1234
+ return {
1235
+ ...super.toLogEntry(ctx),
1236
+ message: { CC: getCCName(this.requestedCC) },
1237
+ };
1238
+ }
1239
+ };
1240
+ return MultiChannelCCV1Get = _classThis;
1241
+ })();
1242
+ export { MultiChannelCCV1Get };
1243
+ function getResponseForV1CommandEncapsulation(sent) {
1244
+ if (sent.encapsulated.expectsCCResponse()) {
1245
+ return MultiChannelCCV1CommandEncapsulation;
1246
+ }
1247
+ }
1248
+ function testResponseForV1CommandEncapsulation(sent, received) {
1249
+ if (sent.endpointIndex === received.endpointIndex) {
1250
+ return "checkEncapsulated";
1251
+ }
1252
+ return false;
1253
+ }
1254
+ let MultiChannelCCV1CommandEncapsulation = (() => {
1255
+ let _classDecorators = [CCCommand(MultiChannelCommand.CommandEncapsulationV1), expectedCCResponse(getResponseForV1CommandEncapsulation, testResponseForV1CommandEncapsulation)];
1256
+ let _classDescriptor;
1257
+ let _classExtraInitializers = [];
1258
+ let _classThis;
1259
+ let _classSuper = MultiChannelCC;
1260
+ var MultiChannelCCV1CommandEncapsulation = class extends _classSuper {
1261
+ static { _classThis = this; }
1262
+ static {
1263
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
1264
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
1265
+ MultiChannelCCV1CommandEncapsulation = _classThis = _classDescriptor.value;
1266
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
1267
+ __runInitializers(_classThis, _classExtraInitializers);
1268
+ }
1269
+ constructor(options) {
1270
+ super(options);
1271
+ this.encapsulated = options.encapsulated;
1272
+ // No need to distinguish between source and destination in V1
1273
+ this.endpointIndex = this.encapsulated.endpointIndex;
1274
+ }
1275
+ static from(raw, ctx) {
1276
+ validatePayload(raw.payload.length >= 1);
1277
+ const endpointIndex = raw.payload[0];
1278
+ // Some devices send invalid reports, i.e. MultiChannelCCV1CommandEncapsulation, but with V2+ binary format
1279
+ // This would be a NoOp CC, but it makes no sense to encapsulate that.
1280
+ const isV2withV1Header = raw.payload.length >= 2
1281
+ && raw.payload[1] === 0x00;
1282
+ // No need to validate further, each CC does it for itself
1283
+ const encapsulated = CommandClass.parse(raw.payload.subarray(isV2withV1Header ? 2 : 1), ctx);
1284
+ return new this({
1285
+ nodeId: ctx.sourceNodeId,
1286
+ endpointIndex,
1287
+ encapsulated,
1288
+ });
1289
+ }
1290
+ encapsulated;
1291
+ serialize(ctx) {
1292
+ this.payload = Bytes.concat([
1293
+ Bytes.from([this.endpointIndex]),
1294
+ this.encapsulated.serialize(ctx),
1295
+ ]);
1296
+ return super.serialize(ctx);
1297
+ }
1298
+ computeEncapsulationOverhead() {
1299
+ // Multi Channel CC V1 adds one byte for the endpoint index
1300
+ return super.computeEncapsulationOverhead() + 1;
1301
+ }
1302
+ toLogEntry(ctx) {
1303
+ return {
1304
+ ...super.toLogEntry(ctx),
1305
+ message: { source: this.endpointIndex },
1306
+ };
1307
+ }
1308
+ };
1309
+ return MultiChannelCCV1CommandEncapsulation = _classThis;
1310
+ })();
1311
+ export { MultiChannelCCV1CommandEncapsulation };
1312
+ //# sourceMappingURL=MultiChannelCC.js.map