@zwave-js/cc 14.0.0-beta.1 → 14.0.0-beta.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 (922) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +194 -0
  2. package/build/cjs/cc/AlarmSensorCC.js +395 -0
  3. package/build/cjs/cc/AlarmSensorCC.js.map +7 -0
  4. package/build/cjs/cc/AssociationCC.d.ts +253 -0
  5. package/build/cjs/cc/AssociationCC.js +711 -0
  6. package/build/cjs/cc/AssociationCC.js.map +7 -0
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +230 -0
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +746 -0
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +7 -0
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +243 -0
  11. package/build/cjs/cc/BarrierOperatorCC.js +582 -0
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +7 -0
  13. package/build/cjs/cc/BasicCC.d.ts +191 -0
  14. package/build/cjs/cc/BasicCC.js +384 -0
  15. package/build/cjs/cc/BasicCC.js.map +7 -0
  16. package/build/cjs/cc/BatteryCC.d.ts +406 -0
  17. package/build/cjs/cc/BatteryCC.js +508 -0
  18. package/build/cjs/cc/BatteryCC.js.map +7 -0
  19. package/build/cjs/cc/BinarySensorCC.d.ts +122 -0
  20. package/build/cjs/cc/BinarySensorCC.js +431 -0
  21. package/build/cjs/cc/BinarySensorCC.js.map +7 -0
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +139 -0
  23. package/build/cjs/cc/BinarySwitchCC.js +378 -0
  24. package/build/cjs/cc/BinarySwitchCC.js.map +7 -0
  25. package/build/cjs/cc/CRC16CC.d.ts +29 -0
  26. package/build/cjs/cc/CRC16CC.js +133 -0
  27. package/build/cjs/cc/CRC16CC.js.map +7 -0
  28. package/build/cjs/cc/CentralSceneCC.d.ts +210 -0
  29. package/build/cjs/cc/CentralSceneCC.js +449 -0
  30. package/build/cjs/cc/CentralSceneCC.js.map +7 -0
  31. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +177 -0
  32. package/build/cjs/cc/ClimateControlScheduleCC.js +480 -0
  33. package/build/cjs/cc/ClimateControlScheduleCC.js.map +7 -0
  34. package/build/cjs/cc/ClockCC.d.ts +47 -0
  35. package/build/cjs/cc/ClockCC.js +226 -0
  36. package/build/cjs/cc/ClockCC.js.map +7 -0
  37. package/build/cjs/cc/ColorSwitchCC.d.ts +339 -0
  38. package/build/cjs/cc/ColorSwitchCC.js +1117 -0
  39. package/build/cjs/cc/ColorSwitchCC.js.map +7 -0
  40. package/build/cjs/cc/ConfigurationCC.d.ts +396 -0
  41. package/build/cjs/cc/ConfigurationCC.js +2230 -0
  42. package/build/cjs/cc/ConfigurationCC.js.map +7 -0
  43. package/build/cjs/cc/DeviceResetLocallyCC.d.ts +17 -0
  44. package/build/cjs/cc/DeviceResetLocallyCC.js +92 -0
  45. package/build/cjs/cc/DeviceResetLocallyCC.js.map +7 -0
  46. package/build/cjs/cc/DoorLockCC.d.ts +837 -0
  47. package/build/cjs/cc/DoorLockCC.js +1239 -0
  48. package/build/cjs/cc/DoorLockCC.js.map +7 -0
  49. package/build/cjs/cc/DoorLockLoggingCC.d.ts +77 -0
  50. package/build/cjs/cc/DoorLockLoggingCC.js +343 -0
  51. package/build/cjs/cc/DoorLockLoggingCC.js.map +7 -0
  52. package/build/cjs/cc/EnergyProductionCC.d.ts +77 -0
  53. package/build/cjs/cc/EnergyProductionCC.js +240 -0
  54. package/build/cjs/cc/EnergyProductionCC.js.map +7 -0
  55. package/build/cjs/cc/EntryControlCC.d.ts +231 -0
  56. package/build/cjs/cc/EntryControlCC.js +593 -0
  57. package/build/cjs/cc/EntryControlCC.js.map +7 -0
  58. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +359 -0
  59. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +1122 -0
  60. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +7 -0
  61. package/build/cjs/cc/HailCC.d.ts +6 -0
  62. package/build/cjs/cc/HailCC.js +45 -0
  63. package/build/cjs/cc/HailCC.js.map +7 -0
  64. package/build/cjs/cc/HumidityControlModeCC.d.ts +111 -0
  65. package/build/cjs/cc/HumidityControlModeCC.js +323 -0
  66. package/build/cjs/cc/HumidityControlModeCC.js.map +7 -0
  67. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +60 -0
  68. package/build/cjs/cc/HumidityControlOperatingStateCC.js +164 -0
  69. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +7 -0
  70. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +209 -0
  71. package/build/cjs/cc/HumidityControlSetpointCC.js +634 -0
  72. package/build/cjs/cc/HumidityControlSetpointCC.js.map +7 -0
  73. package/build/cjs/cc/InclusionControllerCC.d.ts +42 -0
  74. package/build/cjs/cc/InclusionControllerCC.js +160 -0
  75. package/build/cjs/cc/InclusionControllerCC.js.map +7 -0
  76. package/build/cjs/cc/IndicatorCC.d.ts +338 -0
  77. package/build/cjs/cc/IndicatorCC.js +1234 -0
  78. package/build/cjs/cc/IndicatorCC.js.map +7 -0
  79. package/build/cjs/cc/IrrigationCC.d.ts +1496 -0
  80. package/build/cjs/cc/IrrigationCC.js +1978 -0
  81. package/build/cjs/cc/IrrigationCC.js.map +7 -0
  82. package/build/cjs/cc/LanguageCC.d.ts +101 -0
  83. package/build/cjs/cc/LanguageCC.js +267 -0
  84. package/build/cjs/cc/LanguageCC.js.map +7 -0
  85. package/build/cjs/cc/LockCC.d.ts +73 -0
  86. package/build/cjs/cc/LockCC.js +222 -0
  87. package/build/cjs/cc/LockCC.js.map +7 -0
  88. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +32 -0
  89. package/build/cjs/cc/ManufacturerProprietaryCC.js +209 -0
  90. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +7 -0
  91. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +171 -0
  92. package/build/cjs/cc/ManufacturerSpecificCC.js +334 -0
  93. package/build/cjs/cc/ManufacturerSpecificCC.js.map +7 -0
  94. package/build/cjs/cc/MeterCC.d.ts +318 -0
  95. package/build/cjs/cc/MeterCC.js +1235 -0
  96. package/build/cjs/cc/MeterCC.js.map +7 -0
  97. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +241 -0
  98. package/build/cjs/cc/MultiChannelAssociationCC.js +956 -0
  99. package/build/cjs/cc/MultiChannelAssociationCC.js.map +7 -0
  100. package/build/cjs/cc/MultiChannelCC.d.ts +394 -0
  101. package/build/cjs/cc/MultiChannelCC.js +1050 -0
  102. package/build/cjs/cc/MultiChannelCC.js.map +7 -0
  103. package/build/cjs/cc/MultiCommandCC.d.ts +27 -0
  104. package/build/cjs/cc/MultiCommandCC.js +159 -0
  105. package/build/cjs/cc/MultiCommandCC.js.map +7 -0
  106. package/build/cjs/cc/MultilevelSensorCC.d.ts +185 -0
  107. package/build/cjs/cc/MultilevelSensorCC.js +716 -0
  108. package/build/cjs/cc/MultilevelSensorCC.js.map +7 -0
  109. package/build/cjs/cc/MultilevelSwitchCC.d.ts +357 -0
  110. package/build/cjs/cc/MultilevelSwitchCC.js +780 -0
  111. package/build/cjs/cc/MultilevelSwitchCC.js.map +7 -0
  112. package/build/cjs/cc/NoOperationCC.d.ts +9 -0
  113. package/build/cjs/cc/NoOperationCC.js +64 -0
  114. package/build/cjs/cc/NoOperationCC.js.map +7 -0
  115. package/build/cjs/cc/NodeNamingCC.d.ts +118 -0
  116. package/build/cjs/cc/NodeNamingCC.js +364 -0
  117. package/build/cjs/cc/NodeNamingCC.js.map +7 -0
  118. package/build/cjs/cc/NotificationCC.d.ts +479 -0
  119. package/build/cjs/cc/NotificationCC.js +1245 -0
  120. package/build/cjs/cc/NotificationCC.js.map +7 -0
  121. package/build/cjs/cc/PowerlevelCC.d.ts +82 -0
  122. package/build/cjs/cc/PowerlevelCC.js +510 -0
  123. package/build/cjs/cc/PowerlevelCC.js.map +7 -0
  124. package/build/cjs/cc/ProtectionCC.d.ts +325 -0
  125. package/build/cjs/cc/ProtectionCC.js +667 -0
  126. package/build/cjs/cc/ProtectionCC.js.map +7 -0
  127. package/build/cjs/cc/SceneActivationCC.d.ts +89 -0
  128. package/build/cjs/cc/SceneActivationCC.js +193 -0
  129. package/build/cjs/cc/SceneActivationCC.js.map +7 -0
  130. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +120 -0
  131. package/build/cjs/cc/SceneActuatorConfigurationCC.js +370 -0
  132. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +7 -0
  133. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +129 -0
  134. package/build/cjs/cc/SceneControllerConfigurationCC.js +423 -0
  135. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +7 -0
  136. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +434 -0
  137. package/build/cjs/cc/ScheduleEntryLockCC.js +1763 -0
  138. package/build/cjs/cc/ScheduleEntryLockCC.js.map +7 -0
  139. package/build/cjs/cc/Security2CC.d.ts +251 -0
  140. package/build/cjs/cc/Security2CC.js +1589 -0
  141. package/build/cjs/cc/Security2CC.js.map +7 -0
  142. package/build/cjs/cc/SecurityCC.d.ts +128 -0
  143. package/build/cjs/cc/SecurityCC.js +757 -0
  144. package/build/cjs/cc/SecurityCC.js.map +7 -0
  145. package/build/cjs/cc/SoundSwitchCC.d.ts +232 -0
  146. package/build/cjs/cc/SoundSwitchCC.js +661 -0
  147. package/build/cjs/cc/SoundSwitchCC.js.map +7 -0
  148. package/build/cjs/cc/SupervisionCC.d.ts +104 -0
  149. package/build/cjs/cc/SupervisionCC.js +308 -0
  150. package/build/cjs/cc/SupervisionCC.js.map +7 -0
  151. package/build/cjs/cc/ThermostatFanModeCC.d.ts +141 -0
  152. package/build/cjs/cc/ThermostatFanModeCC.js +372 -0
  153. package/build/cjs/cc/ThermostatFanModeCC.js.map +7 -0
  154. package/build/cjs/cc/ThermostatFanStateCC.d.ts +60 -0
  155. package/build/cjs/cc/ThermostatFanStateCC.js +166 -0
  156. package/build/cjs/cc/ThermostatFanStateCC.js.map +7 -0
  157. package/build/cjs/cc/ThermostatModeCC.d.ts +150 -0
  158. package/build/cjs/cc/ThermostatModeCC.js +436 -0
  159. package/build/cjs/cc/ThermostatModeCC.js.map +7 -0
  160. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +61 -0
  161. package/build/cjs/cc/ThermostatOperatingStateCC.js +162 -0
  162. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +7 -0
  163. package/build/cjs/cc/ThermostatSetbackCC.d.ts +46 -0
  164. package/build/cjs/cc/ThermostatSetbackCC.js +262 -0
  165. package/build/cjs/cc/ThermostatSetbackCC.js.map +7 -0
  166. package/build/cjs/cc/ThermostatSetpointCC.d.ts +197 -0
  167. package/build/cjs/cc/ThermostatSetpointCC.js +638 -0
  168. package/build/cjs/cc/ThermostatSetpointCC.js.map +7 -0
  169. package/build/cjs/cc/TimeCC.d.ts +88 -0
  170. package/build/cjs/cc/TimeCC.js +473 -0
  171. package/build/cjs/cc/TimeCC.js.map +7 -0
  172. package/build/cjs/cc/TimeParametersCC.d.ts +72 -0
  173. package/build/cjs/cc/TimeParametersCC.js +313 -0
  174. package/build/cjs/cc/TimeParametersCC.js.map +7 -0
  175. package/build/cjs/cc/TransportServiceCC.d.ts +107 -0
  176. package/build/cjs/cc/TransportServiceCC.js +404 -0
  177. package/build/cjs/cc/TransportServiceCC.js.map +7 -0
  178. package/build/cjs/cc/UserCodeCC.d.ts +683 -0
  179. package/build/cjs/cc/UserCodeCC.js +1620 -0
  180. package/build/cjs/cc/UserCodeCC.js.map +7 -0
  181. package/build/cjs/cc/VersionCC.d.ts +469 -0
  182. package/build/cjs/cc/VersionCC.js +828 -0
  183. package/build/cjs/cc/VersionCC.js.map +7 -0
  184. package/build/cjs/cc/WakeUpCC.d.ts +150 -0
  185. package/build/cjs/cc/WakeUpCC.js +456 -0
  186. package/build/cjs/cc/WakeUpCC.js.map +7 -0
  187. package/build/cjs/cc/WindowCoveringCC.d.ts +315 -0
  188. package/build/cjs/cc/WindowCoveringCC.js +776 -0
  189. package/build/cjs/cc/WindowCoveringCC.js.map +7 -0
  190. package/build/cjs/cc/ZWaveLongRangeCC.d.ts +4 -0
  191. package/build/cjs/cc/ZWaveLongRangeCC.js +43 -0
  192. package/build/cjs/cc/ZWaveLongRangeCC.js.map +7 -0
  193. package/build/cjs/cc/ZWavePlusCC.d.ts +163 -0
  194. package/build/cjs/cc/ZWavePlusCC.js +288 -0
  195. package/build/cjs/cc/ZWavePlusCC.js.map +7 -0
  196. package/build/cjs/cc/ZWaveProtocolCC.d.ts +344 -0
  197. package/build/cjs/cc/ZWaveProtocolCC.js +1071 -0
  198. package/build/cjs/cc/ZWaveProtocolCC.js.map +7 -0
  199. package/build/cjs/cc/index.d.ts +132 -0
  200. package/build/cjs/cc/index.js +1180 -0
  201. package/build/cjs/cc/index.js.map +7 -0
  202. package/build/cjs/cc/manufacturerProprietary/Decorators.d.ts +64 -0
  203. package/build/cjs/cc/manufacturerProprietary/Decorators.js +76 -0
  204. package/build/cjs/cc/manufacturerProprietary/Decorators.js.map +7 -0
  205. package/build/cjs/cc/manufacturerProprietary/FibaroCC.d.ts +79 -0
  206. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +412 -0
  207. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +7 -0
  208. package/build/cjs/index.d.ts +15 -0
  209. package/build/cjs/index.js +77 -0
  210. package/build/cjs/index.js.map +7 -0
  211. package/build/cjs/index_safe.d.ts +3 -0
  212. package/build/cjs/index_safe.js +25 -0
  213. package/build/cjs/index_safe.js.map +7 -0
  214. package/build/cjs/lib/API.d.ts +271 -0
  215. package/build/cjs/lib/API.js +413 -0
  216. package/build/cjs/lib/API.js.map +7 -0
  217. package/build/cjs/lib/CommandClass.d.ts +234 -0
  218. package/build/cjs/lib/CommandClass.js +692 -0
  219. package/build/cjs/lib/CommandClass.js.map +7 -0
  220. package/build/cjs/lib/CommandClassDecorators.d.ts +112 -0
  221. package/build/cjs/lib/CommandClassDecorators.js +182 -0
  222. package/build/cjs/lib/CommandClassDecorators.js.map +7 -0
  223. package/build/cjs/lib/EncapsulatingCommandClass.d.ts +22 -0
  224. package/build/cjs/lib/EncapsulatingCommandClass.js +71 -0
  225. package/build/cjs/lib/EncapsulatingCommandClass.js.map +7 -0
  226. package/build/cjs/lib/ICommandClassContainer.js +17 -0
  227. package/build/cjs/lib/ICommandClassContainer.js.map +7 -0
  228. package/build/cjs/lib/NotificationEventPayload.d.ts +10 -0
  229. package/build/cjs/lib/NotificationEventPayload.js +31 -0
  230. package/build/cjs/lib/NotificationEventPayload.js.map +7 -0
  231. package/build/cjs/lib/Security2/Extension.js +333 -0
  232. package/build/cjs/lib/Security2/Extension.js.map +7 -0
  233. package/build/cjs/lib/Security2/shared.js +69 -0
  234. package/build/cjs/lib/Security2/shared.js.map +7 -0
  235. package/build/cjs/lib/SetValueResult.js +65 -0
  236. package/build/cjs/lib/SetValueResult.js.map +7 -0
  237. package/build/cjs/lib/Values.d.ts +223 -0
  238. package/build/cjs/lib/Values.js +191 -0
  239. package/build/cjs/lib/Values.js.map +7 -0
  240. package/build/cjs/lib/_Types.js +1676 -0
  241. package/build/cjs/lib/_Types.js.map +7 -0
  242. package/build/cjs/lib/serializers.d.ts +34 -0
  243. package/build/cjs/lib/serializers.js +110 -0
  244. package/build/cjs/lib/serializers.js.map +7 -0
  245. package/build/cjs/lib/utils.d.ts +17 -0
  246. package/build/cjs/lib/utils.js +678 -0
  247. package/build/cjs/lib/utils.js.map +7 -0
  248. package/build/cjs/package.json +3 -0
  249. package/build/esm/cc/AlarmSensorCC.d.ts +194 -0
  250. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -0
  251. package/build/esm/cc/AlarmSensorCC.js +392 -0
  252. package/build/esm/cc/AlarmSensorCC.js.map +1 -0
  253. package/build/esm/cc/AssociationCC.d.ts +253 -0
  254. package/build/esm/cc/AssociationCC.d.ts.map +1 -0
  255. package/build/esm/cc/AssociationCC.js +706 -0
  256. package/build/esm/cc/AssociationCC.js.map +1 -0
  257. package/build/esm/cc/AssociationGroupInfoCC.d.ts +230 -0
  258. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -0
  259. package/build/esm/cc/AssociationGroupInfoCC.js +769 -0
  260. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -0
  261. package/build/esm/cc/BarrierOperatorCC.d.ts +243 -0
  262. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -0
  263. package/build/esm/cc/BarrierOperatorCC.js +610 -0
  264. package/build/esm/cc/BarrierOperatorCC.js.map +1 -0
  265. package/build/esm/cc/BasicCC.d.ts +191 -0
  266. package/build/esm/cc/BasicCC.d.ts.map +1 -0
  267. package/build/esm/cc/BasicCC.js +390 -0
  268. package/build/esm/cc/BasicCC.js.map +1 -0
  269. package/build/esm/cc/BatteryCC.d.ts +406 -0
  270. package/build/esm/cc/BatteryCC.d.ts.map +1 -0
  271. package/build/esm/cc/BatteryCC.js +513 -0
  272. package/build/esm/cc/BatteryCC.js.map +1 -0
  273. package/build/esm/cc/BinarySensorCC.d.ts +122 -0
  274. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -0
  275. package/build/esm/cc/BinarySensorCC.js +417 -0
  276. package/build/esm/cc/BinarySensorCC.js.map +1 -0
  277. package/build/esm/cc/BinarySwitchCC.d.ts +139 -0
  278. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -0
  279. package/build/esm/cc/BinarySwitchCC.js +362 -0
  280. package/build/esm/cc/BinarySwitchCC.js.map +1 -0
  281. package/build/esm/cc/CRC16CC.d.ts +29 -0
  282. package/build/esm/cc/CRC16CC.d.ts.map +1 -0
  283. package/build/esm/cc/CRC16CC.js +123 -0
  284. package/build/esm/cc/CRC16CC.js.map +1 -0
  285. package/build/esm/cc/CentralSceneCC.d.ts +210 -0
  286. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -0
  287. package/build/esm/cc/CentralSceneCC.js +427 -0
  288. package/build/esm/cc/CentralSceneCC.js.map +1 -0
  289. package/build/esm/cc/ClimateControlScheduleCC.d.ts +177 -0
  290. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -0
  291. package/build/esm/cc/ClimateControlScheduleCC.js +466 -0
  292. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -0
  293. package/build/esm/cc/ClockCC.d.ts +47 -0
  294. package/build/esm/cc/ClockCC.d.ts.map +1 -0
  295. package/build/esm/cc/ClockCC.js +205 -0
  296. package/build/esm/cc/ClockCC.js.map +1 -0
  297. package/build/esm/cc/ColorSwitchCC.d.ts +339 -0
  298. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -0
  299. package/build/esm/cc/ColorSwitchCC.js +1149 -0
  300. package/build/esm/cc/ColorSwitchCC.js.map +1 -0
  301. package/build/esm/cc/ConfigurationCC.d.ts +396 -0
  302. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -0
  303. package/build/esm/cc/ConfigurationCC.js +2454 -0
  304. package/build/esm/cc/ConfigurationCC.js.map +1 -0
  305. package/build/esm/cc/DeviceResetLocallyCC.d.ts +17 -0
  306. package/build/esm/cc/DeviceResetLocallyCC.d.ts.map +1 -0
  307. package/build/esm/cc/DeviceResetLocallyCC.js +73 -0
  308. package/build/esm/cc/DeviceResetLocallyCC.js.map +1 -0
  309. package/build/esm/cc/DoorLockCC.d.ts +837 -0
  310. package/build/esm/cc/DoorLockCC.d.ts.map +1 -0
  311. package/build/esm/cc/DoorLockCC.js +1270 -0
  312. package/build/esm/cc/DoorLockCC.js.map +1 -0
  313. package/build/esm/cc/DoorLockLoggingCC.d.ts +77 -0
  314. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -0
  315. package/build/esm/cc/DoorLockLoggingCC.js +316 -0
  316. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -0
  317. package/build/esm/cc/EnergyProductionCC.d.ts +77 -0
  318. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -0
  319. package/build/esm/cc/EnergyProductionCC.js +213 -0
  320. package/build/esm/cc/EnergyProductionCC.js.map +1 -0
  321. package/build/esm/cc/EntryControlCC.d.ts +231 -0
  322. package/build/esm/cc/EntryControlCC.d.ts.map +1 -0
  323. package/build/esm/cc/EntryControlCC.js +581 -0
  324. package/build/esm/cc/EntryControlCC.js.map +1 -0
  325. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +359 -0
  326. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -0
  327. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +1142 -0
  328. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -0
  329. package/build/esm/cc/HailCC.d.ts +6 -0
  330. package/build/esm/cc/HailCC.d.ts.map +1 -0
  331. package/build/esm/cc/HailCC.js +21 -0
  332. package/build/esm/cc/HailCC.js.map +1 -0
  333. package/build/esm/cc/HumidityControlModeCC.d.ts +111 -0
  334. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -0
  335. package/build/esm/cc/HumidityControlModeCC.js +305 -0
  336. package/build/esm/cc/HumidityControlModeCC.js.map +1 -0
  337. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +60 -0
  338. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -0
  339. package/build/esm/cc/HumidityControlOperatingStateCC.js +137 -0
  340. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -0
  341. package/build/esm/cc/HumidityControlSetpointCC.d.ts +209 -0
  342. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -0
  343. package/build/esm/cc/HumidityControlSetpointCC.js +645 -0
  344. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -0
  345. package/build/esm/cc/InclusionControllerCC.d.ts +42 -0
  346. package/build/esm/cc/InclusionControllerCC.d.ts.map +1 -0
  347. package/build/esm/cc/InclusionControllerCC.js +133 -0
  348. package/build/esm/cc/InclusionControllerCC.js.map +1 -0
  349. package/build/esm/cc/IndicatorCC.d.ts +338 -0
  350. package/build/esm/cc/IndicatorCC.d.ts.map +1 -0
  351. package/build/esm/cc/IndicatorCC.js +1317 -0
  352. package/build/esm/cc/IndicatorCC.js.map +1 -0
  353. package/build/esm/cc/IrrigationCC.d.ts +1496 -0
  354. package/build/esm/cc/IrrigationCC.d.ts.map +1 -0
  355. package/build/esm/cc/IrrigationCC.js +2038 -0
  356. package/build/esm/cc/IrrigationCC.js.map +1 -0
  357. package/build/esm/cc/LanguageCC.d.ts +101 -0
  358. package/build/esm/cc/LanguageCC.d.ts.map +1 -0
  359. package/build/esm/cc/LanguageCC.js +243 -0
  360. package/build/esm/cc/LanguageCC.js.map +1 -0
  361. package/build/esm/cc/LockCC.d.ts +73 -0
  362. package/build/esm/cc/LockCC.d.ts.map +1 -0
  363. package/build/esm/cc/LockCC.js +197 -0
  364. package/build/esm/cc/LockCC.js.map +1 -0
  365. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +32 -0
  366. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -0
  367. package/build/esm/cc/ManufacturerProprietaryCC.js +201 -0
  368. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -0
  369. package/build/esm/cc/ManufacturerSpecificCC.d.ts +171 -0
  370. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -0
  371. package/build/esm/cc/ManufacturerSpecificCC.js +315 -0
  372. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -0
  373. package/build/esm/cc/MeterCC.d.ts +318 -0
  374. package/build/esm/cc/MeterCC.d.ts.map +1 -0
  375. package/build/esm/cc/MeterCC.js +1308 -0
  376. package/build/esm/cc/MeterCC.js.map +1 -0
  377. package/build/esm/cc/MultiChannelAssociationCC.d.ts +241 -0
  378. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -0
  379. package/build/esm/cc/MultiChannelAssociationCC.js +981 -0
  380. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -0
  381. package/build/esm/cc/MultiChannelCC.d.ts +394 -0
  382. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -0
  383. package/build/esm/cc/MultiChannelCC.js +1127 -0
  384. package/build/esm/cc/MultiChannelCC.js.map +1 -0
  385. package/build/esm/cc/MultiCommandCC.d.ts +27 -0
  386. package/build/esm/cc/MultiCommandCC.d.ts.map +1 -0
  387. package/build/esm/cc/MultiCommandCC.js +142 -0
  388. package/build/esm/cc/MultiCommandCC.js.map +1 -0
  389. package/build/esm/cc/MultilevelSensorCC.d.ts +185 -0
  390. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -0
  391. package/build/esm/cc/MultilevelSensorCC.js +753 -0
  392. package/build/esm/cc/MultilevelSensorCC.js.map +1 -0
  393. package/build/esm/cc/MultilevelSwitchCC.d.ts +357 -0
  394. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -0
  395. package/build/esm/cc/MultilevelSwitchCC.js +810 -0
  396. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -0
  397. package/build/esm/cc/NoOperationCC.d.ts +9 -0
  398. package/build/esm/cc/NoOperationCC.d.ts.map +1 -0
  399. package/build/esm/cc/NoOperationCC.js +39 -0
  400. package/build/esm/cc/NoOperationCC.js.map +1 -0
  401. package/build/esm/cc/NodeNamingCC.d.ts +118 -0
  402. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -0
  403. package/build/esm/cc/NodeNamingCC.js +345 -0
  404. package/build/esm/cc/NodeNamingCC.js.map +1 -0
  405. package/build/esm/cc/NotificationCC.d.ts +479 -0
  406. package/build/esm/cc/NotificationCC.d.ts.map +1 -0
  407. package/build/esm/cc/NotificationCC.js +1350 -0
  408. package/build/esm/cc/NotificationCC.js.map +1 -0
  409. package/build/esm/cc/PowerlevelCC.d.ts +82 -0
  410. package/build/esm/cc/PowerlevelCC.d.ts.map +1 -0
  411. package/build/esm/cc/PowerlevelCC.js +485 -0
  412. package/build/esm/cc/PowerlevelCC.js.map +1 -0
  413. package/build/esm/cc/ProtectionCC.d.ts +325 -0
  414. package/build/esm/cc/ProtectionCC.d.ts.map +1 -0
  415. package/build/esm/cc/ProtectionCC.js +669 -0
  416. package/build/esm/cc/ProtectionCC.js.map +1 -0
  417. package/build/esm/cc/SceneActivationCC.d.ts +89 -0
  418. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -0
  419. package/build/esm/cc/SceneActivationCC.js +166 -0
  420. package/build/esm/cc/SceneActivationCC.js.map +1 -0
  421. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +120 -0
  422. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -0
  423. package/build/esm/cc/SceneActuatorConfigurationCC.js +374 -0
  424. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -0
  425. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +129 -0
  426. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -0
  427. package/build/esm/cc/SceneControllerConfigurationCC.js +446 -0
  428. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -0
  429. package/build/esm/cc/ScheduleEntryLockCC.d.ts +434 -0
  430. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -0
  431. package/build/esm/cc/ScheduleEntryLockCC.js +1826 -0
  432. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -0
  433. package/build/esm/cc/Security2CC.d.ts +251 -0
  434. package/build/esm/cc/Security2CC.d.ts.map +1 -0
  435. package/build/esm/cc/Security2CC.js +1814 -0
  436. package/build/esm/cc/Security2CC.js.map +1 -0
  437. package/build/esm/cc/SecurityCC.d.ts +128 -0
  438. package/build/esm/cc/SecurityCC.d.ts.map +1 -0
  439. package/build/esm/cc/SecurityCC.js +800 -0
  440. package/build/esm/cc/SecurityCC.js.map +1 -0
  441. package/build/esm/cc/SoundSwitchCC.d.ts +232 -0
  442. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -0
  443. package/build/esm/cc/SoundSwitchCC.js +633 -0
  444. package/build/esm/cc/SoundSwitchCC.js.map +1 -0
  445. package/build/esm/cc/SupervisionCC.d.ts +104 -0
  446. package/build/esm/cc/SupervisionCC.d.ts.map +1 -0
  447. package/build/esm/cc/SupervisionCC.js +319 -0
  448. package/build/esm/cc/SupervisionCC.js.map +1 -0
  449. package/build/esm/cc/ThermostatFanModeCC.d.ts +141 -0
  450. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -0
  451. package/build/esm/cc/ThermostatFanModeCC.js +359 -0
  452. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -0
  453. package/build/esm/cc/ThermostatFanStateCC.d.ts +60 -0
  454. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -0
  455. package/build/esm/cc/ThermostatFanStateCC.js +139 -0
  456. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -0
  457. package/build/esm/cc/ThermostatModeCC.d.ts +150 -0
  458. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -0
  459. package/build/esm/cc/ThermostatModeCC.js +426 -0
  460. package/build/esm/cc/ThermostatModeCC.js.map +1 -0
  461. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +61 -0
  462. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -0
  463. package/build/esm/cc/ThermostatOperatingStateCC.js +135 -0
  464. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -0
  465. package/build/esm/cc/ThermostatSetbackCC.d.ts +46 -0
  466. package/build/esm/cc/ThermostatSetbackCC.d.ts.map +1 -0
  467. package/build/esm/cc/ThermostatSetbackCC.js +244 -0
  468. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -0
  469. package/build/esm/cc/ThermostatSetpointCC.d.ts +197 -0
  470. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -0
  471. package/build/esm/cc/ThermostatSetpointCC.js +655 -0
  472. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -0
  473. package/build/esm/cc/TimeCC.d.ts +88 -0
  474. package/build/esm/cc/TimeCC.d.ts.map +1 -0
  475. package/build/esm/cc/TimeCC.js +451 -0
  476. package/build/esm/cc/TimeCC.js.map +1 -0
  477. package/build/esm/cc/TimeParametersCC.d.ts +72 -0
  478. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -0
  479. package/build/esm/cc/TimeParametersCC.js +300 -0
  480. package/build/esm/cc/TimeParametersCC.js.map +1 -0
  481. package/build/esm/cc/TransportServiceCC.d.ts +107 -0
  482. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -0
  483. package/build/esm/cc/TransportServiceCC.js +422 -0
  484. package/build/esm/cc/TransportServiceCC.js.map +1 -0
  485. package/build/esm/cc/UserCodeCC.d.ts +683 -0
  486. package/build/esm/cc/UserCodeCC.d.ts.map +1 -0
  487. package/build/esm/cc/UserCodeCC.js +1695 -0
  488. package/build/esm/cc/UserCodeCC.js.map +1 -0
  489. package/build/esm/cc/VersionCC.d.ts +469 -0
  490. package/build/esm/cc/VersionCC.d.ts.map +1 -0
  491. package/build/esm/cc/VersionCC.js +862 -0
  492. package/build/esm/cc/VersionCC.js.map +1 -0
  493. package/build/esm/cc/WakeUpCC.d.ts +150 -0
  494. package/build/esm/cc/WakeUpCC.d.ts.map +1 -0
  495. package/build/esm/cc/WakeUpCC.js +438 -0
  496. package/build/esm/cc/WakeUpCC.js.map +1 -0
  497. package/build/esm/cc/WindowCoveringCC.d.ts +315 -0
  498. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -0
  499. package/build/esm/cc/WindowCoveringCC.js +780 -0
  500. package/build/esm/cc/WindowCoveringCC.js.map +1 -0
  501. package/build/esm/cc/ZWaveLongRangeCC.d.ts +4 -0
  502. package/build/esm/cc/ZWaveLongRangeCC.d.ts.map +1 -0
  503. package/build/esm/cc/ZWaveLongRangeCC.js +17 -0
  504. package/build/esm/cc/ZWaveLongRangeCC.js.map +1 -0
  505. package/build/esm/cc/ZWavePlusCC.d.ts +163 -0
  506. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -0
  507. package/build/esm/cc/ZWavePlusCC.js +267 -0
  508. package/build/esm/cc/ZWavePlusCC.js.map +1 -0
  509. package/build/esm/cc/ZWaveProtocolCC.d.ts +344 -0
  510. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -0
  511. package/build/esm/cc/ZWaveProtocolCC.js +1030 -0
  512. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -0
  513. package/build/esm/cc/index.d.ts +132 -0
  514. package/build/esm/cc/index.d.ts.map +1 -0
  515. package/build/esm/cc/index.js +71 -0
  516. package/build/esm/cc/index.js.map +1 -0
  517. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts +64 -0
  518. package/build/esm/cc/manufacturerProprietary/Decorators.d.ts.map +1 -0
  519. package/build/esm/cc/manufacturerProprietary/Decorators.js +79 -0
  520. package/build/esm/cc/manufacturerProprietary/Decorators.js.map +1 -0
  521. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts +79 -0
  522. package/build/esm/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -0
  523. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +385 -0
  524. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -0
  525. package/build/esm/index.d.ts +15 -0
  526. package/build/esm/index.d.ts.map +1 -0
  527. package/build/esm/index.js +14 -0
  528. package/build/esm/index.js.map +1 -0
  529. package/build/esm/index_safe.d.ts +3 -0
  530. package/build/esm/index_safe.d.ts.map +1 -0
  531. package/build/esm/index_safe.js +4 -0
  532. package/build/esm/index_safe.js.map +1 -0
  533. package/build/esm/lib/API.d.ts +271 -0
  534. package/build/esm/lib/API.d.ts.map +1 -0
  535. package/build/esm/lib/API.js +448 -0
  536. package/build/esm/lib/API.js.map +1 -0
  537. package/build/esm/lib/CommandClass.d.ts +234 -0
  538. package/build/esm/lib/CommandClass.d.ts.map +1 -0
  539. package/build/esm/lib/CommandClass.js +781 -0
  540. package/build/esm/lib/CommandClass.js.map +1 -0
  541. package/build/esm/lib/CommandClassDecorators.d.ts +112 -0
  542. package/build/esm/lib/CommandClassDecorators.d.ts.map +1 -0
  543. package/build/esm/lib/CommandClassDecorators.js +229 -0
  544. package/build/esm/lib/CommandClassDecorators.js.map +1 -0
  545. package/build/esm/lib/EncapsulatingCommandClass.d.ts +22 -0
  546. package/build/esm/lib/EncapsulatingCommandClass.d.ts.map +1 -0
  547. package/build/esm/lib/EncapsulatingCommandClass.js +56 -0
  548. package/build/esm/lib/EncapsulatingCommandClass.js.map +1 -0
  549. package/build/esm/lib/ICommandClassContainer.d.ts +2 -0
  550. package/build/esm/lib/ICommandClassContainer.d.ts.map +1 -0
  551. package/build/esm/lib/ICommandClassContainer.js +2 -0
  552. package/build/esm/lib/ICommandClassContainer.js.map +1 -0
  553. package/build/esm/lib/NotificationEventPayload.d.ts +10 -0
  554. package/build/esm/lib/NotificationEventPayload.d.ts.map +1 -0
  555. package/build/esm/lib/NotificationEventPayload.js +7 -0
  556. package/build/esm/lib/NotificationEventPayload.js.map +1 -0
  557. package/build/esm/lib/Security2/Extension.d.ts +106 -0
  558. package/build/esm/lib/Security2/Extension.d.ts.map +1 -0
  559. package/build/esm/lib/Security2/Extension.js +296 -0
  560. package/build/esm/lib/Security2/Extension.js.map +1 -0
  561. package/build/esm/lib/Security2/shared.d.ts +37 -0
  562. package/build/esm/lib/Security2/shared.d.ts.map +1 -0
  563. package/build/esm/lib/Security2/shared.js +40 -0
  564. package/build/esm/lib/Security2/shared.js.map +1 -0
  565. package/build/esm/lib/SetValueResult.d.ts +55 -0
  566. package/build/esm/lib/SetValueResult.d.ts.map +1 -0
  567. package/build/esm/lib/SetValueResult.js +53 -0
  568. package/build/esm/lib/SetValueResult.js.map +1 -0
  569. package/build/esm/lib/Values.d.ts +223 -0
  570. package/build/esm/lib/Values.d.ts.map +1 -0
  571. package/build/esm/lib/Values.js +169 -0
  572. package/build/esm/lib/Values.js.map +1 -0
  573. package/build/esm/lib/_Types.d.ts +1461 -0
  574. package/build/esm/lib/_Types.d.ts.map +1 -0
  575. package/build/esm/lib/_Types.js +1432 -0
  576. package/build/esm/lib/_Types.js.map +1 -0
  577. package/build/esm/lib/serializers.d.ts +34 -0
  578. package/build/esm/lib/serializers.d.ts.map +1 -0
  579. package/build/esm/lib/serializers.js +98 -0
  580. package/build/esm/lib/serializers.js.map +1 -0
  581. package/build/esm/lib/utils.d.ts +17 -0
  582. package/build/esm/lib/utils.d.ts.map +1 -0
  583. package/build/esm/lib/utils.js +847 -0
  584. package/build/esm/lib/utils.js.map +1 -0
  585. package/build/esm/package.json +3 -0
  586. package/package.json +28 -23
  587. package/build/cc/AlarmSensorCC.d.ts +0 -194
  588. package/build/cc/AlarmSensorCC.d.ts.map +0 -1
  589. package/build/cc/AlarmSensorCC.js +0 -395
  590. package/build/cc/AlarmSensorCC.js.map +0 -1
  591. package/build/cc/AssociationCC.d.ts +0 -253
  592. package/build/cc/AssociationCC.d.ts.map +0 -1
  593. package/build/cc/AssociationCC.js +0 -732
  594. package/build/cc/AssociationCC.js.map +0 -1
  595. package/build/cc/AssociationGroupInfoCC.d.ts +0 -230
  596. package/build/cc/AssociationGroupInfoCC.d.ts.map +0 -1
  597. package/build/cc/AssociationGroupInfoCC.js +0 -772
  598. package/build/cc/AssociationGroupInfoCC.js.map +0 -1
  599. package/build/cc/BarrierOperatorCC.d.ts +0 -243
  600. package/build/cc/BarrierOperatorCC.d.ts.map +0 -1
  601. package/build/cc/BarrierOperatorCC.js +0 -613
  602. package/build/cc/BarrierOperatorCC.js.map +0 -1
  603. package/build/cc/BasicCC.d.ts +0 -191
  604. package/build/cc/BasicCC.d.ts.map +0 -1
  605. package/build/cc/BasicCC.js +0 -393
  606. package/build/cc/BasicCC.js.map +0 -1
  607. package/build/cc/BatteryCC.d.ts +0 -406
  608. package/build/cc/BatteryCC.d.ts.map +0 -1
  609. package/build/cc/BatteryCC.js +0 -516
  610. package/build/cc/BatteryCC.js.map +0 -1
  611. package/build/cc/BinarySensorCC.d.ts +0 -122
  612. package/build/cc/BinarySensorCC.d.ts.map +0 -1
  613. package/build/cc/BinarySensorCC.js +0 -420
  614. package/build/cc/BinarySensorCC.js.map +0 -1
  615. package/build/cc/BinarySwitchCC.d.ts +0 -139
  616. package/build/cc/BinarySwitchCC.d.ts.map +0 -1
  617. package/build/cc/BinarySwitchCC.js +0 -365
  618. package/build/cc/BinarySwitchCC.js.map +0 -1
  619. package/build/cc/CRC16CC.d.ts +0 -29
  620. package/build/cc/CRC16CC.d.ts.map +0 -1
  621. package/build/cc/CRC16CC.js +0 -126
  622. package/build/cc/CRC16CC.js.map +0 -1
  623. package/build/cc/CentralSceneCC.d.ts +0 -210
  624. package/build/cc/CentralSceneCC.d.ts.map +0 -1
  625. package/build/cc/CentralSceneCC.js +0 -453
  626. package/build/cc/CentralSceneCC.js.map +0 -1
  627. package/build/cc/ClimateControlScheduleCC.d.ts +0 -177
  628. package/build/cc/ClimateControlScheduleCC.d.ts.map +0 -1
  629. package/build/cc/ClimateControlScheduleCC.js +0 -469
  630. package/build/cc/ClimateControlScheduleCC.js.map +0 -1
  631. package/build/cc/ClockCC.d.ts +0 -47
  632. package/build/cc/ClockCC.d.ts.map +0 -1
  633. package/build/cc/ClockCC.js +0 -208
  634. package/build/cc/ClockCC.js.map +0 -1
  635. package/build/cc/ColorSwitchCC.d.ts +0 -339
  636. package/build/cc/ColorSwitchCC.d.ts.map +0 -1
  637. package/build/cc/ColorSwitchCC.js +0 -1152
  638. package/build/cc/ColorSwitchCC.js.map +0 -1
  639. package/build/cc/ConfigurationCC.d.ts +0 -396
  640. package/build/cc/ConfigurationCC.d.ts.map +0 -1
  641. package/build/cc/ConfigurationCC.js +0 -2458
  642. package/build/cc/ConfigurationCC.js.map +0 -1
  643. package/build/cc/DeviceResetLocallyCC.d.ts +0 -17
  644. package/build/cc/DeviceResetLocallyCC.d.ts.map +0 -1
  645. package/build/cc/DeviceResetLocallyCC.js +0 -76
  646. package/build/cc/DeviceResetLocallyCC.js.map +0 -1
  647. package/build/cc/DoorLockCC.d.ts +0 -837
  648. package/build/cc/DoorLockCC.d.ts.map +0 -1
  649. package/build/cc/DoorLockCC.js +0 -1273
  650. package/build/cc/DoorLockCC.js.map +0 -1
  651. package/build/cc/DoorLockLoggingCC.d.ts +0 -77
  652. package/build/cc/DoorLockLoggingCC.d.ts.map +0 -1
  653. package/build/cc/DoorLockLoggingCC.js +0 -319
  654. package/build/cc/DoorLockLoggingCC.js.map +0 -1
  655. package/build/cc/EnergyProductionCC.d.ts +0 -77
  656. package/build/cc/EnergyProductionCC.d.ts.map +0 -1
  657. package/build/cc/EnergyProductionCC.js +0 -216
  658. package/build/cc/EnergyProductionCC.js.map +0 -1
  659. package/build/cc/EntryControlCC.d.ts +0 -231
  660. package/build/cc/EntryControlCC.d.ts.map +0 -1
  661. package/build/cc/EntryControlCC.js +0 -607
  662. package/build/cc/EntryControlCC.js.map +0 -1
  663. package/build/cc/FirmwareUpdateMetaDataCC.d.ts +0 -359
  664. package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +0 -1
  665. package/build/cc/FirmwareUpdateMetaDataCC.js +0 -1145
  666. package/build/cc/FirmwareUpdateMetaDataCC.js.map +0 -1
  667. package/build/cc/HailCC.d.ts +0 -6
  668. package/build/cc/HailCC.d.ts.map +0 -1
  669. package/build/cc/HailCC.js +0 -24
  670. package/build/cc/HailCC.js.map +0 -1
  671. package/build/cc/HumidityControlModeCC.d.ts +0 -111
  672. package/build/cc/HumidityControlModeCC.d.ts.map +0 -1
  673. package/build/cc/HumidityControlModeCC.js +0 -308
  674. package/build/cc/HumidityControlModeCC.js.map +0 -1
  675. package/build/cc/HumidityControlOperatingStateCC.d.ts +0 -60
  676. package/build/cc/HumidityControlOperatingStateCC.d.ts.map +0 -1
  677. package/build/cc/HumidityControlOperatingStateCC.js +0 -140
  678. package/build/cc/HumidityControlOperatingStateCC.js.map +0 -1
  679. package/build/cc/HumidityControlSetpointCC.d.ts +0 -209
  680. package/build/cc/HumidityControlSetpointCC.d.ts.map +0 -1
  681. package/build/cc/HumidityControlSetpointCC.js +0 -648
  682. package/build/cc/HumidityControlSetpointCC.js.map +0 -1
  683. package/build/cc/InclusionControllerCC.d.ts +0 -42
  684. package/build/cc/InclusionControllerCC.d.ts.map +0 -1
  685. package/build/cc/InclusionControllerCC.js +0 -136
  686. package/build/cc/InclusionControllerCC.js.map +0 -1
  687. package/build/cc/IndicatorCC.d.ts +0 -338
  688. package/build/cc/IndicatorCC.d.ts.map +0 -1
  689. package/build/cc/IndicatorCC.js +0 -1320
  690. package/build/cc/IndicatorCC.js.map +0 -1
  691. package/build/cc/IrrigationCC.d.ts +0 -1496
  692. package/build/cc/IrrigationCC.d.ts.map +0 -1
  693. package/build/cc/IrrigationCC.js +0 -2041
  694. package/build/cc/IrrigationCC.js.map +0 -1
  695. package/build/cc/LanguageCC.d.ts +0 -101
  696. package/build/cc/LanguageCC.d.ts.map +0 -1
  697. package/build/cc/LanguageCC.js +0 -246
  698. package/build/cc/LanguageCC.js.map +0 -1
  699. package/build/cc/LockCC.d.ts +0 -73
  700. package/build/cc/LockCC.d.ts.map +0 -1
  701. package/build/cc/LockCC.js +0 -200
  702. package/build/cc/LockCC.js.map +0 -1
  703. package/build/cc/ManufacturerProprietaryCC.d.ts +0 -32
  704. package/build/cc/ManufacturerProprietaryCC.d.ts.map +0 -1
  705. package/build/cc/ManufacturerProprietaryCC.js +0 -204
  706. package/build/cc/ManufacturerProprietaryCC.js.map +0 -1
  707. package/build/cc/ManufacturerSpecificCC.d.ts +0 -171
  708. package/build/cc/ManufacturerSpecificCC.d.ts.map +0 -1
  709. package/build/cc/ManufacturerSpecificCC.js +0 -318
  710. package/build/cc/ManufacturerSpecificCC.js.map +0 -1
  711. package/build/cc/MeterCC.d.ts +0 -318
  712. package/build/cc/MeterCC.d.ts.map +0 -1
  713. package/build/cc/MeterCC.js +0 -1312
  714. package/build/cc/MeterCC.js.map +0 -1
  715. package/build/cc/MultiChannelAssociationCC.d.ts +0 -241
  716. package/build/cc/MultiChannelAssociationCC.d.ts.map +0 -1
  717. package/build/cc/MultiChannelAssociationCC.js +0 -1007
  718. package/build/cc/MultiChannelAssociationCC.js.map +0 -1
  719. package/build/cc/MultiChannelCC.d.ts +0 -394
  720. package/build/cc/MultiChannelCC.d.ts.map +0 -1
  721. package/build/cc/MultiChannelCC.js +0 -1130
  722. package/build/cc/MultiChannelCC.js.map +0 -1
  723. package/build/cc/MultiCommandCC.d.ts +0 -27
  724. package/build/cc/MultiCommandCC.d.ts.map +0 -1
  725. package/build/cc/MultiCommandCC.js +0 -145
  726. package/build/cc/MultiCommandCC.js.map +0 -1
  727. package/build/cc/MultilevelSensorCC.d.ts +0 -185
  728. package/build/cc/MultilevelSensorCC.d.ts.map +0 -1
  729. package/build/cc/MultilevelSensorCC.js +0 -756
  730. package/build/cc/MultilevelSensorCC.js.map +0 -1
  731. package/build/cc/MultilevelSwitchCC.d.ts +0 -357
  732. package/build/cc/MultilevelSwitchCC.d.ts.map +0 -1
  733. package/build/cc/MultilevelSwitchCC.js +0 -813
  734. package/build/cc/MultilevelSwitchCC.js.map +0 -1
  735. package/build/cc/NoOperationCC.d.ts +0 -9
  736. package/build/cc/NoOperationCC.d.ts.map +0 -1
  737. package/build/cc/NoOperationCC.js +0 -42
  738. package/build/cc/NoOperationCC.js.map +0 -1
  739. package/build/cc/NodeNamingCC.d.ts +0 -118
  740. package/build/cc/NodeNamingCC.d.ts.map +0 -1
  741. package/build/cc/NodeNamingCC.js +0 -348
  742. package/build/cc/NodeNamingCC.js.map +0 -1
  743. package/build/cc/NotificationCC.d.ts +0 -479
  744. package/build/cc/NotificationCC.d.ts.map +0 -1
  745. package/build/cc/NotificationCC.js +0 -1379
  746. package/build/cc/NotificationCC.js.map +0 -1
  747. package/build/cc/PowerlevelCC.d.ts +0 -82
  748. package/build/cc/PowerlevelCC.d.ts.map +0 -1
  749. package/build/cc/PowerlevelCC.js +0 -488
  750. package/build/cc/PowerlevelCC.js.map +0 -1
  751. package/build/cc/ProtectionCC.d.ts +0 -325
  752. package/build/cc/ProtectionCC.d.ts.map +0 -1
  753. package/build/cc/ProtectionCC.js +0 -672
  754. package/build/cc/ProtectionCC.js.map +0 -1
  755. package/build/cc/SceneActivationCC.d.ts +0 -89
  756. package/build/cc/SceneActivationCC.d.ts.map +0 -1
  757. package/build/cc/SceneActivationCC.js +0 -169
  758. package/build/cc/SceneActivationCC.js.map +0 -1
  759. package/build/cc/SceneActuatorConfigurationCC.d.ts +0 -120
  760. package/build/cc/SceneActuatorConfigurationCC.d.ts.map +0 -1
  761. package/build/cc/SceneActuatorConfigurationCC.js +0 -377
  762. package/build/cc/SceneActuatorConfigurationCC.js.map +0 -1
  763. package/build/cc/SceneControllerConfigurationCC.d.ts +0 -129
  764. package/build/cc/SceneControllerConfigurationCC.d.ts.map +0 -1
  765. package/build/cc/SceneControllerConfigurationCC.js +0 -449
  766. package/build/cc/SceneControllerConfigurationCC.js.map +0 -1
  767. package/build/cc/ScheduleEntryLockCC.d.ts +0 -434
  768. package/build/cc/ScheduleEntryLockCC.d.ts.map +0 -1
  769. package/build/cc/ScheduleEntryLockCC.js +0 -1829
  770. package/build/cc/ScheduleEntryLockCC.js.map +0 -1
  771. package/build/cc/Security2CC.d.ts +0 -251
  772. package/build/cc/Security2CC.d.ts.map +0 -1
  773. package/build/cc/Security2CC.js +0 -1817
  774. package/build/cc/Security2CC.js.map +0 -1
  775. package/build/cc/SecurityCC.d.ts +0 -128
  776. package/build/cc/SecurityCC.d.ts.map +0 -1
  777. package/build/cc/SecurityCC.js +0 -803
  778. package/build/cc/SecurityCC.js.map +0 -1
  779. package/build/cc/SoundSwitchCC.d.ts +0 -232
  780. package/build/cc/SoundSwitchCC.d.ts.map +0 -1
  781. package/build/cc/SoundSwitchCC.js +0 -636
  782. package/build/cc/SoundSwitchCC.js.map +0 -1
  783. package/build/cc/SupervisionCC.d.ts +0 -104
  784. package/build/cc/SupervisionCC.d.ts.map +0 -1
  785. package/build/cc/SupervisionCC.js +0 -322
  786. package/build/cc/SupervisionCC.js.map +0 -1
  787. package/build/cc/ThermostatFanModeCC.d.ts +0 -141
  788. package/build/cc/ThermostatFanModeCC.d.ts.map +0 -1
  789. package/build/cc/ThermostatFanModeCC.js +0 -362
  790. package/build/cc/ThermostatFanModeCC.js.map +0 -1
  791. package/build/cc/ThermostatFanStateCC.d.ts +0 -60
  792. package/build/cc/ThermostatFanStateCC.d.ts.map +0 -1
  793. package/build/cc/ThermostatFanStateCC.js +0 -142
  794. package/build/cc/ThermostatFanStateCC.js.map +0 -1
  795. package/build/cc/ThermostatModeCC.d.ts +0 -150
  796. package/build/cc/ThermostatModeCC.d.ts.map +0 -1
  797. package/build/cc/ThermostatModeCC.js +0 -429
  798. package/build/cc/ThermostatModeCC.js.map +0 -1
  799. package/build/cc/ThermostatOperatingStateCC.d.ts +0 -61
  800. package/build/cc/ThermostatOperatingStateCC.d.ts.map +0 -1
  801. package/build/cc/ThermostatOperatingStateCC.js +0 -138
  802. package/build/cc/ThermostatOperatingStateCC.js.map +0 -1
  803. package/build/cc/ThermostatSetbackCC.d.ts +0 -46
  804. package/build/cc/ThermostatSetbackCC.d.ts.map +0 -1
  805. package/build/cc/ThermostatSetbackCC.js +0 -247
  806. package/build/cc/ThermostatSetbackCC.js.map +0 -1
  807. package/build/cc/ThermostatSetpointCC.d.ts +0 -197
  808. package/build/cc/ThermostatSetpointCC.d.ts.map +0 -1
  809. package/build/cc/ThermostatSetpointCC.js +0 -658
  810. package/build/cc/ThermostatSetpointCC.js.map +0 -1
  811. package/build/cc/TimeCC.d.ts +0 -88
  812. package/build/cc/TimeCC.d.ts.map +0 -1
  813. package/build/cc/TimeCC.js +0 -454
  814. package/build/cc/TimeCC.js.map +0 -1
  815. package/build/cc/TimeParametersCC.d.ts +0 -72
  816. package/build/cc/TimeParametersCC.d.ts.map +0 -1
  817. package/build/cc/TimeParametersCC.js +0 -303
  818. package/build/cc/TimeParametersCC.js.map +0 -1
  819. package/build/cc/TransportServiceCC.d.ts +0 -107
  820. package/build/cc/TransportServiceCC.d.ts.map +0 -1
  821. package/build/cc/TransportServiceCC.js +0 -426
  822. package/build/cc/TransportServiceCC.js.map +0 -1
  823. package/build/cc/UserCodeCC.d.ts +0 -683
  824. package/build/cc/UserCodeCC.d.ts.map +0 -1
  825. package/build/cc/UserCodeCC.js +0 -1699
  826. package/build/cc/UserCodeCC.js.map +0 -1
  827. package/build/cc/VersionCC.d.ts +0 -469
  828. package/build/cc/VersionCC.d.ts.map +0 -1
  829. package/build/cc/VersionCC.js +0 -865
  830. package/build/cc/VersionCC.js.map +0 -1
  831. package/build/cc/WakeUpCC.d.ts +0 -150
  832. package/build/cc/WakeUpCC.d.ts.map +0 -1
  833. package/build/cc/WakeUpCC.js +0 -441
  834. package/build/cc/WakeUpCC.js.map +0 -1
  835. package/build/cc/WindowCoveringCC.d.ts +0 -315
  836. package/build/cc/WindowCoveringCC.d.ts.map +0 -1
  837. package/build/cc/WindowCoveringCC.js +0 -783
  838. package/build/cc/WindowCoveringCC.js.map +0 -1
  839. package/build/cc/ZWaveLongRangeCC.d.ts +0 -4
  840. package/build/cc/ZWaveLongRangeCC.d.ts.map +0 -1
  841. package/build/cc/ZWaveLongRangeCC.js +0 -20
  842. package/build/cc/ZWaveLongRangeCC.js.map +0 -1
  843. package/build/cc/ZWavePlusCC.d.ts +0 -163
  844. package/build/cc/ZWavePlusCC.d.ts.map +0 -1
  845. package/build/cc/ZWavePlusCC.js +0 -270
  846. package/build/cc/ZWavePlusCC.js.map +0 -1
  847. package/build/cc/ZWaveProtocolCC.d.ts +0 -344
  848. package/build/cc/ZWaveProtocolCC.d.ts.map +0 -1
  849. package/build/cc/ZWaveProtocolCC.js +0 -1033
  850. package/build/cc/ZWaveProtocolCC.js.map +0 -1
  851. package/build/cc/index.d.ts +0 -132
  852. package/build/cc/index.d.ts.map +0 -1
  853. package/build/cc/index.js +0 -627
  854. package/build/cc/index.js.map +0 -1
  855. package/build/cc/manufacturerProprietary/Decorators.d.ts +0 -64
  856. package/build/cc/manufacturerProprietary/Decorators.d.ts.map +0 -1
  857. package/build/cc/manufacturerProprietary/Decorators.js +0 -83
  858. package/build/cc/manufacturerProprietary/Decorators.js.map +0 -1
  859. package/build/cc/manufacturerProprietary/FibaroCC.d.ts +0 -79
  860. package/build/cc/manufacturerProprietary/FibaroCC.d.ts.map +0 -1
  861. package/build/cc/manufacturerProprietary/FibaroCC.js +0 -392
  862. package/build/cc/manufacturerProprietary/FibaroCC.js.map +0 -1
  863. package/build/index.d.ts +0 -15
  864. package/build/index.d.ts.map +0 -1
  865. package/build/index.js +0 -52
  866. package/build/index.js.map +0 -1
  867. package/build/index_safe.d.ts +0 -3
  868. package/build/index_safe.d.ts.map +0 -1
  869. package/build/index_safe.js +0 -20
  870. package/build/index_safe.js.map +0 -1
  871. package/build/lib/API.d.ts +0 -271
  872. package/build/lib/API.d.ts.map +0 -1
  873. package/build/lib/API.js +0 -458
  874. package/build/lib/API.js.map +0 -1
  875. package/build/lib/CommandClass.d.ts +0 -234
  876. package/build/lib/CommandClass.d.ts.map +0 -1
  877. package/build/lib/CommandClass.js +0 -788
  878. package/build/lib/CommandClass.js.map +0 -1
  879. package/build/lib/CommandClassDecorators.d.ts +0 -112
  880. package/build/lib/CommandClassDecorators.d.ts.map +0 -1
  881. package/build/lib/CommandClassDecorators.js +0 -243
  882. package/build/lib/CommandClassDecorators.js.map +0 -1
  883. package/build/lib/EncapsulatingCommandClass.d.ts +0 -22
  884. package/build/lib/EncapsulatingCommandClass.d.ts.map +0 -1
  885. package/build/lib/EncapsulatingCommandClass.js +0 -61
  886. package/build/lib/EncapsulatingCommandClass.js.map +0 -1
  887. package/build/lib/ICommandClassContainer.d.ts.map +0 -1
  888. package/build/lib/ICommandClassContainer.js +0 -3
  889. package/build/lib/ICommandClassContainer.js.map +0 -1
  890. package/build/lib/NotificationEventPayload.d.ts +0 -10
  891. package/build/lib/NotificationEventPayload.d.ts.map +0 -1
  892. package/build/lib/NotificationEventPayload.js +0 -10
  893. package/build/lib/NotificationEventPayload.js.map +0 -1
  894. package/build/lib/Security2/Extension.d.ts.map +0 -1
  895. package/build/lib/Security2/Extension.js +0 -303
  896. package/build/lib/Security2/Extension.js.map +0 -1
  897. package/build/lib/Security2/shared.d.ts.map +0 -1
  898. package/build/lib/Security2/shared.js +0 -43
  899. package/build/lib/Security2/shared.js.map +0 -1
  900. package/build/lib/SetValueResult.d.ts.map +0 -1
  901. package/build/lib/SetValueResult.js +0 -60
  902. package/build/lib/SetValueResult.js.map +0 -1
  903. package/build/lib/Values.d.ts +0 -223
  904. package/build/lib/Values.d.ts.map +0 -1
  905. package/build/lib/Values.js +0 -172
  906. package/build/lib/Values.js.map +0 -1
  907. package/build/lib/_Types.d.ts.map +0 -1
  908. package/build/lib/_Types.js +0 -1443
  909. package/build/lib/_Types.js.map +0 -1
  910. package/build/lib/serializers.d.ts +0 -34
  911. package/build/lib/serializers.d.ts.map +0 -1
  912. package/build/lib/serializers.js +0 -107
  913. package/build/lib/serializers.js.map +0 -1
  914. package/build/lib/utils.d.ts +0 -17
  915. package/build/lib/utils.d.ts.map +0 -1
  916. package/build/lib/utils.js +0 -860
  917. package/build/lib/utils.js.map +0 -1
  918. /package/build/{lib → cjs/lib}/ICommandClassContainer.d.ts +0 -0
  919. /package/build/{lib → cjs/lib}/Security2/Extension.d.ts +0 -0
  920. /package/build/{lib → cjs/lib}/Security2/shared.d.ts +0 -0
  921. /package/build/{lib → cjs/lib}/SetValueResult.d.ts +0 -0
  922. /package/build/{lib → cjs/lib}/_Types.d.ts +0 -0
@@ -0,0 +1,1350 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var NotificationCC_1, NotificationCCSet_1, NotificationCCReport_1, NotificationCCGet_1, NotificationCCSupportedReport_1, NotificationCCEventSupportedReport_1, NotificationCCEventSupportedGet_1;
8
+ function __assertType(argName, typeName, boundHasError) {
9
+ const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
10
+ if (boundHasError()) {
11
+ throw new ZWaveError(typeName ? `${argName} is not a ${typeName}` : `${argName} has the wrong type`, ZWaveErrorCodes.Argument_Invalid);
12
+ }
13
+ }
14
+ const __assertType__NotificationCCReportOptions = $o => {
15
+ function _number($o) {
16
+ return typeof $o !== "number" ? {} : null;
17
+ }
18
+ function _uint8array($o) {
19
+ return !require("@zwave-js/shared/safe").isUint8Array($o) ? {} : null;
20
+ }
21
+ function _0($o) {
22
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
23
+ return {};
24
+ if ("alarmType" in $o && $o["alarmType"] !== undefined) {
25
+ const error = _number($o["alarmType"]);
26
+ if (error)
27
+ return error;
28
+ }
29
+ if ("alarmLevel" in $o && $o["alarmLevel"] !== undefined) {
30
+ const error = _number($o["alarmLevel"]);
31
+ if (error)
32
+ return error;
33
+ }
34
+ if ("notificationType" in $o && $o["notificationType"] !== undefined) {
35
+ const error = _number($o["notificationType"]);
36
+ if (error)
37
+ return error;
38
+ }
39
+ if ("notificationEvent" in $o && $o["notificationEvent"] !== undefined) {
40
+ const error = _number($o["notificationEvent"]);
41
+ if (error)
42
+ return error;
43
+ }
44
+ if ("notificationStatus" in $o && $o["notificationStatus"] !== undefined) {
45
+ const error = _number($o["notificationStatus"]);
46
+ if (error)
47
+ return error;
48
+ }
49
+ if ("eventParameters" in $o && $o["eventParameters"] !== undefined) {
50
+ const error = _uint8array($o["eventParameters"]);
51
+ if (error)
52
+ return error;
53
+ }
54
+ if ("sequenceNumber" in $o && $o["sequenceNumber"] !== undefined) {
55
+ const error = _number($o["sequenceNumber"]);
56
+ if (error)
57
+ return error;
58
+ }
59
+ return null;
60
+ }
61
+ return _0($o);
62
+ };
63
+ const __assertType__NotificationCCGetOptions = $o => {
64
+ function _number($o) {
65
+ return typeof $o !== "number" ? {} : null;
66
+ }
67
+ function _1($o) {
68
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
69
+ return {};
70
+ if ("alarmType" in $o && $o["alarmType"] !== undefined) {
71
+ const error = _number($o["alarmType"]);
72
+ if (error)
73
+ return error;
74
+ }
75
+ else
76
+ return {};
77
+ return null;
78
+ }
79
+ function _2($o) {
80
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
81
+ return {};
82
+ if ("notificationType" in $o && $o["notificationType"] !== undefined) {
83
+ const error = _number($o["notificationType"]);
84
+ if (error)
85
+ return error;
86
+ }
87
+ else
88
+ return {};
89
+ if ("notificationEvent" in $o && $o["notificationEvent"] !== undefined) {
90
+ const error = _number($o["notificationEvent"]);
91
+ if (error)
92
+ return error;
93
+ }
94
+ return null;
95
+ }
96
+ function su__1__2_eu($o) {
97
+ const conditions = [_1, _2];
98
+ for (const condition of conditions) {
99
+ const error = condition($o);
100
+ if (!error)
101
+ return null;
102
+ }
103
+ return {};
104
+ }
105
+ return su__1__2_eu($o);
106
+ };
107
+ const __assertType__number = $o => {
108
+ function _number($o) {
109
+ return typeof $o !== "number" ? {} : null;
110
+ }
111
+ return _number($o);
112
+ };
113
+ const __assertType__boolean = $o => {
114
+ function _boolean($o) {
115
+ return typeof $o !== "boolean" ? {} : null;
116
+ }
117
+ return _boolean($o);
118
+ };
119
+ import { getNotification, getNotificationEventName, getNotificationName, getNotificationValue, getNotificationValueName, timespan, } from "@zwave-js/core";
120
+ import { CommandClasses, Duration, MessagePriority, SecurityClass, ValueMetadata, ZWaveError, ZWaveErrorCodes, encodeBitMask, getCCName, isZWaveError, parseBitMask, validatePayload, } from "@zwave-js/core/safe";
121
+ import { Bytes, isUint8Array } from "@zwave-js/shared/safe";
122
+ import { buffer2hex, num2hex, pick } from "@zwave-js/shared/safe";
123
+ import { isArray } from "alcalzone-shared/typeguards/index.js";
124
+ import { CCAPI, POLL_VALUE, PhysicalCCAPI, throwUnsupportedProperty, } from "../lib/API.js";
125
+ import { CCRaw, CommandClass, InvalidCC, getEffectiveCCVersion, } from "../lib/CommandClass.js";
126
+ import { API, CCCommand, ccValue, ccValues, commandClass, expectedCCResponse, implementedVersion, useSupervision, } from "../lib/CommandClassDecorators.js";
127
+ import { isNotificationEventPayload } from "../lib/NotificationEventPayload.js";
128
+ import { V } from "../lib/Values.js";
129
+ import { NotificationCommand, UserCodeCommand } from "../lib/_Types.js";
130
+ import * as ccUtils from "../lib/utils.js";
131
+ import { AssociationGroupInfoCC } from "./AssociationGroupInfoCC.js";
132
+ export const NotificationCCValues = Object.freeze({
133
+ ...V.defineStaticCCValues(CommandClasses.Notification, {
134
+ ...V.staticProperty("supportsV1Alarm", undefined, {
135
+ internal: true,
136
+ supportsEndpoints: false,
137
+ }),
138
+ ...V.staticProperty("supportedNotificationTypes", undefined, {
139
+ internal: true,
140
+ supportsEndpoints: false,
141
+ }),
142
+ ...V.staticProperty("notificationMode", undefined, {
143
+ internal: true,
144
+ supportsEndpoints: false,
145
+ }),
146
+ ...V.staticProperty("lastRefresh", undefined, {
147
+ internal: true,
148
+ }),
149
+ // V1 Alarm values
150
+ ...V.staticProperty("alarmType", {
151
+ ...ValueMetadata.ReadOnlyUInt8,
152
+ label: "Alarm Type",
153
+ }),
154
+ ...V.staticProperty("alarmLevel", {
155
+ ...ValueMetadata.ReadOnlyUInt8,
156
+ label: "Alarm Level",
157
+ }),
158
+ // Simplification for the Door state variable, where we cannot know
159
+ // if any of the enum values are supported
160
+ ...V.staticPropertyAndKeyWithName("doorStateSimple", "Access Control", "Door state (simple)", {
161
+ // Must be a number for compatibility reasons
162
+ ...ValueMetadata.ReadOnlyUInt8,
163
+ label: "Door state (simple)",
164
+ states: {
165
+ [0x16]: "Window/door is open",
166
+ [0x17]: "Window/door is closed",
167
+ },
168
+ ccSpecific: {
169
+ notificationType: 0x06,
170
+ },
171
+ }, {
172
+ autoCreate: shouldAutoCreateSimpleDoorSensorValue,
173
+ }),
174
+ // Binary tilt value extracted from the Door state variable.
175
+ ...V.staticPropertyAndKeyWithName("doorTiltState", "Access Control", "Door tilt state", {
176
+ // Must be a number for compatibility reasons
177
+ ...ValueMetadata.ReadOnlyUInt8,
178
+ label: "Door tilt state",
179
+ states: {
180
+ [0x00]: "Window/door is not tilted",
181
+ [0x01]: "Window/door is tilted",
182
+ },
183
+ ccSpecific: {
184
+ notificationType: 0x06,
185
+ },
186
+ }, {
187
+ // This is created when the tilt state is first received.
188
+ autoCreate: false,
189
+ }),
190
+ }),
191
+ ...V.defineDynamicCCValues(CommandClasses.Notification, {
192
+ ...V.dynamicPropertyAndKeyWithName("supportedNotificationEvents", "supportedNotificationEvents", (notificationType) => notificationType, ({ property, propertyKey }) => property === "supportedNotificationEvents"
193
+ && typeof propertyKey === "number", undefined, { internal: true, supportsEndpoints: false }),
194
+ // Different variants of the V2 notification values:
195
+ // Unknown type
196
+ ...V.dynamicPropertyWithName("unknownNotificationType", (notificationType) => `UNKNOWN_${num2hex(notificationType)}`, ({ property }) => typeof property === "string"
197
+ && property.startsWith("UNKNOWN_0x"), (notificationType) => ({
198
+ ...ValueMetadata.ReadOnlyUInt8,
199
+ label: `Unknown notification (${num2hex(notificationType)})`,
200
+ ccSpecific: { notificationType },
201
+ })),
202
+ // Known type, unknown variable
203
+ ...V.dynamicPropertyAndKeyWithName("unknownNotificationVariable", (notificationType, notificationName) => notificationName, "unknown", ({ property, propertyKey }) => typeof property === "string" && propertyKey === "unknown", (notificationType, notificationName) => ({
204
+ ...ValueMetadata.ReadOnlyUInt8,
205
+ label: `${notificationName}: Unknown value`,
206
+ ccSpecific: { notificationType },
207
+ })),
208
+ // (Stateful) notification variable
209
+ ...V.dynamicPropertyAndKeyWithName("notificationVariable",
210
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
211
+ (notificationName, variableName) => notificationName, (notificationName, variableName) => variableName, ({ property, propertyKey }) => typeof property === "string" && typeof propertyKey === "string",
212
+ // Notification metadata is so dynamic, it does not make sense to define it here
213
+ undefined),
214
+ }),
215
+ });
216
+ function shouldAutoCreateSimpleDoorSensorValue(ctx, endpoint) {
217
+ const valueDB = ctx.tryGetValueDB(endpoint.nodeId);
218
+ if (!valueDB)
219
+ return false;
220
+ const supportedACEvents = valueDB.getValue(NotificationCCValues.supportedNotificationEvents(
221
+ // Access Control
222
+ 0x06).endpoint(endpoint.index));
223
+ if (!supportedACEvents)
224
+ return false;
225
+ return (supportedACEvents.includes(
226
+ // Window/door is open
227
+ 0x16)
228
+ && supportedACEvents.includes(
229
+ // Window/door is closed
230
+ 0x17));
231
+ }
232
+ let NotificationCCAPI = class NotificationCCAPI extends PhysicalCCAPI {
233
+ supportsCommand(cmd) {
234
+ switch (cmd) {
235
+ case NotificationCommand.Report:
236
+ case NotificationCommand.Get:
237
+ return true; // These exist starting with V1
238
+ case NotificationCommand.Set:
239
+ case NotificationCommand.SupportedGet:
240
+ return this.version >= 2;
241
+ case NotificationCommand.EventSupportedGet:
242
+ return this.version >= 3;
243
+ }
244
+ return super.supportsCommand(cmd);
245
+ }
246
+ get [POLL_VALUE]() {
247
+ return async function ({ property, propertyKey }) {
248
+ const valueId = {
249
+ commandClass: this.ccId,
250
+ endpoint: this.endpoint.index,
251
+ property,
252
+ propertyKey,
253
+ };
254
+ if (NotificationCCValues.notificationVariable.is(valueId)) {
255
+ const notificationType = this
256
+ .tryGetValueDB()?.getMetadata(valueId)?.ccSpecific
257
+ ?.notificationType;
258
+ if (notificationType != undefined) {
259
+ return this.getInternal({ notificationType });
260
+ }
261
+ }
262
+ throwUnsupportedProperty(this.ccId, property);
263
+ };
264
+ }
265
+ /**
266
+ * @internal
267
+ */
268
+ async getInternal(options) {
269
+ this.assertSupportsCommand(NotificationCommand, NotificationCommand.Get);
270
+ const cc = new NotificationCCGet({
271
+ nodeId: this.endpoint.nodeId,
272
+ endpointIndex: this.endpoint.index,
273
+ ...options,
274
+ });
275
+ return this.host.sendCommand(cc, this.commandOptions);
276
+ }
277
+ async sendReport(options) {
278
+ __assertType("options", "NotificationCCReportOptions", __assertType__NotificationCCReportOptions.bind(void 0, options));
279
+ this.assertSupportsCommand(NotificationCommand, NotificationCommand.Report);
280
+ const cc = new NotificationCCReport({
281
+ nodeId: this.endpoint.nodeId,
282
+ endpointIndex: this.endpoint.index,
283
+ ...options,
284
+ });
285
+ return this.host.sendCommand(cc, this.commandOptions);
286
+ }
287
+ async get(options) {
288
+ __assertType("options", "NotificationCCGetOptions", __assertType__NotificationCCGetOptions.bind(void 0, options));
289
+ const response = await this.getInternal(options);
290
+ if (response) {
291
+ return pick(response, [
292
+ "notificationStatus",
293
+ "notificationEvent",
294
+ "alarmLevel",
295
+ "eventParameters",
296
+ "sequenceNumber",
297
+ ]);
298
+ }
299
+ }
300
+ async set(notificationType, notificationStatus) {
301
+ __assertType("notificationType", "number", __assertType__number.bind(void 0, notificationType));
302
+ __assertType("notificationStatus", "boolean", __assertType__boolean.bind(void 0, notificationStatus));
303
+ this.assertSupportsCommand(NotificationCommand, NotificationCommand.Set);
304
+ const cc = new NotificationCCSet({
305
+ nodeId: this.endpoint.nodeId,
306
+ endpointIndex: this.endpoint.index,
307
+ notificationType,
308
+ notificationStatus,
309
+ });
310
+ return this.host.sendCommand(cc, this.commandOptions);
311
+ }
312
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
313
+ async getSupported() {
314
+ this.assertSupportsCommand(NotificationCommand, NotificationCommand.SupportedGet);
315
+ const cc = new NotificationCCSupportedGet({
316
+ nodeId: this.endpoint.nodeId,
317
+ endpointIndex: this.endpoint.index,
318
+ });
319
+ const response = await this.host.sendCommand(cc, this.commandOptions);
320
+ if (response) {
321
+ return pick(response, [
322
+ "supportsV1Alarm",
323
+ "supportedNotificationTypes",
324
+ ]);
325
+ }
326
+ }
327
+ async getSupportedEvents(notificationType) {
328
+ __assertType("notificationType", "number", __assertType__number.bind(void 0, notificationType));
329
+ this.assertSupportsCommand(NotificationCommand, NotificationCommand.EventSupportedGet);
330
+ const cc = new NotificationCCEventSupportedGet({
331
+ nodeId: this.endpoint.nodeId,
332
+ endpointIndex: this.endpoint.index,
333
+ notificationType,
334
+ });
335
+ const response = await this.host.sendCommand(cc, this.commandOptions);
336
+ return response?.supportedEvents;
337
+ }
338
+ };
339
+ NotificationCCAPI = __decorate([
340
+ API(CommandClasses.Notification)
341
+ ], NotificationCCAPI);
342
+ export { NotificationCCAPI };
343
+ export function getNotificationEnumBehavior(notification, valueConfig) {
344
+ const variable = notification.variables.find((v) => v.states.has(valueConfig.value));
345
+ if (!variable)
346
+ return "none";
347
+ const numStatesWithEnums = [...variable.states.values()].filter((val) => val.parameter?.type === "enum").length;
348
+ if (numStatesWithEnums === 0)
349
+ return "none";
350
+ // An enum value replaces the original value if there is only a single possible state
351
+ // which also has an enum parameter
352
+ if (numStatesWithEnums === 1 && variable.states.size === 1) {
353
+ return "replace";
354
+ }
355
+ return "extend";
356
+ }
357
+ export function getNotificationStateValueWithEnum(stateValue, enumValue) {
358
+ return (stateValue << 8) | enumValue;
359
+ }
360
+ /**
361
+ * Returns the metadata to use for a known notification value.
362
+ * Can be used to extend a previously defined metadata,
363
+ * e.g. for V2 notifications that don't allow discovering supported events.
364
+ */
365
+ export function getNotificationValueMetadata(previous, notification, valueConfig) {
366
+ const metadata = previous ?? {
367
+ ...ValueMetadata.ReadOnlyUInt8,
368
+ label: valueConfig.variableName,
369
+ states: {},
370
+ ccSpecific: {
371
+ notificationType: notification.type,
372
+ },
373
+ };
374
+ if (valueConfig.idle) {
375
+ metadata.states[0] = "idle";
376
+ }
377
+ const enumBehavior = getNotificationEnumBehavior(notification, valueConfig);
378
+ if (enumBehavior !== "replace") {
379
+ metadata.states[valueConfig.value] = valueConfig.label;
380
+ }
381
+ if (valueConfig.parameter?.type === "enum") {
382
+ for (const [key, label] of Object.entries(valueConfig.parameter.values)) {
383
+ const value = parseInt(key);
384
+ const stateKey = enumBehavior === "replace"
385
+ ? value
386
+ : getNotificationStateValueWithEnum(valueConfig.value, value);
387
+ metadata.states[stateKey] = label;
388
+ }
389
+ }
390
+ return metadata;
391
+ }
392
+ let NotificationCC = NotificationCC_1 = class NotificationCC extends CommandClass {
393
+ // former AlarmCC (v1..v2)
394
+ determineRequiredCCInterviews() {
395
+ return [
396
+ ...super.determineRequiredCCInterviews(),
397
+ CommandClasses.Association,
398
+ CommandClasses["Multi Channel Association"],
399
+ CommandClasses["Association Group Information"],
400
+ ];
401
+ }
402
+ async determineNotificationMode(ctx, api, supportedNotificationEvents) {
403
+ const node = this.getNode(ctx);
404
+ // SDS14223: If the supporting node does not support the Association Command Class,
405
+ // it may be concluded that the supporting node implements Pull Mode and discovery may be aborted.
406
+ if (!node.supportsCC(CommandClasses.Association))
407
+ return "pull";
408
+ if (node.supportsCC(CommandClasses["Association Group Information"])) {
409
+ try {
410
+ const groupsIssueingNotifications = AssociationGroupInfoCC
411
+ .findGroupsForIssuedCommand(ctx, node, this.ccId, NotificationCommand.Report);
412
+ return groupsIssueingNotifications.length > 0 ? "push" : "pull";
413
+ }
414
+ catch {
415
+ // We might be dealing with an older cache file, fall back to testing
416
+ }
417
+ }
418
+ ctx.logNode(node.id, {
419
+ endpoint: this.endpointIndex,
420
+ message: `determining whether this node is pull or push...`,
421
+ direction: "outbound",
422
+ });
423
+ // Find a notification type with at least one supported event
424
+ for (const [type, events] of supportedNotificationEvents) {
425
+ if (events.length === 0)
426
+ continue;
427
+ // Enable the event and request the status
428
+ await api.set(type, true);
429
+ try {
430
+ const resp = await api.get({
431
+ notificationType: type,
432
+ notificationEvent: events[0],
433
+ });
434
+ switch (resp?.notificationStatus) {
435
+ case 0xff:
436
+ return "push";
437
+ case 0xfe:
438
+ case 0x00:
439
+ return "pull";
440
+ }
441
+ }
442
+ catch {
443
+ /* ignore */
444
+ }
445
+ }
446
+ // If everything failed, e.g. because the node is V1/V2, assume this is a "push" node.
447
+ // If we assumed "pull", we would have to query the node regularly, which can cause
448
+ // the node to return old (already handled) notifications.
449
+ // https://github.com/zwave-js/node-zwave-js/issues/5626
450
+ return "push";
451
+ }
452
+ /** Whether the node implements push or pull notifications */
453
+ static getNotificationMode(ctx, node) {
454
+ return ctx
455
+ .getValueDB(node.id)
456
+ .getValue(NotificationCCValues.notificationMode.id);
457
+ }
458
+ async interview(ctx) {
459
+ const node = this.getNode(ctx);
460
+ const endpoint = this.getEndpoint(ctx);
461
+ const api = CCAPI.create(CommandClasses.Notification, ctx, endpoint).withOptions({
462
+ priority: MessagePriority.NodeQuery,
463
+ });
464
+ ctx.logNode(node.id, {
465
+ endpoint: this.endpointIndex,
466
+ message: `Interviewing ${this.ccName}...`,
467
+ direction: "none",
468
+ });
469
+ // If one Association group issues Notification Reports,
470
+ // we must associate ourselves with that channel
471
+ try {
472
+ await ccUtils.assignLifelineIssueingCommand(ctx, endpoint, this.ccId, NotificationCommand.Report);
473
+ }
474
+ catch {
475
+ ctx.logNode(node.id, {
476
+ endpoint: endpoint.index,
477
+ message: `Configuring associations to receive ${getCCName(this.ccId)} reports failed!`,
478
+ level: "warn",
479
+ });
480
+ }
481
+ let supportsV1Alarm = false;
482
+ if (api.version >= 2) {
483
+ ctx.logNode(node.id, {
484
+ endpoint: this.endpointIndex,
485
+ message: "querying supported notification types...",
486
+ direction: "outbound",
487
+ });
488
+ const suppResponse = await api.getSupported();
489
+ if (!suppResponse) {
490
+ ctx.logNode(node.id, {
491
+ endpoint: this.endpointIndex,
492
+ message: "Querying supported notification types timed out, skipping interview...",
493
+ level: "warn",
494
+ });
495
+ return;
496
+ }
497
+ supportsV1Alarm = suppResponse.supportsV1Alarm;
498
+ const supportedNotificationTypes = suppResponse.supportedNotificationTypes;
499
+ const supportedNotificationNames = supportedNotificationTypes.map(getNotificationName);
500
+ const supportedNotificationEvents = new Map();
501
+ const logMessage = `received supported notification types:${supportedNotificationNames
502
+ .map((name) => `\n· ${name}`)
503
+ .join("")}`;
504
+ ctx.logNode(node.id, {
505
+ endpoint: this.endpointIndex,
506
+ message: logMessage,
507
+ direction: "inbound",
508
+ });
509
+ if (api.version >= 3) {
510
+ // Query each notification for its supported events
511
+ for (let i = 0; i < supportedNotificationTypes.length; i++) {
512
+ const type = supportedNotificationTypes[i];
513
+ const name = supportedNotificationNames[i];
514
+ ctx.logNode(node.id, {
515
+ endpoint: this.endpointIndex,
516
+ message: `querying supported notification events for ${name}...`,
517
+ direction: "outbound",
518
+ });
519
+ const supportedEvents = await api.getSupportedEvents(type);
520
+ if (supportedEvents) {
521
+ supportedNotificationEvents.set(type, supportedEvents);
522
+ ctx.logNode(node.id, {
523
+ endpoint: this.endpointIndex,
524
+ message: `received supported notification events for ${name}: ${supportedEvents
525
+ .map(String)
526
+ .join(", ")}`,
527
+ direction: "inbound",
528
+ });
529
+ }
530
+ }
531
+ }
532
+ // Determine whether the node is a push or pull node
533
+ let notificationMode = this.getValue(ctx, NotificationCCValues.notificationMode);
534
+ if (notificationMode !== "push" && notificationMode !== "pull") {
535
+ notificationMode = await this.determineNotificationMode(ctx, api, supportedNotificationEvents);
536
+ this.setValue(ctx, NotificationCCValues.notificationMode, notificationMode);
537
+ }
538
+ if (notificationMode === "pull") {
539
+ await this.refreshValues(ctx);
540
+ } /* if (notificationMode === "push") */
541
+ else {
542
+ for (let i = 0; i < supportedNotificationTypes.length; i++) {
543
+ const type = supportedNotificationTypes[i];
544
+ const name = supportedNotificationNames[i];
545
+ const notification = getNotification(type);
546
+ // Enable reports for each notification type
547
+ ctx.logNode(node.id, {
548
+ endpoint: this.endpointIndex,
549
+ message: `enabling notifications for ${name}...`,
550
+ direction: "outbound",
551
+ });
552
+ await api.set(type, true);
553
+ // Set the value to idle if possible and there is no value yet
554
+ if (notification) {
555
+ const events = supportedNotificationEvents.get(type);
556
+ if (events) {
557
+ // Find all variables that are supported by this node and have an idle state
558
+ for (const variable of notification.variables
559
+ .filter((v) => !!v.idle)) {
560
+ if ([...variable.states.keys()].some((key) => events.includes(key))) {
561
+ const value = NotificationCCValues
562
+ .notificationVariable(notification.name, variable.name);
563
+ // Set the value to idle if it has no value yet
564
+ // TODO: GH#1028
565
+ // * do this only if the last update was more than 5 minutes ago
566
+ // * schedule an auto-idle if the last update was less than 5 minutes ago but before the current applHost start
567
+ if (this.getValue(ctx, value)
568
+ == undefined) {
569
+ this.setValue(ctx, value, 0);
570
+ }
571
+ }
572
+ }
573
+ }
574
+ }
575
+ }
576
+ }
577
+ }
578
+ // Only create metadata for V1 values if necessary
579
+ if (api.version === 1 || supportsV1Alarm) {
580
+ this.ensureMetadata(ctx, NotificationCCValues.alarmType);
581
+ this.ensureMetadata(ctx, NotificationCCValues.alarmLevel);
582
+ }
583
+ // Also create metadata for values mapped through compat config
584
+ const mappings = ctx.getDeviceConfig?.(this.nodeId)
585
+ ?.compat?.alarmMapping;
586
+ if (mappings) {
587
+ // Find all mappings to a valid notification variable
588
+ const supportedNotifications = new Map();
589
+ for (const { to } of mappings) {
590
+ const notification = getNotification(to.notificationType);
591
+ if (!notification)
592
+ continue;
593
+ const valueConfig = getNotificationValue(notification, to.notificationEvent);
594
+ // Remember supported notification types and events to create the internal values later
595
+ if (!supportedNotifications.has(to.notificationType)) {
596
+ supportedNotifications.set(to.notificationType, new Set());
597
+ }
598
+ const supportedNotificationTypesSet = supportedNotifications
599
+ .get(to.notificationType);
600
+ supportedNotificationTypesSet.add(to.notificationEvent);
601
+ if (valueConfig?.type !== "state")
602
+ continue;
603
+ const notificationValue = NotificationCCValues
604
+ .notificationVariable(notification.name, valueConfig.variableName);
605
+ // Create or update the metadata
606
+ const metadata = getNotificationValueMetadata(this.getMetadata(ctx, notificationValue), notification, valueConfig);
607
+ this.setMetadata(ctx, notificationValue, metadata);
608
+ // Set the value to idle if it has no value yet
609
+ if (valueConfig.idle) {
610
+ // TODO: GH#1028
611
+ // * do this only if the last update was more than 5 minutes ago
612
+ // * schedule an auto-idle if the last update was less than 5 minutes ago but before the current applHost start
613
+ if (this.getValue(ctx, notificationValue) == undefined) {
614
+ this.setValue(ctx, notificationValue, 0);
615
+ }
616
+ }
617
+ }
618
+ // Remember supported notification types and events in the cache
619
+ this.setValue(ctx, NotificationCCValues.supportedNotificationTypes, [...supportedNotifications.keys()]);
620
+ for (const [type, events] of supportedNotifications) {
621
+ this.setValue(ctx, NotificationCCValues.supportedNotificationEvents(type), [...events]);
622
+ }
623
+ }
624
+ // Remember that the interview is complete
625
+ this.setInterviewComplete(ctx, true);
626
+ }
627
+ async refreshValues(ctx) {
628
+ const node = this.getNode(ctx);
629
+ // Refreshing values only works on pull nodes
630
+ if (NotificationCC_1.getNotificationMode(ctx, node) === "pull") {
631
+ const endpoint = this.getEndpoint(ctx);
632
+ const api = CCAPI.create(CommandClasses.Notification, ctx, endpoint).withOptions({
633
+ priority: MessagePriority.NodeQuery,
634
+ });
635
+ // Load supported notification types and events from cache
636
+ const supportedNotificationTypes = this.getValue(ctx, NotificationCCValues.supportedNotificationTypes) ?? [];
637
+ const supportedNotificationNames = supportedNotificationTypes.map(getNotificationName);
638
+ for (let i = 0; i < supportedNotificationTypes.length; i++) {
639
+ const type = supportedNotificationTypes[i];
640
+ const name = supportedNotificationNames[i];
641
+ // Always query each notification for its current status
642
+ ctx.logNode(node.id, {
643
+ endpoint: this.endpointIndex,
644
+ message: `querying notification status for ${name}...`,
645
+ direction: "outbound",
646
+ });
647
+ const response = await api.getInternal({
648
+ notificationType: type,
649
+ });
650
+ // NotificationReports don't store their values themselves,
651
+ // because the behaviour is too complex and spans the lifetime
652
+ // of several reports. Thus we handle it in the Node instance
653
+ // @ts-expect-error
654
+ if (response)
655
+ await node.handleCommand(response);
656
+ }
657
+ // Remember when we did this
658
+ this.setValue(ctx, NotificationCCValues.lastRefresh, Date.now());
659
+ }
660
+ }
661
+ shouldRefreshValues(ctx) {
662
+ // Pull-mode nodes must be polled regularly
663
+ const isPullMode = NotificationCC_1.getNotificationMode(ctx, this.getNode(ctx)) === "pull";
664
+ if (!isPullMode)
665
+ return false;
666
+ const lastUpdated = this.getValue(ctx, NotificationCCValues.lastRefresh);
667
+ return (lastUpdated == undefined
668
+ || Date.now() - lastUpdated > timespan.hours(6));
669
+ }
670
+ };
671
+ NotificationCC = NotificationCC_1 = __decorate([
672
+ commandClass(CommandClasses.Notification),
673
+ implementedVersion(8),
674
+ ccValues(NotificationCCValues)
675
+ ], NotificationCC);
676
+ export { NotificationCC };
677
+ let NotificationCCSet = NotificationCCSet_1 = class NotificationCCSet extends NotificationCC {
678
+ constructor(options) {
679
+ super(options);
680
+ this.notificationType = options.notificationType;
681
+ this.notificationStatus = options.notificationStatus;
682
+ }
683
+ static from(raw, ctx) {
684
+ validatePayload(raw.payload.length >= 2);
685
+ const notificationType = raw.payload[0];
686
+ const notificationStatus = raw.payload[1] === 0xff;
687
+ return new NotificationCCSet_1({
688
+ nodeId: ctx.sourceNodeId,
689
+ notificationType,
690
+ notificationStatus,
691
+ });
692
+ }
693
+ notificationType;
694
+ notificationStatus;
695
+ serialize(ctx) {
696
+ this.payload = Bytes.from([
697
+ this.notificationType,
698
+ this.notificationStatus ? 0xff : 0x00,
699
+ ]);
700
+ return super.serialize(ctx);
701
+ }
702
+ toLogEntry(ctx) {
703
+ return {
704
+ ...super.toLogEntry(ctx),
705
+ message: {
706
+ "notification type": getNotificationName(this.notificationType),
707
+ status: this.notificationStatus,
708
+ },
709
+ };
710
+ }
711
+ };
712
+ NotificationCCSet = NotificationCCSet_1 = __decorate([
713
+ CCCommand(NotificationCommand.Set),
714
+ useSupervision()
715
+ ], NotificationCCSet);
716
+ export { NotificationCCSet };
717
+ let NotificationCCReport = NotificationCCReport_1 = class NotificationCCReport extends NotificationCC {
718
+ constructor(options) {
719
+ super(options);
720
+ if (options.alarmType != undefined) {
721
+ this.alarmType = options.alarmType;
722
+ this.alarmLevel = options.alarmLevel;
723
+ }
724
+ if (options.notificationType != undefined) {
725
+ this.notificationType = options.notificationType;
726
+ this.notificationStatus = options.notificationStatus ?? true;
727
+ this.notificationEvent = options.notificationEvent;
728
+ this.eventParameters = options.eventParameters;
729
+ this.sequenceNumber = options.sequenceNumber;
730
+ }
731
+ }
732
+ static from(raw, ctx) {
733
+ validatePayload(raw.payload.length >= 2);
734
+ const alarmType = raw.payload[0];
735
+ const alarmLevel = raw.payload[1];
736
+ // Byte 2 used to be zensorNetSourceNodeId in V2 and V3, but we don't care about that
737
+ if (raw.payload.length < 7) {
738
+ return new NotificationCCReport_1({
739
+ nodeId: ctx.sourceNodeId,
740
+ alarmType,
741
+ alarmLevel,
742
+ });
743
+ }
744
+ // V2+ requires the alarm bytes to be zero. Manufacturers don't care though, so we don't enforce that.
745
+ // Don't use the version to decide because we might discard notifications
746
+ // before the interview is complete
747
+ const notificationStatus = raw.payload[3];
748
+ const notificationType = raw.payload[4];
749
+ const notificationEvent = raw.payload[5];
750
+ const containsSeqNum = !!(raw.payload[6] & 0b1000_0000);
751
+ const numEventParams = raw.payload[6] & 0b11111;
752
+ let eventParameters;
753
+ if (numEventParams > 0) {
754
+ validatePayload(raw.payload.length >= 7 + numEventParams);
755
+ eventParameters = raw.payload.subarray(7, 7 + numEventParams);
756
+ }
757
+ let sequenceNumber;
758
+ if (containsSeqNum) {
759
+ validatePayload(raw.payload.length >= 7 + numEventParams + 1);
760
+ sequenceNumber = raw.payload[7 + numEventParams];
761
+ }
762
+ return new NotificationCCReport_1({
763
+ nodeId: ctx.sourceNodeId,
764
+ alarmType,
765
+ alarmLevel,
766
+ notificationStatus,
767
+ notificationType,
768
+ notificationEvent,
769
+ eventParameters,
770
+ sequenceNumber,
771
+ });
772
+ }
773
+ persistValues(ctx) {
774
+ if (!super.persistValues(ctx))
775
+ return false;
776
+ const ccVersion = getEffectiveCCVersion(ctx, this);
777
+ // Check if we need to re-interpret the alarm values somehow
778
+ if (this.alarmType != undefined
779
+ && this.alarmLevel != undefined
780
+ && this.alarmType !== 0) {
781
+ if (ccVersion >= 2) {
782
+ // Check if the device actually supports Notification CC, but chooses
783
+ // to send Alarm frames instead (GH#1034)
784
+ const supportedNotificationTypes = this.getValue(ctx, NotificationCCValues.supportedNotificationTypes);
785
+ if (isArray(supportedNotificationTypes)
786
+ && supportedNotificationTypes.includes(this.alarmType)) {
787
+ const supportedNotificationEvents = this.getValue(ctx, NotificationCCValues.supportedNotificationEvents(this.alarmType));
788
+ if (isArray(supportedNotificationEvents)
789
+ && supportedNotificationEvents.includes(this.alarmLevel)) {
790
+ // This alarm frame corresponds to a valid notification event
791
+ ctx.logNode(this.nodeId, `treating V1 Alarm frame as Notification Report`);
792
+ this.notificationType = this.alarmType;
793
+ this.notificationEvent = this.alarmLevel;
794
+ this.alarmType = undefined;
795
+ this.alarmLevel = undefined;
796
+ }
797
+ }
798
+ }
799
+ else {
800
+ // V1 Alarm, check if there is a compat option to map this V1 report to a V2+ report
801
+ const mapping = ctx.getDeviceConfig?.(this.nodeId)?.compat?.alarmMapping;
802
+ const match = mapping?.find((m) => m.from.alarmType === this.alarmType
803
+ && (m.from.alarmLevel == undefined
804
+ || m.from.alarmLevel === this.alarmLevel));
805
+ if (match) {
806
+ ctx.logNode(this.nodeId, `compat mapping found, treating V1 Alarm frame as Notification Report`);
807
+ this.notificationType = match.to.notificationType;
808
+ this.notificationEvent = match.to.notificationEvent;
809
+ if (match.to.eventParameters) {
810
+ this.eventParameters = {};
811
+ for (const [key, val] of Object.entries(match.to.eventParameters)) {
812
+ if (typeof val === "number") {
813
+ this.eventParameters[key] = val;
814
+ }
815
+ else if (val === "alarmLevel") {
816
+ this.eventParameters[key] = this.alarmLevel;
817
+ }
818
+ }
819
+ }
820
+ // After mapping we do not set the legacy V1 values to undefined
821
+ // Otherwise, adding a new mapping will be a breaking change
822
+ }
823
+ }
824
+ }
825
+ // Now we can interpret the event parameters and turn them into something useful
826
+ this.parseEventParameters(ctx);
827
+ if (this.alarmType != undefined) {
828
+ const alarmTypeValue = NotificationCCValues.alarmType;
829
+ this.ensureMetadata(ctx, alarmTypeValue);
830
+ this.setValue(ctx, alarmTypeValue, this.alarmType);
831
+ }
832
+ if (this.alarmLevel != undefined) {
833
+ const alarmLevelValue = NotificationCCValues.alarmLevel;
834
+ this.ensureMetadata(ctx, alarmLevelValue);
835
+ this.setValue(ctx, alarmLevelValue, this.alarmLevel);
836
+ }
837
+ return true;
838
+ }
839
+ alarmType;
840
+ alarmLevel;
841
+ notificationType;
842
+ notificationStatus;
843
+ notificationEvent;
844
+ eventParameters;
845
+ sequenceNumber;
846
+ toLogEntry(ctx) {
847
+ let message = {};
848
+ if (this.alarmType) {
849
+ message = {
850
+ "V1 alarm type": this.alarmType,
851
+ "V1 alarm level": this.alarmLevel,
852
+ };
853
+ }
854
+ let valueConfig;
855
+ if (this.notificationType) {
856
+ const notification = getNotification(this.notificationType);
857
+ if (notification) {
858
+ valueConfig = getNotificationValue(notification, this.notificationEvent);
859
+ }
860
+ if (valueConfig) {
861
+ message = {
862
+ ...message,
863
+ "notification type": getNotificationName(this.notificationType),
864
+ "notification status": this.notificationStatus,
865
+ [`notification ${valueConfig.type}`]: valueConfig.label
866
+ ?? `Unknown (${num2hex(this.notificationEvent)})`,
867
+ };
868
+ }
869
+ else if (this.notificationEvent === 0x00) {
870
+ message = {
871
+ ...message,
872
+ "notification type": this.notificationType,
873
+ "notification status": this.notificationStatus,
874
+ "notification state": "idle",
875
+ };
876
+ }
877
+ else {
878
+ message = {
879
+ ...message,
880
+ "notification type": this.notificationType,
881
+ "notification status": this.notificationStatus,
882
+ "notification event": num2hex(this.notificationEvent),
883
+ };
884
+ }
885
+ }
886
+ if (this.sequenceNumber != undefined) {
887
+ message["sequence number"] = this.sequenceNumber;
888
+ }
889
+ if (this.eventParameters != undefined) {
890
+ if (typeof this.eventParameters === "number") {
891
+ // Try to look up the enum label
892
+ let found = false;
893
+ if (valueConfig?.parameter?.type === "enum") {
894
+ const label = valueConfig.parameter.values[this.eventParameters];
895
+ if (label) {
896
+ message["state parameters"] = label;
897
+ found = true;
898
+ }
899
+ }
900
+ if (!found) {
901
+ message["state parameters"] = num2hex(this.eventParameters);
902
+ }
903
+ }
904
+ else if (isUint8Array(this.eventParameters)) {
905
+ message["event parameters"] = buffer2hex(this.eventParameters);
906
+ }
907
+ else if (this.eventParameters instanceof Duration) {
908
+ message["event parameters"] = this.eventParameters.toString();
909
+ }
910
+ else {
911
+ message["event parameters"] = Object.entries(this.eventParameters)
912
+ .map(([param, val]) => `\n ${param}: ${num2hex(val)}`)
913
+ .join("");
914
+ }
915
+ }
916
+ else if (valueConfig?.parameter?.type === "enum"
917
+ && valueConfig.parameter.default != undefined) {
918
+ const label = valueConfig.parameter.values[valueConfig.parameter.default];
919
+ if (label) {
920
+ message["state parameters"] = `${label} (omitted)`;
921
+ }
922
+ }
923
+ return {
924
+ ...super.toLogEntry(ctx),
925
+ message,
926
+ };
927
+ }
928
+ parseEventParameters(ctx) {
929
+ // This only makes sense for V2+ notifications
930
+ if (this.notificationType == undefined
931
+ || this.notificationEvent == undefined) {
932
+ return;
933
+ }
934
+ // Look up the received notification and value in the config
935
+ const notification = getNotification(this.notificationType);
936
+ if (!notification)
937
+ return;
938
+ const valueConfig = getNotificationValue(notification, this.notificationEvent);
939
+ if (!valueConfig)
940
+ return;
941
+ // Parse the event parameters if possible
942
+ if (valueConfig.parameter?.type === "duration") {
943
+ // This only makes sense if the event parameters are a buffer
944
+ if (!isUint8Array(this.eventParameters)) {
945
+ return;
946
+ }
947
+ // The parameters contain a Duration
948
+ this.eventParameters = Duration.parseReport(this.eventParameters[0]);
949
+ }
950
+ else if (valueConfig.parameter?.type === "commandclass") {
951
+ // This only makes sense if the event parameters are a buffer
952
+ if (!isUint8Array(this.eventParameters)) {
953
+ return;
954
+ }
955
+ // The parameters **should** contain a CC, however there might be some exceptions
956
+ if (this.eventParameters.length === 1
957
+ && notification.type === 0x06
958
+ && (this.notificationEvent === 0x05
959
+ || this.notificationEvent === 0x06)) {
960
+ // Access control -> Keypad Lock/Unlock operation
961
+ // Some devices only send the User ID, not a complete CC payload
962
+ this.eventParameters = {
963
+ userId: this.eventParameters[0],
964
+ };
965
+ }
966
+ else {
967
+ // Try to parse the event parameters - if this fails, we should still handle the notification report
968
+ try {
969
+ // Convert CommandClass instances to a standardized object representation
970
+ const cc = CommandClass.parse(this.eventParameters, {
971
+ ...ctx,
972
+ frameType: "singlecast",
973
+ sourceNodeId: this.nodeId,
974
+ // Security encapsulation is handled outside of this CC,
975
+ // so it is not needed here:
976
+ hasSecurityClass: () => false,
977
+ getHighestSecurityClass: () => SecurityClass.None,
978
+ setSecurityClass: () => { },
979
+ securityManager: undefined,
980
+ securityManager2: undefined,
981
+ securityManagerLR: undefined,
982
+ });
983
+ validatePayload(!(cc instanceof InvalidCC));
984
+ cc.encapsulatingCC = this;
985
+ if (isNotificationEventPayload(cc)) {
986
+ this.eventParameters = cc
987
+ .toNotificationEventParameters();
988
+ }
989
+ else {
990
+ // If a CC has no good toJSON() representation, we're only interested in the payload
991
+ let json = cc.toJSON();
992
+ if ("nodeId" in json
993
+ && "ccId" in json
994
+ && "payload" in json) {
995
+ json = pick(json, ["payload"]);
996
+ }
997
+ this.eventParameters = json;
998
+ }
999
+ }
1000
+ catch (e) {
1001
+ if (isZWaveError(e)
1002
+ && e.code
1003
+ === ZWaveErrorCodes.PacketFormat_InvalidPayload
1004
+ && isUint8Array(this.eventParameters)) {
1005
+ const { ccId, ccCommand } = CCRaw.parse(this.eventParameters);
1006
+ if (ccId === CommandClasses["User Code"]
1007
+ && ccCommand === UserCodeCommand.Report
1008
+ && this.eventParameters.length >= 3) {
1009
+ // Access control -> Keypad Lock/Unlock operation
1010
+ // Some devices report the user code with truncated UserCode reports
1011
+ this.eventParameters = {
1012
+ userId: this.eventParameters[2],
1013
+ };
1014
+ }
1015
+ else {
1016
+ ctx.logNode(this.nodeId, `Failed to parse Notification CC event parameters, ignoring them...`, "error");
1017
+ }
1018
+ }
1019
+ else {
1020
+ // unexpected error
1021
+ throw e;
1022
+ }
1023
+ }
1024
+ }
1025
+ }
1026
+ else if (valueConfig.parameter?.type === "value") {
1027
+ // This only makes sense if the event parameters are a buffer
1028
+ if (!isUint8Array(this.eventParameters)) {
1029
+ return;
1030
+ }
1031
+ // The parameters contain a named value
1032
+ this.eventParameters = {
1033
+ [valueConfig.parameter.propertyName]: Bytes.view(this.eventParameters)
1034
+ .readUIntBE(0, this.eventParameters.length),
1035
+ };
1036
+ }
1037
+ else if (valueConfig.parameter?.type === "enum") {
1038
+ // The parameters may contain an enum value
1039
+ this.eventParameters = isUint8Array(this.eventParameters)
1040
+ && this.eventParameters.length === 1
1041
+ ? this.eventParameters[0]
1042
+ : undefined;
1043
+ // Some devices send notifications without an event parameter when they should.
1044
+ // In this case, fall back to the default value where possible.
1045
+ if (this.eventParameters == undefined
1046
+ && valueConfig.parameter.default != undefined) {
1047
+ this.eventParameters = valueConfig.parameter.default;
1048
+ }
1049
+ }
1050
+ }
1051
+ serialize(ctx) {
1052
+ if (this.notificationType != undefined) {
1053
+ if (this.notificationEvent == undefined) {
1054
+ throw new ZWaveError(`Notification CC reports requires the notification event to be set!`, ZWaveErrorCodes.Argument_Invalid);
1055
+ }
1056
+ else if (this.eventParameters != undefined
1057
+ && !isUint8Array(this.eventParameters)) {
1058
+ throw new ZWaveError(`When sending Notification CC reports, the event parameters can only be buffers!`, ZWaveErrorCodes.Argument_Invalid);
1059
+ }
1060
+ const controlByte = (this.sequenceNumber != undefined ? 0b1000_0000 : 0)
1061
+ | ((this.eventParameters?.length ?? 0) & 0b11111);
1062
+ this.payload = Bytes.from([
1063
+ 0,
1064
+ 0,
1065
+ 0,
1066
+ 0xff,
1067
+ this.notificationType,
1068
+ this.notificationEvent,
1069
+ controlByte,
1070
+ ]);
1071
+ if (this.eventParameters) {
1072
+ this.payload = Bytes.concat([
1073
+ this.payload,
1074
+ this.eventParameters,
1075
+ ]);
1076
+ }
1077
+ if (this.sequenceNumber != undefined) {
1078
+ this.payload = Bytes.concat([
1079
+ this.payload,
1080
+ Bytes.from([this.sequenceNumber]),
1081
+ ]);
1082
+ }
1083
+ }
1084
+ else {
1085
+ this.payload = Bytes.from([
1086
+ this.alarmType ?? 0x00,
1087
+ this.alarmLevel ?? 0x00,
1088
+ ]);
1089
+ }
1090
+ return super.serialize(ctx);
1091
+ }
1092
+ };
1093
+ NotificationCCReport = NotificationCCReport_1 = __decorate([
1094
+ CCCommand(NotificationCommand.Report),
1095
+ useSupervision()
1096
+ ], NotificationCCReport);
1097
+ export { NotificationCCReport };
1098
+ let NotificationCCGet = NotificationCCGet_1 = class NotificationCCGet extends NotificationCC {
1099
+ constructor(options) {
1100
+ super(options);
1101
+ if ("alarmType" in options) {
1102
+ this.alarmType = options.alarmType;
1103
+ }
1104
+ else {
1105
+ this.notificationType = options.notificationType;
1106
+ this.notificationEvent = options.notificationEvent;
1107
+ }
1108
+ }
1109
+ static from(raw, ctx) {
1110
+ validatePayload(raw.payload.length >= 1);
1111
+ if (raw.payload.length >= 2) {
1112
+ const notificationType = raw.payload[1];
1113
+ let notificationEvent;
1114
+ if (raw.payload.length >= 3 && notificationType != 0xff) {
1115
+ notificationEvent = raw.payload[2];
1116
+ }
1117
+ return new NotificationCCGet_1({
1118
+ nodeId: ctx.sourceNodeId,
1119
+ notificationType,
1120
+ notificationEvent,
1121
+ });
1122
+ }
1123
+ else {
1124
+ const alarmType = raw.payload[0];
1125
+ return new NotificationCCGet_1({
1126
+ nodeId: ctx.sourceNodeId,
1127
+ alarmType,
1128
+ });
1129
+ }
1130
+ }
1131
+ /** Proprietary V1/V2 alarm type */
1132
+ alarmType;
1133
+ /** Regulated V3+ notification type */
1134
+ notificationType;
1135
+ notificationEvent;
1136
+ serialize(ctx) {
1137
+ const notificationEvent = this.notificationEvent === 0xff
1138
+ ? 0x00
1139
+ : this.notificationEvent;
1140
+ this.payload = Bytes.from([
1141
+ this.alarmType ?? 0x00,
1142
+ this.notificationType ?? 0xff,
1143
+ notificationEvent ?? 0x00,
1144
+ ]);
1145
+ return super.serialize(ctx);
1146
+ }
1147
+ toLogEntry(ctx) {
1148
+ const message = {};
1149
+ if (this.alarmType != undefined) {
1150
+ message["V1 alarm type"] = this.alarmType;
1151
+ }
1152
+ if (this.notificationType != undefined) {
1153
+ message["notification type"] = getNotificationName(this.notificationType);
1154
+ if (this.notificationEvent != undefined) {
1155
+ message["notification event"] = getNotificationEventName(this.notificationType, this.notificationEvent);
1156
+ }
1157
+ }
1158
+ return {
1159
+ ...super.toLogEntry(ctx),
1160
+ message,
1161
+ };
1162
+ }
1163
+ };
1164
+ NotificationCCGet = NotificationCCGet_1 = __decorate([
1165
+ CCCommand(NotificationCommand.Get),
1166
+ expectedCCResponse(NotificationCCReport)
1167
+ ], NotificationCCGet);
1168
+ export { NotificationCCGet };
1169
+ let NotificationCCSupportedReport = NotificationCCSupportedReport_1 = class NotificationCCSupportedReport extends NotificationCC {
1170
+ constructor(options) {
1171
+ super(options);
1172
+ this.supportsV1Alarm = options.supportsV1Alarm;
1173
+ this.supportedNotificationTypes = options.supportedNotificationTypes;
1174
+ }
1175
+ static from(raw, ctx) {
1176
+ validatePayload(raw.payload.length >= 1);
1177
+ const supportsV1Alarm = !!(raw.payload[0] & 0b1000_0000);
1178
+ const numBitMaskBytes = raw.payload[0] & 0b0001_1111;
1179
+ validatePayload(numBitMaskBytes > 0, raw.payload.length >= 1 + numBitMaskBytes);
1180
+ const notificationBitMask = raw.payload.subarray(1, 1 + numBitMaskBytes);
1181
+ const supportedNotificationTypes = parseBitMask(notificationBitMask,
1182
+ // bit 0 is ignored, but counting still starts at 1, so the first bit must have the value 0
1183
+ 0);
1184
+ return new NotificationCCSupportedReport_1({
1185
+ nodeId: ctx.sourceNodeId,
1186
+ supportsV1Alarm,
1187
+ supportedNotificationTypes,
1188
+ });
1189
+ }
1190
+ supportsV1Alarm;
1191
+ supportedNotificationTypes;
1192
+ serialize(ctx) {
1193
+ const bitMask = encodeBitMask(this.supportedNotificationTypes, Math.max(...this.supportedNotificationTypes), 0);
1194
+ this.payload = Bytes.concat([
1195
+ Bytes.from([
1196
+ (this.supportsV1Alarm ? 0b1000_0000 : 0) | bitMask.length,
1197
+ ]),
1198
+ bitMask,
1199
+ ]);
1200
+ return super.serialize(ctx);
1201
+ }
1202
+ toLogEntry(ctx) {
1203
+ return {
1204
+ ...super.toLogEntry(ctx),
1205
+ message: {
1206
+ "supports V1 alarm": this.supportsV1Alarm,
1207
+ "supported notification types": this.supportedNotificationTypes
1208
+ .map((t) => `\n· ${getNotificationName(t)}`)
1209
+ .join(""),
1210
+ },
1211
+ };
1212
+ }
1213
+ };
1214
+ __decorate([
1215
+ ccValue(NotificationCCValues.supportsV1Alarm)
1216
+ ], NotificationCCSupportedReport.prototype, "supportsV1Alarm", void 0);
1217
+ __decorate([
1218
+ ccValue(NotificationCCValues.supportedNotificationTypes)
1219
+ ], NotificationCCSupportedReport.prototype, "supportedNotificationTypes", void 0);
1220
+ NotificationCCSupportedReport = NotificationCCSupportedReport_1 = __decorate([
1221
+ CCCommand(NotificationCommand.SupportedReport)
1222
+ ], NotificationCCSupportedReport);
1223
+ export { NotificationCCSupportedReport };
1224
+ let NotificationCCSupportedGet = class NotificationCCSupportedGet extends NotificationCC {
1225
+ };
1226
+ NotificationCCSupportedGet = __decorate([
1227
+ CCCommand(NotificationCommand.SupportedGet),
1228
+ expectedCCResponse(NotificationCCSupportedReport)
1229
+ ], NotificationCCSupportedGet);
1230
+ export { NotificationCCSupportedGet };
1231
+ let NotificationCCEventSupportedReport = NotificationCCEventSupportedReport_1 = class NotificationCCEventSupportedReport extends NotificationCC {
1232
+ constructor(options) {
1233
+ super(options);
1234
+ this.notificationType = options.notificationType;
1235
+ this.supportedEvents = options.supportedEvents;
1236
+ }
1237
+ static from(raw, ctx) {
1238
+ validatePayload(raw.payload.length >= 1);
1239
+ const notificationType = raw.payload[0];
1240
+ const numBitMaskBytes = raw.payload[1] & 0b000_11111;
1241
+ if (numBitMaskBytes === 0) {
1242
+ // Notification type is not supported
1243
+ return new NotificationCCEventSupportedReport_1({
1244
+ nodeId: ctx.sourceNodeId,
1245
+ notificationType,
1246
+ supportedEvents: [],
1247
+ });
1248
+ }
1249
+ validatePayload(raw.payload.length >= 2 + numBitMaskBytes);
1250
+ const eventBitMask = raw.payload.subarray(2, 2 + numBitMaskBytes);
1251
+ const supportedEvents = parseBitMask(eventBitMask,
1252
+ // In this mask, bit 0 is ignored, but counting still starts at 1, so the first bit must have the value 0
1253
+ 0);
1254
+ return new NotificationCCEventSupportedReport_1({
1255
+ nodeId: ctx.sourceNodeId,
1256
+ notificationType,
1257
+ supportedEvents,
1258
+ });
1259
+ }
1260
+ persistValues(ctx) {
1261
+ if (!super.persistValues(ctx))
1262
+ return false;
1263
+ // Store which events this notification supports
1264
+ this.setValue(ctx, NotificationCCValues.supportedNotificationEvents(this.notificationType), this.supportedEvents);
1265
+ // For each event, predefine the value metadata
1266
+ const notification = getNotification(this.notificationType);
1267
+ if (!notification) {
1268
+ // This is an unknown notification
1269
+ this.setMetadata(ctx, NotificationCCValues.unknownNotificationType(this.notificationType));
1270
+ }
1271
+ else {
1272
+ // This is a standardized notification
1273
+ let isFirst = true;
1274
+ for (const value of this.supportedEvents) {
1275
+ // Find out which property we need to update
1276
+ const valueConfig = getNotificationValue(notification, value);
1277
+ if (valueConfig?.type === "state") {
1278
+ const notificationValue = NotificationCCValues
1279
+ .notificationVariable(notification.name, valueConfig.variableName);
1280
+ // After we've created the metadata initially, extend it
1281
+ const metadata = getNotificationValueMetadata(isFirst
1282
+ ? undefined
1283
+ : this.getMetadata(ctx, notificationValue), notification, valueConfig);
1284
+ this.setMetadata(ctx, notificationValue, metadata);
1285
+ isFirst = false;
1286
+ }
1287
+ }
1288
+ }
1289
+ return true;
1290
+ }
1291
+ notificationType;
1292
+ supportedEvents;
1293
+ serialize(ctx) {
1294
+ this.payload = Bytes.from([this.notificationType, 0]);
1295
+ if (this.supportedEvents.length > 0) {
1296
+ const bitMask = encodeBitMask(this.supportedEvents, Math.max(...this.supportedEvents), 0);
1297
+ this.payload[1] = bitMask.length;
1298
+ this.payload = Bytes.concat([this.payload, bitMask]);
1299
+ }
1300
+ return super.serialize(ctx);
1301
+ }
1302
+ toLogEntry(ctx) {
1303
+ return {
1304
+ ...super.toLogEntry(ctx),
1305
+ message: {
1306
+ "notification type": getNotificationName(this.notificationType),
1307
+ "supported events": this.supportedEvents
1308
+ .map((e) => `\n· ${getNotificationValueName(this.notificationType, e)}`)
1309
+ .join(""),
1310
+ },
1311
+ };
1312
+ }
1313
+ };
1314
+ NotificationCCEventSupportedReport = NotificationCCEventSupportedReport_1 = __decorate([
1315
+ CCCommand(NotificationCommand.EventSupportedReport)
1316
+ ], NotificationCCEventSupportedReport);
1317
+ export { NotificationCCEventSupportedReport };
1318
+ let NotificationCCEventSupportedGet = NotificationCCEventSupportedGet_1 = class NotificationCCEventSupportedGet extends NotificationCC {
1319
+ constructor(options) {
1320
+ super(options);
1321
+ this.notificationType = options.notificationType;
1322
+ }
1323
+ static from(raw, ctx) {
1324
+ validatePayload(raw.payload.length >= 1);
1325
+ const notificationType = raw.payload[0];
1326
+ return new NotificationCCEventSupportedGet_1({
1327
+ nodeId: ctx.sourceNodeId,
1328
+ notificationType,
1329
+ });
1330
+ }
1331
+ notificationType;
1332
+ serialize(ctx) {
1333
+ this.payload = Bytes.from([this.notificationType]);
1334
+ return super.serialize(ctx);
1335
+ }
1336
+ toLogEntry(ctx) {
1337
+ return {
1338
+ ...super.toLogEntry(ctx),
1339
+ message: {
1340
+ "notification type": getNotificationName(this.notificationType),
1341
+ },
1342
+ };
1343
+ }
1344
+ };
1345
+ NotificationCCEventSupportedGet = NotificationCCEventSupportedGet_1 = __decorate([
1346
+ CCCommand(NotificationCommand.EventSupportedGet),
1347
+ expectedCCResponse(NotificationCCEventSupportedReport)
1348
+ ], NotificationCCEventSupportedGet);
1349
+ export { NotificationCCEventSupportedGet };
1350
+ //# sourceMappingURL=NotificationCC.js.map