@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
@@ -1,860 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAssociations = getAssociations;
4
- exports.getAllAssociations = getAllAssociations;
5
- exports.checkAssociation = checkAssociation;
6
- exports.getAssociationGroups = getAssociationGroups;
7
- exports.getAllAssociationGroups = getAllAssociationGroups;
8
- exports.addAssociations = addAssociations;
9
- exports.removeAssociations = removeAssociations;
10
- exports.getLifelineGroupIds = getLifelineGroupIds;
11
- exports.configureLifelineAssociations = configureLifelineAssociations;
12
- exports.assignLifelineIssueingCommand = assignLifelineIssueingCommand;
13
- exports.doesAnyLifelineSendActuatorOrSensorReports = doesAnyLifelineSendActuatorOrSensorReports;
14
- const safe_1 = require("@zwave-js/core/safe");
15
- const safe_2 = require("@zwave-js/shared/safe");
16
- const arrays_1 = require("alcalzone-shared/arrays");
17
- const AssociationCC_1 = require("../cc/AssociationCC");
18
- const AssociationGroupInfoCC_1 = require("../cc/AssociationGroupInfoCC");
19
- const MultiChannelAssociationCC_1 = require("../cc/MultiChannelAssociationCC");
20
- const API_1 = require("./API");
21
- const _Types_1 = require("./_Types");
22
- function getAssociations(ctx, endpoint) {
23
- const ret = new Map();
24
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
25
- const destinations = AssociationCC_1.AssociationCC.getAllDestinationsCached(ctx, endpoint);
26
- for (const [groupId, assocs] of destinations) {
27
- ret.set(groupId, assocs);
28
- }
29
- }
30
- else {
31
- throw new safe_1.ZWaveError(`Node ${endpoint.nodeId}${endpoint.index > 0 ? `, endpoint ${endpoint.index}` : ""} does not support associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
32
- }
33
- // Merge the "normal" destinations with multi channel destinations
34
- if (endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
35
- const destinations = MultiChannelAssociationCC_1.MultiChannelAssociationCC.getAllDestinationsCached(ctx, endpoint);
36
- for (const [groupId, assocs] of destinations) {
37
- if (ret.has(groupId)) {
38
- const normalAssociations = ret.get(groupId);
39
- ret.set(groupId, [
40
- ...normalAssociations,
41
- // Eliminate potential duplicates
42
- ...assocs.filter((a1) => !normalAssociations.some((a2) => a1.nodeId === a2.nodeId
43
- && a1.endpoint === a2.endpoint)),
44
- ]);
45
- }
46
- else {
47
- ret.set(groupId, assocs);
48
- }
49
- }
50
- }
51
- return ret;
52
- }
53
- function getAllAssociations(ctx, node) {
54
- const ret = new safe_2.ObjectKeyMap();
55
- for (const endpoint of node.getAllEndpoints()) {
56
- const address = {
57
- nodeId: node.id,
58
- endpoint: endpoint.index,
59
- };
60
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
61
- ret.set(address, getAssociations(ctx, endpoint));
62
- }
63
- }
64
- return ret;
65
- }
66
- function checkAssociation(ctx, endpoint, group, destination) {
67
- // Check that the target endpoint exists except when adding an association to the controller
68
- const targetNode = ctx.getNodeOrThrow(destination.nodeId);
69
- const targetEndpoint = destination.nodeId === ctx.ownNodeId
70
- ? targetNode
71
- : targetNode.getEndpointOrThrow(destination.endpoint ?? 0);
72
- if (!endpoint.supportsCC(safe_1.CommandClasses.Association)
73
- && !endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
74
- throw new safe_1.ZWaveError(`Node ${endpoint.nodeId}${endpoint.index > 0 ? `, endpoint ${endpoint.index}` : ""} does not support associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
75
- }
76
- // Associations to and from ZWLR devices are not allowed
77
- if ((0, safe_1.isLongRangeNodeId)(destination.nodeId)) {
78
- return _Types_1.AssociationCheckResult.Forbidden_DestinationIsLongRange;
79
- }
80
- else if ((0, safe_1.isLongRangeNodeId)(endpoint.nodeId)) {
81
- // Except the lifeline back to the host
82
- if (group !== 1 || destination.nodeId !== ctx.ownNodeId) {
83
- return _Types_1.AssociationCheckResult.Forbidden_SourceIsLongRange;
84
- }
85
- }
86
- // The following checks don't apply to Lifeline associations
87
- if (destination.nodeId === ctx.ownNodeId) {
88
- return _Types_1.AssociationCheckResult.OK;
89
- }
90
- // Disallow self-associations
91
- if (destination.nodeId === endpoint.nodeId) {
92
- return _Types_1.AssociationCheckResult.Forbidden_SelfAssociation;
93
- }
94
- // For Association version 1 and version 2 / MCA version 1-3:
95
- // A controlling node MUST NOT associate Node A to a Node B destination
96
- // if Node A and Node B’s highest Security Class are not identical.
97
- // For Association version 3 / MCA version 4:
98
- // A controlling node MUST NOT associate Node A to a Node B destination
99
- // if Node A was not granted Node B’s highest Security Class.
100
- const sourceNode = ctx.getNode(endpoint.nodeId);
101
- let securityClassMustMatch;
102
- if (destination.endpoint == undefined) {
103
- // "normal" association
104
- const sourceNodeCCVersion = endpoint.getCCVersion(safe_1.CommandClasses.Association);
105
- securityClassMustMatch = sourceNodeCCVersion < 3;
106
- }
107
- else {
108
- // multi channel association
109
- const sourceNodeCCVersion = endpoint.getCCVersion(safe_1.CommandClasses["Multi Channel Association"]);
110
- securityClassMustMatch = sourceNodeCCVersion < 4;
111
- }
112
- const sourceSecurityClass = sourceNode.getHighestSecurityClass();
113
- const targetSecurityClass = targetNode.getHighestSecurityClass();
114
- // If the security classes are unknown, all bets are off
115
- if (sourceSecurityClass != undefined && targetSecurityClass != undefined) {
116
- if (securityClassMustMatch
117
- && sourceSecurityClass !== targetSecurityClass) {
118
- return _Types_1.AssociationCheckResult.Forbidden_SecurityClassMismatch;
119
- }
120
- else if (
121
- // Commands to insecure nodes are allowed
122
- targetSecurityClass !== safe_1.SecurityClass.None
123
- // Otherwise, the sender must know the target's highest key
124
- && !securityClassMustMatch
125
- && !sourceNode.hasSecurityClass(targetSecurityClass)) {
126
- return _Types_1.AssociationCheckResult
127
- .Forbidden_DestinationSecurityClassNotGranted;
128
- }
129
- }
130
- // SDS14223:
131
- // A controlling node MUST NOT associate Node A to a Node B destination that does not support
132
- // the Command Class that the Node A will be controlling
133
- //
134
- // To determine this, the node must support the AGI CC or we have no way of knowing which
135
- // CCs the node will control
136
- if (!endpoint.supportsCC(safe_1.CommandClasses["Association Group Information"])) {
137
- return _Types_1.AssociationCheckResult.OK;
138
- }
139
- const groupCommandList = AssociationGroupInfoCC_1.AssociationGroupInfoCC.getIssuedCommandsCached(ctx, endpoint, group);
140
- if (!groupCommandList || !groupCommandList.size) {
141
- // We don't know which CCs this group controls, just allow it
142
- return _Types_1.AssociationCheckResult.OK;
143
- }
144
- const groupCCs = [...groupCommandList.keys()];
145
- // A controlling node MAY create an association to a destination supporting an
146
- // actuator Command Class if the actual association group sends Basic Control Command Class.
147
- if (groupCCs.includes(safe_1.CommandClasses.Basic)
148
- && safe_1.actuatorCCs.some((cc) => targetEndpoint?.supportsCC(cc))) {
149
- return _Types_1.AssociationCheckResult.OK;
150
- }
151
- // Enforce that at least one issued CC is supported
152
- if (groupCCs.some((cc) => targetEndpoint?.supportsCC(cc))) {
153
- return _Types_1.AssociationCheckResult.OK;
154
- }
155
- else {
156
- return _Types_1.AssociationCheckResult.Forbidden_NoSupportedCCs;
157
- }
158
- }
159
- function getAssociationGroups(ctx, endpoint) {
160
- // Check whether we have multi channel support or not
161
- let assocInstance;
162
- let mcInstance;
163
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
164
- assocInstance = AssociationCC_1.AssociationCC;
165
- }
166
- else {
167
- throw new safe_1.ZWaveError(`Node ${endpoint.nodeId}${endpoint.index > 0 ? `, endpoint ${endpoint.index}` : ""} does not support associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
168
- }
169
- if (endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
170
- mcInstance = MultiChannelAssociationCC_1.MultiChannelAssociationCC;
171
- }
172
- const assocGroupCount = assocInstance.getGroupCountCached(ctx, endpoint)
173
- ?? 0;
174
- const mcGroupCount = mcInstance?.getGroupCountCached(ctx, endpoint)
175
- ?? 0;
176
- const groupCount = Math.max(assocGroupCount, mcGroupCount);
177
- const deviceConfig = ctx.getDeviceConfig?.(endpoint.nodeId);
178
- const ret = new Map();
179
- if (endpoint.supportsCC(safe_1.CommandClasses["Association Group Information"])) {
180
- // We can read all information we need from the AGI CC
181
- const agiInstance = AssociationGroupInfoCC_1.AssociationGroupInfoCC;
182
- for (let group = 1; group <= groupCount; group++) {
183
- const assocConfig = deviceConfig?.getAssociationConfigForEndpoint(endpoint.index, group);
184
- const multiChannel = !!mcInstance && group <= mcGroupCount;
185
- ret.set(group, {
186
- maxNodes: (multiChannel
187
- ? mcInstance
188
- : assocInstance).getMaxNodesCached(ctx, endpoint, group) || 1,
189
- // AGI implies Z-Wave+ where group 1 is the lifeline
190
- isLifeline: group === 1,
191
- label:
192
- // prefer the configured label if we have one
193
- assocConfig?.label
194
- // the ones reported by AGI are sometimes pretty bad
195
- ?? agiInstance.getGroupNameCached(ctx, endpoint, group)
196
- // but still better than "unnamed"
197
- ?? `Unnamed group ${group}`,
198
- multiChannel,
199
- profile: agiInstance.getGroupProfileCached(ctx, endpoint, group),
200
- issuedCommands: agiInstance.getIssuedCommandsCached(ctx, endpoint, group),
201
- });
202
- }
203
- }
204
- else {
205
- // we need to consult the device config
206
- for (let group = 1; group <= groupCount; group++) {
207
- const assocConfig = deviceConfig?.getAssociationConfigForEndpoint(endpoint.index, group);
208
- const multiChannel = !!mcInstance && group <= mcGroupCount;
209
- ret.set(group, {
210
- maxNodes: (multiChannel
211
- ? mcInstance
212
- : assocInstance).getMaxNodesCached(ctx, endpoint, group)
213
- || assocConfig?.maxNodes
214
- || 1,
215
- isLifeline: assocConfig?.isLifeline ?? group === 1,
216
- label: assocConfig?.label ?? `Unnamed group ${group}`,
217
- multiChannel,
218
- });
219
- }
220
- }
221
- return ret;
222
- }
223
- function getAllAssociationGroups(ctx, node) {
224
- const ret = new Map();
225
- for (const endpoint of node.getAllEndpoints()) {
226
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
227
- ret.set(endpoint.index, getAssociationGroups(ctx, endpoint));
228
- }
229
- }
230
- return ret;
231
- }
232
- async function addAssociations(ctx, endpoint, group, destinations) {
233
- const nodeAndEndpointString = `${endpoint.nodeId}${endpoint.index > 0 ? `, endpoint ${endpoint.index}` : ""}`;
234
- // Check whether we should add any associations the device does not have support for
235
- let assocInstance;
236
- let mcInstance;
237
- // Split associations into conventional and endpoint associations
238
- const nodeAssociations = (0, arrays_1.distinct)(destinations
239
- .filter((a) => a.endpoint == undefined)
240
- .map((a) => a.nodeId));
241
- const endpointAssociations = destinations.filter((a) => a.endpoint != undefined);
242
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
243
- assocInstance = AssociationCC_1.AssociationCC;
244
- }
245
- else if (nodeAssociations.length > 0) {
246
- throw new safe_1.ZWaveError(`Node ${nodeAndEndpointString} does not support associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
247
- }
248
- if (endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
249
- mcInstance = MultiChannelAssociationCC_1.MultiChannelAssociationCC;
250
- }
251
- else if (endpointAssociations.length > 0) {
252
- throw new safe_1.ZWaveError(`Node ${nodeAndEndpointString} does not support multi channel associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
253
- }
254
- // Disallow associating a node with itself. This is technically checked as part of
255
- // checkAssociations, but here we provide a better error message.
256
- const selfAssociations = destinations.filter((d) => d.nodeId === endpoint.nodeId);
257
- if (selfAssociations.length > 0) {
258
- throw new safe_1.ZWaveError(`Associating a node with itself is not allowed!`, safe_1.ZWaveErrorCodes.AssociationCC_NotAllowed, selfAssociations.map((a) => ({
259
- ...a,
260
- checkResult: _Types_1.AssociationCheckResult.Forbidden_SelfAssociation,
261
- })));
262
- }
263
- const assocGroupCount = assocInstance?.getGroupCountCached(ctx, endpoint)
264
- ?? 0;
265
- const mcGroupCount = mcInstance?.getGroupCountCached(ctx, endpoint)
266
- ?? 0;
267
- const groupCount = Math.max(assocGroupCount, mcGroupCount);
268
- if (group > groupCount) {
269
- throw new safe_1.ZWaveError(`Group ${group} does not exist on node ${nodeAndEndpointString}`, safe_1.ZWaveErrorCodes.AssociationCC_InvalidGroup);
270
- }
271
- const deviceConfig = ctx.getDeviceConfig?.(endpoint.nodeId);
272
- const groupIsMultiChannel = !!mcInstance
273
- && group <= mcGroupCount
274
- && deviceConfig?.associations?.get(group)?.multiChannel !== false;
275
- if (groupIsMultiChannel) {
276
- // Check that all associations are allowed
277
- const disallowedAssociations = destinations.map((a) => ({
278
- ...a,
279
- checkResult: checkAssociation(ctx, endpoint, group, a),
280
- })).filter(({ checkResult }) => checkResult !== _Types_1.AssociationCheckResult.OK);
281
- if (disallowedAssociations.length) {
282
- let message = `The following associations are not allowed:`;
283
- message += disallowedAssociations
284
- .map((a) => `\n· Node ${a.nodeId}${a.endpoint ? `, endpoint ${a.endpoint}` : ""}: ${(0, safe_2.getEnumMemberName)(_Types_1.AssociationCheckResult, a.checkResult).replace("Forbidden_", "")}`)
285
- .join("");
286
- throw new safe_1.ZWaveError(message, safe_1.ZWaveErrorCodes.AssociationCC_NotAllowed, disallowedAssociations);
287
- }
288
- // And add them
289
- const api = API_1.CCAPI.create(safe_1.CommandClasses["Multi Channel Association"], ctx, endpoint);
290
- await api.addDestinations({
291
- groupId: group,
292
- nodeIds: nodeAssociations,
293
- endpoints: endpointAssociations,
294
- });
295
- // Refresh the association list
296
- await api.getGroup(group);
297
- }
298
- else {
299
- // Although the node supports multi channel associations, this group only supports "normal" associations
300
- if (destinations.some((a) => a.endpoint != undefined)) {
301
- throw new safe_1.ZWaveError(`Node ${nodeAndEndpointString}, group ${group} does not support multi channel associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
302
- }
303
- // Check that all associations are allowed
304
- const disallowedAssociations = destinations.map((a) => ({
305
- ...a,
306
- checkResult: checkAssociation(ctx, endpoint, group, a),
307
- })).filter(({ checkResult }) => checkResult !== _Types_1.AssociationCheckResult.OK);
308
- if (disallowedAssociations.length) {
309
- let message = `The associations to the following nodes are not allowed`;
310
- message += disallowedAssociations
311
- .map((a) => `\n· Node ${a.nodeId}: ${(0, safe_2.getEnumMemberName)(_Types_1.AssociationCheckResult, a.checkResult).replace("Forbidden_", "")}`)
312
- .join("");
313
- throw new safe_1.ZWaveError(message, safe_1.ZWaveErrorCodes.AssociationCC_NotAllowed, disallowedAssociations);
314
- }
315
- const api = API_1.CCAPI.create(safe_1.CommandClasses.Association, ctx, endpoint);
316
- await api.addNodeIds(group, ...destinations.map((a) => a.nodeId));
317
- // Refresh the association list
318
- await api.getGroup(group);
319
- }
320
- }
321
- async function removeAssociations(ctx, endpoint, group, destinations) {
322
- const nodeAndEndpointString = `${endpoint.nodeId}${endpoint.index > 0 ? `, endpoint ${endpoint.index}` : ""}`;
323
- // Split associations into conventional and endpoint associations
324
- const nodeAssociations = (0, arrays_1.distinct)(destinations
325
- .filter((a) => a.endpoint == undefined)
326
- .map((a) => a.nodeId));
327
- const endpointAssociations = destinations.filter((a) => a.endpoint != undefined);
328
- // Removing associations is not either/or - we could have a device with duplicated associations between
329
- // Association CC and Multi Channel Association CC
330
- // Figure out what we need to use to remove the associations
331
- let groupExistsAsMultiChannel = false;
332
- let groupExistsAsNodeAssociation = false;
333
- let mcInstance;
334
- let assocInstance;
335
- // To remove a multi channel association, we need to make sure that the group exists
336
- // and the node supports multi channel associations
337
- if (endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
338
- mcInstance = MultiChannelAssociationCC_1.MultiChannelAssociationCC;
339
- if (group <= mcInstance.getGroupCountCached(ctx, endpoint)) {
340
- groupExistsAsMultiChannel = true;
341
- }
342
- }
343
- else if (endpointAssociations.length > 0) {
344
- throw new safe_1.ZWaveError(`Node ${nodeAndEndpointString} does not support multi channel associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
345
- }
346
- // To remove a normal association, we need to make sure that the group exists either as a normal association
347
- // or as a multi channel association
348
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
349
- assocInstance = AssociationCC_1.AssociationCC;
350
- if (group <= assocInstance.getGroupCountCached(ctx, endpoint)) {
351
- groupExistsAsNodeAssociation = true;
352
- }
353
- }
354
- if (!mcInstance && !assocInstance) {
355
- throw new safe_1.ZWaveError(`Node ${nodeAndEndpointString} does not support associations!`, safe_1.ZWaveErrorCodes.CC_NotSupported);
356
- }
357
- // Ensure the group exists and can be used
358
- if (!groupExistsAsMultiChannel && !groupExistsAsNodeAssociation) {
359
- throw new safe_1.ZWaveError(` Association group ${group} does not exist for node ${nodeAndEndpointString}`, safe_1.ZWaveErrorCodes.AssociationCC_InvalidGroup);
360
- }
361
- if (endpointAssociations.length > 0 && !groupExistsAsMultiChannel) {
362
- throw new safe_1.ZWaveError(`Node ${nodeAndEndpointString}, association group ${group} does not support multi channel associations!`, safe_1.ZWaveErrorCodes.AssociationCC_InvalidGroup);
363
- }
364
- // Even if we only remove node associations, we use both CCs since it has been found that some
365
- // devices do not correctly share the node list between the two commands
366
- if (assocInstance
367
- && nodeAssociations.length > 0
368
- && groupExistsAsNodeAssociation) {
369
- const api = API_1.CCAPI.create(safe_1.CommandClasses.Association, ctx, endpoint);
370
- await api.removeNodeIds({
371
- groupId: group,
372
- nodeIds: nodeAssociations,
373
- });
374
- // Refresh the association list
375
- await api.getGroup(group);
376
- }
377
- if (mcInstance && groupExistsAsMultiChannel) {
378
- const api = API_1.CCAPI.create(safe_1.CommandClasses["Multi Channel Association"], ctx, endpoint);
379
- await api.removeDestinations({
380
- groupId: group,
381
- nodeIds: nodeAssociations,
382
- endpoints: endpointAssociations,
383
- });
384
- // Refresh the multi channel association list
385
- await api.getGroup(group);
386
- }
387
- }
388
- function getLifelineGroupIds(ctx, endpoint) {
389
- // For now only support this for the root endpoint - i.e. node
390
- if (endpoint.index > 0)
391
- return [];
392
- // Some nodes define multiple lifeline groups, so we need to assign us to
393
- // all of them
394
- const lifelineGroups = [];
395
- // If the target node supports Z-Wave+ info that means the lifeline MUST be group #1
396
- if (endpoint.supportsCC(safe_1.CommandClasses["Z-Wave Plus Info"])) {
397
- lifelineGroups.push(1);
398
- }
399
- // We have a device config file that tells us which (additional) association to assign
400
- let associations;
401
- const deviceConfig = ctx.getDeviceConfig?.(endpoint.nodeId);
402
- if (endpoint.index === 0) {
403
- // The root endpoint's associations may be configured separately or as part of "endpoints"
404
- associations = deviceConfig?.associations
405
- ?? deviceConfig?.endpoints?.get(0)?.associations;
406
- }
407
- else {
408
- // The other endpoints can only have a configuration as part of "endpoints"
409
- associations = deviceConfig?.endpoints?.get(endpoint.index)?.associations;
410
- }
411
- if (associations?.size) {
412
- lifelineGroups.push(...[...associations.values()]
413
- .filter((a) => a.isLifeline)
414
- .map((a) => a.groupId));
415
- }
416
- return (0, arrays_1.distinct)(lifelineGroups).sort();
417
- }
418
- async function configureLifelineAssociations(ctx, endpoint) {
419
- // Assign the controller to all lifeline groups
420
- const ownNodeId = ctx.ownNodeId;
421
- const node = ctx.getNodeOrThrow(endpoint.nodeId);
422
- const valueDB = ctx.getValueDB(node.id);
423
- const deviceConfig = ctx.getDeviceConfig?.(node.id);
424
- // We check if a node supports Multi Channel CC before creating Multi Channel Lifeline Associations (#1109)
425
- const nodeSupportsMultiChannel = node.supportsCC(safe_1.CommandClasses["Multi Channel"]);
426
- let assocInstance;
427
- const assocAPI = API_1.CCAPI.create(safe_1.CommandClasses.Association, ctx, endpoint);
428
- if (endpoint.supportsCC(safe_1.CommandClasses.Association)) {
429
- assocInstance = AssociationCC_1.AssociationCC;
430
- }
431
- let mcInstance;
432
- let mcGroupCount = 0;
433
- const mcAPI = API_1.CCAPI.create(safe_1.CommandClasses["Multi Channel Association"], ctx, endpoint);
434
- if (endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
435
- mcInstance = MultiChannelAssociationCC_1.MultiChannelAssociationCC;
436
- mcGroupCount = mcInstance.getGroupCountCached(ctx, endpoint) ?? 0;
437
- }
438
- const lifelineGroups = getLifelineGroupIds(ctx, node);
439
- if (lifelineGroups.length === 0) {
440
- // We can look for the General Lifeline AGI profile as a last resort
441
- if (endpoint.supportsCC(safe_1.CommandClasses["Association Group Information"])) {
442
- const agiAPI = API_1.CCAPI.create(safe_1.CommandClasses["Association Group Information"], ctx, endpoint);
443
- // The lifeline MUST be group 1
444
- const lifeline = await agiAPI
445
- .getGroupInfo(1, true)
446
- .catch(() => undefined);
447
- if (lifeline?.profile
448
- === _Types_1.AssociationGroupInfoProfile["General: Lifeline"]) {
449
- lifelineGroups.push(1);
450
- }
451
- }
452
- }
453
- if (lifelineGroups.length === 0) {
454
- ctx.logNode(node.id, {
455
- endpoint: endpoint.index,
456
- message: "No information about Lifeline associations, cannot assign ourselves!",
457
- level: "warn",
458
- });
459
- // Remember that we have NO lifeline association
460
- valueDB.setValue(AssociationCC_1.AssociationCCValues.hasLifeline.endpoint(endpoint.index), false);
461
- return;
462
- }
463
- ctx.logNode(node.id, {
464
- endpoint: endpoint.index,
465
- message: `Checking/assigning lifeline groups: ${lifelineGroups.join(", ")}
466
- supports classic associations: ${!!assocInstance}
467
- supports multi channel associations: ${!!mcInstance}`,
468
- });
469
- for (const group of lifelineGroups) {
470
- const groupSupportsMultiChannelAssociation = group <= mcGroupCount;
471
- const assocConfig = deviceConfig?.getAssociationConfigForEndpoint(endpoint.index, group);
472
- const mustUseNodeAssociation = !groupSupportsMultiChannelAssociation
473
- || !nodeSupportsMultiChannel
474
- || assocConfig?.multiChannel === false;
475
- let mustUseMultiChannelAssociation = false;
476
- if (groupSupportsMultiChannelAssociation && nodeSupportsMultiChannel) {
477
- if (assocConfig?.multiChannel === true) {
478
- mustUseMultiChannelAssociation = true;
479
- }
480
- else if (endpoint.index === 0) {
481
- // If the node has multiple endpoints but none of the extra ones support associations,
482
- // the root endpoints needs a Multi Channel Association
483
- const allEndpoints = node.getAllEndpoints();
484
- if (allEndpoints.length > 1
485
- && allEndpoints
486
- .filter((e) => e.index !== endpoint.index)
487
- .every((e) => !e.supportsCC(safe_1.CommandClasses.Association)
488
- && !e.supportsCC(safe_1.CommandClasses["Multi Channel Association"]))) {
489
- mustUseMultiChannelAssociation = true;
490
- }
491
- }
492
- }
493
- ctx.logNode(node.id, {
494
- endpoint: endpoint.index,
495
- message: `Configuring lifeline group #${group}:
496
- group supports multi channel: ${groupSupportsMultiChannelAssociation}
497
- configured strategy: ${assocConfig?.multiChannel ?? "auto"}
498
- must use node association: ${mustUseNodeAssociation}
499
- must use endpoint association: ${mustUseMultiChannelAssociation}`,
500
- });
501
- // Figure out which associations exist and may need to be removed
502
- const isAssignedAsNodeAssociation = (endpoint) => {
503
- if (groupSupportsMultiChannelAssociation && mcInstance) {
504
- if (
505
- // Only consider a group if it doesn't share its associations with the root endpoint
506
- mcInstance.getMaxNodesCached(ctx, endpoint, group)
507
- > 0
508
- && !!mcInstance
509
- .getAllDestinationsCached(ctx, endpoint)
510
- .get(group)
511
- ?.some((addr) => addr.nodeId === ownNodeId
512
- && addr.endpoint == undefined)) {
513
- return true;
514
- }
515
- }
516
- if (assocInstance) {
517
- if (
518
- // Only consider a group if it doesn't share its associations with the root endpoint
519
- assocInstance.getMaxNodesCached(ctx, endpoint, group)
520
- > 0
521
- && !!assocInstance
522
- .getAllDestinationsCached(ctx, endpoint)
523
- .get(group)
524
- ?.some((addr) => addr.nodeId === ownNodeId)) {
525
- return true;
526
- }
527
- }
528
- return false;
529
- };
530
- const isAssignedAsEndpointAssociation = (endpoint) => {
531
- if (mcInstance) {
532
- if (
533
- // Only consider a group if it doesn't share its associations with the root endpoint
534
- mcInstance.getMaxNodesCached(ctx, endpoint, group)
535
- > 0
536
- && mcInstance
537
- .getAllDestinationsCached(ctx, endpoint)
538
- .get(group)
539
- ?.some((addr) => addr.nodeId === ownNodeId
540
- && addr.endpoint === 0)) {
541
- return true;
542
- }
543
- }
544
- return false;
545
- };
546
- // If the node was used with other controller software, there might be
547
- // invalid lifeline associations which cause reporting problems
548
- const invalidEndpointAssociations = mcInstance
549
- ?.getAllDestinationsCached(ctx, endpoint)
550
- .get(group)
551
- ?.filter((addr) => addr.nodeId === ownNodeId
552
- && addr.endpoint != undefined
553
- && addr.endpoint !== 0) ?? [];
554
- // Clean them up first
555
- if (invalidEndpointAssociations.length > 0
556
- && mcAPI.isSupported()
557
- && groupSupportsMultiChannelAssociation) {
558
- ctx.logNode(node.id, {
559
- endpoint: endpoint.index,
560
- message: `Found invalid lifeline associations in group #${group}, removing them...`,
561
- direction: "outbound",
562
- });
563
- await mcAPI.removeDestinations({
564
- groupId: group,
565
- endpoints: invalidEndpointAssociations,
566
- });
567
- // refresh the associations - don't trust that it worked
568
- await mcAPI.getGroup(group);
569
- }
570
- // Assigning the correct lifelines depends on the association kind, source endpoint and the desired strategy:
571
- //
572
- // When `mustUseMultiChannelAssociation` is `true` - Use a multi channel association (if possible), no fallback
573
- // When `mustUseNodeAssociation` is `true` - Use a node association (if possible), no fallback
574
- // Otherwise:
575
- // 1. Try a node association on the current endpoint/root
576
- // 2. If Association CC is not supported, try assigning a node association with the Multi Channel Association CC
577
- // 3. If that did not work, fall back to a multi channel association (target endpoint 0)
578
- // 4. If that did not work either, the endpoint index is >0 and the node is Z-Wave+:
579
- // Fall back to a multi channel association (target endpoint 0) on the root, if it doesn't have one yet.
580
- let hasLifeline = false;
581
- // First try: node association
582
- if (!mustUseMultiChannelAssociation) {
583
- if (isAssignedAsNodeAssociation(endpoint)) {
584
- // We already have the correct association
585
- hasLifeline = true;
586
- ctx.logNode(node.id, {
587
- endpoint: endpoint.index,
588
- message: `Lifeline group #${group} is already assigned with a node association`,
589
- direction: "none",
590
- });
591
- }
592
- else if (assocAPI.isSupported()
593
- // Some endpoint groups don't support having any destinations because they are shared with the root
594
- && assocInstance.getMaxNodesCached(ctx, endpoint, group)
595
- > 0) {
596
- // We can use a node association, but first remove any possible endpoint associations
597
- ctx.logNode(node.id, {
598
- endpoint: endpoint.index,
599
- message: `Assigning lifeline group #${group} with a node association via Association CC...`,
600
- direction: "outbound",
601
- });
602
- if (isAssignedAsEndpointAssociation(endpoint)
603
- && mcAPI.isSupported()) {
604
- await mcAPI.removeDestinations({
605
- groupId: group,
606
- endpoints: [{ nodeId: ownNodeId, endpoint: 0 }],
607
- });
608
- // refresh the associations - don't trust that it worked
609
- await mcAPI.getGroup(group);
610
- }
611
- await assocAPI.addNodeIds(group, ownNodeId);
612
- // refresh the associations - don't trust that it worked
613
- const groupReport = await assocAPI.getGroup(group);
614
- hasLifeline = !!groupReport?.nodeIds.includes(ownNodeId);
615
- if (hasLifeline) {
616
- ctx.logNode(node.id, {
617
- endpoint: endpoint.index,
618
- message: `Lifeline group #${group} was assigned with a node association via Association CC`,
619
- direction: "none",
620
- });
621
- }
622
- else {
623
- ctx.logNode(node.id, {
624
- endpoint: endpoint.index,
625
- message: `Assigning lifeline group #${group} with a node association via Association CC did not work`,
626
- direction: "none",
627
- });
628
- }
629
- }
630
- // Second try: Node association using the Multi Channel Association CC
631
- if (!hasLifeline
632
- && mcAPI.isSupported()
633
- && mcInstance.getMaxNodesCached(ctx, endpoint, group) > 0) {
634
- // We can use a node association, but first remove any possible endpoint associations
635
- ctx.logNode(node.id, {
636
- endpoint: endpoint.index,
637
- message: `Assigning lifeline group #${group} with a node association via Multi Channel Association CC...`,
638
- direction: "outbound",
639
- });
640
- if (isAssignedAsEndpointAssociation(endpoint)) {
641
- await mcAPI.removeDestinations({
642
- groupId: group,
643
- endpoints: [{ nodeId: ownNodeId, endpoint: 0 }],
644
- });
645
- }
646
- await mcAPI.addDestinations({
647
- groupId: group,
648
- nodeIds: [ownNodeId],
649
- });
650
- // refresh the associations - don't trust that it worked
651
- const groupReport = await mcAPI.getGroup(group);
652
- hasLifeline = !!groupReport?.nodeIds.includes(ownNodeId);
653
- if (hasLifeline) {
654
- ctx.logNode(node.id, {
655
- endpoint: endpoint.index,
656
- message: `Lifeline group #${group} was assigned with a node association via Multi Channel Association CC`,
657
- direction: "none",
658
- });
659
- }
660
- else {
661
- ctx.logNode(node.id, {
662
- endpoint: endpoint.index,
663
- message: `Assigning lifeline group #${group} with a node association via Multi Channel Association CC did not work`,
664
- direction: "none",
665
- });
666
- }
667
- }
668
- }
669
- // Third try: Use an endpoint association (target endpoint 0)
670
- // This is only supported starting in Multi Channel Association CC V3
671
- if (!hasLifeline && !mustUseNodeAssociation) {
672
- if (isAssignedAsEndpointAssociation(endpoint)) {
673
- // We already have the correct association
674
- hasLifeline = true;
675
- ctx.logNode(node.id, {
676
- endpoint: endpoint.index,
677
- message: `Lifeline group #${group} is already assigned with an endpoint association`,
678
- direction: "none",
679
- });
680
- }
681
- else if (mcAPI.isSupported()
682
- && mcAPI.version >= 3
683
- && mcInstance.getMaxNodesCached(ctx, endpoint, group) > 0) {
684
- // We can use a multi channel association, but first remove any possible node associations
685
- ctx.logNode(node.id, {
686
- endpoint: endpoint.index,
687
- message: `Assigning lifeline group #${group} with a multi channel association...`,
688
- direction: "outbound",
689
- });
690
- if (isAssignedAsNodeAssociation(endpoint)) {
691
- // It has been found that some devices don't correctly share the node associations between
692
- // Association CC and Multi Channel Association CC, so we remove the nodes from both lists
693
- await mcAPI.removeDestinations({
694
- groupId: group,
695
- nodeIds: [ownNodeId],
696
- });
697
- if (assocAPI.isSupported()) {
698
- await assocAPI.removeNodeIds({
699
- groupId: group,
700
- nodeIds: [ownNodeId],
701
- });
702
- // refresh the associations - don't trust that it worked
703
- await assocAPI.getGroup(group);
704
- }
705
- }
706
- await mcAPI.addDestinations({
707
- groupId: group,
708
- endpoints: [{ nodeId: ownNodeId, endpoint: 0 }],
709
- });
710
- // refresh the associations - don't trust that it worked
711
- const groupReport = await mcAPI.getGroup(group);
712
- hasLifeline = !!groupReport?.endpoints.some((a) => a.nodeId === ownNodeId && a.endpoint === 0);
713
- if (hasLifeline) {
714
- ctx.logNode(node.id, {
715
- endpoint: endpoint.index,
716
- message: `Lifeline group #${group} was assigned with a multi channel association`,
717
- direction: "none",
718
- });
719
- }
720
- else {
721
- ctx.logNode(node.id, {
722
- endpoint: endpoint.index,
723
- message: `Assigning lifeline group #${group} with a multi channel association did not work`,
724
- direction: "none",
725
- });
726
- }
727
- }
728
- }
729
- // Last attempt (actual Z-Wave+ Lifelines only): Try a multi channel association on the root.
730
- // Endpoint interviews happen AFTER the root interview, so this enables us to overwrite what
731
- // we previously configured on the root.
732
- if (!hasLifeline
733
- && group === 1
734
- && node.supportsCC(safe_1.CommandClasses["Z-Wave Plus Info"])
735
- && endpoint.index > 0) {
736
- // But first check if the root may have a multi channel association
737
- const rootAssocConfig = deviceConfig
738
- ?.getAssociationConfigForEndpoint(0, group);
739
- const rootMustUseNodeAssociation = !nodeSupportsMultiChannel
740
- || rootAssocConfig?.multiChannel === false;
741
- ctx.logNode(node.id, {
742
- endpoint: endpoint.index,
743
- message: `Checking root device for fallback assignment of lifeline group #${group}:
744
- root supports multi channel: ${nodeSupportsMultiChannel}
745
- configured strategy: ${rootAssocConfig?.multiChannel ?? "auto"}
746
- must use node association: ${rootMustUseNodeAssociation}`,
747
- });
748
- if (!rootMustUseNodeAssociation) {
749
- if (isAssignedAsEndpointAssociation(node)) {
750
- // We already have the correct association
751
- hasLifeline = true;
752
- ctx.logNode(node.id, {
753
- endpoint: endpoint.index,
754
- message: `Lifeline group #${group} is already assigned with a multi channel association on the root device`,
755
- direction: "none",
756
- });
757
- }
758
- else {
759
- const rootMCAPI = API_1.CCAPI.create(safe_1.CommandClasses["Multi Channel Association"], ctx, node);
760
- const rootAssocAPI = API_1.CCAPI.create(safe_1.CommandClasses.Association, ctx, node);
761
- if (rootMCAPI.isSupported()) {
762
- ctx.logNode(node.id, {
763
- endpoint: endpoint.index,
764
- message: `Assigning lifeline group #${group} with a multi channel association on the root device...`,
765
- direction: "outbound",
766
- });
767
- // Clean up node associations because they might prevent us from adding the endpoint association
768
- if (isAssignedAsNodeAssociation(node)) {
769
- // It has been found that some devices don't correctly share the node associations between
770
- // Association CC and Multi Channel Association CC, so we remove the nodes from both lists
771
- await rootMCAPI.removeDestinations({
772
- groupId: group,
773
- nodeIds: [ownNodeId],
774
- });
775
- if (rootAssocAPI.isSupported()) {
776
- await rootAssocAPI.removeNodeIds({
777
- groupId: group,
778
- nodeIds: [ownNodeId],
779
- });
780
- // refresh the associations - don't trust that it worked
781
- await rootAssocAPI.getGroup(group);
782
- }
783
- }
784
- await rootMCAPI.addDestinations({
785
- groupId: group,
786
- endpoints: [{ nodeId: ownNodeId, endpoint: 0 }],
787
- });
788
- // refresh the associations - don't trust that it worked
789
- const groupReport = await rootMCAPI.getGroup(group);
790
- hasLifeline = !!groupReport?.endpoints.some((a) => a.nodeId === ownNodeId && a.endpoint === 0);
791
- }
792
- }
793
- }
794
- }
795
- if (!hasLifeline) {
796
- ctx.logNode(node.id, {
797
- endpoint: endpoint.index,
798
- message: `All attempts to assign lifeline group #${group} failed, skipping...`,
799
- direction: "none",
800
- level: "warn",
801
- });
802
- }
803
- }
804
- // Remember that we did the association assignment
805
- valueDB.setValue(AssociationCC_1.AssociationCCValues.hasLifeline.endpoint(endpoint.index), true);
806
- }
807
- async function assignLifelineIssueingCommand(ctx, endpoint, ccId, ccCommand) {
808
- const node = ctx.getNodeOrThrow(endpoint.nodeId);
809
- if (node.supportsCC(safe_1.CommandClasses["Association Group Information"])
810
- && (node.supportsCC(safe_1.CommandClasses.Association)
811
- || node.supportsCC(safe_1.CommandClasses["Multi Channel Association"]))) {
812
- const groupsIssueingNotifications = AssociationGroupInfoCC_1.AssociationGroupInfoCC
813
- .findGroupsForIssuedCommand(ctx, node, ccId, ccCommand);
814
- if (groupsIssueingNotifications.length > 0) {
815
- // We always grab the first group - usually it should be the lifeline
816
- const groupId = groupsIssueingNotifications[0];
817
- const existingAssociations = getAssociations(ctx, node).get(groupId)
818
- ?? [];
819
- if (!existingAssociations.some((a) => a.nodeId === ctx.ownNodeId)) {
820
- ctx.logNode(node.id, {
821
- endpoint: endpoint.index,
822
- message: `Configuring associations to receive ${(0, safe_1.getCCName)(ccId)} commands...`,
823
- direction: "outbound",
824
- });
825
- await addAssociations(ctx, node, groupId, [
826
- { nodeId: ctx.ownNodeId },
827
- ]);
828
- }
829
- }
830
- }
831
- }
832
- function doesAnyLifelineSendActuatorOrSensorReports(ctx, node) {
833
- // No association support means no unsolicited reports
834
- if (!node.supportsCC(safe_1.CommandClasses.Association)
835
- && !node.supportsCC(safe_1.CommandClasses["Multi Channel Association"])) {
836
- return false;
837
- }
838
- // No AGI support means we cannot know
839
- if (!node.supportsCC(safe_1.CommandClasses["Association Group Information"])) {
840
- return safe_1.NOT_KNOWN;
841
- }
842
- // Lifeline group IDs include the ones we added via a config file, so they may not be considered true lifelines
843
- const lifelineGroupIds = getLifelineGroupIds(ctx, node);
844
- // If any potential lifeline group has the "General: Lifeline" profile, the node MUST send unsolicited reports that way
845
- if (lifelineGroupIds.some((id) => AssociationGroupInfoCC_1.AssociationGroupInfoCC.getGroupProfileCached(ctx, node, id) === _Types_1.AssociationGroupInfoProfile["General: Lifeline"])) {
846
- return true;
847
- }
848
- // Otherwise check if any of the groups sends any actuator or sensor commands. We'll assume that those are reports
849
- for (const groupId of lifelineGroupIds) {
850
- const issuedCommands = AssociationGroupInfoCC_1.AssociationGroupInfoCC.getIssuedCommandsCached(ctx, node, groupId);
851
- if (!issuedCommands)
852
- continue;
853
- const commands = [...issuedCommands.keys()];
854
- if (commands.some((c) => (0, safe_1.isActuatorCC)(c) || (0, safe_1.isSensorCC)(c))) {
855
- return true;
856
- }
857
- }
858
- return false;
859
- }
860
- //# sourceMappingURL=utils.js.map