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

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 (523) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +68 -68
  2. package/build/cjs/cc/AlarmSensorCC.js +12 -50
  3. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  4. package/build/cjs/cc/AssociationCC.d.ts +72 -73
  5. package/build/cjs/cc/AssociationCC.js +9 -26
  6. package/build/cjs/cc/AssociationCC.js.map +2 -2
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +71 -71
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +66 -72
  11. package/build/cjs/cc/BarrierOperatorCC.js +12 -44
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  13. package/build/cjs/cc/BasicCC.d.ts +64 -65
  14. package/build/cjs/cc/BasicCC.js +15 -46
  15. package/build/cjs/cc/BasicCC.js.map +2 -2
  16. package/build/cjs/cc/BatteryCC.d.ts +162 -165
  17. package/build/cjs/cc/BatteryCC.js +7 -84
  18. package/build/cjs/cc/BatteryCC.js.map +2 -2
  19. package/build/cjs/cc/BinarySensorCC.d.ts +36 -36
  20. package/build/cjs/cc/BinarySensorCC.js +9 -29
  21. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +34 -34
  23. package/build/cjs/cc/BinarySwitchCC.js +6 -22
  24. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  25. package/build/cjs/cc/CRC16CC.d.ts +4 -8
  26. package/build/cjs/cc/CRC16CC.js +4 -27
  27. package/build/cjs/cc/CRC16CC.js.map +2 -2
  28. package/build/cjs/cc/CentralSceneCC.d.ts +74 -74
  29. package/build/cjs/cc/CentralSceneCC.js +7 -30
  30. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  31. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +38 -40
  32. package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
  33. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  34. package/build/cjs/cc/ClockCC.d.ts +3 -3
  35. package/build/cjs/cc/ClockCC.js.map +2 -2
  36. package/build/cjs/cc/ColorSwitchCC.d.ts +117 -117
  37. package/build/cjs/cc/ColorSwitchCC.js +23 -75
  38. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  39. package/build/cjs/cc/ConfigurationCC._validateArgs.js +1 -1
  40. package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +1 -1
  41. package/build/cjs/cc/ConfigurationCC.d.ts +48 -52
  42. package/build/cjs/cc/ConfigurationCC.js +11 -39
  43. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  44. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +1 -1
  45. package/build/cjs/cc/DeviceResetLocallyCC.js.map +2 -2
  46. package/build/cjs/cc/DoorLockCC._validateArgs.js +1 -1
  47. package/build/cjs/cc/DoorLockCC._validateArgs.js.map +1 -1
  48. package/build/cjs/cc/DoorLockCC.d.ts +362 -361
  49. package/build/cjs/cc/DoorLockCC.js +51 -156
  50. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  51. package/build/cjs/cc/DoorLockLoggingCC.d.ts +14 -14
  52. package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
  53. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  54. package/build/cjs/cc/EnergyProductionCC.d.ts +16 -16
  55. package/build/cjs/cc/EnergyProductionCC.js +5 -17
  56. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  57. package/build/cjs/cc/EntryControlCC.d.ts +71 -71
  58. package/build/cjs/cc/EntryControlCC.js +9 -36
  59. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  60. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  61. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +26 -0
  62. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  63. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +101 -88
  64. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +159 -34
  65. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  66. package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -33
  67. package/build/cjs/cc/HumidityControlModeCC.js +6 -15
  68. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  69. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +9 -11
  70. package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
  71. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  72. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +50 -50
  73. package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
  74. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  75. package/build/cjs/cc/InclusionControllerCC.d.ts +4 -4
  76. package/build/cjs/cc/InclusionControllerCC.js.map +2 -2
  77. package/build/cjs/cc/IndicatorCC.d.ts +119 -119
  78. package/build/cjs/cc/IndicatorCC.js +15 -61
  79. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  80. package/build/cjs/cc/IrrigationCC.d.ts +581 -585
  81. package/build/cjs/cc/IrrigationCC.js +29 -233
  82. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  83. package/build/cjs/cc/LanguageCC.d.ts +21 -21
  84. package/build/cjs/cc/LanguageCC.js +4 -15
  85. package/build/cjs/cc/LanguageCC.js.map +2 -2
  86. package/build/cjs/cc/LockCC.d.ts +9 -9
  87. package/build/cjs/cc/LockCC.js +4 -12
  88. package/build/cjs/cc/LockCC.js.map +2 -2
  89. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +2 -2
  90. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  91. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +67 -67
  92. package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
  93. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  94. package/build/cjs/cc/MeterCC.d.ts +120 -119
  95. package/build/cjs/cc/MeterCC.js +25 -69
  96. package/build/cjs/cc/MeterCC.js.map +2 -2
  97. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +71 -73
  98. package/build/cjs/cc/MultiChannelAssociationCC.js +10 -28
  99. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  100. package/build/cjs/cc/MultiChannelCC.d.ts +136 -146
  101. package/build/cjs/cc/MultiChannelCC.js +26 -118
  102. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  103. package/build/cjs/cc/MultiCommandCC.d.ts +4 -8
  104. package/build/cjs/cc/MultiCommandCC.js +4 -37
  105. package/build/cjs/cc/MultiCommandCC.js.map +2 -2
  106. package/build/cjs/cc/MultilevelSensorCC.d.ts +50 -49
  107. package/build/cjs/cc/MultilevelSensorCC.js +12 -33
  108. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  109. package/build/cjs/cc/MultilevelSwitchCC.d.ts +146 -146
  110. package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
  111. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  112. package/build/cjs/cc/NodeNamingCC.d.ts +30 -30
  113. package/build/cjs/cc/NodeNamingCC.js +5 -16
  114. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  115. package/build/cjs/cc/NotificationCC.d.ts +210 -208
  116. package/build/cjs/cc/NotificationCC.js +41 -113
  117. package/build/cjs/cc/NotificationCC.js.map +2 -2
  118. package/build/cjs/cc/PowerlevelCC.d.ts +6 -6
  119. package/build/cjs/cc/PowerlevelCC.js.map +2 -2
  120. package/build/cjs/cc/ProtectionCC.d.ts +117 -121
  121. package/build/cjs/cc/ProtectionCC.js +15 -50
  122. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  123. package/build/cjs/cc/SceneActivationCC.d.ts +29 -29
  124. package/build/cjs/cc/SceneActivationCC.js +4 -17
  125. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  126. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +35 -35
  127. package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
  128. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  129. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +36 -35
  130. package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
  131. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  132. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +109 -109
  133. package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
  134. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  135. package/build/cjs/cc/Security2CC.d.ts +15 -21
  136. package/build/cjs/cc/Security2CC.js +32 -347
  137. package/build/cjs/cc/Security2CC.js.map +3 -3
  138. package/build/cjs/cc/SecurityCC.d.ts +12 -19
  139. package/build/cjs/cc/SecurityCC.js +12 -106
  140. package/build/cjs/cc/SecurityCC.js.map +2 -2
  141. package/build/cjs/cc/SoundSwitchCC.d.ts +58 -58
  142. package/build/cjs/cc/SoundSwitchCC.js +11 -43
  143. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  144. package/build/cjs/cc/SupervisionCC.d.ts +21 -25
  145. package/build/cjs/cc/SupervisionCC.js +8 -38
  146. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  147. package/build/cjs/cc/ThermostatFanModeCC.d.ts +37 -39
  148. package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
  149. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  150. package/build/cjs/cc/ThermostatFanStateCC.d.ts +9 -11
  151. package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
  152. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  153. package/build/cjs/cc/ThermostatModeCC.d.ts +39 -41
  154. package/build/cjs/cc/ThermostatModeCC.js +8 -21
  155. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  156. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +9 -11
  157. package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
  158. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  159. package/build/cjs/cc/ThermostatSetbackCC.d.ts +4 -4
  160. package/build/cjs/cc/ThermostatSetbackCC.js.map +2 -2
  161. package/build/cjs/cc/ThermostatSetpointCC.d.ts +51 -51
  162. package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
  163. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  164. package/build/cjs/cc/TimeCC.d.ts +6 -6
  165. package/build/cjs/cc/TimeCC.js.map +2 -2
  166. package/build/cjs/cc/TimeParametersCC.d.ts +9 -9
  167. package/build/cjs/cc/TimeParametersCC.js +4 -11
  168. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  169. package/build/cjs/cc/TransportServiceCC.d.ts +7 -12
  170. package/build/cjs/cc/TransportServiceCC.js +3 -20
  171. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  172. package/build/cjs/cc/UserCodeCC._validateArgs.js +1 -1
  173. package/build/cjs/cc/UserCodeCC._validateArgs.js.map +1 -1
  174. package/build/cjs/cc/UserCodeCC.d.ts +236 -236
  175. package/build/cjs/cc/UserCodeCC.js +33 -98
  176. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  177. package/build/cjs/cc/VersionCC.d.ts +210 -212
  178. package/build/cjs/cc/VersionCC.js +7 -98
  179. package/build/cjs/cc/VersionCC.js.map +2 -2
  180. package/build/cjs/cc/WakeUpCC.d.ts +44 -44
  181. package/build/cjs/cc/WakeUpCC.js +6 -26
  182. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  183. package/build/cjs/cc/WindowCoveringCC.d.ts +118 -122
  184. package/build/cjs/cc/WindowCoveringCC.js +16 -128
  185. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  186. package/build/cjs/cc/ZWavePlusCC.d.ts +74 -74
  187. package/build/cjs/cc/ZWavePlusCC.js +4 -25
  188. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  189. package/build/cjs/cc/ZWaveProtocolCC.d.ts +28 -28
  190. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  191. package/build/cjs/cc/_CCValues.generated.d.ts +15814 -0
  192. package/build/cjs/cc/_CCValues.generated.js +8723 -0
  193. package/build/cjs/cc/_CCValues.generated.js.map +7 -0
  194. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  195. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +2 -2
  196. package/build/cjs/index.d.ts +1 -0
  197. package/build/cjs/index.js.map +1 -1
  198. package/build/cjs/index_browser.d.ts +9 -0
  199. package/build/cjs/index_browser.js +41 -1
  200. package/build/cjs/index_browser.js.map +2 -2
  201. package/build/cjs/lib/API.d.ts +7 -5
  202. package/build/cjs/lib/API.js +1 -1
  203. package/build/cjs/lib/API.js.map +2 -2
  204. package/build/cjs/lib/CCValueUtils.d.ts +14 -0
  205. package/build/cjs/lib/CCValueUtils.js +93 -0
  206. package/build/cjs/lib/CCValueUtils.js.map +7 -0
  207. package/build/cjs/lib/CommandClass.d.ts +10 -21
  208. package/build/cjs/lib/CommandClass.js +51 -106
  209. package/build/cjs/lib/CommandClass.js.map +3 -3
  210. package/build/cjs/lib/CommandClassDecorators.d.ts +1 -1
  211. package/build/cjs/lib/CommandClassDecorators.js +3 -3
  212. package/build/cjs/lib/CommandClassDecorators.js.map +2 -2
  213. package/build/cjs/lib/Values.d.ts +7 -106
  214. package/build/cjs/lib/Values.js +13 -107
  215. package/build/cjs/lib/Values.js.map +3 -3
  216. package/build/cjs/lib/traits.d.ts +94 -0
  217. package/build/cjs/lib/traits.js +17 -0
  218. package/build/cjs/lib/traits.js.map +7 -0
  219. package/build/cjs/lib/utils.d.ts +2 -2
  220. package/build/cjs/lib/utils.js.map +2 -2
  221. package/build/esm/cc/AlarmSensorCC.d.ts +68 -68
  222. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  223. package/build/esm/cc/AlarmSensorCC.js +2 -40
  224. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  225. package/build/esm/cc/AssociationCC.d.ts +72 -73
  226. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  227. package/build/esm/cc/AssociationCC.js +2 -27
  228. package/build/esm/cc/AssociationCC.js.map +1 -1
  229. package/build/esm/cc/AssociationGroupInfoCC.d.ts +71 -71
  230. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  231. package/build/esm/cc/AssociationGroupInfoCC.js +2 -19
  232. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  233. package/build/esm/cc/BarrierOperatorCC.d.ts +66 -72
  234. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  235. package/build/esm/cc/BarrierOperatorCC.js +2 -37
  236. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  237. package/build/esm/cc/BasicCC.d.ts +64 -65
  238. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  239. package/build/esm/cc/BasicCC.js +2 -34
  240. package/build/esm/cc/BasicCC.js.map +1 -1
  241. package/build/esm/cc/BatteryCC.d.ts +162 -165
  242. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  243. package/build/esm/cc/BatteryCC.js +3 -80
  244. package/build/esm/cc/BatteryCC.js.map +1 -1
  245. package/build/esm/cc/BinarySensorCC.d.ts +36 -36
  246. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  247. package/build/esm/cc/BinarySensorCC.js +2 -19
  248. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  249. package/build/esm/cc/BinarySwitchCC.d.ts +34 -34
  250. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  251. package/build/esm/cc/BinarySwitchCC.js +2 -19
  252. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  253. package/build/esm/cc/CRC16CC.d.ts +4 -8
  254. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  255. package/build/esm/cc/CRC16CC.js +4 -34
  256. package/build/esm/cc/CRC16CC.js.map +1 -1
  257. package/build/esm/cc/CentralSceneCC.d.ts +74 -74
  258. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  259. package/build/esm/cc/CentralSceneCC.js +2 -27
  260. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  261. package/build/esm/cc/ClimateControlScheduleCC.d.ts +38 -40
  262. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  263. package/build/esm/cc/ClimateControlScheduleCC.js +2 -26
  264. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  265. package/build/esm/cc/ClockCC.d.ts +3 -3
  266. package/build/esm/cc/ClockCC.d.ts.map +1 -1
  267. package/build/esm/cc/ClockCC.js +0 -1
  268. package/build/esm/cc/ClockCC.js.map +1 -1
  269. package/build/esm/cc/ColorSwitchCC.d.ts +117 -117
  270. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  271. package/build/esm/cc/ColorSwitchCC.js +2 -58
  272. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  273. package/build/esm/cc/ConfigurationCC._validateArgs.js +1 -1
  274. package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -1
  275. package/build/esm/cc/ConfigurationCC.d.ts +48 -52
  276. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  277. package/build/esm/cc/ConfigurationCC.js +2 -40
  278. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  279. package/build/esm/cc/DeviceResetLocallyCC.d.ts +1 -1
  280. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -1
  281. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -1
  282. package/build/esm/cc/DoorLockCC._validateArgs.js +1 -1
  283. package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -1
  284. package/build/esm/cc/DoorLockCC.d.ts +362 -361
  285. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  286. package/build/esm/cc/DoorLockCC.js +9 -129
  287. package/build/esm/cc/DoorLockCC.js.map +1 -1
  288. package/build/esm/cc/DoorLockLoggingCC.d.ts +14 -14
  289. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  290. package/build/esm/cc/DoorLockLoggingCC.js +2 -6
  291. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  292. package/build/esm/cc/EnergyProductionCC.d.ts +16 -16
  293. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  294. package/build/esm/cc/EnergyProductionCC.js +2 -15
  295. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  296. package/build/esm/cc/EntryControlCC.d.ts +71 -71
  297. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  298. package/build/esm/cc/EntryControlCC.js +2 -29
  299. package/build/esm/cc/EntryControlCC.js.map +1 -1
  300. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +2 -0
  301. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -1
  302. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +20 -0
  303. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -1
  304. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +101 -88
  305. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  306. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +160 -53
  307. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  308. package/build/esm/cc/HumidityControlModeCC.d.ts +31 -33
  309. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  310. package/build/esm/cc/HumidityControlModeCC.js +2 -11
  311. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  312. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +9 -11
  313. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  314. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -9
  315. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  316. package/build/esm/cc/HumidityControlSetpointCC.d.ts +50 -50
  317. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  318. package/build/esm/cc/HumidityControlSetpointCC.js +2 -23
  319. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  320. package/build/esm/cc/InclusionControllerCC.d.ts +4 -4
  321. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -1
  322. package/build/esm/cc/InclusionControllerCC.js +0 -2
  323. package/build/esm/cc/InclusionControllerCC.js.map +1 -1
  324. package/build/esm/cc/IndicatorCC.d.ts +119 -119
  325. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  326. package/build/esm/cc/IndicatorCC.js +2 -50
  327. package/build/esm/cc/IndicatorCC.js.map +1 -1
  328. package/build/esm/cc/IrrigationCC.d.ts +581 -585
  329. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  330. package/build/esm/cc/IrrigationCC.js +3 -231
  331. package/build/esm/cc/IrrigationCC.js.map +1 -1
  332. package/build/esm/cc/LanguageCC.d.ts +21 -21
  333. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  334. package/build/esm/cc/LanguageCC.js +2 -13
  335. package/build/esm/cc/LanguageCC.js.map +1 -1
  336. package/build/esm/cc/LockCC.d.ts +9 -9
  337. package/build/esm/cc/LockCC.d.ts.map +1 -1
  338. package/build/esm/cc/LockCC.js +2 -10
  339. package/build/esm/cc/LockCC.js.map +1 -1
  340. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +2 -2
  341. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  342. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -2
  343. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  344. package/build/esm/cc/ManufacturerSpecificCC.d.ts +67 -67
  345. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  346. package/build/esm/cc/ManufacturerSpecificCC.js +2 -26
  347. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  348. package/build/esm/cc/MeterCC.d.ts +120 -119
  349. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  350. package/build/esm/cc/MeterCC.js +3 -53
  351. package/build/esm/cc/MeterCC.js.map +1 -1
  352. package/build/esm/cc/MultiChannelAssociationCC.d.ts +71 -73
  353. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  354. package/build/esm/cc/MultiChannelAssociationCC.js +2 -30
  355. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  356. package/build/esm/cc/MultiChannelCC.d.ts +136 -146
  357. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  358. package/build/esm/cc/MultiChannelCC.js +10 -131
  359. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  360. package/build/esm/cc/MultiCommandCC.d.ts +4 -8
  361. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -1
  362. package/build/esm/cc/MultiCommandCC.js +4 -38
  363. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  364. package/build/esm/cc/MultilevelSensorCC.d.ts +50 -49
  365. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  366. package/build/esm/cc/MultilevelSensorCC.js +2 -27
  367. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  368. package/build/esm/cc/MultilevelSwitchCC.d.ts +146 -146
  369. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  370. package/build/esm/cc/MultilevelSwitchCC.js +5 -105
  371. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  372. package/build/esm/cc/NodeNamingCC.d.ts +30 -30
  373. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  374. package/build/esm/cc/NodeNamingCC.js +2 -14
  375. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  376. package/build/esm/cc/NotificationCC.d.ts +210 -208
  377. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  378. package/build/esm/cc/NotificationCC.js +21 -97
  379. package/build/esm/cc/NotificationCC.js.map +1 -1
  380. package/build/esm/cc/PowerlevelCC.d.ts +6 -6
  381. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -1
  382. package/build/esm/cc/PowerlevelCC.js +0 -4
  383. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  384. package/build/esm/cc/ProtectionCC.d.ts +117 -121
  385. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  386. package/build/esm/cc/ProtectionCC.js +2 -39
  387. package/build/esm/cc/ProtectionCC.js.map +1 -1
  388. package/build/esm/cc/SceneActivationCC.d.ts +29 -29
  389. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  390. package/build/esm/cc/SceneActivationCC.js +2 -15
  391. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  392. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +35 -35
  393. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  394. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -16
  395. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  396. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +36 -35
  397. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  398. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -16
  399. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  400. package/build/esm/cc/ScheduleEntryLockCC.d.ts +109 -109
  401. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  402. package/build/esm/cc/ScheduleEntryLockCC.js +2 -31
  403. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  404. package/build/esm/cc/Security2CC.d.ts +15 -21
  405. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  406. package/build/esm/cc/Security2CC.js +27 -475
  407. package/build/esm/cc/Security2CC.js.map +1 -1
  408. package/build/esm/cc/SecurityCC.d.ts +12 -19
  409. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  410. package/build/esm/cc/SecurityCC.js +13 -138
  411. package/build/esm/cc/SecurityCC.js.map +1 -1
  412. package/build/esm/cc/SoundSwitchCC.d.ts +58 -58
  413. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  414. package/build/esm/cc/SoundSwitchCC.js +2 -40
  415. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  416. package/build/esm/cc/SupervisionCC.d.ts +21 -25
  417. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  418. package/build/esm/cc/SupervisionCC.js +6 -41
  419. package/build/esm/cc/SupervisionCC.js.map +1 -1
  420. package/build/esm/cc/ThermostatFanModeCC.d.ts +37 -39
  421. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  422. package/build/esm/cc/ThermostatFanModeCC.js +2 -15
  423. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  424. package/build/esm/cc/ThermostatFanStateCC.d.ts +9 -11
  425. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  426. package/build/esm/cc/ThermostatFanStateCC.js +2 -9
  427. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  428. package/build/esm/cc/ThermostatModeCC.d.ts +39 -41
  429. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  430. package/build/esm/cc/ThermostatModeCC.js +2 -17
  431. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  432. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +9 -11
  433. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  434. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -9
  435. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  436. package/build/esm/cc/ThermostatSetbackCC.d.ts +4 -4
  437. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -1
  438. package/build/esm/cc/ThermostatSetbackCC.js +0 -2
  439. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  440. package/build/esm/cc/ThermostatSetpointCC.d.ts +51 -51
  441. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  442. package/build/esm/cc/ThermostatSetpointCC.js +2 -22
  443. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  444. package/build/esm/cc/TimeCC.d.ts +6 -6
  445. package/build/esm/cc/TimeCC.d.ts.map +1 -1
  446. package/build/esm/cc/TimeCC.js +0 -4
  447. package/build/esm/cc/TimeCC.js.map +1 -1
  448. package/build/esm/cc/TimeParametersCC.d.ts +9 -9
  449. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  450. package/build/esm/cc/TimeParametersCC.js +2 -9
  451. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  452. package/build/esm/cc/TransportServiceCC.d.ts +7 -12
  453. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  454. package/build/esm/cc/TransportServiceCC.js +5 -38
  455. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  456. package/build/esm/cc/UserCodeCC._validateArgs.js +1 -1
  457. package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -1
  458. package/build/esm/cc/UserCodeCC.d.ts +236 -236
  459. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  460. package/build/esm/cc/UserCodeCC.js +2 -72
  461. package/build/esm/cc/UserCodeCC.js.map +1 -1
  462. package/build/esm/cc/VersionCC.d.ts +210 -212
  463. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  464. package/build/esm/cc/VersionCC.js +2 -96
  465. package/build/esm/cc/VersionCC.js.map +1 -1
  466. package/build/esm/cc/WakeUpCC.d.ts +44 -44
  467. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  468. package/build/esm/cc/WakeUpCC.js +2 -22
  469. package/build/esm/cc/WakeUpCC.js.map +1 -1
  470. package/build/esm/cc/WindowCoveringCC.d.ts +118 -122
  471. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  472. package/build/esm/cc/WindowCoveringCC.js +3 -108
  473. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  474. package/build/esm/cc/ZWavePlusCC.d.ts +74 -74
  475. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  476. package/build/esm/cc/ZWavePlusCC.js +2 -26
  477. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  478. package/build/esm/cc/ZWaveProtocolCC.d.ts +28 -28
  479. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  480. package/build/esm/cc/ZWaveProtocolCC.js +0 -27
  481. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  482. package/build/esm/cc/_CCValues.generated.d.ts +15814 -0
  483. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -0
  484. package/build/esm/cc/_CCValues.generated.js +9187 -0
  485. package/build/esm/cc/_CCValues.generated.js.map +1 -0
  486. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +4 -4
  487. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -1
  488. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +0 -3
  489. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  490. package/build/esm/index.d.ts +1 -0
  491. package/build/esm/index.d.ts.map +1 -1
  492. package/build/esm/index_browser.d.ts +9 -0
  493. package/build/esm/index_browser.d.ts.map +1 -1
  494. package/build/esm/index_browser.js +8 -1
  495. package/build/esm/index_browser.js.map +1 -1
  496. package/build/esm/lib/API.d.ts +7 -5
  497. package/build/esm/lib/API.d.ts.map +1 -1
  498. package/build/esm/lib/API.js +1 -1
  499. package/build/esm/lib/API.js.map +1 -1
  500. package/build/esm/lib/CCValueUtils.d.ts +14 -0
  501. package/build/esm/lib/CCValueUtils.d.ts.map +1 -0
  502. package/build/esm/lib/CCValueUtils.js +62 -0
  503. package/build/esm/lib/CCValueUtils.js.map +1 -0
  504. package/build/esm/lib/CommandClass.d.ts +10 -21
  505. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  506. package/build/esm/lib/CommandClass.js +8 -101
  507. package/build/esm/lib/CommandClass.js.map +1 -1
  508. package/build/esm/lib/CommandClassDecorators.d.ts +1 -1
  509. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -1
  510. package/build/esm/lib/CommandClassDecorators.js +1 -1
  511. package/build/esm/lib/CommandClassDecorators.js.map +1 -1
  512. package/build/esm/lib/Values.d.ts +7 -106
  513. package/build/esm/lib/Values.d.ts.map +1 -1
  514. package/build/esm/lib/Values.js +7 -104
  515. package/build/esm/lib/Values.js.map +1 -1
  516. package/build/esm/lib/traits.d.ts +94 -0
  517. package/build/esm/lib/traits.d.ts.map +1 -0
  518. package/build/esm/lib/traits.js +2 -0
  519. package/build/esm/lib/traits.js.map +1 -0
  520. package/build/esm/lib/utils.d.ts +2 -2
  521. package/build/esm/lib/utils.d.ts.map +1 -1
  522. package/build/esm/lib/utils.js.map +1 -1
  523. package/package.json +16 -14
@@ -1,115 +1,116 @@
1
- import type { EndpointId, MaybeNotKnown, SupervisionResult, WithAddress } from "@zwave-js/core/safe";
1
+ import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
+ import { type GetDeviceConfig } from "@zwave-js/config";
3
+ import type { EndpointId, GetValueDB, MaybeNotKnown, SupervisionResult, WithAddress } from "@zwave-js/core/safe";
2
4
  import { CommandClasses, type MessageOrCCLogEntry } from "@zwave-js/core/safe";
3
- import type { CCEncodingContext, CCParsingContext, GetDeviceConfig, GetValueDB } from "@zwave-js/host/safe";
4
5
  import { Bytes } from "@zwave-js/shared/safe";
5
6
  import { PhysicalCCAPI } from "../lib/API.js";
6
7
  import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
7
8
  import { type AssociationAddress, AssociationCommand } from "../lib/_Types.js";
8
9
  export declare const AssociationCCValues: Readonly<{
9
- nodeIds: ((groupId: number) => {
10
- readonly meta: {
11
- readonly type: "any";
12
- readonly readable: true;
13
- readonly writeable: true;
14
- };
15
- readonly id: {
16
- commandClass: CommandClasses.Association;
17
- property: "nodeIds";
18
- propertyKey: number;
10
+ hasLifeline: {
11
+ id: {
12
+ readonly commandClass: CommandClasses.Association;
13
+ readonly property: "hasLifeline";
19
14
  };
20
- readonly endpoint: (endpoint?: number | undefined) => {
15
+ endpoint: (endpoint?: number) => {
21
16
  readonly commandClass: CommandClasses.Association;
22
17
  readonly endpoint: number;
23
- readonly property: "nodeIds";
24
- readonly propertyKey: number;
18
+ readonly property: "hasLifeline";
25
19
  };
26
- }) & {
27
20
  is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
28
- readonly options: {
29
- readonly stateful: true;
30
- readonly secret: false;
21
+ readonly meta: Readonly<{
22
+ readonly type: "any";
23
+ readonly readable: true;
24
+ readonly writeable: true;
25
+ }>;
26
+ options: {
27
+ readonly internal: true;
31
28
  readonly minVersion: 1;
29
+ readonly secret: false;
30
+ readonly stateful: true;
32
31
  readonly supportsEndpoints: true;
33
32
  readonly autoCreate: true;
34
- readonly internal: true;
35
33
  };
36
34
  };
37
- maxNodes: ((groupId: number) => {
38
- readonly meta: {
39
- readonly type: "any";
40
- readonly readable: true;
41
- readonly writeable: true;
42
- };
43
- readonly id: {
44
- commandClass: CommandClasses.Association;
45
- property: "maxNodes";
46
- propertyKey: number;
35
+ groupCount: {
36
+ id: {
37
+ readonly commandClass: CommandClasses.Association;
38
+ readonly property: "groupCount";
47
39
  };
48
- readonly endpoint: (endpoint?: number | undefined) => {
40
+ endpoint: (endpoint?: number) => {
49
41
  readonly commandClass: CommandClasses.Association;
50
42
  readonly endpoint: number;
51
- readonly property: "maxNodes";
52
- readonly propertyKey: number;
43
+ readonly property: "groupCount";
53
44
  };
54
- }) & {
55
45
  is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
56
- readonly options: {
57
- readonly stateful: true;
58
- readonly secret: false;
46
+ readonly meta: Readonly<{
47
+ readonly type: "any";
48
+ readonly readable: true;
49
+ readonly writeable: true;
50
+ }>;
51
+ options: {
52
+ readonly internal: true;
59
53
  readonly minVersion: 1;
54
+ readonly secret: false;
55
+ readonly stateful: true;
60
56
  readonly supportsEndpoints: true;
61
57
  readonly autoCreate: true;
62
- readonly internal: true;
63
58
  };
64
59
  };
65
- groupCount: {
66
- readonly id: {
67
- commandClass: CommandClasses.Association;
68
- property: "groupCount";
60
+ maxNodes: ((groupId: number) => {
61
+ id: {
62
+ readonly commandClass: CommandClasses.Association;
63
+ readonly property: "maxNodes";
64
+ readonly propertyKey: number;
69
65
  };
70
- readonly endpoint: (endpoint?: number | undefined) => {
66
+ endpoint: (endpoint?: number) => {
71
67
  readonly commandClass: CommandClasses.Association;
72
68
  readonly endpoint: number;
73
- readonly property: "groupCount";
69
+ readonly property: "maxNodes";
70
+ readonly propertyKey: number;
74
71
  };
75
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
76
- readonly meta: {
72
+ readonly meta: Readonly<{
77
73
  readonly type: "any";
78
74
  readonly readable: true;
79
75
  readonly writeable: true;
80
- };
81
- readonly options: {
82
- readonly stateful: true;
83
- readonly secret: false;
76
+ }>;
77
+ }) & {
78
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
79
+ options: {
80
+ readonly internal: true;
84
81
  readonly minVersion: 1;
82
+ readonly secret: false;
83
+ readonly stateful: true;
85
84
  readonly supportsEndpoints: true;
86
85
  readonly autoCreate: true;
87
- readonly internal: true;
88
86
  };
89
87
  };
90
- hasLifeline: {
91
- readonly id: {
92
- commandClass: CommandClasses.Association;
93
- property: "hasLifeline";
88
+ nodeIds: ((groupId: number) => {
89
+ id: {
90
+ readonly commandClass: CommandClasses.Association;
91
+ readonly property: "nodeIds";
92
+ readonly propertyKey: number;
94
93
  };
95
- readonly endpoint: (endpoint?: number | undefined) => {
94
+ endpoint: (endpoint?: number) => {
96
95
  readonly commandClass: CommandClasses.Association;
97
96
  readonly endpoint: number;
98
- readonly property: "hasLifeline";
97
+ readonly property: "nodeIds";
98
+ readonly propertyKey: number;
99
99
  };
100
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
101
- readonly meta: {
100
+ readonly meta: Readonly<{
102
101
  readonly type: "any";
103
102
  readonly readable: true;
104
103
  readonly writeable: true;
105
- };
106
- readonly options: {
107
- readonly stateful: true;
108
- readonly secret: false;
104
+ }>;
105
+ }) & {
106
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
107
+ options: {
108
+ readonly internal: true;
109
109
  readonly minVersion: 1;
110
+ readonly secret: false;
111
+ readonly stateful: true;
110
112
  readonly supportsEndpoints: true;
111
113
  readonly autoCreate: true;
112
- readonly internal: true;
113
114
  };
114
115
  };
115
116
  }>;
@@ -180,7 +181,7 @@ export declare class AssociationCCSet extends AssociationCC {
180
181
  static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCSet;
181
182
  groupId: number;
182
183
  nodeIds: number[];
183
- serialize(ctx: CCEncodingContext): Bytes;
184
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
184
185
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
185
186
  }
186
187
  export interface AssociationCCRemoveOptions {
@@ -194,7 +195,7 @@ export declare class AssociationCCRemove extends AssociationCC {
194
195
  static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCRemove;
195
196
  groupId?: number;
196
197
  nodeIds?: number[];
197
- serialize(ctx: CCEncodingContext): Bytes;
198
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
198
199
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
199
200
  }
200
201
  export interface AssociationCCReportOptions {
@@ -212,10 +213,8 @@ export declare class AssociationCCReport extends AssociationCC {
212
213
  reportsToFollow: number;
213
214
  getPartialCCSessionId(): Record<string, any> | undefined;
214
215
  expectMoreMessages(): boolean;
215
- /** @deprecated Use {@link mergePartialCCsAsync} instead */
216
- mergePartialCCs(partials: AssociationCCReport[], _ctx: CCParsingContext): void;
217
- mergePartialCCsAsync(partials: AssociationCCReport[], _ctx: CCParsingContext): Promise<void>;
218
- serialize(ctx: CCEncodingContext): Bytes;
216
+ mergePartialCCs(partials: AssociationCCReport[], _ctx: CCParsingContext): Promise<void>;
217
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
219
218
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
220
219
  }
221
220
  export interface AssociationCCGetOptions {
@@ -225,7 +224,7 @@ export declare class AssociationCCGet extends AssociationCC {
225
224
  constructor(options: WithAddress<AssociationCCGetOptions>);
226
225
  static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCGet;
227
226
  groupId: number;
228
- serialize(ctx: CCEncodingContext): Bytes;
227
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
229
228
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
230
229
  }
231
230
  export interface AssociationCCSupportedGroupingsReportOptions {
@@ -235,7 +234,7 @@ export declare class AssociationCCSupportedGroupingsReport extends AssociationCC
235
234
  constructor(options: WithAddress<AssociationCCSupportedGroupingsReportOptions>);
236
235
  static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCSupportedGroupingsReport;
237
236
  groupCount: number;
238
- serialize(ctx: CCEncodingContext): Bytes;
237
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
239
238
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
240
239
  }
241
240
  export declare class AssociationCCSupportedGroupingsGet extends AssociationCC {
@@ -247,7 +246,7 @@ export declare class AssociationCCSpecificGroupReport extends AssociationCC {
247
246
  constructor(options: WithAddress<AssociationCCSpecificGroupReportOptions>);
248
247
  static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCSpecificGroupReport;
249
248
  group: number;
250
- serialize(ctx: CCEncodingContext): Bytes;
249
+ serialize(ctx: CCEncodingContext): Promise<Bytes>;
251
250
  toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
252
251
  }
253
252
  export declare class AssociationCCSpecificGroupGet extends AssociationCC {
@@ -39,7 +39,7 @@ __export(AssociationCC_exports, {
39
39
  AssociationCCSpecificGroupReport: () => AssociationCCSpecificGroupReport,
40
40
  AssociationCCSupportedGroupingsGet: () => AssociationCCSupportedGroupingsGet,
41
41
  AssociationCCSupportedGroupingsReport: () => AssociationCCSupportedGroupingsReport,
42
- AssociationCCValues: () => AssociationCCValues
42
+ AssociationCCValues: () => import_CCValues_generated.AssociationCCValues
43
43
  });
44
44
  module.exports = __toCommonJS(AssociationCC_exports);
45
45
  var __validateArgs = __toESM(require("./AssociationCC._validateArgs.js"), 1);
@@ -52,6 +52,7 @@ var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
52
52
  var import_Values = require("../lib/Values.js");
53
53
  var import_Types = require("../lib/_Types.js");
54
54
  var ccUtils = __toESM(require("../lib/utils.js"), 1);
55
+ var import_CCValues_generated = require("./_CCValues.generated.js");
55
56
  var __runInitializers = function(thisArg, initializers, value) {
56
57
  var useValue = arguments.length > 2;
57
58
  for (var i = 0; i < initializers.length; i++) {
@@ -93,20 +94,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
93
94
  done = true;
94
95
  };
95
96
  const { validateArgs_AssociationCCAPI_reportGroupCount, validateArgs_AssociationCCAPI_getGroup, validateArgs_AssociationCCAPI_sendReport, validateArgs_AssociationCCAPI_addNodeIds, validateArgs_AssociationCCAPI_removeNodeIds, validateArgs_AssociationCCAPI_removeNodeIdsFromAllGroups, validateArgs_AssociationCCAPI_getSpecificGroup, validateArgs_AssociationCCAPI_reportSpecificGroup } = __validateArgs;
96
- const AssociationCCValues = Object.freeze({
97
- ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses.Association, {
98
- /** Whether the node has a lifeline association */
99
- ...import_Values.V.staticProperty("hasLifeline", void 0, { internal: true }),
100
- /** How many association groups the node has */
101
- ...import_Values.V.staticProperty("groupCount", void 0, { internal: true })
102
- }),
103
- ...import_Values.V.defineDynamicCCValues(import_safe.CommandClasses.Association, {
104
- /** The maximum number of nodes in an association group */
105
- ...import_Values.V.dynamicPropertyAndKeyWithName("maxNodes", "maxNodes", (groupId) => groupId, ({ property, propertyKey }) => property === "maxNodes" && typeof propertyKey === "number", void 0, { internal: true }),
106
- /** The node IDs currently belonging to an association group */
107
- ...import_Values.V.dynamicPropertyAndKeyWithName("nodeIds", "nodeIds", (groupId) => groupId, ({ property, propertyKey }) => property === "nodeIds" && typeof propertyKey === "number", void 0, { internal: true })
108
- })
109
- });
110
97
  let AssociationCCAPI = (() => {
111
98
  let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses.Association)];
112
99
  let _classDescriptor;
@@ -257,7 +244,7 @@ let AssociationCCAPI = (() => {
257
244
  if (this.version >= 2) {
258
245
  return this.removeNodeIds({ nodeIds, groupId: 0 });
259
246
  } else {
260
- const groupCount = this.tryGetValueDB()?.getValue(AssociationCCValues.groupCount.endpoint(this.endpoint.index)) ?? 0;
247
+ const groupCount = this.tryGetValueDB()?.getValue(import_CCValues_generated.AssociationCCValues.groupCount.endpoint(this.endpoint.index)) ?? 0;
261
248
  for (let groupId = 1; groupId <= groupCount; groupId++) {
262
249
  await this.removeNodeIds({ nodeIds, groupId });
263
250
  }
@@ -295,7 +282,7 @@ let AssociationCCAPI = (() => {
295
282
  return AssociationCCAPI2 = _classThis;
296
283
  })();
297
284
  let AssociationCC = (() => {
298
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Association), (0, import_CommandClassDecorators.implementedVersion)(4), (0, import_CommandClassDecorators.ccValues)(AssociationCCValues)];
285
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Association), (0, import_CommandClassDecorators.implementedVersion)(4), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.AssociationCCValues)];
299
286
  let _classDescriptor;
300
287
  let _classExtraInitializers = [];
301
288
  let _classThis;
@@ -327,14 +314,14 @@ let AssociationCC = (() => {
327
314
  * This only works AFTER the interview process
328
315
  */
329
316
  static getGroupCountCached(ctx, endpoint) {
330
- return ctx.getValueDB(endpoint.nodeId).getValue(AssociationCCValues.groupCount.endpoint(endpoint.index)) || 0;
317
+ return ctx.getValueDB(endpoint.nodeId).getValue(import_CCValues_generated.AssociationCCValues.groupCount.endpoint(endpoint.index)) || 0;
331
318
  }
332
319
  /**
333
320
  * Returns the number of nodes an association group supports.
334
321
  * This only works AFTER the interview process
335
322
  */
336
323
  static getMaxNodesCached(ctx, endpoint, groupId) {
337
- return ctx.getValueDB(endpoint.nodeId).getValue(AssociationCCValues.maxNodes(groupId).endpoint(endpoint.index)) ?? ctx.getDeviceConfig?.(endpoint.nodeId)?.getAssociationConfigForEndpoint(endpoint.index, groupId)?.maxNodes ?? 0;
324
+ return ctx.getValueDB(endpoint.nodeId).getValue(import_CCValues_generated.AssociationCCValues.maxNodes(groupId).endpoint(endpoint.index)) ?? ctx.getDeviceConfig?.(endpoint.nodeId)?.getAssociationConfigForEndpoint(endpoint.index, groupId)?.maxNodes ?? 0;
338
325
  }
339
326
  /**
340
327
  * Returns all the destinations of all association groups reported by the node/endpoint.
@@ -345,7 +332,7 @@ let AssociationCC = (() => {
345
332
  const groupCount = this.getGroupCountCached(ctx, endpoint);
346
333
  const valueDB = ctx.getValueDB(endpoint.nodeId);
347
334
  for (let i = 1; i <= groupCount; i++) {
348
- const nodes = valueDB.getValue(AssociationCCValues.nodeIds(i).endpoint(endpoint.index)) ?? [];
335
+ const nodes = valueDB.getValue(import_CCValues_generated.AssociationCCValues.nodeIds(i).endpoint(endpoint.index)) ?? [];
349
336
  ret.set(
350
337
  i,
351
338
  // Filter out duplicates
@@ -548,7 +535,7 @@ let AssociationCCRemove = (() => {
548
535
  return AssociationCCRemove2 = _classThis;
549
536
  })();
550
537
  let AssociationCCReport = (() => {
551
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("maxNodes", AssociationCCValues.maxNodes, (self) => [self.groupId]), (0, import_CommandClassDecorators.ccValueProperty)("nodeIds", AssociationCCValues.nodeIds, (self) => [self.groupId])];
538
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("maxNodes", import_CCValues_generated.AssociationCCValues.maxNodes, (self) => [self.groupId]), (0, import_CommandClassDecorators.ccValueProperty)("nodeIds", import_CCValues_generated.AssociationCCValues.nodeIds, (self) => [self.groupId])];
552
539
  let _classDescriptor;
553
540
  let _classExtraInitializers = [];
554
541
  let _classThis;
@@ -598,12 +585,8 @@ let AssociationCCReport = (() => {
598
585
  expectMoreMessages() {
599
586
  return this.reportsToFollow > 0;
600
587
  }
601
- /** @deprecated Use {@link mergePartialCCsAsync} instead */
602
588
  mergePartialCCs(partials, _ctx) {
603
589
  this.nodeIds = [...partials, this].map((report) => report.nodeIds).reduce((prev, cur) => prev.concat(...cur), []);
604
- }
605
- mergePartialCCsAsync(partials, _ctx) {
606
- this.nodeIds = [...partials, this].map((report) => report.nodeIds).reduce((prev, cur) => prev.concat(...cur), []);
607
590
  return Promise.resolve();
608
591
  }
609
592
  serialize(ctx) {
@@ -679,7 +662,7 @@ let AssociationCCGet = (() => {
679
662
  return AssociationCCGet2 = _classThis;
680
663
  })();
681
664
  let AssociationCCSupportedGroupingsReport = (() => {
682
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationCommand.SupportedGroupingsReport), (0, import_CommandClassDecorators.ccValueProperty)("groupCount", AssociationCCValues.groupCount)];
665
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.AssociationCommand.SupportedGroupingsReport), (0, import_CommandClassDecorators.ccValueProperty)("groupCount", import_CCValues_generated.AssociationCCValues.groupCount)];
683
666
  let _classDescriptor;
684
667
  let _classExtraInitializers = [];
685
668
  let _classThis;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/AssociationCC.ts"],
4
- "sourcesContent": ["import type {\n\tEndpointId,\n\tMaybeNotKnown,\n\tMessageRecord,\n\tSupervisionResult,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\tMAX_NODES,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetDeviceConfig,\n\tGetValueDB,\n} from \"@zwave-js/host/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { distinct } from \"alcalzone-shared/arrays\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { type AssociationAddress, AssociationCommand } from \"../lib/_Types.js\";\nimport * as ccUtils from \"../lib/utils.js\";\n\nexport const AssociationCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses.Association, {\n\t\t/** Whether the node has a lifeline association */\n\t\t...V.staticProperty(\"hasLifeline\", undefined, { internal: true }),\n\t\t/** How many association groups the node has */\n\t\t...V.staticProperty(\"groupCount\", undefined, { internal: true }),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses.Association, {\n\t\t/** The maximum number of nodes in an association group */\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"maxNodes\",\n\t\t\t\"maxNodes\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"maxNodes\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t\t/** The node IDs currently belonging to an association group */\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"nodeIds\",\n\t\t\t\"nodeIds\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"nodeIds\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t}),\n});\n\n// @noSetValueAPI\n\n@API(CommandClasses.Association)\nexport class AssociationCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: AssociationCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase AssociationCommand.Get:\n\t\t\tcase AssociationCommand.Set:\n\t\t\tcase AssociationCommand.Report:\n\t\t\tcase AssociationCommand.Remove:\n\t\t\tcase AssociationCommand.SupportedGroupingsGet:\n\t\t\tcase AssociationCommand.SupportedGroupingsReport:\n\t\t\t\treturn true;\n\t\t\tcase AssociationCommand.SpecificGroupGet:\n\t\t\tcase AssociationCommand.SpecificGroupReport:\n\t\t\t\treturn this.version >= 2;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Returns the number of association groups a node supports.\n\t * Association groups are consecutive, starting at 1.\n\t */\n\tpublic async getGroupCount(): Promise<MaybeNotKnown<number>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SupportedGroupingsGet,\n\t\t);\n\n\t\tconst cc = new AssociationCCSupportedGroupingsGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationCCSupportedGroupingsReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.groupCount;\n\t}\n\n\t@validateArgs()\n\tpublic async reportGroupCount(groupCount: number): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SupportedGroupingsReport,\n\t\t);\n\n\t\tconst cc = new AssociationCCSupportedGroupingsReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupCount,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Returns information about an association group.\n\t */\n\t@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getGroup(groupId: number) {\n\t\tthis.assertSupportsCommand(AssociationCommand, AssociationCommand.Get);\n\n\t\tconst cc = new AssociationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<AssociationCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\tmaxNodes: response.maxNodes,\n\t\t\t\tnodeIds: response.nodeIds,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async sendReport(\n\t\toptions: AssociationCCReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.Report,\n\t\t);\n\n\t\tconst cc = new AssociationCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Adds new nodes to an association group\n\t */\n\t@validateArgs()\n\tpublic async addNodeIds(\n\t\tgroupId: number,\n\t\t...nodeIds: number[]\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(AssociationCommand, AssociationCommand.Set);\n\n\t\tconst cc = new AssociationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tnodeIds,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Removes nodes from an association group\n\t */\n\t@validateArgs()\n\tpublic async removeNodeIds(\n\t\toptions: AssociationCCRemoveOptions,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.Remove,\n\t\t);\n\n\t\t// Validate options\n\t\tif (!options.groupId) {\n\t\t\tif (this.version === 1) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`Node ${this.endpoint.nodeId} only supports AssociationCC V1 which requires the group Id to be set`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (options.groupId < 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The group id must be positive!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new AssociationCCRemove({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Removes nodes from all association groups\n\t */\n\t@validateArgs()\n\tpublic async removeNodeIdsFromAllGroups(\n\t\tnodeIds: number[],\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.Remove,\n\t\t);\n\n\t\tif (this.version >= 2) {\n\t\t\t// The node supports bulk removal\n\t\t\treturn this.removeNodeIds({ nodeIds, groupId: 0 });\n\t\t} else {\n\t\t\t// We have to remove the node manually from all groups\n\t\t\tconst groupCount = this.tryGetValueDB()?.getValue<number>(\n\t\t\t\tAssociationCCValues.groupCount.endpoint(\n\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t),\n\t\t\t) ?? 0;\n\t\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\n\t\t\t\t// TODO: evaluate intermediate supervision results\n\t\t\t\tawait this.removeNodeIds({ nodeIds, groupId });\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Request the association group that represents the most recently detected button press\n\t */\n\t@validateArgs()\n\tpublic async getSpecificGroup(): Promise<number | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SpecificGroupGet,\n\t\t);\n\n\t\tconst cc = new AssociationCCSpecificGroupGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationCCSpecificGroupReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.group;\n\t}\n\n\t/**\n\t * Report the association group that represents the most recently detected button press\n\t */\n\t@validateArgs()\n\tpublic async reportSpecificGroup(\n\t\tgroup: number,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SpecificGroupReport,\n\t\t);\n\n\t\tconst cc = new AssociationCCSpecificGroupReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroup,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Association)\n@implementedVersion(4)\n@ccValues(AssociationCCValues)\nexport class AssociationCC extends CommandClass {\n\tdeclare ccCommand: AssociationCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// AssociationCC must be interviewed after Z-Wave+ if that is supported\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses[\"Z-Wave Plus Info\"],\n\t\t\t// We need information about endpoints to correctly configure the lifeline associations\n\t\t\tCommandClasses[\"Multi Channel\"],\n\t\t];\n\t}\n\n\t/**\n\t * Returns the number of association groups reported by the node/endpoint.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getGroupCountCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t): number {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAssociationCCValues.groupCount.endpoint(endpoint.index),\n\t\t\t) || 0;\n\t}\n\n\t/**\n\t * Returns the number of nodes an association group supports.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getMaxNodesCached(\n\t\tctx: GetValueDB & GetDeviceConfig,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): number {\n\t\treturn (\n\t\t\tctx\n\t\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t\t.getValue(\n\t\t\t\t\tAssociationCCValues.maxNodes(groupId).endpoint(\n\t\t\t\t\t\tendpoint.index,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t// If the information is not available, fall back to the configuration file if possible\n\t\t\t\t// This can happen on some legacy devices which have \"hidden\" association groups\n\t\t\t\t?? ctx\n\t\t\t\t\t.getDeviceConfig?.(endpoint.nodeId)\n\t\t\t\t\t?.getAssociationConfigForEndpoint(endpoint.index, groupId)\n\t\t\t\t\t?.maxNodes\n\t\t\t\t?? 0\n\t\t);\n\t}\n\n\t/**\n\t * Returns all the destinations of all association groups reported by the node/endpoint.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getAllDestinationsCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t): ReadonlyMap<number, readonly AssociationAddress[]> {\n\t\tconst ret = new Map<number, AssociationAddress[]>();\n\t\tconst groupCount = this.getGroupCountCached(ctx, endpoint);\n\t\tconst valueDB = ctx.getValueDB(endpoint.nodeId);\n\t\tfor (let i = 1; i <= groupCount; i++) {\n\t\t\t// Add all root destinations\n\t\t\tconst nodes = valueDB.getValue<number[]>(\n\t\t\t\tAssociationCCValues.nodeIds(i).endpoint(endpoint.index),\n\t\t\t) ?? [];\n\n\t\t\tret.set(\n\t\t\t\ti,\n\t\t\t\t// Filter out duplicates\n\t\t\t\tdistinct(nodes).map((nodeId) => ({ nodeId })),\n\t\t\t);\n\t\t}\n\t\treturn ret;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Association,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Even if Multi Channel Association is supported, we still need to query the number of\n\t\t// normal association groups since some devices report more association groups than\n\t\t// multi channel association groups\n\n\t\t// Find out how many groups are supported\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying number of association groups...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst groupCount = await api.getGroupCount();\n\t\tif (groupCount != undefined) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `supports ${groupCount} association groups`,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t\"Querying association groups timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Query each association group for its members\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Skip the remaining Association CC interview in favor of Multi Channel Association if possible\n\t\tif (endpoint.supportsCC(CommandClasses[\"Multi Channel Association\"])) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`${this.constructor.name}: delaying configuration of lifeline associations until after Multi Channel Association interview...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t\tthis.setInterviewComplete(ctx, true);\n\t\t\treturn;\n\t\t}\n\n\t\t// And set up lifeline associations\n\t\tawait ccUtils.configureLifelineAssociations(ctx, endpoint);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Association,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst groupCount = AssociationCC.getGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\n\t\t// Query each association group\n\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `querying association group #${groupId}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst group = await api.getGroup(groupId);\n\t\t\tif (group != undefined) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received information for association group #${groupId}:\nmaximum # of nodes: ${group.maxNodes}\ncurrently assigned nodes: ${group.nodeIds.map(String).join(\", \")}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCSetOptions {\n\tgroupId: number;\n\tnodeIds: number[];\n}\n\n@CCCommand(AssociationCommand.Set)\n@useSupervision()\nexport class AssociationCCSet extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.groupId < 1) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The group id must be positive!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tif (options.nodeIds.some((n) => n < 1 || n > MAX_NODES)) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`All node IDs must be between 1 and ${MAX_NODES}!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.groupId = options.groupId;\n\t\tthis.nodeIds = options.nodeIds;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCSet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst groupId = raw.payload[0];\n\t\tconst nodeIds = [...raw.payload.subarray(1)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\tpublic nodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.groupId, ...this.nodeIds]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"group id\": this.groupId || \"all groups\",\n\t\t\t\"node ids\": this.nodeIds.length\n\t\t\t\t? this.nodeIds.join(\", \")\n\t\t\t\t: \"all nodes\",\n\t\t};\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCRemoveOptions {\n\t/** The group from which to remove the nodes. If none is specified, the nodes will be removed from all nodes. */\n\tgroupId?: number;\n\t/** The nodes to remove. If none are specified, ALL nodes will be removed. */\n\tnodeIds?: number[];\n}\n\n@CCCommand(AssociationCommand.Remove)\n@useSupervision()\nexport class AssociationCCRemove extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCRemoveOptions>,\n\t) {\n\t\tsuper(options);\n\t\t// When removing associations, we allow invalid node IDs.\n\t\t// See GH#3606 - it is possible that those exist.\n\t\tthis.groupId = options.groupId;\n\t\tthis.nodeIds = options.nodeIds;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCRemove {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\n\t\tlet groupId: number | undefined;\n\t\tif (raw.payload[0] !== 0) {\n\t\t\tgroupId = raw.payload[0];\n\t\t}\n\t\tconst nodeIds = [...raw.payload.subarray(1)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic groupId?: number;\n\tpublic nodeIds?: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.groupId || 0,\n\t\t\t...(this.nodeIds || []),\n\t\t]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"group id\": this.groupId || \"all groups\",\n\t\t\t\"node ids\": this.nodeIds && this.nodeIds.length\n\t\t\t\t? this.nodeIds.join(\", \")\n\t\t\t\t: \"all nodes\",\n\t\t};\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCReportOptions {\n\tgroupId: number;\n\tmaxNodes: number;\n\tnodeIds: number[];\n\treportsToFollow: number;\n}\n\n@CCCommand(AssociationCommand.Report)\n@ccValueProperty(\n\t\"maxNodes\",\n\tAssociationCCValues.maxNodes,\n\t(self) => [self.groupId],\n)\n@ccValueProperty(\n\t\"nodeIds\",\n\tAssociationCCValues.nodeIds,\n\t(self) => [self.groupId],\n)\nexport class AssociationCCReport extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupId = options.groupId;\n\t\tthis.maxNodes = options.maxNodes;\n\t\tthis.nodeIds = options.nodeIds;\n\t\tthis.reportsToFollow = options.reportsToFollow;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst groupId = raw.payload[0];\n\t\tconst maxNodes = raw.payload[1];\n\t\tconst reportsToFollow = raw.payload[2];\n\t\tconst nodeIds = [...raw.payload.subarray(3)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tmaxNodes,\n\t\t\treportsToFollow,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic maxNodes: number;\n\n\tpublic nodeIds: number[];\n\n\tpublic reportsToFollow: number;\n\n\tpublic getPartialCCSessionId(): Record<string, any> | undefined {\n\t\t// Distinguish sessions by the association group ID\n\t\treturn { groupId: this.groupId };\n\t}\n\n\tpublic expectMoreMessages(): boolean {\n\t\treturn this.reportsToFollow > 0;\n\t}\n\n\t/** @deprecated Use {@link mergePartialCCsAsync} instead */\n\tpublic mergePartialCCs(\n\t\tpartials: AssociationCCReport[],\n\t\t_ctx: CCParsingContext,\n\t): void {\n\t\t// Concat the list of nodes\n\t\tthis.nodeIds = [...partials, this]\n\t\t\t.map((report) => report.nodeIds)\n\t\t\t.reduce((prev, cur) => prev.concat(...cur), []);\n\t}\n\n\tpublic mergePartialCCsAsync(\n\t\tpartials: AssociationCCReport[],\n\t\t_ctx: CCParsingContext,\n\t): Promise<void> {\n\t\t// Concat the list of nodes\n\t\tthis.nodeIds = [...partials, this]\n\t\t\t.map((report) => report.nodeIds)\n\t\t\t.reduce((prev, cur) => prev.concat(...cur), []);\n\t\treturn Promise.resolve();\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.groupId,\n\t\t\tthis.maxNodes,\n\t\t\tthis.reportsToFollow,\n\t\t\t...this.nodeIds,\n\t\t]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\t\"max # of nodes\": this.maxNodes,\n\t\t\t\t\"node IDs\": this.nodeIds.join(\", \"),\n\t\t\t\t\"reports to follow\": this.reportsToFollow,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCGetOptions {\n\tgroupId: number;\n}\n\n@CCCommand(AssociationCommand.Get)\n@expectedCCResponse(AssociationCCReport)\nexport class AssociationCCGet extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.groupId < 1) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The group id must be positive!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"group id\": this.groupId },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCSupportedGroupingsReportOptions {\n\tgroupCount: number;\n}\n\n@CCCommand(AssociationCommand.SupportedGroupingsReport)\n@ccValueProperty(\"groupCount\", AssociationCCValues.groupCount)\nexport class AssociationCCSupportedGroupingsReport extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCSupportedGroupingsReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupCount = options.groupCount;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationCCSupportedGroupingsReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst groupCount = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupCount,\n\t\t});\n\t}\n\n\tpublic groupCount: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.groupCount]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"group count\": this.groupCount },\n\t\t};\n\t}\n}\n\n@CCCommand(AssociationCommand.SupportedGroupingsGet)\n@expectedCCResponse(AssociationCCSupportedGroupingsReport)\nexport class AssociationCCSupportedGroupingsGet extends AssociationCC {}\n\n// @publicAPI\nexport interface AssociationCCSpecificGroupReportOptions {\n\tgroup: number;\n}\n\n@CCCommand(AssociationCommand.SpecificGroupReport)\nexport class AssociationCCSpecificGroupReport extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCSpecificGroupReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.group = options.group;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationCCSpecificGroupReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst group = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroup,\n\t\t});\n\t}\n\n\tpublic group: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.group]);\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { group: this.group },\n\t\t};\n\t}\n}\n\n@CCCommand(AssociationCommand.SpecificGroupGet)\n@expectedCCResponse(AssociationCCSpecificGroupReport)\nexport class AssociationCCSpecificGroupGet extends AssociationCC {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport { type GetDeviceConfig } from \"@zwave-js/config\";\nimport type {\n\tEndpointId,\n\tGetValueDB,\n\tMaybeNotKnown,\n\tMessageRecord,\n\tSupervisionResult,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\tMAX_NODES,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { distinct } from \"alcalzone-shared/arrays\";\nimport { CCAPI, PhysicalCCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { type AssociationAddress, AssociationCommand } from \"../lib/_Types.js\";\nimport * as ccUtils from \"../lib/utils.js\";\n\nexport const AssociationCCValues = V.defineCCValues(\n\tCommandClasses.Association,\n\t{\n\t\t...V.staticProperty(\"hasLifeline\", undefined, { internal: true }),\n\t\t...V.staticProperty(\"groupCount\", undefined, { internal: true }),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"maxNodes\",\n\t\t\t\"maxNodes\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"maxNodes\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"nodeIds\",\n\t\t\t\"nodeIds\",\n\t\t\t(groupId: number) => groupId,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"nodeIds\" && typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true },\n\t\t),\n\t},\n);\n\n// @noSetValueAPI\n\n@API(CommandClasses.Association)\nexport class AssociationCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: AssociationCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase AssociationCommand.Get:\n\t\t\tcase AssociationCommand.Set:\n\t\t\tcase AssociationCommand.Report:\n\t\t\tcase AssociationCommand.Remove:\n\t\t\tcase AssociationCommand.SupportedGroupingsGet:\n\t\t\tcase AssociationCommand.SupportedGroupingsReport:\n\t\t\t\treturn true;\n\t\t\tcase AssociationCommand.SpecificGroupGet:\n\t\t\tcase AssociationCommand.SpecificGroupReport:\n\t\t\t\treturn this.version >= 2;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t/**\n\t * Returns the number of association groups a node supports.\n\t * Association groups are consecutive, starting at 1.\n\t */\n\tpublic async getGroupCount(): Promise<MaybeNotKnown<number>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SupportedGroupingsGet,\n\t\t);\n\n\t\tconst cc = new AssociationCCSupportedGroupingsGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationCCSupportedGroupingsReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) return response.groupCount;\n\t}\n\n\t@validateArgs()\n\tpublic async reportGroupCount(groupCount: number): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SupportedGroupingsReport,\n\t\t);\n\n\t\tconst cc = new AssociationCCSupportedGroupingsReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupCount,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Returns information about an association group.\n\t */\n\t@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getGroup(groupId: number) {\n\t\tthis.assertSupportsCommand(AssociationCommand, AssociationCommand.Get);\n\n\t\tconst cc = new AssociationCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t});\n\t\tconst response = await this.host.sendCommand<AssociationCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\tmaxNodes: response.maxNodes,\n\t\t\t\tnodeIds: response.nodeIds,\n\t\t\t};\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async sendReport(\n\t\toptions: AssociationCCReportOptions,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.Report,\n\t\t);\n\n\t\tconst cc = new AssociationCCReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Adds new nodes to an association group\n\t */\n\t@validateArgs()\n\tpublic async addNodeIds(\n\t\tgroupId: number,\n\t\t...nodeIds: number[]\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(AssociationCommand, AssociationCommand.Set);\n\n\t\tconst cc = new AssociationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroupId,\n\t\t\tnodeIds,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Removes nodes from an association group\n\t */\n\t@validateArgs()\n\tpublic async removeNodeIds(\n\t\toptions: AssociationCCRemoveOptions,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.Remove,\n\t\t);\n\n\t\t// Validate options\n\t\tif (!options.groupId) {\n\t\t\tif (this.version === 1) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`Node ${this.endpoint.nodeId} only supports AssociationCC V1 which requires the group Id to be set`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (options.groupId < 0) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The group id must be positive!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tconst cc = new AssociationCCRemove({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\t...options,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t/**\n\t * Removes nodes from all association groups\n\t */\n\t@validateArgs()\n\tpublic async removeNodeIdsFromAllGroups(\n\t\tnodeIds: number[],\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.Remove,\n\t\t);\n\n\t\tif (this.version >= 2) {\n\t\t\t// The node supports bulk removal\n\t\t\treturn this.removeNodeIds({ nodeIds, groupId: 0 });\n\t\t} else {\n\t\t\t// We have to remove the node manually from all groups\n\t\t\tconst groupCount = this.tryGetValueDB()?.getValue<number>(\n\t\t\t\tAssociationCCValues.groupCount.endpoint(\n\t\t\t\t\tthis.endpoint.index,\n\t\t\t\t),\n\t\t\t) ?? 0;\n\t\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\n\t\t\t\t// TODO: evaluate intermediate supervision results\n\t\t\t\tawait this.removeNodeIds({ nodeIds, groupId });\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Request the association group that represents the most recently detected button press\n\t */\n\t@validateArgs()\n\tpublic async getSpecificGroup(): Promise<number | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SpecificGroupGet,\n\t\t);\n\n\t\tconst cc = new AssociationCCSpecificGroupGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tAssociationCCSpecificGroupReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.group;\n\t}\n\n\t/**\n\t * Report the association group that represents the most recently detected button press\n\t */\n\t@validateArgs()\n\tpublic async reportSpecificGroup(\n\t\tgroup: number,\n\t): Promise<void> {\n\t\tthis.assertSupportsCommand(\n\t\t\tAssociationCommand,\n\t\t\tAssociationCommand.SpecificGroupReport,\n\t\t);\n\n\t\tconst cc = new AssociationCCSpecificGroupReport({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tgroup,\n\t\t});\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Association)\n@implementedVersion(4)\n@ccValues(AssociationCCValues)\nexport class AssociationCC extends CommandClass {\n\tdeclare ccCommand: AssociationCommand;\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\t// AssociationCC must be interviewed after Z-Wave+ if that is supported\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses[\"Z-Wave Plus Info\"],\n\t\t\t// We need information about endpoints to correctly configure the lifeline associations\n\t\t\tCommandClasses[\"Multi Channel\"],\n\t\t];\n\t}\n\n\t/**\n\t * Returns the number of association groups reported by the node/endpoint.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getGroupCountCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t): number {\n\t\treturn ctx\n\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t.getValue(\n\t\t\t\tAssociationCCValues.groupCount.endpoint(endpoint.index),\n\t\t\t) || 0;\n\t}\n\n\t/**\n\t * Returns the number of nodes an association group supports.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getMaxNodesCached(\n\t\tctx: GetValueDB & GetDeviceConfig,\n\t\tendpoint: EndpointId,\n\t\tgroupId: number,\n\t): number {\n\t\treturn (\n\t\t\tctx\n\t\t\t\t.getValueDB(endpoint.nodeId)\n\t\t\t\t.getValue(\n\t\t\t\t\tAssociationCCValues.maxNodes(groupId).endpoint(\n\t\t\t\t\t\tendpoint.index,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t// If the information is not available, fall back to the configuration file if possible\n\t\t\t\t// This can happen on some legacy devices which have \"hidden\" association groups\n\t\t\t\t?? ctx\n\t\t\t\t\t.getDeviceConfig?.(endpoint.nodeId)\n\t\t\t\t\t?.getAssociationConfigForEndpoint(endpoint.index, groupId)\n\t\t\t\t\t?.maxNodes\n\t\t\t\t?? 0\n\t\t);\n\t}\n\n\t/**\n\t * Returns all the destinations of all association groups reported by the node/endpoint.\n\t * This only works AFTER the interview process\n\t */\n\tpublic static getAllDestinationsCached(\n\t\tctx: GetValueDB,\n\t\tendpoint: EndpointId,\n\t): ReadonlyMap<number, readonly AssociationAddress[]> {\n\t\tconst ret = new Map<number, AssociationAddress[]>();\n\t\tconst groupCount = this.getGroupCountCached(ctx, endpoint);\n\t\tconst valueDB = ctx.getValueDB(endpoint.nodeId);\n\t\tfor (let i = 1; i <= groupCount; i++) {\n\t\t\t// Add all root destinations\n\t\t\tconst nodes = valueDB.getValue<number[]>(\n\t\t\t\tAssociationCCValues.nodeIds(i).endpoint(endpoint.index),\n\t\t\t) ?? [];\n\n\t\t\tret.set(\n\t\t\t\ti,\n\t\t\t\t// Filter out duplicates\n\t\t\t\tdistinct(nodes).map((nodeId) => ({ nodeId })),\n\t\t\t);\n\t\t}\n\t\treturn ret;\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Association,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\t// Even if Multi Channel Association is supported, we still need to query the number of\n\t\t// normal association groups since some devices report more association groups than\n\t\t// multi channel association groups\n\n\t\t// Find out how many groups are supported\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: \"querying number of association groups...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst groupCount = await api.getGroupCount();\n\t\tif (groupCount != undefined) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `supports ${groupCount} association groups`,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t\"Querying association groups timed out, skipping interview...\",\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Query each association group for its members\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Skip the remaining Association CC interview in favor of Multi Channel Association if possible\n\t\tif (endpoint.supportsCC(CommandClasses[\"Multi Channel Association\"])) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage:\n\t\t\t\t\t`${this.constructor.name}: delaying configuration of lifeline associations until after Multi Channel Association interview...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t\tthis.setInterviewComplete(ctx, true);\n\t\t\treturn;\n\t\t}\n\n\t\t// And set up lifeline associations\n\t\tawait ccUtils.configureLifelineAssociations(ctx, endpoint);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Association,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tconst groupCount = AssociationCC.getGroupCountCached(\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t);\n\n\t\t// Query each association group\n\t\tfor (let groupId = 1; groupId <= groupCount; groupId++) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: `querying association group #${groupId}...`,\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\t\t\tconst group = await api.getGroup(groupId);\n\t\t\tif (group != undefined) {\n\t\t\t\tconst logMessage =\n\t\t\t\t\t`received information for association group #${groupId}:\nmaximum # of nodes: ${group.maxNodes}\ncurrently assigned nodes: ${group.nodeIds.map(String).join(\", \")}`;\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: logMessage,\n\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCSetOptions {\n\tgroupId: number;\n\tnodeIds: number[];\n}\n\n@CCCommand(AssociationCommand.Set)\n@useSupervision()\nexport class AssociationCCSet extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.groupId < 1) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The group id must be positive!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tif (options.nodeIds.some((n) => n < 1 || n > MAX_NODES)) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`All node IDs must be between 1 and ${MAX_NODES}!`,\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.groupId = options.groupId;\n\t\tthis.nodeIds = options.nodeIds;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCSet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst groupId = raw.payload[0];\n\t\tconst nodeIds = [...raw.payload.subarray(1)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\tpublic nodeIds: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupId, ...this.nodeIds]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"group id\": this.groupId || \"all groups\",\n\t\t\t\"node ids\": this.nodeIds.length\n\t\t\t\t? this.nodeIds.join(\", \")\n\t\t\t\t: \"all nodes\",\n\t\t};\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCRemoveOptions {\n\t/** The group from which to remove the nodes. If none is specified, the nodes will be removed from all nodes. */\n\tgroupId?: number;\n\t/** The nodes to remove. If none are specified, ALL nodes will be removed. */\n\tnodeIds?: number[];\n}\n\n@CCCommand(AssociationCommand.Remove)\n@useSupervision()\nexport class AssociationCCRemove extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCRemoveOptions>,\n\t) {\n\t\tsuper(options);\n\t\t// When removing associations, we allow invalid node IDs.\n\t\t// See GH#3606 - it is possible that those exist.\n\t\tthis.groupId = options.groupId;\n\t\tthis.nodeIds = options.nodeIds;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCRemove {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\n\t\tlet groupId: number | undefined;\n\t\tif (raw.payload[0] !== 0) {\n\t\t\tgroupId = raw.payload[0];\n\t\t}\n\t\tconst nodeIds = [...raw.payload.subarray(1)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic groupId?: number;\n\tpublic nodeIds?: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.groupId || 0,\n\t\t\t...(this.nodeIds || []),\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = {\n\t\t\t\"group id\": this.groupId || \"all groups\",\n\t\t\t\"node ids\": this.nodeIds && this.nodeIds.length\n\t\t\t\t? this.nodeIds.join(\", \")\n\t\t\t\t: \"all nodes\",\n\t\t};\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCReportOptions {\n\tgroupId: number;\n\tmaxNodes: number;\n\tnodeIds: number[];\n\treportsToFollow: number;\n}\n\n@CCCommand(AssociationCommand.Report)\n@ccValueProperty(\n\t\"maxNodes\",\n\tAssociationCCValues.maxNodes,\n\t(self) => [self.groupId],\n)\n@ccValueProperty(\n\t\"nodeIds\",\n\tAssociationCCValues.nodeIds,\n\t(self) => [self.groupId],\n)\nexport class AssociationCCReport extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupId = options.groupId;\n\t\tthis.maxNodes = options.maxNodes;\n\t\tthis.nodeIds = options.nodeIds;\n\t\tthis.reportsToFollow = options.reportsToFollow;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst groupId = raw.payload[0];\n\t\tconst maxNodes = raw.payload[1];\n\t\tconst reportsToFollow = raw.payload[2];\n\t\tconst nodeIds = [...raw.payload.subarray(3)];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t\tmaxNodes,\n\t\t\treportsToFollow,\n\t\t\tnodeIds,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic maxNodes: number;\n\n\tpublic nodeIds: number[];\n\n\tpublic reportsToFollow: number;\n\n\tpublic getPartialCCSessionId(): Record<string, any> | undefined {\n\t\t// Distinguish sessions by the association group ID\n\t\treturn { groupId: this.groupId };\n\t}\n\n\tpublic expectMoreMessages(): boolean {\n\t\treturn this.reportsToFollow > 0;\n\t}\n\n\tpublic mergePartialCCs(\n\t\tpartials: AssociationCCReport[],\n\t\t_ctx: CCParsingContext,\n\t): Promise<void> {\n\t\t// Concat the list of nodes\n\t\tthis.nodeIds = [...partials, this]\n\t\t\t.map((report) => report.nodeIds)\n\t\t\t.reduce((prev, cur) => prev.concat(...cur), []);\n\t\treturn Promise.resolve();\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.groupId,\n\t\t\tthis.maxNodes,\n\t\t\tthis.reportsToFollow,\n\t\t\t...this.nodeIds,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: {\n\t\t\t\t\"group id\": this.groupId,\n\t\t\t\t\"max # of nodes\": this.maxNodes,\n\t\t\t\t\"node IDs\": this.nodeIds.join(\", \"),\n\t\t\t\t\"reports to follow\": this.reportsToFollow,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCGetOptions {\n\tgroupId: number;\n}\n\n@CCCommand(AssociationCommand.Get)\n@expectedCCResponse(AssociationCCReport)\nexport class AssociationCCGet extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (options.groupId < 1) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The group id must be positive!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): AssociationCCGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"group id\": this.groupId },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface AssociationCCSupportedGroupingsReportOptions {\n\tgroupCount: number;\n}\n\n@CCCommand(AssociationCommand.SupportedGroupingsReport)\n@ccValueProperty(\"groupCount\", AssociationCCValues.groupCount)\nexport class AssociationCCSupportedGroupingsReport extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCSupportedGroupingsReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.groupCount = options.groupCount;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationCCSupportedGroupingsReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst groupCount = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroupCount,\n\t\t});\n\t}\n\n\tpublic groupCount: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.groupCount]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { \"group count\": this.groupCount },\n\t\t};\n\t}\n}\n\n@CCCommand(AssociationCommand.SupportedGroupingsGet)\n@expectedCCResponse(AssociationCCSupportedGroupingsReport)\nexport class AssociationCCSupportedGroupingsGet extends AssociationCC {}\n\n// @publicAPI\nexport interface AssociationCCSpecificGroupReportOptions {\n\tgroup: number;\n}\n\n@CCCommand(AssociationCommand.SpecificGroupReport)\nexport class AssociationCCSpecificGroupReport extends AssociationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<AssociationCCSpecificGroupReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.group = options.group;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): AssociationCCSpecificGroupReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst group = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tgroup,\n\t\t});\n\t}\n\n\tpublic group: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.group]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { group: this.group },\n\t\t};\n\t}\n}\n\n@CCCommand(AssociationCommand.SpecificGroupGet)\n@expectedCCResponse(AssociationCCSpecificGroupReport)\nexport class AssociationCCSpecificGroupGet extends AssociationCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe", "AssociationCC"]
7
7
  }