@zwave-js/cc 14.3.3 → 14.3.4

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 (627) hide show
  1. package/build/cjs/cc/AlarmSensorCC._validateArgs.d.ts +2 -0
  2. package/build/cjs/cc/AlarmSensorCC._validateArgs.js +51 -0
  3. package/build/cjs/cc/AlarmSensorCC._validateArgs.js.map +7 -0
  4. package/build/cjs/cc/AlarmSensorCC.js +48 -28
  5. package/build/cjs/cc/AlarmSensorCC.js.map +1 -1
  6. package/build/cjs/cc/AssociationCC._validateArgs.d.ts +9 -0
  7. package/build/cjs/cc/AssociationCC._validateArgs.js +142 -0
  8. package/build/cjs/cc/AssociationCC._validateArgs.js.map +7 -0
  9. package/build/cjs/cc/AssociationCC.js +70 -119
  10. package/build/cjs/cc/AssociationCC.js.map +1 -1
  11. package/build/cjs/cc/AssociationGroupInfoCC._validateArgs.d.ts +7 -0
  12. package/build/cjs/cc/AssociationGroupInfoCC._validateArgs.js +116 -0
  13. package/build/cjs/cc/AssociationGroupInfoCC._validateArgs.js.map +7 -0
  14. package/build/cjs/cc/AssociationGroupInfoCC.js +68 -176
  15. package/build/cjs/cc/AssociationGroupInfoCC.js.map +1 -1
  16. package/build/cjs/cc/BarrierOperatorCC._validateArgs.d.ts +5 -0
  17. package/build/cjs/cc/BarrierOperatorCC._validateArgs.js +90 -0
  18. package/build/cjs/cc/BarrierOperatorCC._validateArgs.js.map +7 -0
  19. package/build/cjs/cc/BarrierOperatorCC.js +73 -60
  20. package/build/cjs/cc/BarrierOperatorCC.js.map +1 -1
  21. package/build/cjs/cc/BasicCC._validateArgs.d.ts +2 -0
  22. package/build/cjs/cc/BasicCC._validateArgs.js +51 -0
  23. package/build/cjs/cc/BasicCC._validateArgs.js.map +7 -0
  24. package/build/cjs/cc/BasicCC.js +48 -28
  25. package/build/cjs/cc/BasicCC.js.map +1 -1
  26. package/build/cjs/cc/BatteryCC.js +20 -0
  27. package/build/cjs/cc/BatteryCC.js.map +1 -1
  28. package/build/cjs/cc/BinarySensorCC._validateArgs.d.ts +4 -0
  29. package/build/cjs/cc/BinarySensorCC._validateArgs.js +77 -0
  30. package/build/cjs/cc/BinarySensorCC._validateArgs.js.map +7 -0
  31. package/build/cjs/cc/BinarySensorCC.js +54 -67
  32. package/build/cjs/cc/BinarySensorCC.js.map +1 -1
  33. package/build/cjs/cc/BinarySwitchCC._validateArgs.d.ts +2 -0
  34. package/build/cjs/cc/BinarySwitchCC._validateArgs.js +52 -0
  35. package/build/cjs/cc/BinarySwitchCC._validateArgs.js.map +7 -0
  36. package/build/cjs/cc/BinarySwitchCC.js +46 -54
  37. package/build/cjs/cc/BinarySwitchCC.js.map +1 -1
  38. package/build/cjs/cc/CRC16CC.js +12 -0
  39. package/build/cjs/cc/CRC16CC.js.map +1 -1
  40. package/build/cjs/cc/CentralSceneCC._validateArgs.d.ts +2 -0
  41. package/build/cjs/cc/CentralSceneCC._validateArgs.js +51 -0
  42. package/build/cjs/cc/CentralSceneCC._validateArgs.js.map +7 -0
  43. package/build/cjs/cc/CentralSceneCC.js +43 -21
  44. package/build/cjs/cc/CentralSceneCC.js.map +1 -1
  45. package/build/cjs/cc/ClimateControlScheduleCC._validateArgs.d.ts +4 -0
  46. package/build/cjs/cc/ClimateControlScheduleCC._validateArgs.js +77 -0
  47. package/build/cjs/cc/ClimateControlScheduleCC._validateArgs.js.map +7 -0
  48. package/build/cjs/cc/ClimateControlScheduleCC.js +65 -114
  49. package/build/cjs/cc/ClimateControlScheduleCC.js.map +1 -1
  50. package/build/cjs/cc/ClockCC._validateArgs.d.ts +2 -0
  51. package/build/cjs/cc/ClockCC._validateArgs.js +51 -0
  52. package/build/cjs/cc/ClockCC._validateArgs.js.map +7 -0
  53. package/build/cjs/cc/ClockCC.js +44 -36
  54. package/build/cjs/cc/ClockCC.js.map +1 -1
  55. package/build/cjs/cc/ColorSwitchCC._validateArgs.d.ts +5 -0
  56. package/build/cjs/cc/ColorSwitchCC._validateArgs.js +91 -0
  57. package/build/cjs/cc/ColorSwitchCC._validateArgs.js.map +7 -0
  58. package/build/cjs/cc/ColorSwitchCC.js +65 -346
  59. package/build/cjs/cc/ColorSwitchCC.js.map +1 -1
  60. package/build/cjs/cc/ConfigurationCC._validateArgs.d.ts +10 -0
  61. package/build/cjs/cc/ConfigurationCC._validateArgs.js +155 -0
  62. package/build/cjs/cc/ConfigurationCC._validateArgs.js.map +7 -0
  63. package/build/cjs/cc/ConfigurationCC.js +115 -395
  64. package/build/cjs/cc/ConfigurationCC.js.map +1 -1
  65. package/build/cjs/cc/DeviceResetLocallyCC.js +11 -0
  66. package/build/cjs/cc/DeviceResetLocallyCC.js.map +1 -1
  67. package/build/cjs/cc/DoorLockCC._validateArgs.d.ts +3 -0
  68. package/build/cjs/cc/DoorLockCC._validateArgs.js +64 -0
  69. package/build/cjs/cc/DoorLockCC._validateArgs.js.map +7 -0
  70. package/build/cjs/cc/DoorLockCC.js +69 -161
  71. package/build/cjs/cc/DoorLockCC.js.map +1 -1
  72. package/build/cjs/cc/DoorLockLoggingCC._validateArgs.d.ts +2 -0
  73. package/build/cjs/cc/DoorLockLoggingCC._validateArgs.js +51 -0
  74. package/build/cjs/cc/DoorLockLoggingCC._validateArgs.js.map +7 -0
  75. package/build/cjs/cc/DoorLockLoggingCC.js +50 -28
  76. package/build/cjs/cc/DoorLockLoggingCC.js.map +1 -1
  77. package/build/cjs/cc/EnergyProductionCC._validateArgs.d.ts +2 -0
  78. package/build/cjs/cc/EnergyProductionCC._validateArgs.js +51 -0
  79. package/build/cjs/cc/EnergyProductionCC._validateArgs.js.map +7 -0
  80. package/build/cjs/cc/EnergyProductionCC.js +42 -20
  81. package/build/cjs/cc/EnergyProductionCC.js.map +1 -1
  82. package/build/cjs/cc/EntryControlCC._validateArgs.d.ts +2 -0
  83. package/build/cjs/cc/EntryControlCC._validateArgs.js +51 -0
  84. package/build/cjs/cc/EntryControlCC._validateArgs.js.map +7 -0
  85. package/build/cjs/cc/EntryControlCC.js +49 -22
  86. package/build/cjs/cc/EntryControlCC.js.map +1 -1
  87. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +5 -0
  88. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js +90 -0
  89. package/build/cjs/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +7 -0
  90. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +77 -310
  91. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  92. package/build/cjs/cc/HailCC.js +5 -0
  93. package/build/cjs/cc/HailCC.js.map +1 -1
  94. package/build/cjs/cc/HumidityControlModeCC._validateArgs.d.ts +2 -0
  95. package/build/cjs/cc/HumidityControlModeCC._validateArgs.js +51 -0
  96. package/build/cjs/cc/HumidityControlModeCC._validateArgs.js.map +7 -0
  97. package/build/cjs/cc/HumidityControlModeCC.js +50 -20
  98. package/build/cjs/cc/HumidityControlModeCC.js.map +1 -1
  99. package/build/cjs/cc/HumidityControlOperatingStateCC.js +14 -0
  100. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +1 -1
  101. package/build/cjs/cc/HumidityControlSetpointCC._validateArgs.d.ts +5 -0
  102. package/build/cjs/cc/HumidityControlSetpointCC._validateArgs.js +90 -0
  103. package/build/cjs/cc/HumidityControlSetpointCC._validateArgs.js.map +7 -0
  104. package/build/cjs/cc/HumidityControlSetpointCC.js +74 -25
  105. package/build/cjs/cc/HumidityControlSetpointCC.js.map +1 -1
  106. package/build/cjs/cc/InclusionControllerCC.js +14 -0
  107. package/build/cjs/cc/InclusionControllerCC.js.map +1 -1
  108. package/build/cjs/cc/IndicatorCC._validateArgs.d.ts +10 -0
  109. package/build/cjs/cc/IndicatorCC._validateArgs.js +155 -0
  110. package/build/cjs/cc/IndicatorCC._validateArgs.js.map +7 -0
  111. package/build/cjs/cc/IndicatorCC.js +87 -257
  112. package/build/cjs/cc/IndicatorCC.js.map +1 -1
  113. package/build/cjs/cc/IrrigationCC._validateArgs.d.ts +11 -0
  114. package/build/cjs/cc/IrrigationCC._validateArgs.js +168 -0
  115. package/build/cjs/cc/IrrigationCC._validateArgs.js.map +7 -0
  116. package/build/cjs/cc/IrrigationCC.js +110 -215
  117. package/build/cjs/cc/IrrigationCC.js.map +1 -1
  118. package/build/cjs/cc/LanguageCC._validateArgs.d.ts +2 -0
  119. package/build/cjs/cc/LanguageCC._validateArgs.js +51 -0
  120. package/build/cjs/cc/LanguageCC._validateArgs.js.map +7 -0
  121. package/build/cjs/cc/LanguageCC.js +44 -35
  122. package/build/cjs/cc/LanguageCC.js.map +1 -1
  123. package/build/cjs/cc/LockCC._validateArgs.d.ts +2 -0
  124. package/build/cjs/cc/LockCC._validateArgs.js +51 -0
  125. package/build/cjs/cc/LockCC._validateArgs.js.map +7 -0
  126. package/build/cjs/cc/LockCC.js +44 -21
  127. package/build/cjs/cc/LockCC.js.map +1 -1
  128. package/build/cjs/cc/ManufacturerProprietaryCC._validateArgs.d.ts +3 -0
  129. package/build/cjs/cc/ManufacturerProprietaryCC._validateArgs.js +64 -0
  130. package/build/cjs/cc/ManufacturerProprietaryCC._validateArgs.js.map +7 -0
  131. package/build/cjs/cc/ManufacturerProprietaryCC.js +37 -37
  132. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +1 -1
  133. package/build/cjs/cc/ManufacturerSpecificCC._validateArgs.d.ts +3 -0
  134. package/build/cjs/cc/ManufacturerSpecificCC._validateArgs.js +64 -0
  135. package/build/cjs/cc/ManufacturerSpecificCC._validateArgs.js.map +7 -0
  136. package/build/cjs/cc/ManufacturerSpecificCC.js +50 -50
  137. package/build/cjs/cc/ManufacturerSpecificCC.js.map +1 -1
  138. package/build/cjs/cc/MeterCC._validateArgs.d.ts +6 -0
  139. package/build/cjs/cc/MeterCC._validateArgs.js +103 -0
  140. package/build/cjs/cc/MeterCC._validateArgs.js.map +7 -0
  141. package/build/cjs/cc/MeterCC.js +72 -290
  142. package/build/cjs/cc/MeterCC.js.map +1 -1
  143. package/build/cjs/cc/MultiChannelAssociationCC._validateArgs.d.ts +6 -0
  144. package/build/cjs/cc/MultiChannelAssociationCC._validateArgs.js +103 -0
  145. package/build/cjs/cc/MultiChannelAssociationCC._validateArgs.js.map +7 -0
  146. package/build/cjs/cc/MultiChannelAssociationCC.js +58 -321
  147. package/build/cjs/cc/MultiChannelAssociationCC.js.map +1 -1
  148. package/build/cjs/cc/MultiChannelCC._validateArgs.d.ts +5 -0
  149. package/build/cjs/cc/MultiChannelCC._validateArgs.js +90 -0
  150. package/build/cjs/cc/MultiChannelCC._validateArgs.js.map +7 -0
  151. package/build/cjs/cc/MultiChannelCC.js +89 -26
  152. package/build/cjs/cc/MultiChannelCC.js.map +1 -1
  153. package/build/cjs/cc/MultiCommandCC._validateArgs.d.ts +2 -0
  154. package/build/cjs/cc/MultiCommandCC._validateArgs.js +52 -0
  155. package/build/cjs/cc/MultiCommandCC._validateArgs.js.map +7 -0
  156. package/build/cjs/cc/MultiCommandCC.js +38 -30
  157. package/build/cjs/cc/MultiCommandCC.js.map +1 -1
  158. package/build/cjs/cc/MultilevelSensorCC._validateArgs.d.ts +4 -0
  159. package/build/cjs/cc/MultilevelSensorCC._validateArgs.js +77 -0
  160. package/build/cjs/cc/MultilevelSensorCC._validateArgs.js.map +7 -0
  161. package/build/cjs/cc/MultilevelSensorCC.js +62 -86
  162. package/build/cjs/cc/MultilevelSensorCC.js.map +1 -1
  163. package/build/cjs/cc/MultilevelSwitchCC._validateArgs.d.ts +3 -0
  164. package/build/cjs/cc/MultilevelSwitchCC._validateArgs.js +65 -0
  165. package/build/cjs/cc/MultilevelSwitchCC._validateArgs.js.map +7 -0
  166. package/build/cjs/cc/MultilevelSwitchCC.js +68 -185
  167. package/build/cjs/cc/MultilevelSwitchCC.js.map +1 -1
  168. package/build/cjs/cc/NoOperationCC.js +8 -0
  169. package/build/cjs/cc/NoOperationCC.js.map +1 -1
  170. package/build/cjs/cc/NodeNamingCC._validateArgs.d.ts +3 -0
  171. package/build/cjs/cc/NodeNamingCC._validateArgs.js +64 -0
  172. package/build/cjs/cc/NodeNamingCC._validateArgs.js.map +7 -0
  173. package/build/cjs/cc/NodeNamingCC.js +57 -21
  174. package/build/cjs/cc/NodeNamingCC.js.map +1 -1
  175. package/build/cjs/cc/NotificationCC._validateArgs.d.ts +5 -0
  176. package/build/cjs/cc/NotificationCC._validateArgs.js +90 -0
  177. package/build/cjs/cc/NotificationCC._validateArgs.js.map +7 -0
  178. package/build/cjs/cc/NotificationCC.js +63 -125
  179. package/build/cjs/cc/NotificationCC.js.map +1 -1
  180. package/build/cjs/cc/PowerlevelCC._validateArgs.d.ts +5 -0
  181. package/build/cjs/cc/PowerlevelCC._validateArgs.js +90 -0
  182. package/build/cjs/cc/PowerlevelCC._validateArgs.js.map +7 -0
  183. package/build/cjs/cc/PowerlevelCC.js +62 -154
  184. package/build/cjs/cc/PowerlevelCC.js.map +1 -1
  185. package/build/cjs/cc/ProtectionCC._validateArgs.d.ts +4 -0
  186. package/build/cjs/cc/ProtectionCC._validateArgs.js +78 -0
  187. package/build/cjs/cc/ProtectionCC._validateArgs.js.map +7 -0
  188. package/build/cjs/cc/ProtectionCC.js +74 -49
  189. package/build/cjs/cc/ProtectionCC.js.map +1 -1
  190. package/build/cjs/cc/SceneActivationCC._validateArgs.d.ts +2 -0
  191. package/build/cjs/cc/SceneActivationCC._validateArgs.js +52 -0
  192. package/build/cjs/cc/SceneActivationCC._validateArgs.js.map +7 -0
  193. package/build/cjs/cc/SceneActivationCC.js +38 -47
  194. package/build/cjs/cc/SceneActivationCC.js.map +1 -1
  195. package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.d.ts +3 -0
  196. package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.js +65 -0
  197. package/build/cjs/cc/SceneActuatorConfigurationCC._validateArgs.js.map +7 -0
  198. package/build/cjs/cc/SceneActuatorConfigurationCC.js +48 -63
  199. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +1 -1
  200. package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.d.ts +4 -0
  201. package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.js +78 -0
  202. package/build/cjs/cc/SceneControllerConfigurationCC._validateArgs.js.map +7 -0
  203. package/build/cjs/cc/SceneControllerConfigurationCC.js +51 -50
  204. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +1 -1
  205. package/build/cjs/cc/ScheduleEntryLockCC._validateArgs.d.ts +9 -0
  206. package/build/cjs/cc/ScheduleEntryLockCC._validateArgs.js +142 -0
  207. package/build/cjs/cc/ScheduleEntryLockCC._validateArgs.js.map +7 -0
  208. package/build/cjs/cc/ScheduleEntryLockCC.js +110 -286
  209. package/build/cjs/cc/ScheduleEntryLockCC.js.map +1 -1
  210. package/build/cjs/cc/Security2CC.js +86 -14
  211. package/build/cjs/cc/Security2CC.js.map +1 -1
  212. package/build/cjs/cc/SecurityCC.js +46 -0
  213. package/build/cjs/cc/SecurityCC.js.map +1 -1
  214. package/build/cjs/cc/SoundSwitchCC._validateArgs.d.ts +4 -0
  215. package/build/cjs/cc/SoundSwitchCC._validateArgs.js +77 -0
  216. package/build/cjs/cc/SoundSwitchCC._validateArgs.js.map +7 -0
  217. package/build/cjs/cc/SoundSwitchCC.js +71 -41
  218. package/build/cjs/cc/SoundSwitchCC.js.map +1 -1
  219. package/build/cjs/cc/SupervisionCC.js +15 -0
  220. package/build/cjs/cc/SupervisionCC.js.map +1 -1
  221. package/build/cjs/cc/ThermostatFanModeCC._validateArgs.d.ts +2 -0
  222. package/build/cjs/cc/ThermostatFanModeCC._validateArgs.js +51 -0
  223. package/build/cjs/cc/ThermostatFanModeCC._validateArgs.js.map +7 -0
  224. package/build/cjs/cc/ThermostatFanModeCC.js +50 -35
  225. package/build/cjs/cc/ThermostatFanModeCC.js.map +1 -1
  226. package/build/cjs/cc/ThermostatFanStateCC.js +14 -0
  227. package/build/cjs/cc/ThermostatFanStateCC.js.map +1 -1
  228. package/build/cjs/cc/ThermostatModeCC._validateArgs.d.ts +2 -0
  229. package/build/cjs/cc/ThermostatModeCC._validateArgs.js +51 -0
  230. package/build/cjs/cc/ThermostatModeCC._validateArgs.js.map +7 -0
  231. package/build/cjs/cc/ThermostatModeCC.js +50 -47
  232. package/build/cjs/cc/ThermostatModeCC.js.map +1 -1
  233. package/build/cjs/cc/ThermostatOperatingStateCC.js +14 -0
  234. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +1 -1
  235. package/build/cjs/cc/ThermostatSetbackCC._validateArgs.d.ts +2 -0
  236. package/build/cjs/cc/ThermostatSetbackCC._validateArgs.js +51 -0
  237. package/build/cjs/cc/ThermostatSetbackCC._validateArgs.js.map +7 -0
  238. package/build/cjs/cc/ThermostatSetbackCC.js +44 -45
  239. package/build/cjs/cc/ThermostatSetbackCC.js.map +1 -1
  240. package/build/cjs/cc/ThermostatSetpointCC._validateArgs.d.ts +4 -0
  241. package/build/cjs/cc/ThermostatSetpointCC._validateArgs.js +77 -0
  242. package/build/cjs/cc/ThermostatSetpointCC._validateArgs.js.map +7 -0
  243. package/build/cjs/cc/ThermostatSetpointCC.js +65 -24
  244. package/build/cjs/cc/ThermostatSetpointCC.js.map +1 -1
  245. package/build/cjs/cc/TimeCC._validateArgs.d.ts +5 -0
  246. package/build/cjs/cc/TimeCC._validateArgs.js +90 -0
  247. package/build/cjs/cc/TimeCC._validateArgs.js.map +7 -0
  248. package/build/cjs/cc/TimeCC.js +65 -73
  249. package/build/cjs/cc/TimeCC.js.map +1 -1
  250. package/build/cjs/cc/TimeParametersCC._validateArgs.d.ts +2 -0
  251. package/build/cjs/cc/TimeParametersCC._validateArgs.js +51 -0
  252. package/build/cjs/cc/TimeParametersCC._validateArgs.js.map +7 -0
  253. package/build/cjs/cc/TimeParametersCC.js +47 -28
  254. package/build/cjs/cc/TimeParametersCC.js.map +1 -1
  255. package/build/cjs/cc/TransportServiceCC.js +22 -0
  256. package/build/cjs/cc/TransportServiceCC.js.map +1 -1
  257. package/build/cjs/cc/UserCodeCC._validateArgs.d.ts +7 -0
  258. package/build/cjs/cc/UserCodeCC._validateArgs.js +116 -0
  259. package/build/cjs/cc/UserCodeCC._validateArgs.js.map +7 -0
  260. package/build/cjs/cc/UserCodeCC.js +109 -247
  261. package/build/cjs/cc/UserCodeCC.js.map +1 -1
  262. package/build/cjs/cc/VersionCC._validateArgs.d.ts +4 -0
  263. package/build/cjs/cc/VersionCC._validateArgs.js +77 -0
  264. package/build/cjs/cc/VersionCC._validateArgs.js.map +7 -0
  265. package/build/cjs/cc/VersionCC.js +69 -74
  266. package/build/cjs/cc/VersionCC.js.map +1 -1
  267. package/build/cjs/cc/WakeUpCC._validateArgs.d.ts +2 -0
  268. package/build/cjs/cc/WakeUpCC._validateArgs.js +51 -0
  269. package/build/cjs/cc/WakeUpCC._validateArgs.js.map +7 -0
  270. package/build/cjs/cc/WakeUpCC.js +56 -21
  271. package/build/cjs/cc/WakeUpCC.js.map +1 -1
  272. package/build/cjs/cc/WindowCoveringCC._validateArgs.d.ts +5 -0
  273. package/build/cjs/cc/WindowCoveringCC._validateArgs.js +91 -0
  274. package/build/cjs/cc/WindowCoveringCC._validateArgs.js.map +7 -0
  275. package/build/cjs/cc/WindowCoveringCC.js +74 -116
  276. package/build/cjs/cc/WindowCoveringCC.js.map +1 -1
  277. package/build/cjs/cc/ZWaveLongRangeCC.js +5 -0
  278. package/build/cjs/cc/ZWaveLongRangeCC.js.map +1 -1
  279. package/build/cjs/cc/ZWavePlusCC._validateArgs.d.ts +2 -0
  280. package/build/cjs/cc/ZWavePlusCC._validateArgs.js +51 -0
  281. package/build/cjs/cc/ZWavePlusCC._validateArgs.js.map +7 -0
  282. package/build/cjs/cc/ZWavePlusCC.js +41 -61
  283. package/build/cjs/cc/ZWavePlusCC.js.map +1 -1
  284. package/build/cjs/cc/ZWaveProtocolCC.js +113 -0
  285. package/build/cjs/cc/ZWaveProtocolCC.js.map +1 -1
  286. package/build/cjs/cc/manufacturerProprietary/Decorators.js +2 -0
  287. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +1 -1
  288. package/build/cjs/cc/manufacturerProprietary/FibaroCC._validateArgs.d.ts +3 -0
  289. package/build/cjs/cc/manufacturerProprietary/FibaroCC._validateArgs.js +64 -0
  290. package/build/cjs/cc/manufacturerProprietary/FibaroCC._validateArgs.js.map +7 -0
  291. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +54 -22
  292. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  293. package/build/cjs/lib/API.js +24 -10
  294. package/build/cjs/lib/API.js.map +1 -1
  295. package/build/cjs/lib/CommandClass.js +14 -3
  296. package/build/cjs/lib/CommandClass.js.map +1 -1
  297. package/build/cjs/lib/CommandClassDecorators.js +20 -8
  298. package/build/cjs/lib/CommandClassDecorators.js.map +1 -1
  299. package/build/cjs/lib/EncapsulatingCommandClass.js +4 -0
  300. package/build/cjs/lib/EncapsulatingCommandClass.js.map +1 -1
  301. package/build/cjs/lib/NotificationEventPayload.js +2 -0
  302. package/build/cjs/lib/NotificationEventPayload.js.map +1 -1
  303. package/build/cjs/lib/Security2/Extension.js +24 -0
  304. package/build/cjs/lib/Security2/Extension.js.map +1 -1
  305. package/build/cjs/lib/SetValueResult.js +5 -0
  306. package/build/cjs/lib/SetValueResult.js.map +1 -1
  307. package/build/cjs/lib/Values.js +12 -9
  308. package/build/cjs/lib/Values.js.map +1 -1
  309. package/build/cjs/lib/_Types.js +7 -0
  310. package/build/cjs/lib/_Types.js.map +1 -1
  311. package/build/cjs/lib/serializers.js +7 -0
  312. package/build/cjs/lib/serializers.js.map +1 -1
  313. package/build/cjs/lib/utils.js +16 -4
  314. package/build/cjs/lib/utils.js.map +1 -1
  315. package/build/esm/cc/AlarmSensorCC._validateArgs.d.ts +2 -0
  316. package/build/esm/cc/AlarmSensorCC._validateArgs.d.ts.map +1 -0
  317. package/build/esm/cc/AlarmSensorCC._validateArgs.js +12 -0
  318. package/build/esm/cc/AlarmSensorCC._validateArgs.js.map +1 -0
  319. package/build/esm/cc/AlarmSensorCC.js +17 -28
  320. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  321. package/build/esm/cc/AssociationCC._validateArgs.d.ts +9 -0
  322. package/build/esm/cc/AssociationCC._validateArgs.d.ts.map +1 -0
  323. package/build/esm/cc/AssociationCC._validateArgs.js +82 -0
  324. package/build/esm/cc/AssociationCC._validateArgs.js.map +1 -0
  325. package/build/esm/cc/AssociationCC.js +38 -123
  326. package/build/esm/cc/AssociationCC.js.map +1 -1
  327. package/build/esm/cc/AssociationGroupInfoCC._validateArgs.d.ts +7 -0
  328. package/build/esm/cc/AssociationGroupInfoCC._validateArgs.d.ts.map +1 -0
  329. package/build/esm/cc/AssociationGroupInfoCC._validateArgs.js +62 -0
  330. package/build/esm/cc/AssociationGroupInfoCC._validateArgs.js.map +1 -0
  331. package/build/esm/cc/AssociationGroupInfoCC.js +32 -190
  332. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  333. package/build/esm/cc/BarrierOperatorCC._validateArgs.d.ts +5 -0
  334. package/build/esm/cc/BarrierOperatorCC._validateArgs.d.ts.map +1 -0
  335. package/build/esm/cc/BarrierOperatorCC._validateArgs.js +42 -0
  336. package/build/esm/cc/BarrierOperatorCC._validateArgs.js.map +1 -0
  337. package/build/esm/cc/BarrierOperatorCC.js +21 -50
  338. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  339. package/build/esm/cc/BasicCC._validateArgs.d.ts +2 -0
  340. package/build/esm/cc/BasicCC._validateArgs.d.ts.map +1 -0
  341. package/build/esm/cc/BasicCC._validateArgs.js +12 -0
  342. package/build/esm/cc/BasicCC._validateArgs.js.map +1 -0
  343. package/build/esm/cc/BasicCC.js +15 -22
  344. package/build/esm/cc/BasicCC.js.map +1 -1
  345. package/build/esm/cc/BinarySensorCC._validateArgs.d.ts +4 -0
  346. package/build/esm/cc/BinarySensorCC._validateArgs.d.ts.map +1 -0
  347. package/build/esm/cc/BinarySensorCC._validateArgs.js +32 -0
  348. package/build/esm/cc/BinarySensorCC._validateArgs.js.map +1 -0
  349. package/build/esm/cc/BinarySensorCC.js +23 -67
  350. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  351. package/build/esm/cc/BinarySwitchCC._validateArgs.d.ts +2 -0
  352. package/build/esm/cc/BinarySwitchCC._validateArgs.d.ts.map +1 -0
  353. package/build/esm/cc/BinarySwitchCC._validateArgs.js +13 -0
  354. package/build/esm/cc/BinarySwitchCC._validateArgs.js.map +1 -0
  355. package/build/esm/cc/BinarySwitchCC.js +15 -50
  356. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  357. package/build/esm/cc/CentralSceneCC._validateArgs.d.ts +2 -0
  358. package/build/esm/cc/CentralSceneCC._validateArgs.d.ts.map +1 -0
  359. package/build/esm/cc/CentralSceneCC._validateArgs.js +12 -0
  360. package/build/esm/cc/CentralSceneCC._validateArgs.js.map +1 -0
  361. package/build/esm/cc/CentralSceneCC.js +17 -21
  362. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  363. package/build/esm/cc/ClimateControlScheduleCC._validateArgs.d.ts +4 -0
  364. package/build/esm/cc/ClimateControlScheduleCC._validateArgs.d.ts.map +1 -0
  365. package/build/esm/cc/ClimateControlScheduleCC._validateArgs.js +32 -0
  366. package/build/esm/cc/ClimateControlScheduleCC._validateArgs.js.map +1 -0
  367. package/build/esm/cc/ClimateControlScheduleCC.js +23 -117
  368. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  369. package/build/esm/cc/ClockCC._validateArgs.d.ts +2 -0
  370. package/build/esm/cc/ClockCC._validateArgs.d.ts.map +1 -0
  371. package/build/esm/cc/ClockCC._validateArgs.js +12 -0
  372. package/build/esm/cc/ClockCC._validateArgs.js.map +1 -0
  373. package/build/esm/cc/ClockCC.js +17 -36
  374. package/build/esm/cc/ClockCC.js.map +1 -1
  375. package/build/esm/cc/ColorSwitchCC._validateArgs.d.ts +5 -0
  376. package/build/esm/cc/ColorSwitchCC._validateArgs.d.ts.map +1 -0
  377. package/build/esm/cc/ColorSwitchCC._validateArgs.js +43 -0
  378. package/build/esm/cc/ColorSwitchCC._validateArgs.js.map +1 -0
  379. package/build/esm/cc/ColorSwitchCC.js +23 -352
  380. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  381. package/build/esm/cc/ConfigurationCC._validateArgs.d.ts +10 -0
  382. package/build/esm/cc/ConfigurationCC._validateArgs.d.ts.map +1 -0
  383. package/build/esm/cc/ConfigurationCC._validateArgs.js +92 -0
  384. package/build/esm/cc/ConfigurationCC._validateArgs.js.map +1 -0
  385. package/build/esm/cc/ConfigurationCC.js +41 -410
  386. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  387. package/build/esm/cc/DoorLockCC._validateArgs.d.ts +3 -0
  388. package/build/esm/cc/DoorLockCC._validateArgs.d.ts.map +1 -0
  389. package/build/esm/cc/DoorLockCC._validateArgs.js +22 -0
  390. package/build/esm/cc/DoorLockCC._validateArgs.js.map +1 -0
  391. package/build/esm/cc/DoorLockCC.js +20 -166
  392. package/build/esm/cc/DoorLockCC.js.map +1 -1
  393. package/build/esm/cc/DoorLockLoggingCC._validateArgs.d.ts +2 -0
  394. package/build/esm/cc/DoorLockLoggingCC._validateArgs.d.ts.map +1 -0
  395. package/build/esm/cc/DoorLockLoggingCC._validateArgs.js +12 -0
  396. package/build/esm/cc/DoorLockLoggingCC._validateArgs.js.map +1 -0
  397. package/build/esm/cc/DoorLockLoggingCC.js +17 -28
  398. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  399. package/build/esm/cc/EnergyProductionCC._validateArgs.d.ts +2 -0
  400. package/build/esm/cc/EnergyProductionCC._validateArgs.d.ts.map +1 -0
  401. package/build/esm/cc/EnergyProductionCC._validateArgs.js +12 -0
  402. package/build/esm/cc/EnergyProductionCC._validateArgs.js.map +1 -0
  403. package/build/esm/cc/EnergyProductionCC.js +17 -20
  404. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  405. package/build/esm/cc/EntryControlCC._validateArgs.d.ts +2 -0
  406. package/build/esm/cc/EntryControlCC._validateArgs.d.ts.map +1 -0
  407. package/build/esm/cc/EntryControlCC._validateArgs.js +12 -0
  408. package/build/esm/cc/EntryControlCC._validateArgs.js.map +1 -0
  409. package/build/esm/cc/EntryControlCC.js +17 -22
  410. package/build/esm/cc/EntryControlCC.js.map +1 -1
  411. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts +5 -0
  412. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.d.ts.map +1 -0
  413. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js +42 -0
  414. package/build/esm/cc/FirmwareUpdateMetaDataCC._validateArgs.js.map +1 -0
  415. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +26 -321
  416. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  417. package/build/esm/cc/HumidityControlModeCC._validateArgs.d.ts +2 -0
  418. package/build/esm/cc/HumidityControlModeCC._validateArgs.d.ts.map +1 -0
  419. package/build/esm/cc/HumidityControlModeCC._validateArgs.js +12 -0
  420. package/build/esm/cc/HumidityControlModeCC._validateArgs.js.map +1 -0
  421. package/build/esm/cc/HumidityControlModeCC.js +17 -20
  422. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  423. package/build/esm/cc/HumidityControlSetpointCC._validateArgs.d.ts +5 -0
  424. package/build/esm/cc/HumidityControlSetpointCC._validateArgs.d.ts.map +1 -0
  425. package/build/esm/cc/HumidityControlSetpointCC._validateArgs.js +42 -0
  426. package/build/esm/cc/HumidityControlSetpointCC._validateArgs.js.map +1 -0
  427. package/build/esm/cc/HumidityControlSetpointCC.js +26 -25
  428. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  429. package/build/esm/cc/IndicatorCC._validateArgs.d.ts +10 -0
  430. package/build/esm/cc/IndicatorCC._validateArgs.d.ts.map +1 -0
  431. package/build/esm/cc/IndicatorCC._validateArgs.js +92 -0
  432. package/build/esm/cc/IndicatorCC._validateArgs.js.map +1 -0
  433. package/build/esm/cc/IndicatorCC.js +41 -265
  434. package/build/esm/cc/IndicatorCC.js.map +1 -1
  435. package/build/esm/cc/IrrigationCC._validateArgs.d.ts +11 -0
  436. package/build/esm/cc/IrrigationCC._validateArgs.d.ts.map +1 -0
  437. package/build/esm/cc/IrrigationCC._validateArgs.js +102 -0
  438. package/build/esm/cc/IrrigationCC._validateArgs.js.map +1 -0
  439. package/build/esm/cc/IrrigationCC.js +35 -228
  440. package/build/esm/cc/IrrigationCC.js.map +1 -1
  441. package/build/esm/cc/LanguageCC._validateArgs.d.ts +2 -0
  442. package/build/esm/cc/LanguageCC._validateArgs.d.ts.map +1 -0
  443. package/build/esm/cc/LanguageCC._validateArgs.js +12 -0
  444. package/build/esm/cc/LanguageCC._validateArgs.js.map +1 -0
  445. package/build/esm/cc/LanguageCC.js +17 -35
  446. package/build/esm/cc/LanguageCC.js.map +1 -1
  447. package/build/esm/cc/LockCC._validateArgs.d.ts +2 -0
  448. package/build/esm/cc/LockCC._validateArgs.d.ts.map +1 -0
  449. package/build/esm/cc/LockCC._validateArgs.js +12 -0
  450. package/build/esm/cc/LockCC._validateArgs.js.map +1 -0
  451. package/build/esm/cc/LockCC.js +17 -21
  452. package/build/esm/cc/LockCC.js.map +1 -1
  453. package/build/esm/cc/ManufacturerProprietaryCC._validateArgs.d.ts +3 -0
  454. package/build/esm/cc/ManufacturerProprietaryCC._validateArgs.d.ts.map +1 -0
  455. package/build/esm/cc/ManufacturerProprietaryCC._validateArgs.js +22 -0
  456. package/build/esm/cc/ManufacturerProprietaryCC._validateArgs.js.map +1 -0
  457. package/build/esm/cc/ManufacturerProprietaryCC.js +17 -37
  458. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  459. package/build/esm/cc/ManufacturerSpecificCC._validateArgs.d.ts +3 -0
  460. package/build/esm/cc/ManufacturerSpecificCC._validateArgs.d.ts.map +1 -0
  461. package/build/esm/cc/ManufacturerSpecificCC._validateArgs.js +22 -0
  462. package/build/esm/cc/ManufacturerSpecificCC._validateArgs.js.map +1 -0
  463. package/build/esm/cc/ManufacturerSpecificCC.js +20 -53
  464. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  465. package/build/esm/cc/MeterCC._validateArgs.d.ts +6 -0
  466. package/build/esm/cc/MeterCC._validateArgs.d.ts.map +1 -0
  467. package/build/esm/cc/MeterCC._validateArgs.js +52 -0
  468. package/build/esm/cc/MeterCC._validateArgs.js.map +1 -0
  469. package/build/esm/cc/MeterCC.js +23 -293
  470. package/build/esm/cc/MeterCC.js.map +1 -1
  471. package/build/esm/cc/MultiChannelAssociationCC._validateArgs.d.ts +6 -0
  472. package/build/esm/cc/MultiChannelAssociationCC._validateArgs.d.ts.map +1 -0
  473. package/build/esm/cc/MultiChannelAssociationCC._validateArgs.js +52 -0
  474. package/build/esm/cc/MultiChannelAssociationCC._validateArgs.js.map +1 -0
  475. package/build/esm/cc/MultiChannelAssociationCC.js +29 -337
  476. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  477. package/build/esm/cc/MultiChannelCC._validateArgs.d.ts +5 -0
  478. package/build/esm/cc/MultiChannelCC._validateArgs.d.ts.map +1 -0
  479. package/build/esm/cc/MultiChannelCC._validateArgs.js +42 -0
  480. package/build/esm/cc/MultiChannelCC._validateArgs.js.map +1 -0
  481. package/build/esm/cc/MultiChannelCC.js +26 -24
  482. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  483. package/build/esm/cc/MultiCommandCC._validateArgs.d.ts +2 -0
  484. package/build/esm/cc/MultiCommandCC._validateArgs.d.ts.map +1 -0
  485. package/build/esm/cc/MultiCommandCC._validateArgs.js +13 -0
  486. package/build/esm/cc/MultiCommandCC._validateArgs.js.map +1 -0
  487. package/build/esm/cc/MultiCommandCC.js +17 -30
  488. package/build/esm/cc/MultiCommandCC.js.map +1 -1
  489. package/build/esm/cc/MultilevelSensorCC._validateArgs.d.ts +4 -0
  490. package/build/esm/cc/MultilevelSensorCC._validateArgs.d.ts.map +1 -0
  491. package/build/esm/cc/MultilevelSensorCC._validateArgs.js +32 -0
  492. package/build/esm/cc/MultilevelSensorCC._validateArgs.js.map +1 -0
  493. package/build/esm/cc/MultilevelSensorCC.js +23 -86
  494. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  495. package/build/esm/cc/MultilevelSwitchCC._validateArgs.d.ts +3 -0
  496. package/build/esm/cc/MultilevelSwitchCC._validateArgs.d.ts.map +1 -0
  497. package/build/esm/cc/MultilevelSwitchCC._validateArgs.js +23 -0
  498. package/build/esm/cc/MultilevelSwitchCC._validateArgs.js.map +1 -0
  499. package/build/esm/cc/MultilevelSwitchCC.js +17 -178
  500. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  501. package/build/esm/cc/NodeNamingCC._validateArgs.d.ts +3 -0
  502. package/build/esm/cc/NodeNamingCC._validateArgs.d.ts.map +1 -0
  503. package/build/esm/cc/NodeNamingCC._validateArgs.js +22 -0
  504. package/build/esm/cc/NodeNamingCC._validateArgs.js.map +1 -0
  505. package/build/esm/cc/NodeNamingCC.js +20 -21
  506. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  507. package/build/esm/cc/NotificationCC._validateArgs.d.ts +5 -0
  508. package/build/esm/cc/NotificationCC._validateArgs.d.ts.map +1 -0
  509. package/build/esm/cc/NotificationCC._validateArgs.js +42 -0
  510. package/build/esm/cc/NotificationCC._validateArgs.js.map +1 -0
  511. package/build/esm/cc/NotificationCC.js +26 -123
  512. package/build/esm/cc/NotificationCC.js.map +1 -1
  513. package/build/esm/cc/PowerlevelCC._validateArgs.d.ts +5 -0
  514. package/build/esm/cc/PowerlevelCC._validateArgs.d.ts.map +1 -0
  515. package/build/esm/cc/PowerlevelCC._validateArgs.js +42 -0
  516. package/build/esm/cc/PowerlevelCC._validateArgs.js.map +1 -0
  517. package/build/esm/cc/PowerlevelCC.js +26 -160
  518. package/build/esm/cc/PowerlevelCC.js.map +1 -1
  519. package/build/esm/cc/ProtectionCC._validateArgs.d.ts +4 -0
  520. package/build/esm/cc/ProtectionCC._validateArgs.d.ts.map +1 -0
  521. package/build/esm/cc/ProtectionCC._validateArgs.js +33 -0
  522. package/build/esm/cc/ProtectionCC._validateArgs.js.map +1 -0
  523. package/build/esm/cc/ProtectionCC.js +23 -49
  524. package/build/esm/cc/ProtectionCC.js.map +1 -1
  525. package/build/esm/cc/SceneActivationCC._validateArgs.d.ts +2 -0
  526. package/build/esm/cc/SceneActivationCC._validateArgs.d.ts.map +1 -0
  527. package/build/esm/cc/SceneActivationCC._validateArgs.js +13 -0
  528. package/build/esm/cc/SceneActivationCC._validateArgs.js.map +1 -0
  529. package/build/esm/cc/SceneActivationCC.js +17 -47
  530. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  531. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.d.ts +3 -0
  532. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.d.ts.map +1 -0
  533. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js +23 -0
  534. package/build/esm/cc/SceneActuatorConfigurationCC._validateArgs.js.map +1 -0
  535. package/build/esm/cc/SceneActuatorConfigurationCC.js +20 -63
  536. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  537. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.d.ts +4 -0
  538. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.d.ts.map +1 -0
  539. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js +33 -0
  540. package/build/esm/cc/SceneControllerConfigurationCC._validateArgs.js.map +1 -0
  541. package/build/esm/cc/SceneControllerConfigurationCC.js +23 -50
  542. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  543. package/build/esm/cc/ScheduleEntryLockCC._validateArgs.d.ts +9 -0
  544. package/build/esm/cc/ScheduleEntryLockCC._validateArgs.d.ts.map +1 -0
  545. package/build/esm/cc/ScheduleEntryLockCC._validateArgs.js +82 -0
  546. package/build/esm/cc/ScheduleEntryLockCC._validateArgs.js.map +1 -0
  547. package/build/esm/cc/ScheduleEntryLockCC.js +38 -308
  548. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  549. package/build/esm/cc/SoundSwitchCC._validateArgs.d.ts +4 -0
  550. package/build/esm/cc/SoundSwitchCC._validateArgs.d.ts.map +1 -0
  551. package/build/esm/cc/SoundSwitchCC._validateArgs.js +32 -0
  552. package/build/esm/cc/SoundSwitchCC._validateArgs.js.map +1 -0
  553. package/build/esm/cc/SoundSwitchCC.js +21 -39
  554. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  555. package/build/esm/cc/ThermostatFanModeCC._validateArgs.d.ts +2 -0
  556. package/build/esm/cc/ThermostatFanModeCC._validateArgs.d.ts.map +1 -0
  557. package/build/esm/cc/ThermostatFanModeCC._validateArgs.js +12 -0
  558. package/build/esm/cc/ThermostatFanModeCC._validateArgs.js.map +1 -0
  559. package/build/esm/cc/ThermostatFanModeCC.js +17 -35
  560. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  561. package/build/esm/cc/ThermostatModeCC._validateArgs.d.ts +2 -0
  562. package/build/esm/cc/ThermostatModeCC._validateArgs.d.ts.map +1 -0
  563. package/build/esm/cc/ThermostatModeCC._validateArgs.js +12 -0
  564. package/build/esm/cc/ThermostatModeCC._validateArgs.js.map +1 -0
  565. package/build/esm/cc/ThermostatModeCC.js +17 -47
  566. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  567. package/build/esm/cc/ThermostatSetbackCC._validateArgs.d.ts +2 -0
  568. package/build/esm/cc/ThermostatSetbackCC._validateArgs.d.ts.map +1 -0
  569. package/build/esm/cc/ThermostatSetbackCC._validateArgs.js +12 -0
  570. package/build/esm/cc/ThermostatSetbackCC._validateArgs.js.map +1 -0
  571. package/build/esm/cc/ThermostatSetbackCC.js +17 -45
  572. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  573. package/build/esm/cc/ThermostatSetpointCC._validateArgs.d.ts +4 -0
  574. package/build/esm/cc/ThermostatSetpointCC._validateArgs.d.ts.map +1 -0
  575. package/build/esm/cc/ThermostatSetpointCC._validateArgs.js +32 -0
  576. package/build/esm/cc/ThermostatSetpointCC._validateArgs.js.map +1 -0
  577. package/build/esm/cc/ThermostatSetpointCC.js +23 -24
  578. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  579. package/build/esm/cc/TimeCC._validateArgs.d.ts +5 -0
  580. package/build/esm/cc/TimeCC._validateArgs.d.ts.map +1 -0
  581. package/build/esm/cc/TimeCC._validateArgs.js +42 -0
  582. package/build/esm/cc/TimeCC._validateArgs.js.map +1 -0
  583. package/build/esm/cc/TimeCC.js +26 -77
  584. package/build/esm/cc/TimeCC.js.map +1 -1
  585. package/build/esm/cc/TimeParametersCC._validateArgs.d.ts +2 -0
  586. package/build/esm/cc/TimeParametersCC._validateArgs.d.ts.map +1 -0
  587. package/build/esm/cc/TimeParametersCC._validateArgs.js +12 -0
  588. package/build/esm/cc/TimeParametersCC._validateArgs.js.map +1 -0
  589. package/build/esm/cc/TimeParametersCC.js +17 -28
  590. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  591. package/build/esm/cc/UserCodeCC._validateArgs.d.ts +7 -0
  592. package/build/esm/cc/UserCodeCC._validateArgs.d.ts.map +1 -0
  593. package/build/esm/cc/UserCodeCC._validateArgs.js +62 -0
  594. package/build/esm/cc/UserCodeCC._validateArgs.js.map +1 -0
  595. package/build/esm/cc/UserCodeCC.js +32 -254
  596. package/build/esm/cc/UserCodeCC.js.map +1 -1
  597. package/build/esm/cc/VersionCC._validateArgs.d.ts +4 -0
  598. package/build/esm/cc/VersionCC._validateArgs.d.ts.map +1 -0
  599. package/build/esm/cc/VersionCC._validateArgs.js +32 -0
  600. package/build/esm/cc/VersionCC._validateArgs.js.map +1 -0
  601. package/build/esm/cc/VersionCC.js +23 -75
  602. package/build/esm/cc/VersionCC.js.map +1 -1
  603. package/build/esm/cc/WakeUpCC._validateArgs.d.ts +2 -0
  604. package/build/esm/cc/WakeUpCC._validateArgs.d.ts.map +1 -0
  605. package/build/esm/cc/WakeUpCC._validateArgs.js +12 -0
  606. package/build/esm/cc/WakeUpCC._validateArgs.js.map +1 -0
  607. package/build/esm/cc/WakeUpCC.js +17 -21
  608. package/build/esm/cc/WakeUpCC.js.map +1 -1
  609. package/build/esm/cc/WindowCoveringCC._validateArgs.d.ts +5 -0
  610. package/build/esm/cc/WindowCoveringCC._validateArgs.d.ts.map +1 -0
  611. package/build/esm/cc/WindowCoveringCC._validateArgs.js +43 -0
  612. package/build/esm/cc/WindowCoveringCC._validateArgs.js.map +1 -0
  613. package/build/esm/cc/WindowCoveringCC.js +24 -110
  614. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  615. package/build/esm/cc/ZWavePlusCC._validateArgs.d.ts +2 -0
  616. package/build/esm/cc/ZWavePlusCC._validateArgs.d.ts.map +1 -0
  617. package/build/esm/cc/ZWavePlusCC._validateArgs.js +12 -0
  618. package/build/esm/cc/ZWavePlusCC._validateArgs.js.map +1 -0
  619. package/build/esm/cc/ZWavePlusCC.js +17 -66
  620. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  621. package/build/esm/cc/manufacturerProprietary/FibaroCC._validateArgs.d.ts +3 -0
  622. package/build/esm/cc/manufacturerProprietary/FibaroCC._validateArgs.d.ts.map +1 -0
  623. package/build/esm/cc/manufacturerProprietary/FibaroCC._validateArgs.js +22 -0
  624. package/build/esm/cc/manufacturerProprietary/FibaroCC._validateArgs.js.map +1 -0
  625. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +19 -22
  626. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  627. package/package.json +7 -7
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -43,6 +44,7 @@ __export(NotificationCC_exports, {
43
44
  getNotificationValueMetadata: () => getNotificationValueMetadata
44
45
  });
45
46
  module.exports = __toCommonJS(NotificationCC_exports);
47
+ var __validateArgs = __toESM(require("./NotificationCC._validateArgs.js"), 1);
46
48
  var import_core = require("@zwave-js/core");
47
49
  var import_safe = require("@zwave-js/core/safe");
48
50
  var import_safe2 = require("@zwave-js/shared/safe");
@@ -56,11 +58,19 @@ var import_Values = require("../lib/Values.js");
56
58
  var import_Types = require("../lib/_Types.js");
57
59
  var ccUtils = __toESM(require("../lib/utils.js"), 1);
58
60
  var import_AssociationGroupInfoCC = require("./AssociationGroupInfoCC.js");
61
+ var __runInitializers = function(thisArg, initializers, value) {
62
+ var useValue = arguments.length > 2;
63
+ for (var i = 0; i < initializers.length; i++) {
64
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
65
+ }
66
+ return useValue ? value : void 0;
67
+ };
59
68
  var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
60
69
  function accept(f) {
61
70
  if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
62
71
  return f;
63
72
  }
73
+ __name(accept, "accept");
64
74
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
65
75
  var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
66
76
  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
@@ -88,122 +98,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
88
98
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
89
99
  done = true;
90
100
  };
91
- var __runInitializers = function(thisArg, initializers, value) {
92
- var useValue = arguments.length > 2;
93
- for (var i = 0; i < initializers.length; i++) {
94
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
95
- }
96
- return useValue ? value : void 0;
97
- };
98
- function __assertType(argName, typeName, boundHasError) {
99
- const { ZWaveError: ZWaveError2, ZWaveErrorCodes: ZWaveErrorCodes2 } = require("@zwave-js/core");
100
- if (boundHasError()) {
101
- throw new ZWaveError2(typeName ? `${argName} is not a ${typeName}` : `${argName} has the wrong type`, ZWaveErrorCodes2.Argument_Invalid);
102
- }
103
- }
104
- const __assertType__NotificationCCReportOptions = ($o) => {
105
- function _number($o2) {
106
- return typeof $o2 !== "number" ? {} : null;
107
- }
108
- function _uint8array($o2) {
109
- return !require("@zwave-js/shared/safe").isUint8Array($o2) ? {} : null;
110
- }
111
- function _0($o2) {
112
- if (typeof $o2 !== "object" || $o2 === null || Array.isArray($o2))
113
- return {};
114
- if ("alarmType" in $o2 && $o2["alarmType"] !== void 0) {
115
- const error = _number($o2["alarmType"]);
116
- if (error)
117
- return error;
118
- }
119
- if ("alarmLevel" in $o2 && $o2["alarmLevel"] !== void 0) {
120
- const error = _number($o2["alarmLevel"]);
121
- if (error)
122
- return error;
123
- }
124
- if ("notificationType" in $o2 && $o2["notificationType"] !== void 0) {
125
- const error = _number($o2["notificationType"]);
126
- if (error)
127
- return error;
128
- }
129
- if ("notificationEvent" in $o2 && $o2["notificationEvent"] !== void 0) {
130
- const error = _number($o2["notificationEvent"]);
131
- if (error)
132
- return error;
133
- }
134
- if ("notificationStatus" in $o2 && $o2["notificationStatus"] !== void 0) {
135
- const error = _number($o2["notificationStatus"]);
136
- if (error)
137
- return error;
138
- }
139
- if ("eventParameters" in $o2 && $o2["eventParameters"] !== void 0) {
140
- const error = _uint8array($o2["eventParameters"]);
141
- if (error)
142
- return error;
143
- }
144
- if ("sequenceNumber" in $o2 && $o2["sequenceNumber"] !== void 0) {
145
- const error = _number($o2["sequenceNumber"]);
146
- if (error)
147
- return error;
148
- }
149
- return null;
150
- }
151
- return _0($o);
152
- };
153
- const __assertType__NotificationCCGetOptions = ($o) => {
154
- function _number($o2) {
155
- return typeof $o2 !== "number" ? {} : null;
156
- }
157
- function _1($o2) {
158
- if (typeof $o2 !== "object" || $o2 === null || Array.isArray($o2))
159
- return {};
160
- if ("alarmType" in $o2 && $o2["alarmType"] !== void 0) {
161
- const error = _number($o2["alarmType"]);
162
- if (error)
163
- return error;
164
- } else
165
- return {};
166
- return null;
167
- }
168
- function _2($o2) {
169
- if (typeof $o2 !== "object" || $o2 === null || Array.isArray($o2))
170
- return {};
171
- if ("notificationType" in $o2 && $o2["notificationType"] !== void 0) {
172
- const error = _number($o2["notificationType"]);
173
- if (error)
174
- return error;
175
- } else
176
- return {};
177
- if ("notificationEvent" in $o2 && $o2["notificationEvent"] !== void 0) {
178
- const error = _number($o2["notificationEvent"]);
179
- if (error)
180
- return error;
181
- }
182
- return null;
183
- }
184
- function su__1__2_eu($o2) {
185
- const conditions = [_1, _2];
186
- for (const condition of conditions) {
187
- const error = condition($o2);
188
- if (!error)
189
- return null;
190
- }
191
- return {};
192
- }
193
- return su__1__2_eu($o);
194
- };
195
- const __assertType__number = ($o) => {
196
- function _number($o2) {
197
- return typeof $o2 !== "number" ? {} : null;
198
- }
199
- return _number($o);
200
- };
201
- const __assertType__boolean = ($o) => {
202
- function _boolean($o2) {
203
- return typeof $o2 !== "boolean" ? {} : null;
204
- }
205
- return _boolean($o);
206
- };
101
+ const { validateArgs_NotificationCCAPI_sendReport, validateArgs_NotificationCCAPI_get, validateArgs_NotificationCCAPI_set, validateArgs_NotificationCCAPI_getSupportedEvents } = __validateArgs;
207
102
  const NotificationCCValues = Object.freeze({
208
103
  ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses.Notification, {
209
104
  ...import_Values.V.staticProperty("supportsV1Alarm", void 0, {
@@ -308,18 +203,35 @@ function shouldAutoCreateSimpleDoorSensorValue(ctx, endpoint) {
308
203
  23
309
204
  );
310
205
  }
206
+ __name(shouldAutoCreateSimpleDoorSensorValue, "shouldAutoCreateSimpleDoorSensorValue");
311
207
  let NotificationCCAPI = (() => {
312
208
  let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses.Notification)];
313
209
  let _classDescriptor;
314
210
  let _classExtraInitializers = [];
315
211
  let _classThis;
316
212
  let _classSuper = import_API.PhysicalCCAPI;
213
+ let _instanceExtraInitializers = [];
214
+ let _sendReport_decorators;
215
+ let _get_decorators;
216
+ let _set_decorators;
217
+ let _getSupportedEvents_decorators;
317
218
  var NotificationCCAPI2 = class extends _classSuper {
219
+ static {
220
+ __name(this, "NotificationCCAPI");
221
+ }
318
222
  static {
319
223
  _classThis = this;
320
224
  }
321
225
  static {
322
226
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
227
+ _sendReport_decorators = [validateArgs_NotificationCCAPI_sendReport()];
228
+ _get_decorators = [validateArgs_NotificationCCAPI_get()];
229
+ _set_decorators = [validateArgs_NotificationCCAPI_set()];
230
+ _getSupportedEvents_decorators = [validateArgs_NotificationCCAPI_getSupportedEvents()];
231
+ __esDecorate(this, null, _sendReport_decorators, { kind: "method", name: "sendReport", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "sendReport" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.sendReport, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
232
+ __esDecorate(this, null, _get_decorators, { kind: "method", name: "get", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "get" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.get, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
233
+ __esDecorate(this, null, _set_decorators, { kind: "method", name: "set", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "set" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.set, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
234
+ __esDecorate(this, null, _getSupportedEvents_decorators, { kind: "method", name: "getSupportedEvents", static: false, private: false, access: { has: /* @__PURE__ */ __name((obj) => "getSupportedEvents" in obj, "has"), get: /* @__PURE__ */ __name((obj) => obj.getSupportedEvents, "get") }, metadata: _metadata }, null, _instanceExtraInitializers);
323
235
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
324
236
  NotificationCCAPI2 = _classThis = _classDescriptor.value;
325
237
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -369,7 +281,6 @@ let NotificationCCAPI = (() => {
369
281
  return this.host.sendCommand(cc, this.commandOptions);
370
282
  }
371
283
  async sendReport(options) {
372
- __assertType("options", "NotificationCCReportOptions", __assertType__NotificationCCReportOptions.bind(void 0, options));
373
284
  this.assertSupportsCommand(import_Types.NotificationCommand, import_Types.NotificationCommand.Report);
374
285
  const cc = new NotificationCCReport({
375
286
  nodeId: this.endpoint.nodeId,
@@ -379,7 +290,6 @@ let NotificationCCAPI = (() => {
379
290
  return this.host.sendCommand(cc, this.commandOptions);
380
291
  }
381
292
  async get(options) {
382
- __assertType("options", "NotificationCCGetOptions", __assertType__NotificationCCGetOptions.bind(void 0, options));
383
293
  const response = await this.getInternal(options);
384
294
  if (response) {
385
295
  return (0, import_safe3.pick)(response, [
@@ -392,8 +302,6 @@ let NotificationCCAPI = (() => {
392
302
  }
393
303
  }
394
304
  async set(notificationType, notificationStatus) {
395
- __assertType("notificationType", "number", __assertType__number.bind(void 0, notificationType));
396
- __assertType("notificationStatus", "boolean", __assertType__boolean.bind(void 0, notificationStatus));
397
305
  this.assertSupportsCommand(import_Types.NotificationCommand, import_Types.NotificationCommand.Set);
398
306
  const cc = new NotificationCCSet({
399
307
  nodeId: this.endpoint.nodeId,
@@ -419,7 +327,6 @@ let NotificationCCAPI = (() => {
419
327
  }
420
328
  }
421
329
  async getSupportedEvents(notificationType) {
422
- __assertType("notificationType", "number", __assertType__number.bind(void 0, notificationType));
423
330
  this.assertSupportsCommand(import_Types.NotificationCommand, import_Types.NotificationCommand.EventSupportedGet);
424
331
  const cc = new NotificationCCEventSupportedGet({
425
332
  nodeId: this.endpoint.nodeId,
@@ -429,6 +336,10 @@ let NotificationCCAPI = (() => {
429
336
  const response = await this.host.sendCommand(cc, this.commandOptions);
430
337
  return response?.supportedEvents;
431
338
  }
339
+ constructor() {
340
+ super(...arguments);
341
+ __runInitializers(this, _instanceExtraInitializers);
342
+ }
432
343
  };
433
344
  return NotificationCCAPI2 = _classThis;
434
345
  })();
@@ -444,9 +355,11 @@ function getNotificationEnumBehavior(notification, valueConfig) {
444
355
  }
445
356
  return "extend";
446
357
  }
358
+ __name(getNotificationEnumBehavior, "getNotificationEnumBehavior");
447
359
  function getNotificationStateValueWithEnum(stateValue, enumValue) {
448
360
  return stateValue << 8 | enumValue;
449
361
  }
362
+ __name(getNotificationStateValueWithEnum, "getNotificationStateValueWithEnum");
450
363
  function getNotificationValueMetadata(previous, notification, valueConfig) {
451
364
  const metadata = previous ?? {
452
365
  ...import_safe.ValueMetadata.ReadOnlyUInt8,
@@ -472,6 +385,7 @@ function getNotificationValueMetadata(previous, notification, valueConfig) {
472
385
  }
473
386
  return metadata;
474
387
  }
388
+ __name(getNotificationValueMetadata, "getNotificationValueMetadata");
475
389
  let NotificationCC = (() => {
476
390
  let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Notification), (0, import_CommandClassDecorators.implementedVersion)(8), (0, import_CommandClassDecorators.ccValues)(NotificationCCValues)];
477
391
  let _classDescriptor;
@@ -479,6 +393,9 @@ let NotificationCC = (() => {
479
393
  let _classThis;
480
394
  let _classSuper = import_CommandClass.CommandClass;
481
395
  var NotificationCC2 = class extends _classSuper {
396
+ static {
397
+ __name(this, "NotificationCC");
398
+ }
482
399
  static {
483
400
  _classThis = this;
484
401
  }
@@ -718,6 +635,9 @@ let NotificationCCSet = (() => {
718
635
  let _classThis;
719
636
  let _classSuper = NotificationCC;
720
637
  var NotificationCCSet2 = class extends _classSuper {
638
+ static {
639
+ __name(this, "NotificationCCSet");
640
+ }
721
641
  static {
722
642
  _classThis = this;
723
643
  }
@@ -771,6 +691,9 @@ let NotificationCCReport = (() => {
771
691
  let _classThis;
772
692
  let _classSuper = NotificationCC;
773
693
  var NotificationCCReport2 = class extends _classSuper {
694
+ static {
695
+ __name(this, "NotificationCCReport");
696
+ }
774
697
  static {
775
698
  _classThis = this;
776
699
  }
@@ -992,10 +915,10 @@ let NotificationCCReport = (() => {
992
915
  sourceNodeId: this.nodeId,
993
916
  // Security encapsulation is handled outside of this CC,
994
917
  // so it is not needed here:
995
- hasSecurityClass: () => false,
996
- getHighestSecurityClass: () => import_safe.SecurityClass.None,
997
- setSecurityClass: () => {
998
- },
918
+ hasSecurityClass: /* @__PURE__ */ __name(() => false, "hasSecurityClass"),
919
+ getHighestSecurityClass: /* @__PURE__ */ __name(() => import_safe.SecurityClass.None, "getHighestSecurityClass"),
920
+ setSecurityClass: /* @__PURE__ */ __name(() => {
921
+ }, "setSecurityClass"),
999
922
  securityManager: void 0,
1000
923
  securityManager2: void 0,
1001
924
  securityManagerLR: void 0
@@ -1087,6 +1010,9 @@ let NotificationCCGet = (() => {
1087
1010
  let _classThis;
1088
1011
  let _classSuper = NotificationCC;
1089
1012
  var NotificationCCGet2 = class extends _classSuper {
1013
+ static {
1014
+ __name(this, "NotificationCCGet");
1015
+ }
1090
1016
  static {
1091
1017
  _classThis = this;
1092
1018
  }
@@ -1167,6 +1093,9 @@ let NotificationCCSupportedReport = (() => {
1167
1093
  let _classThis;
1168
1094
  let _classSuper = NotificationCC;
1169
1095
  var NotificationCCSupportedReport2 = class extends _classSuper {
1096
+ static {
1097
+ __name(this, "NotificationCCSupportedReport");
1098
+ }
1170
1099
  static {
1171
1100
  _classThis = this;
1172
1101
  }
@@ -1231,6 +1160,9 @@ let NotificationCCSupportedGet = (() => {
1231
1160
  let _classThis;
1232
1161
  let _classSuper = NotificationCC;
1233
1162
  var NotificationCCSupportedGet2 = class extends _classSuper {
1163
+ static {
1164
+ __name(this, "NotificationCCSupportedGet");
1165
+ }
1234
1166
  static {
1235
1167
  _classThis = this;
1236
1168
  }
@@ -1251,6 +1183,9 @@ let NotificationCCEventSupportedReport = (() => {
1251
1183
  let _classThis;
1252
1184
  let _classSuper = NotificationCC;
1253
1185
  var NotificationCCEventSupportedReport2 = class extends _classSuper {
1186
+ static {
1187
+ __name(this, "NotificationCCEventSupportedReport");
1188
+ }
1254
1189
  static {
1255
1190
  _classThis = this;
1256
1191
  }
@@ -1342,6 +1277,9 @@ let NotificationCCEventSupportedGet = (() => {
1342
1277
  let _classThis;
1343
1278
  let _classSuper = NotificationCC;
1344
1279
  var NotificationCCEventSupportedGet2 = class extends _classSuper {
1280
+ static {
1281
+ __name(this, "NotificationCCEventSupportedGet");
1282
+ }
1345
1283
  static {
1346
1284
  _classThis = this;
1347
1285
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/NotificationCC.ts"],
4
4
  "sourcesContent": ["import {\n\ttype Notification,\n\ttype NotificationState,\n\ttype NotificationValue,\n\ttype WithAddress,\n\tgetNotification,\n\tgetNotificationEventName,\n\tgetNotificationName,\n\tgetNotificationValue,\n\tgetNotificationValueName,\n\ttimespan,\n} from \"@zwave-js/core\";\nimport {\n\tCommandClasses,\n\ttype ControlsCC,\n\tDuration,\n\ttype EndpointId,\n\ttype GetEndpoint,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype MessageRecord,\n\ttype NodeId,\n\tSecurityClass,\n\ttype SinglecastCC,\n\ttype SupervisionResult,\n\ttype SupportsCC,\n\ttype ValueID,\n\tValueMetadata,\n\ttype ValueMetadataNumeric,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tencodeBitMask,\n\tgetCCName,\n\tisZWaveError,\n\tparseBitMask,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport type {\n\tCCEncodingContext,\n\tCCParsingContext,\n\tGetDeviceConfig,\n\tGetNode,\n\tGetSupportedCCVersion,\n\tGetValueDB,\n\tLogNode,\n} from \"@zwave-js/host/safe\";\nimport { Bytes, isUint8Array } from \"@zwave-js/shared/safe\";\nimport { buffer2hex, num2hex, pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { isArray } from \"alcalzone-shared/typeguards\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\tPhysicalCCAPI,\n\ttype PollValueImplementation,\n\tthrowUnsupportedProperty,\n} from \"../lib/API.js\";\nimport {\n\tCCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\tInvalidCC,\n\ttype PersistValuesContext,\n\ttype RefreshValuesContext,\n\tgetEffectiveCCVersion,\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 { isNotificationEventPayload } from \"../lib/NotificationEventPayload.js\";\nimport { V } from \"../lib/Values.js\";\nimport { NotificationCommand, UserCodeCommand } from \"../lib/_Types.js\";\nimport * as ccUtils from \"../lib/utils.js\";\nimport { AssociationGroupInfoCC } from \"./AssociationGroupInfoCC.js\";\n\nexport const NotificationCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses.Notification, {\n\t\t...V.staticProperty(\"supportsV1Alarm\", undefined, {\n\t\t\tinternal: true,\n\t\t\tsupportsEndpoints: false,\n\t\t}),\n\t\t...V.staticProperty(\"supportedNotificationTypes\", undefined, {\n\t\t\tinternal: true,\n\t\t\tsupportsEndpoints: false,\n\t\t}),\n\t\t...V.staticProperty(\"notificationMode\", undefined, {\n\t\t\tinternal: true,\n\t\t\tsupportsEndpoints: false,\n\t\t}),\n\t\t...V.staticProperty(\"lastRefresh\", undefined, {\n\t\t\tinternal: true,\n\t\t}),\n\n\t\t// V1 Alarm values\n\t\t...V.staticProperty(\n\t\t\t\"alarmType\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Alarm Type\",\n\t\t\t} as const,\n\t\t),\n\t\t...V.staticProperty(\n\t\t\t\"alarmLevel\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Alarm Level\",\n\t\t\t} as const,\n\t\t),\n\n\t\t// Simplification for the Door state variable, where we cannot know\n\t\t// if any of the enum values are supported\n\t\t...V.staticPropertyAndKeyWithName(\n\t\t\t\"doorStateSimple\",\n\t\t\t\"Access Control\",\n\t\t\t\"Door state (simple)\",\n\t\t\t{\n\t\t\t\t// Must be a number for compatibility reasons\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Door state (simple)\",\n\t\t\t\tstates: {\n\t\t\t\t\t[0x16]: \"Window/door is open\",\n\t\t\t\t\t[0x17]: \"Window/door is closed\",\n\t\t\t\t},\n\t\t\t\tccSpecific: {\n\t\t\t\t\tnotificationType: 0x06,\n\t\t\t\t},\n\t\t\t} as const,\n\t\t\t{\n\t\t\t\tautoCreate: shouldAutoCreateSimpleDoorSensorValue,\n\t\t\t} as const,\n\t\t),\n\n\t\t// Binary tilt value extracted from the Door state variable.\n\t\t...V.staticPropertyAndKeyWithName(\n\t\t\t\"doorTiltState\",\n\t\t\t\"Access Control\",\n\t\t\t\"Door tilt state\",\n\t\t\t{\n\t\t\t\t// Must be a number for compatibility reasons\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: \"Door tilt state\",\n\t\t\t\tstates: {\n\t\t\t\t\t[0x00]: \"Window/door is not tilted\",\n\t\t\t\t\t[0x01]: \"Window/door is tilted\",\n\t\t\t\t},\n\t\t\t\tccSpecific: {\n\t\t\t\t\tnotificationType: 0x06,\n\t\t\t\t},\n\t\t\t} as const,\n\t\t\t{\n\t\t\t\t// This is created when the tilt state is first received.\n\t\t\t\tautoCreate: false,\n\t\t\t} as const,\n\t\t),\n\t}),\n\n\t...V.defineDynamicCCValues(CommandClasses.Notification, {\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"supportedNotificationEvents\",\n\t\t\t\"supportedNotificationEvents\",\n\t\t\t(notificationType: number) => notificationType,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\tproperty === \"supportedNotificationEvents\"\n\t\t\t\t&& typeof propertyKey === \"number\",\n\t\t\tundefined,\n\t\t\t{ internal: true, supportsEndpoints: false },\n\t\t),\n\n\t\t// Different variants of the V2 notification values:\n\t\t// Unknown type\n\t\t...V.dynamicPropertyWithName(\n\t\t\t\"unknownNotificationType\",\n\t\t\t(notificationType: number) =>\n\t\t\t\t`UNKNOWN_${num2hex(notificationType)}`,\n\t\t\t({ property }) =>\n\t\t\t\ttypeof property === \"string\"\n\t\t\t\t&& property.startsWith(\"UNKNOWN_0x\"),\n\t\t\t(notificationType: number) => ({\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: `Unknown notification (${\n\t\t\t\t\tnum2hex(\n\t\t\t\t\t\tnotificationType,\n\t\t\t\t\t)\n\t\t\t\t})`,\n\t\t\t\tccSpecific: { notificationType },\n\t\t\t} as const),\n\t\t),\n\n\t\t// Known type, unknown variable\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"unknownNotificationVariable\",\n\t\t\t(notificationType: number, notificationName: string) =>\n\t\t\t\tnotificationName,\n\t\t\t\"unknown\",\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\ttypeof property === \"string\" && propertyKey === \"unknown\",\n\t\t\t(notificationType: number, notificationName: string) => ({\n\t\t\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\t\t\tlabel: `${notificationName}: Unknown value`,\n\t\t\t\tccSpecific: { notificationType },\n\t\t\t} as const),\n\t\t),\n\n\t\t// (Stateful) notification variable\n\t\t...V.dynamicPropertyAndKeyWithName(\n\t\t\t\"notificationVariable\",\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t\t(notificationName: string, variableName: string) =>\n\t\t\t\tnotificationName,\n\t\t\t(notificationName: string, variableName: string) => variableName,\n\t\t\t({ property, propertyKey }) =>\n\t\t\t\ttypeof property === \"string\" && typeof propertyKey === \"string\",\n\t\t\t// Notification metadata is so dynamic, it does not make sense to define it here\n\t\t\tundefined,\n\t\t),\n\t}),\n});\n\nfunction shouldAutoCreateSimpleDoorSensorValue(\n\tctx: GetValueDB,\n\tendpoint: EndpointId,\n): boolean {\n\tconst valueDB = ctx.tryGetValueDB(endpoint.nodeId);\n\tif (!valueDB) return false;\n\tconst supportedACEvents = valueDB.getValue<readonly number[]>(\n\t\tNotificationCCValues.supportedNotificationEvents(\n\t\t\t// Access Control\n\t\t\t0x06,\n\t\t).endpoint(endpoint.index),\n\t);\n\tif (!supportedACEvents) return false;\n\treturn (\n\t\tsupportedACEvents.includes(\n\t\t\t// Window/door is open\n\t\t\t0x16,\n\t\t)\n\t\t&& supportedACEvents.includes(\n\t\t\t// Window/door is closed\n\t\t\t0x17,\n\t\t)\n\t);\n}\n\n@API(CommandClasses.Notification)\nexport class NotificationCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: NotificationCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase NotificationCommand.Report:\n\t\t\tcase NotificationCommand.Get:\n\t\t\t\treturn true; // These exist starting with V1\n\n\t\t\tcase NotificationCommand.Set:\n\t\t\tcase NotificationCommand.SupportedGet:\n\t\t\t\treturn this.version >= 2;\n\n\t\t\tcase NotificationCommand.EventSupportedGet:\n\t\t\t\treturn this.version >= 3;\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(\n\t\t\tthis: NotificationCCAPI,\n\t\t\t{ property, propertyKey },\n\t\t) {\n\t\t\tconst valueId: ValueID = {\n\t\t\t\tcommandClass: this.ccId,\n\t\t\t\tendpoint: this.endpoint.index,\n\t\t\t\tproperty,\n\t\t\t\tpropertyKey,\n\t\t\t};\n\t\t\tif (NotificationCCValues.notificationVariable.is(valueId)) {\n\t\t\t\tconst notificationType: number | undefined = this\n\t\t\t\t\t.tryGetValueDB()?.getMetadata(valueId)?.ccSpecific\n\t\t\t\t\t?.notificationType;\n\t\t\t\tif (notificationType != undefined) {\n\t\t\t\t\treturn this.getInternal({ notificationType });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t};\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tpublic async getInternal(\n\t\toptions: NotificationCCGetOptions,\n\t): Promise<NotificationCCReport | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tNotificationCommand,\n\t\t\tNotificationCommand.Get,\n\t\t);\n\n\t\tconst cc = new NotificationCCGet({\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<NotificationCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t}\n\n\t@validateArgs()\n\tpublic async sendReport(\n\t\toptions: NotificationCCReportOptions,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tNotificationCommand,\n\t\t\tNotificationCommand.Report,\n\t\t);\n\n\t\tconst cc = new NotificationCCReport({\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@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get(options: NotificationCCGetOptions) {\n\t\tconst response = await this.getInternal(options);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"notificationStatus\",\n\t\t\t\t\"notificationEvent\",\n\t\t\t\t\"alarmLevel\",\n\t\t\t\t\"eventParameters\",\n\t\t\t\t\"sequenceNumber\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tnotificationType: number,\n\t\tnotificationStatus: boolean,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(\n\t\t\tNotificationCommand,\n\t\t\tNotificationCommand.Set,\n\t\t);\n\n\t\tconst cc = new NotificationCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tnotificationType,\n\t\t\tnotificationStatus,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async getSupported() {\n\t\tthis.assertSupportsCommand(\n\t\t\tNotificationCommand,\n\t\t\tNotificationCommand.SupportedGet,\n\t\t);\n\n\t\tconst cc = new NotificationCCSupportedGet({\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\tNotificationCCSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\n\t\t\t\t\"supportsV1Alarm\",\n\t\t\t\t\"supportedNotificationTypes\",\n\t\t\t]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async getSupportedEvents(\n\t\tnotificationType: number,\n\t): Promise<MaybeNotKnown<readonly number[]>> {\n\t\tthis.assertSupportsCommand(\n\t\t\tNotificationCommand,\n\t\t\tNotificationCommand.EventSupportedGet,\n\t\t);\n\n\t\tconst cc = new NotificationCCEventSupportedGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tnotificationType,\n\t\t});\n\t\tconst response = await this.host.sendCommand<\n\t\t\tNotificationCCEventSupportedReport\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.supportedEvents;\n\t}\n}\n\nexport function getNotificationEnumBehavior(\n\tnotification: Notification,\n\tvalueConfig: NotificationState,\n): \"none\" | \"extend\" | \"replace\" {\n\tconst variable = notification.variables.find((v) =>\n\t\tv.states.has(valueConfig.value)\n\t);\n\tif (!variable) return \"none\";\n\tconst numStatesWithEnums = [...variable.states.values()].filter(\n\t\t(val) => val.parameter?.type === \"enum\",\n\t).length;\n\tif (numStatesWithEnums === 0) return \"none\";\n\t// An enum value replaces the original value if there is only a single possible state\n\t// which also has an enum parameter\n\tif (numStatesWithEnums === 1 && variable.states.size === 1) {\n\t\treturn \"replace\";\n\t}\n\treturn \"extend\";\n}\n\nexport function getNotificationStateValueWithEnum(\n\tstateValue: number,\n\tenumValue: number,\n): number {\n\treturn (stateValue << 8) | enumValue;\n}\n\n/**\n * Returns the metadata to use for a known notification value.\n * Can be used to extend a previously defined metadata,\n * e.g. for V2 notifications that don't allow discovering supported events.\n */\nexport function getNotificationValueMetadata(\n\tprevious: ValueMetadataNumeric | undefined,\n\tnotification: Notification,\n\tvalueConfig: NotificationState,\n): ValueMetadataNumeric {\n\tconst metadata: ValueMetadataNumeric = previous ?? {\n\t\t...ValueMetadata.ReadOnlyUInt8,\n\t\tlabel: valueConfig.variableName,\n\t\tstates: {},\n\t\tccSpecific: {\n\t\t\tnotificationType: notification.type,\n\t\t},\n\t};\n\tif (valueConfig.idle) {\n\t\tmetadata.states![0] = \"idle\";\n\t}\n\tconst enumBehavior = getNotificationEnumBehavior(\n\t\tnotification,\n\t\tvalueConfig,\n\t);\n\tif (enumBehavior !== \"replace\") {\n\t\tmetadata.states![valueConfig.value] = valueConfig.label;\n\t}\n\tif (valueConfig.parameter?.type === \"enum\") {\n\t\tfor (\n\t\t\tconst [key, label] of Object.entries(valueConfig.parameter.values)\n\t\t) {\n\t\t\tconst value = parseInt(key);\n\t\t\tconst stateKey = enumBehavior === \"replace\"\n\t\t\t\t? value\n\t\t\t\t: getNotificationStateValueWithEnum(valueConfig.value, value);\n\t\t\tmetadata.states![stateKey] = label;\n\t\t}\n\t}\n\n\treturn metadata;\n}\n\n@commandClass(CommandClasses.Notification)\n@implementedVersion(8)\n@ccValues(NotificationCCValues)\nexport class NotificationCC extends CommandClass {\n\tdeclare ccCommand: NotificationCommand;\n\n\t// former AlarmCC (v1..v2)\n\n\tpublic determineRequiredCCInterviews(): readonly CommandClasses[] {\n\t\treturn [\n\t\t\t...super.determineRequiredCCInterviews(),\n\t\t\tCommandClasses.Association,\n\t\t\tCommandClasses[\"Multi Channel Association\"],\n\t\t\tCommandClasses[\"Association Group Information\"],\n\t\t];\n\t}\n\n\tprivate async determineNotificationMode(\n\t\tctx: GetValueDB & GetNode<NodeId & SupportsCC> & LogNode,\n\t\tapi: NotificationCCAPI,\n\t\tsupportedNotificationEvents: ReadonlyMap<number, readonly number[]>,\n\t): Promise<\"push\" | \"pull\"> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\t// SDS14223: If the supporting node does not support the Association Command Class,\n\t\t// it may be concluded that the supporting node implements Pull Mode and discovery may be aborted.\n\t\tif (!node.supportsCC(CommandClasses.Association)) return \"pull\";\n\n\t\tif (node.supportsCC(CommandClasses[\"Association Group Information\"])) {\n\t\t\ttry {\n\t\t\t\tconst groupsIssueingNotifications = AssociationGroupInfoCC\n\t\t\t\t\t.findGroupsForIssuedCommand(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t\tNotificationCommand.Report,\n\t\t\t\t\t);\n\t\t\t\treturn groupsIssueingNotifications.length > 0 ? \"push\" : \"pull\";\n\t\t\t} catch {\n\t\t\t\t// We might be dealing with an older cache file, fall back to testing\n\t\t\t}\n\t\t}\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `determining whether this node is pull or push...`,\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\t// Find a notification type with at least one supported event\n\t\tfor (const [type, events] of supportedNotificationEvents) {\n\t\t\tif (events.length === 0) continue;\n\t\t\t// Enable the event and request the status\n\t\t\tawait api.set(type, true);\n\t\t\ttry {\n\t\t\t\tconst resp = await api.get({\n\t\t\t\t\tnotificationType: type,\n\t\t\t\t\tnotificationEvent: events[0],\n\t\t\t\t});\n\t\t\t\tswitch (resp?.notificationStatus) {\n\t\t\t\t\tcase 0xff:\n\t\t\t\t\t\treturn \"push\";\n\t\t\t\t\tcase 0xfe:\n\t\t\t\t\tcase 0x00:\n\t\t\t\t\t\treturn \"pull\";\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t/* ignore */\n\t\t\t}\n\t\t}\n\n\t\t// If everything failed, e.g. because the node is V1/V2, assume this is a \"push\" node.\n\t\t// If we assumed \"pull\", we would have to query the node regularly, which can cause\n\t\t// the node to return old (already handled) notifications.\n\t\t// https://github.com/zwave-js/node-zwave-js/issues/5626\n\t\treturn \"push\";\n\t}\n\n\t/** Whether the node implements push or pull notifications */\n\tpublic static getNotificationMode(\n\t\tctx: GetValueDB,\n\t\tnode: NodeId,\n\t): MaybeNotKnown<\"push\" | \"pull\"> {\n\t\treturn ctx\n\t\t\t.getValueDB(node.id)\n\t\t\t.getValue(NotificationCCValues.notificationMode.id);\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.Notification,\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// If one Association group issues Notification Reports,\n\t\t// we must associate ourselves with that channel\n\t\ttry {\n\t\t\tawait ccUtils.assignLifelineIssueingCommand(\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t\tthis.ccId,\n\t\t\t\tNotificationCommand.Report,\n\t\t\t);\n\t\t} catch {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: endpoint.index,\n\t\t\t\tmessage: `Configuring associations to receive ${\n\t\t\t\t\tgetCCName(\n\t\t\t\t\t\tthis.ccId,\n\t\t\t\t\t)\n\t\t\t\t} reports failed!`,\n\t\t\t\tlevel: \"warn\",\n\t\t\t});\n\t\t}\n\n\t\tlet supportsV1Alarm = false;\n\t\tif (api.version >= 2) {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: \"querying supported notification types...\",\n\t\t\t\tdirection: \"outbound\",\n\t\t\t});\n\n\t\t\tconst suppResponse = await api.getSupported();\n\t\t\tif (!suppResponse) {\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage:\n\t\t\t\t\t\t\"Querying supported notification types timed out, skipping interview...\",\n\t\t\t\t\tlevel: \"warn\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsupportsV1Alarm = suppResponse.supportsV1Alarm;\n\t\t\tconst supportedNotificationTypes =\n\t\t\t\tsuppResponse.supportedNotificationTypes;\n\t\t\tconst supportedNotificationNames = supportedNotificationTypes.map(\n\t\t\t\tgetNotificationName,\n\t\t\t);\n\t\t\tconst supportedNotificationEvents = new Map<\n\t\t\t\tnumber,\n\t\t\t\treadonly number[]\n\t\t\t>();\n\n\t\t\tconst logMessage = `received supported notification types:${\n\t\t\t\tsupportedNotificationNames\n\t\t\t\t\t.map((name) => `\\n\u00B7 ${name}`)\n\t\t\t\t\t.join(\"\")\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\n\t\t\tif (api.version >= 3) {\n\t\t\t\t// Query each notification for its supported events\n\t\t\t\tfor (let i = 0; i < supportedNotificationTypes.length; i++) {\n\t\t\t\t\tconst type = supportedNotificationTypes[i];\n\t\t\t\t\tconst name = supportedNotificationNames[i];\n\n\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t`querying supported notification events for ${name}...`,\n\t\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t\t});\n\t\t\t\t\tconst supportedEvents = await api.getSupportedEvents(type);\n\t\t\t\t\tif (supportedEvents) {\n\t\t\t\t\t\tsupportedNotificationEvents.set(type, supportedEvents);\n\t\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t`received supported notification events for ${name}: ${\n\t\t\t\t\t\t\t\t\tsupportedEvents\n\t\t\t\t\t\t\t\t\t\t.map(String)\n\t\t\t\t\t\t\t\t\t\t.join(\", \")\n\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\tdirection: \"inbound\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Determine whether the node is a push or pull node\n\t\t\tlet notificationMode = this.getValue<\"push\" | \"pull\">(\n\t\t\t\tctx,\n\t\t\t\tNotificationCCValues.notificationMode,\n\t\t\t);\n\t\t\tif (notificationMode !== \"push\" && notificationMode !== \"pull\") {\n\t\t\t\tnotificationMode = await this.determineNotificationMode(\n\t\t\t\t\tctx,\n\t\t\t\t\tapi,\n\t\t\t\t\tsupportedNotificationEvents,\n\t\t\t\t);\n\t\t\t\tthis.setValue(\n\t\t\t\t\tctx,\n\t\t\t\t\tNotificationCCValues.notificationMode,\n\t\t\t\t\tnotificationMode,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (notificationMode === \"pull\") {\n\t\t\t\tawait this.refreshValues(ctx);\n\t\t\t} /* if (notificationMode === \"push\") */ else {\n\t\t\t\tfor (let i = 0; i < supportedNotificationTypes.length; i++) {\n\t\t\t\t\tconst type = supportedNotificationTypes[i];\n\t\t\t\t\tconst name = supportedNotificationNames[i];\n\t\t\t\t\tconst notification = getNotification(type);\n\n\t\t\t\t\t// Enable reports for each notification type\n\t\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\t\tmessage: `enabling notifications for ${name}...`,\n\t\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t\t});\n\t\t\t\t\tawait api.set(type, true);\n\n\t\t\t\t\t// Set the value to idle if possible and there is no value yet\n\t\t\t\t\tif (notification) {\n\t\t\t\t\t\tconst events = supportedNotificationEvents.get(type);\n\t\t\t\t\t\tif (events) {\n\t\t\t\t\t\t\t// Find all variables that are supported by this node and have an idle state\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\tconst variable of notification.variables\n\t\t\t\t\t\t\t\t\t.filter((v) => !!v.idle)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t[...variable.states.keys()].some((key) =>\n\t\t\t\t\t\t\t\t\t\tevents.includes(key)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tconst value = NotificationCCValues\n\t\t\t\t\t\t\t\t\t\t.notificationVariable(\n\t\t\t\t\t\t\t\t\t\t\tnotification.name,\n\t\t\t\t\t\t\t\t\t\t\tvariable.name,\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t// Set the value to idle if it has no value yet\n\t\t\t\t\t\t\t\t\t// TODO: GH#1028\n\t\t\t\t\t\t\t\t\t// * do this only if the last update was more than 5 minutes ago\n\t\t\t\t\t\t\t\t\t// * schedule an auto-idle if the last update was less than 5 minutes ago but before the current applHost start\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tthis.getValue(ctx, value)\n\t\t\t\t\t\t\t\t\t\t\t== undefined\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tthis.setValue(\n\t\t\t\t\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\t\t\t0, /* idle */\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Only create metadata for V1 values if necessary\n\t\tif (api.version === 1 || supportsV1Alarm) {\n\t\t\tthis.ensureMetadata(ctx, NotificationCCValues.alarmType);\n\t\t\tthis.ensureMetadata(ctx, NotificationCCValues.alarmLevel);\n\t\t}\n\n\t\t// Also create metadata for values mapped through compat config\n\t\tconst mappings = ctx.getDeviceConfig?.(this.nodeId as number)\n\t\t\t?.compat?.alarmMapping;\n\t\tif (mappings) {\n\t\t\t// Find all mappings to a valid notification variable\n\t\t\tconst supportedNotifications = new Map<number, Set<number>>();\n\t\t\tfor (const { to } of mappings) {\n\t\t\t\tconst notification = getNotification(to.notificationType);\n\t\t\t\tif (!notification) continue;\n\t\t\t\tconst valueConfig = getNotificationValue(\n\t\t\t\t\tnotification,\n\t\t\t\t\tto.notificationEvent,\n\t\t\t\t);\n\n\t\t\t\t// Remember supported notification types and events to create the internal values later\n\t\t\t\tif (!supportedNotifications.has(to.notificationType)) {\n\t\t\t\t\tsupportedNotifications.set(\n\t\t\t\t\t\tto.notificationType,\n\t\t\t\t\t\tnew Set(),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst supportedNotificationTypesSet = supportedNotifications\n\t\t\t\t\t.get(to.notificationType)!;\n\t\t\t\tsupportedNotificationTypesSet.add(to.notificationEvent);\n\n\t\t\t\tif (valueConfig?.type !== \"state\") continue;\n\n\t\t\t\tconst notificationValue = NotificationCCValues\n\t\t\t\t\t.notificationVariable(\n\t\t\t\t\t\tnotification.name,\n\t\t\t\t\t\tvalueConfig.variableName,\n\t\t\t\t\t);\n\n\t\t\t\t// Create or update the metadata\n\t\t\t\tconst metadata = getNotificationValueMetadata(\n\t\t\t\t\tthis.getMetadata(ctx, notificationValue),\n\t\t\t\t\tnotification,\n\t\t\t\t\tvalueConfig,\n\t\t\t\t);\n\t\t\t\tthis.setMetadata(ctx, notificationValue, metadata);\n\n\t\t\t\t// Set the value to idle if it has no value yet\n\t\t\t\tif (valueConfig.idle) {\n\t\t\t\t\t// TODO: GH#1028\n\t\t\t\t\t// * do this only if the last update was more than 5 minutes ago\n\t\t\t\t\t// * schedule an auto-idle if the last update was less than 5 minutes ago but before the current applHost start\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.getValue(ctx, notificationValue) == undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.setValue(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\tnotificationValue,\n\t\t\t\t\t\t\t0, /* idle */\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remember supported notification types and events in the cache\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tNotificationCCValues.supportedNotificationTypes,\n\t\t\t\t[...supportedNotifications.keys()],\n\t\t\t);\n\t\t\tfor (const [type, events] of supportedNotifications) {\n\t\t\t\tthis.setValue(\n\t\t\t\t\tctx,\n\t\t\t\t\tNotificationCCValues.supportedNotificationEvents(type),\n\t\t\t\t\t[...events],\n\t\t\t\t);\n\t\t\t}\n\t\t}\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\t// Refreshing values only works on pull nodes\n\t\tif (NotificationCC.getNotificationMode(ctx, node) === \"pull\") {\n\t\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\t\tconst api = CCAPI.create(\n\t\t\t\tCommandClasses.Notification,\n\t\t\t\tctx,\n\t\t\t\tendpoint,\n\t\t\t).withOptions({\n\t\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t\t});\n\n\t\t\t// Load supported notification types and events from cache\n\t\t\tconst supportedNotificationTypes = this.getValue<readonly number[]>(\n\t\t\t\tctx,\n\t\t\t\tNotificationCCValues.supportedNotificationTypes,\n\t\t\t) ?? [];\n\t\t\tconst supportedNotificationNames = supportedNotificationTypes.map(\n\t\t\t\tgetNotificationName,\n\t\t\t);\n\n\t\t\tfor (let i = 0; i < supportedNotificationTypes.length; i++) {\n\t\t\t\tconst type = supportedNotificationTypes[i];\n\t\t\t\tconst name = supportedNotificationNames[i];\n\n\t\t\t\t// Always query each notification for its current status\n\t\t\t\tctx.logNode(node.id, {\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t\tmessage: `querying notification status for ${name}...`,\n\t\t\t\t\tdirection: \"outbound\",\n\t\t\t\t});\n\t\t\t\tconst response = await api.getInternal({\n\t\t\t\t\tnotificationType: type,\n\t\t\t\t});\n\t\t\t\t// NotificationReports don't store their values themselves,\n\t\t\t\t// because the behaviour is too complex and spans the lifetime\n\t\t\t\t// of several reports. Thus we handle it in the Node instance\n\n\t\t\t\t// @ts-expect-error\n\t\t\t\tif (response) await node.handleCommand(response);\n\t\t\t}\n\n\t\t\t// Remember when we did this\n\t\t\tthis.setValue(\n\t\t\t\tctx,\n\t\t\t\tNotificationCCValues.lastRefresh,\n\t\t\t\tDate.now(),\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic shouldRefreshValues(\n\t\tthis: SinglecastCC<this>,\n\t\tctx:\n\t\t\t& GetValueDB\n\t\t\t& GetSupportedCCVersion\n\t\t\t& GetDeviceConfig\n\t\t\t& GetNode<\n\t\t\t\tNodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>\n\t\t\t>,\n\t): boolean {\n\t\t// Pull-mode nodes must be polled regularly\n\n\t\tconst isPullMode = NotificationCC.getNotificationMode(\n\t\t\tctx,\n\t\t\tthis.getNode(ctx)!,\n\t\t) === \"pull\";\n\t\tif (!isPullMode) return false;\n\n\t\tconst lastUpdated = this.getValue<number>(\n\t\t\tctx,\n\t\t\tNotificationCCValues.lastRefresh,\n\t\t);\n\n\t\treturn (\n\t\t\tlastUpdated == undefined\n\t\t\t|| Date.now() - lastUpdated > timespan.hours(6)\n\t\t);\n\t}\n}\n\n// @publicAPI\nexport interface NotificationCCSetOptions {\n\tnotificationType: number;\n\tnotificationStatus: boolean;\n}\n\n@CCCommand(NotificationCommand.Set)\n@useSupervision()\nexport class NotificationCCSet extends NotificationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<NotificationCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.notificationType = options.notificationType;\n\t\tthis.notificationStatus = options.notificationStatus;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): NotificationCCSet {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst notificationType = raw.payload[0];\n\t\tconst notificationStatus = raw.payload[1] === 0xff;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnotificationType,\n\t\t\tnotificationStatus,\n\t\t});\n\t}\n\n\tpublic notificationType: number;\n\tpublic notificationStatus: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.notificationType,\n\t\t\tthis.notificationStatus ? 0xff : 0x00,\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\"notification type\": getNotificationName(this.notificationType),\n\t\t\t\tstatus: this.notificationStatus,\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport type NotificationCCReportOptions = {\n\talarmType?: number;\n\talarmLevel?: number;\n\tnotificationType?: number;\n\tnotificationEvent?: number;\n\tnotificationStatus?: number;\n\teventParameters?: Uint8Array;\n\tsequenceNumber?: number;\n};\n\n@CCCommand(NotificationCommand.Report)\n@useSupervision()\nexport class NotificationCCReport extends NotificationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<NotificationCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tif (options.alarmType != undefined) {\n\t\t\tthis.alarmType = options.alarmType;\n\t\t\tthis.alarmLevel = options.alarmLevel;\n\t\t}\n\n\t\tif (options.notificationType != undefined) {\n\t\t\tthis.notificationType = options.notificationType;\n\t\t\tthis.notificationStatus = options.notificationStatus ?? true;\n\t\t\tthis.notificationEvent = options.notificationEvent;\n\t\t\tthis.eventParameters = options.eventParameters;\n\t\t\tthis.sequenceNumber = options.sequenceNumber;\n\t\t}\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): NotificationCCReport {\n\t\tvalidatePayload(raw.payload.length >= 2);\n\t\tconst alarmType = raw.payload[0];\n\t\tconst alarmLevel = raw.payload[1];\n\n\t\t// Byte 2 used to be zensorNetSourceNodeId in V2 and V3, but we don't care about that\n\n\t\tif (raw.payload.length < 7) {\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\talarmType,\n\t\t\t\talarmLevel,\n\t\t\t});\n\t\t}\n\n\t\t// V2+ requires the alarm bytes to be zero. Manufacturers don't care though, so we don't enforce that.\n\t\t// Don't use the version to decide because we might discard notifications\n\t\t// before the interview is complete\n\n\t\tconst notificationStatus = raw.payload[3];\n\t\tconst notificationType = raw.payload[4];\n\t\tconst notificationEvent = raw.payload[5];\n\n\t\tconst containsSeqNum = !!(raw.payload[6] & 0b1000_0000);\n\t\tconst numEventParams = raw.payload[6] & 0b11111;\n\t\tlet eventParameters: Uint8Array | undefined;\n\t\tif (numEventParams > 0) {\n\t\t\tvalidatePayload(raw.payload.length >= 7 + numEventParams);\n\t\t\teventParameters = raw.payload.subarray(7, 7 + numEventParams);\n\t\t}\n\t\tlet sequenceNumber: number | undefined;\n\t\tif (containsSeqNum) {\n\t\t\tvalidatePayload(\n\t\t\t\traw.payload.length >= 7 + numEventParams + 1,\n\t\t\t);\n\t\t\tsequenceNumber = raw.payload[7 + numEventParams];\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\talarmType,\n\t\t\talarmLevel,\n\t\t\tnotificationStatus,\n\t\t\tnotificationType,\n\t\t\tnotificationEvent,\n\t\t\teventParameters,\n\t\t\tsequenceNumber,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\tconst ccVersion = getEffectiveCCVersion(ctx, this);\n\n\t\t// Check if we need to re-interpret the alarm values somehow\n\t\tif (\n\t\t\tthis.alarmType != undefined\n\t\t\t&& this.alarmLevel != undefined\n\t\t\t&& this.alarmType !== 0\n\t\t) {\n\t\t\tif (ccVersion >= 2) {\n\t\t\t\t// Check if the device actually supports Notification CC, but chooses\n\t\t\t\t// to send Alarm frames instead (GH#1034)\n\t\t\t\tconst supportedNotificationTypes = this.getValue<\n\t\t\t\t\treadonly number[]\n\t\t\t\t>(ctx, NotificationCCValues.supportedNotificationTypes);\n\t\t\t\tif (\n\t\t\t\t\tisArray(supportedNotificationTypes)\n\t\t\t\t\t&& supportedNotificationTypes.includes(this.alarmType)\n\t\t\t\t) {\n\t\t\t\t\tconst supportedNotificationEvents = this.getValue<\n\t\t\t\t\t\treadonly number[]\n\t\t\t\t\t>(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tNotificationCCValues.supportedNotificationEvents(\n\t\t\t\t\t\t\tthis.alarmType,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tisArray(supportedNotificationEvents)\n\t\t\t\t\t\t&& supportedNotificationEvents.includes(this.alarmLevel)\n\t\t\t\t\t) {\n\t\t\t\t\t\t// This alarm frame corresponds to a valid notification event\n\t\t\t\t\t\tctx.logNode(\n\t\t\t\t\t\t\tthis.nodeId as number,\n\t\t\t\t\t\t\t`treating V1 Alarm frame as Notification Report`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.notificationType = this.alarmType;\n\t\t\t\t\t\tthis.notificationEvent = this.alarmLevel;\n\t\t\t\t\t\tthis.alarmType = undefined;\n\t\t\t\t\t\tthis.alarmLevel = undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// V1 Alarm, check if there is a compat option to map this V1 report to a V2+ report\n\t\t\t\tconst mapping = ctx.getDeviceConfig?.(\n\t\t\t\t\tthis.nodeId as number,\n\t\t\t\t)?.compat?.alarmMapping;\n\t\t\t\tconst match = mapping?.find(\n\t\t\t\t\t(m) =>\n\t\t\t\t\t\tm.from.alarmType === this.alarmType\n\t\t\t\t\t\t&& (m.from.alarmLevel == undefined\n\t\t\t\t\t\t\t|| m.from.alarmLevel === this.alarmLevel),\n\t\t\t\t);\n\t\t\t\tif (match) {\n\t\t\t\t\tctx.logNode(\n\t\t\t\t\t\tthis.nodeId as number,\n\t\t\t\t\t\t`compat mapping found, treating V1 Alarm frame as Notification Report`,\n\t\t\t\t\t);\n\t\t\t\t\tthis.notificationType = match.to.notificationType;\n\t\t\t\t\tthis.notificationEvent = match.to.notificationEvent;\n\t\t\t\t\tif (match.to.eventParameters) {\n\t\t\t\t\t\tthis.eventParameters = {};\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tconst [key, val] of Object.entries(\n\t\t\t\t\t\t\t\tmatch.to.eventParameters,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (typeof val === \"number\") {\n\t\t\t\t\t\t\t\tthis.eventParameters[key] = val;\n\t\t\t\t\t\t\t} else if (val === \"alarmLevel\") {\n\t\t\t\t\t\t\t\tthis.eventParameters[key] = this.alarmLevel;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// After mapping we do not set the legacy V1 values to undefined\n\t\t\t\t\t// Otherwise, adding a new mapping will be a breaking change\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Now we can interpret the event parameters and turn them into something useful\n\t\tthis.parseEventParameters(ctx);\n\n\t\tif (this.alarmType != undefined) {\n\t\t\tconst alarmTypeValue = NotificationCCValues.alarmType;\n\t\t\tthis.ensureMetadata(ctx, alarmTypeValue);\n\t\t\tthis.setValue(ctx, alarmTypeValue, this.alarmType);\n\t\t}\n\t\tif (this.alarmLevel != undefined) {\n\t\t\tconst alarmLevelValue = NotificationCCValues.alarmLevel;\n\t\t\tthis.ensureMetadata(ctx, alarmLevelValue);\n\t\t\tthis.setValue(ctx, alarmLevelValue, this.alarmLevel);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic alarmType: number | undefined;\n\tpublic alarmLevel: number | undefined;\n\n\tpublic notificationType: number | undefined;\n\tpublic notificationStatus: boolean | number | undefined;\n\tpublic notificationEvent: number | undefined;\n\n\tpublic eventParameters:\n\t\t| Uint8Array\n\t\t| Duration\n\t\t| Record<string, number>\n\t\t| number\n\t\t| undefined;\n\n\tpublic sequenceNumber: number | undefined;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tlet message: MessageRecord = {};\n\t\tif (this.alarmType) {\n\t\t\tmessage = {\n\t\t\t\t\"V1 alarm type\": this.alarmType,\n\t\t\t\t\"V1 alarm level\": this.alarmLevel!,\n\t\t\t};\n\t\t}\n\n\t\tlet valueConfig: NotificationValue | undefined;\n\t\tif (this.notificationType) {\n\t\t\tconst notification = getNotification(this.notificationType);\n\t\t\tif (notification) {\n\t\t\t\tvalueConfig = getNotificationValue(\n\t\t\t\t\tnotification,\n\t\t\t\t\tthis.notificationEvent!,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (valueConfig) {\n\t\t\t\tmessage = {\n\t\t\t\t\t...message,\n\t\t\t\t\t\"notification type\": getNotificationName(\n\t\t\t\t\t\tthis.notificationType,\n\t\t\t\t\t),\n\t\t\t\t\t\"notification status\": this.notificationStatus!,\n\t\t\t\t\t[`notification ${valueConfig.type}`]: valueConfig.label\n\t\t\t\t\t\t?? `Unknown (${num2hex(this.notificationEvent)})`,\n\t\t\t\t};\n\t\t\t} else if (this.notificationEvent === 0x00) {\n\t\t\t\tmessage = {\n\t\t\t\t\t...message,\n\t\t\t\t\t\"notification type\": this.notificationType,\n\t\t\t\t\t\"notification status\": this.notificationStatus!,\n\t\t\t\t\t\"notification state\": \"idle\",\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tmessage = {\n\t\t\t\t\t...message,\n\t\t\t\t\t\"notification type\": this.notificationType,\n\t\t\t\t\t\"notification status\": this.notificationStatus!,\n\t\t\t\t\t\"notification event\": num2hex(this.notificationEvent),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tif (this.sequenceNumber != undefined) {\n\t\t\tmessage[\"sequence number\"] = this.sequenceNumber;\n\t\t}\n\t\tif (this.eventParameters != undefined) {\n\t\t\tif (typeof this.eventParameters === \"number\") {\n\t\t\t\t// Try to look up the enum label\n\t\t\t\tlet found = false;\n\t\t\t\tif (\n\t\t\t\t\tvalueConfig?.parameter?.type === \"enum\"\n\t\t\t\t) {\n\t\t\t\t\tconst label =\n\t\t\t\t\t\tvalueConfig.parameter.values[this.eventParameters];\n\t\t\t\t\tif (label) {\n\t\t\t\t\t\tmessage[\"state parameters\"] = label;\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!found) {\n\t\t\t\t\tmessage[\"state parameters\"] = num2hex(this.eventParameters);\n\t\t\t\t}\n\t\t\t} else if (isUint8Array(this.eventParameters)) {\n\t\t\t\tmessage[\"event parameters\"] = buffer2hex(this.eventParameters);\n\t\t\t} else if (Duration.isDuration(this.eventParameters)) {\n\t\t\t\tmessage[\"event parameters\"] = this.eventParameters.toString();\n\t\t\t} else {\n\t\t\t\tmessage[\"event parameters\"] = Object.entries(\n\t\t\t\t\tthis.eventParameters,\n\t\t\t\t)\n\t\t\t\t\t.map(([param, val]) => `\\n ${param}: ${num2hex(val)}`)\n\t\t\t\t\t.join(\"\");\n\t\t\t}\n\t\t} else if (\n\t\t\tvalueConfig?.parameter?.type === \"enum\"\n\t\t\t&& valueConfig.parameter.default != undefined\n\t\t) {\n\t\t\tconst label = valueConfig.parameter.values[\n\t\t\t\tvalueConfig.parameter.default\n\t\t\t];\n\t\t\tif (label) {\n\t\t\t\tmessage[\"state parameters\"] = `${label} (omitted)`;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n\n\tprivate parseEventParameters(ctx: PersistValuesContext): void {\n\t\t// This only makes sense for V2+ notifications\n\t\tif (\n\t\t\tthis.notificationType == undefined\n\t\t\t|| this.notificationEvent == undefined\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Look up the received notification and value in the config\n\t\tconst notification = getNotification(this.notificationType);\n\t\tif (!notification) return;\n\t\tconst valueConfig = getNotificationValue(\n\t\t\tnotification,\n\t\t\tthis.notificationEvent,\n\t\t);\n\t\tif (!valueConfig) return;\n\n\t\t// Parse the event parameters if possible\n\t\tif (valueConfig.parameter?.type === \"duration\") {\n\t\t\t// This only makes sense if the event parameters are a buffer\n\t\t\tif (!isUint8Array(this.eventParameters)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// The parameters contain a Duration\n\t\t\tthis.eventParameters = Duration.parseReport(\n\t\t\t\tthis.eventParameters[0],\n\t\t\t);\n\t\t} else if (valueConfig.parameter?.type === \"commandclass\") {\n\t\t\t// This only makes sense if the event parameters are a buffer\n\t\t\tif (!isUint8Array(this.eventParameters)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// The parameters **should** contain a CC, however there might be some exceptions\n\t\t\tif (\n\t\t\t\tthis.eventParameters.length === 1\n\t\t\t\t&& notification.type === 0x06\n\t\t\t\t&& (this.notificationEvent === 0x05\n\t\t\t\t\t|| this.notificationEvent === 0x06)\n\t\t\t) {\n\t\t\t\t// Access control -> Keypad Lock/Unlock operation\n\t\t\t\t// Some devices only send the User ID, not a complete CC payload\n\t\t\t\tthis.eventParameters = {\n\t\t\t\t\tuserId: this.eventParameters[0],\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Try to parse the event parameters - if this fails, we should still handle the notification report\n\t\t\t\ttry {\n\t\t\t\t\t// Convert CommandClass instances to a standardized object representation\n\t\t\t\t\t// FIXME: We do not really want to parse asynchronously here. Once parseAsync becomes the standard,\n\t\t\t\t\t// we should add sync methods to only those CCs that will be parsed here - or make the entire call chain async.\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\t\t\t\tconst cc = CommandClass.parse(this.eventParameters, {\n\t\t\t\t\t\t...ctx,\n\t\t\t\t\t\tframeType: \"singlecast\",\n\t\t\t\t\t\tsourceNodeId: this.nodeId as number,\n\t\t\t\t\t\t// Security encapsulation is handled outside of this CC,\n\t\t\t\t\t\t// so it is not needed here:\n\t\t\t\t\t\thasSecurityClass: () => false,\n\t\t\t\t\t\tgetHighestSecurityClass: () => SecurityClass.None,\n\t\t\t\t\t\tsetSecurityClass: () => {},\n\t\t\t\t\t\tsecurityManager: undefined,\n\t\t\t\t\t\tsecurityManager2: undefined,\n\t\t\t\t\t\tsecurityManagerLR: undefined,\n\t\t\t\t\t});\n\t\t\t\t\tvalidatePayload(!(cc instanceof InvalidCC));\n\t\t\t\t\tcc.encapsulatingCC = this as any;\n\n\t\t\t\t\tif (isNotificationEventPayload(cc)) {\n\t\t\t\t\t\tthis.eventParameters = cc\n\t\t\t\t\t\t\t.toNotificationEventParameters();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If a CC has no good toJSON() representation, we're only interested in the payload\n\t\t\t\t\t\tlet json = cc.toJSON();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\"nodeId\" in json\n\t\t\t\t\t\t\t&& \"ccId\" in json\n\t\t\t\t\t\t\t&& \"payload\" in json\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tjson = pick(json, [\"payload\"]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.eventParameters = json;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tisZWaveError(e)\n\t\t\t\t\t\t&& e.code\n\t\t\t\t\t\t\t=== ZWaveErrorCodes.PacketFormat_InvalidPayload\n\t\t\t\t\t\t&& isUint8Array(this.eventParameters)\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst { ccId, ccCommand } = CCRaw.parse(\n\t\t\t\t\t\t\tthis.eventParameters,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tccId === CommandClasses[\"User Code\"]\n\t\t\t\t\t\t\t&& ccCommand === UserCodeCommand.Report\n\t\t\t\t\t\t\t&& this.eventParameters.length >= 3\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Access control -> Keypad Lock/Unlock operation\n\t\t\t\t\t\t\t// Some devices report the user code with truncated UserCode reports\n\t\t\t\t\t\t\tthis.eventParameters = {\n\t\t\t\t\t\t\t\tuserId: this.eventParameters[2],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tctx.logNode(\n\t\t\t\t\t\t\t\tthis.nodeId as number,\n\t\t\t\t\t\t\t\t`Failed to parse Notification CC event parameters, ignoring them...`,\n\t\t\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// unexpected error\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (valueConfig.parameter?.type === \"value\") {\n\t\t\t// This only makes sense if the event parameters are a buffer\n\t\t\tif (!isUint8Array(this.eventParameters)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// The parameters contain a named value\n\t\t\tthis.eventParameters = {\n\t\t\t\t[valueConfig.parameter.propertyName]: Bytes.view(\n\t\t\t\t\tthis.eventParameters,\n\t\t\t\t)\n\t\t\t\t\t.readUIntBE(\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tthis.eventParameters.length,\n\t\t\t\t\t),\n\t\t\t};\n\t\t} else if (valueConfig.parameter?.type === \"enum\") {\n\t\t\t// The parameters may contain an enum value\n\t\t\tthis.eventParameters = isUint8Array(this.eventParameters)\n\t\t\t\t\t&& this.eventParameters.length === 1\n\t\t\t\t? this.eventParameters[0]\n\t\t\t\t: undefined;\n\n\t\t\t// Some devices send notifications without an event parameter when they should.\n\t\t\t// In this case, fall back to the default value where possible.\n\n\t\t\tif (\n\t\t\t\tthis.eventParameters == undefined\n\t\t\t\t&& valueConfig.parameter.default != undefined\n\t\t\t) {\n\t\t\t\tthis.eventParameters = valueConfig.parameter.default;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tif (this.notificationType != undefined) {\n\t\t\tif (\n\t\t\t\tthis.notificationEvent == undefined\n\t\t\t) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`Notification CC reports requires the notification event to be set!`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\tthis.eventParameters != undefined\n\t\t\t\t&& !isUint8Array(this.eventParameters)\n\t\t\t) {\n\t\t\t\tthrow new ZWaveError(\n\t\t\t\t\t`When sending Notification CC reports, the event parameters can only be buffers!`,\n\t\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst controlByte =\n\t\t\t\t(this.sequenceNumber != undefined ? 0b1000_0000 : 0)\n\t\t\t\t| ((this.eventParameters?.length ?? 0) & 0b11111);\n\t\t\tthis.payload = Bytes.from([\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t0xff,\n\t\t\t\tthis.notificationType,\n\t\t\t\tthis.notificationEvent,\n\t\t\t\tcontrolByte,\n\t\t\t]);\n\t\t\tif (this.eventParameters) {\n\t\t\t\tthis.payload = Bytes.concat([\n\t\t\t\t\tthis.payload,\n\t\t\t\t\tthis.eventParameters,\n\t\t\t\t]);\n\t\t\t}\n\t\t\tif (this.sequenceNumber != undefined) {\n\t\t\t\tthis.payload = Bytes.concat([\n\t\t\t\t\tthis.payload,\n\t\t\t\t\tBytes.from([this.sequenceNumber]),\n\t\t\t\t]);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.payload = Bytes.from([\n\t\t\t\tthis.alarmType ?? 0x00,\n\t\t\t\tthis.alarmLevel ?? 0x00,\n\t\t\t]);\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\treturn super.serialize(ctx);\n\t}\n}\n\n// @publicAPI\nexport type NotificationCCGetOptions =\n\t| {\n\t\talarmType: number;\n\t}\n\t| {\n\t\tnotificationType: number;\n\t\tnotificationEvent?: number;\n\t};\n\n@CCCommand(NotificationCommand.Get)\n@expectedCCResponse(NotificationCCReport)\nexport class NotificationCCGet extends NotificationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<NotificationCCGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tif (\"alarmType\" in options) {\n\t\t\tthis.alarmType = options.alarmType;\n\t\t} else {\n\t\t\tthis.notificationType = options.notificationType;\n\t\t\tthis.notificationEvent = options.notificationEvent;\n\t\t}\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): NotificationCCGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\n\t\tif (raw.payload.length >= 2) {\n\t\t\tconst notificationType = raw.payload[1];\n\t\t\tlet notificationEvent: number | undefined;\n\t\t\tif (raw.payload.length >= 3 && notificationType != 0xff) {\n\t\t\t\tnotificationEvent = raw.payload[2];\n\t\t\t}\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tnotificationType,\n\t\t\t\tnotificationEvent,\n\t\t\t});\n\t\t} else {\n\t\t\tconst alarmType = raw.payload[0];\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\talarmType,\n\t\t\t});\n\t\t}\n\t}\n\n\t/** Proprietary V1/V2 alarm type */\n\tpublic alarmType: number | undefined;\n\t/** Regulated V3+ notification type */\n\tpublic notificationType: number | undefined;\n\tpublic notificationEvent: number | undefined;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst notificationEvent = this.notificationEvent === 0xff\n\t\t\t? 0x00\n\t\t\t: this.notificationEvent;\n\t\tthis.payload = Bytes.from([\n\t\t\tthis.alarmType ?? 0x00,\n\t\t\tthis.notificationType ?? 0xff,\n\t\t\tnotificationEvent ?? 0x00,\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\tif (this.alarmType != undefined) {\n\t\t\tmessage[\"V1 alarm type\"] = this.alarmType;\n\t\t}\n\t\tif (this.notificationType != undefined) {\n\t\t\tmessage[\"notification type\"] = getNotificationName(\n\t\t\t\tthis.notificationType,\n\t\t\t);\n\t\t\tif (this.notificationEvent != undefined) {\n\t\t\t\tmessage[\"notification event\"] = getNotificationEventName(\n\t\t\t\t\tthis.notificationType,\n\t\t\t\t\tthis.notificationEvent,\n\t\t\t\t);\n\t\t\t}\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 NotificationCCSupportedReportOptions {\n\tsupportsV1Alarm: boolean;\n\tsupportedNotificationTypes: number[];\n}\n\n@CCCommand(NotificationCommand.SupportedReport)\n@ccValueProperty(\"supportsV1Alarm\", NotificationCCValues.supportsV1Alarm)\n@ccValueProperty(\n\t\"supportedNotificationTypes\",\n\tNotificationCCValues.supportedNotificationTypes,\n)\nexport class NotificationCCSupportedReport extends NotificationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<NotificationCCSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.supportsV1Alarm = options.supportsV1Alarm;\n\t\tthis.supportedNotificationTypes = options.supportedNotificationTypes;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): NotificationCCSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst supportsV1Alarm = !!(raw.payload[0] & 0b1000_0000);\n\t\tconst numBitMaskBytes = raw.payload[0] & 0b0001_1111;\n\t\tvalidatePayload(\n\t\t\tnumBitMaskBytes > 0,\n\t\t\traw.payload.length >= 1 + numBitMaskBytes,\n\t\t);\n\t\tconst notificationBitMask = raw.payload.subarray(\n\t\t\t1,\n\t\t\t1 + numBitMaskBytes,\n\t\t);\n\t\tconst supportedNotificationTypes = parseBitMask(\n\t\t\tnotificationBitMask,\n\t\t\t// bit 0 is ignored, but counting still starts at 1, so the first bit must have the value 0\n\t\t\t0,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tsupportsV1Alarm,\n\t\t\tsupportedNotificationTypes,\n\t\t});\n\t}\n\n\tpublic supportsV1Alarm: boolean;\n\n\tpublic supportedNotificationTypes: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tconst bitMask = encodeBitMask(\n\t\t\tthis.supportedNotificationTypes,\n\t\t\tMath.max(...this.supportedNotificationTypes),\n\t\t\t0,\n\t\t);\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t(this.supportsV1Alarm ? 0b1000_0000 : 0) | bitMask.length,\n\t\t\t]),\n\t\t\tbitMask,\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\"supports V1 alarm\": this.supportsV1Alarm,\n\t\t\t\t\"supported notification types\": this.supportedNotificationTypes\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(t) => `\\n\u00B7 ${getNotificationName(t)}`,\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n@CCCommand(NotificationCommand.SupportedGet)\n@expectedCCResponse(NotificationCCSupportedReport)\nexport class NotificationCCSupportedGet extends NotificationCC {}\n\n// @publicAPI\nexport interface NotificationCCEventSupportedReportOptions {\n\tnotificationType: number;\n\tsupportedEvents: number[];\n}\n\n@CCCommand(NotificationCommand.EventSupportedReport)\nexport class NotificationCCEventSupportedReport extends NotificationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<NotificationCCEventSupportedReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.notificationType = options.notificationType;\n\t\tthis.supportedEvents = options.supportedEvents;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): NotificationCCEventSupportedReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst notificationType = raw.payload[0];\n\t\tconst numBitMaskBytes = raw.payload[1] & 0b000_11111;\n\n\t\tif (numBitMaskBytes === 0) {\n\t\t\t// Notification type is not supported\n\t\t\treturn new this({\n\t\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\t\tnotificationType,\n\t\t\t\tsupportedEvents: [],\n\t\t\t});\n\t\t}\n\n\t\tvalidatePayload(raw.payload.length >= 2 + numBitMaskBytes);\n\t\tconst eventBitMask = raw.payload.subarray(2, 2 + numBitMaskBytes);\n\t\tconst supportedEvents = parseBitMask(\n\t\t\teventBitMask,\n\t\t\t// In this mask, bit 0 is ignored, but counting still starts at 1, so the first bit must have the value 0\n\t\t\t0,\n\t\t);\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnotificationType,\n\t\t\tsupportedEvents,\n\t\t});\n\t}\n\n\tpublic persistValues(ctx: PersistValuesContext): boolean {\n\t\tif (!super.persistValues(ctx)) return false;\n\n\t\t// Store which events this notification supports\n\t\tthis.setValue(\n\t\t\tctx,\n\t\t\tNotificationCCValues.supportedNotificationEvents(\n\t\t\t\tthis.notificationType,\n\t\t\t),\n\t\t\tthis.supportedEvents,\n\t\t);\n\n\t\t// For each event, predefine the value metadata\n\t\tconst notification = getNotification(this.notificationType);\n\n\t\tif (!notification) {\n\t\t\t// This is an unknown notification\n\t\t\tthis.setMetadata(\n\t\t\t\tctx,\n\t\t\t\tNotificationCCValues.unknownNotificationType(\n\t\t\t\t\tthis.notificationType,\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\t// This is a standardized notification\n\t\t\tlet isFirst = true;\n\t\t\tfor (const value of this.supportedEvents) {\n\t\t\t\t// Find out which property we need to update\n\t\t\t\tconst valueConfig = getNotificationValue(notification, value);\n\t\t\t\tif (valueConfig?.type === \"state\") {\n\t\t\t\t\tconst notificationValue = NotificationCCValues\n\t\t\t\t\t\t.notificationVariable(\n\t\t\t\t\t\t\tnotification.name,\n\t\t\t\t\t\t\tvalueConfig.variableName,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t// After we've created the metadata initially, extend it\n\t\t\t\t\tconst metadata = getNotificationValueMetadata(\n\t\t\t\t\t\tisFirst\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: this.getMetadata(ctx, notificationValue),\n\t\t\t\t\t\tnotification,\n\t\t\t\t\t\tvalueConfig,\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.setMetadata(ctx, notificationValue, metadata);\n\n\t\t\t\t\tisFirst = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic notificationType: number;\n\tpublic supportedEvents: number[];\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.notificationType, 0]);\n\t\tif (this.supportedEvents.length > 0) {\n\t\t\tconst bitMask = encodeBitMask(\n\t\t\t\tthis.supportedEvents,\n\t\t\t\tMath.max(...this.supportedEvents),\n\t\t\t\t0,\n\t\t\t);\n\t\t\tthis.payload[1] = bitMask.length;\n\t\t\tthis.payload = Bytes.concat([this.payload, bitMask]);\n\t\t}\n\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\"notification type\": getNotificationName(this.notificationType),\n\t\t\t\t\"supported events\": this.supportedEvents\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(e) =>\n\t\t\t\t\t\t\t`\\n\u00B7 ${\n\t\t\t\t\t\t\t\tgetNotificationValueName(\n\t\t\t\t\t\t\t\t\tthis.notificationType,\n\t\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}`,\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\"),\n\t\t\t},\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface NotificationCCEventSupportedGetOptions {\n\tnotificationType: number;\n}\n\n@CCCommand(NotificationCommand.EventSupportedGet)\n@expectedCCResponse(NotificationCCEventSupportedReport)\nexport class NotificationCCEventSupportedGet extends NotificationCC {\n\tpublic constructor(\n\t\toptions: WithAddress<NotificationCCEventSupportedGetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.notificationType = options.notificationType;\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): NotificationCCEventSupportedGet {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst notificationType = raw.payload[0];\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tnotificationType,\n\t\t});\n\t}\n\n\tpublic notificationType: number;\n\n\tpublic serialize(ctx: CCEncodingContext): Bytes {\n\t\tthis.payload = Bytes.from([this.notificationType]);\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\"notification type\": getNotificationName(this.notificationType),\n\t\t\t},\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["import_safe", "NotificationCC"]
7
7
  }
@@ -0,0 +1,5 @@
1
+ export declare function validateArgs_PowerlevelCCAPI_setCustomPowerlevel(options?: any): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
2
+ export declare function validateArgs_PowerlevelCCAPI_reportPowerlevel(options?: any): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
3
+ export declare function validateArgs_PowerlevelCCAPI_startNodeTest(options?: any): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
4
+ export declare function validateArgs_PowerlevelCCAPI_sendNodeTestReport(options?: any): <T extends Function>(__decoratedMethod: T, { kind }: ClassMethodDecoratorContext) => T | void;
5
+ //# sourceMappingURL=PowerlevelCC._validateArgs.d.ts.map