@zwave-js/cc 9.3.1-0-pr-4662-79458fb

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 (297) hide show
  1. package/build/cc/AlarmSensorCC.d.ts +54 -0
  2. package/build/cc/AlarmSensorCC.d.ts.map +1 -0
  3. package/build/cc/AlarmSensorCC.js +378 -0
  4. package/build/cc/AlarmSensorCC.js.map +1 -0
  5. package/build/cc/AssociationCC.d.ts +123 -0
  6. package/build/cc/AssociationCC.d.ts.map +1 -0
  7. package/build/cc/AssociationCC.js +615 -0
  8. package/build/cc/AssociationCC.js.map +1 -0
  9. package/build/cc/AssociationGroupInfoCC.d.ts +97 -0
  10. package/build/cc/AssociationGroupInfoCC.d.ts.map +1 -0
  11. package/build/cc/AssociationGroupInfoCC.js +530 -0
  12. package/build/cc/AssociationGroupInfoCC.js.map +1 -0
  13. package/build/cc/BarrierOperatorCC.d.ts +75 -0
  14. package/build/cc/BarrierOperatorCC.d.ts.map +1 -0
  15. package/build/cc/BarrierOperatorCC.js +492 -0
  16. package/build/cc/BarrierOperatorCC.js.map +1 -0
  17. package/build/cc/BasicCC.d.ts +51 -0
  18. package/build/cc/BasicCC.d.ts.map +1 -0
  19. package/build/cc/BasicCC.js +344 -0
  20. package/build/cc/BasicCC.js.map +1 -0
  21. package/build/cc/BatteryCC.d.ts +56 -0
  22. package/build/cc/BatteryCC.d.ts.map +1 -0
  23. package/build/cc/BatteryCC.js +417 -0
  24. package/build/cc/BatteryCC.js.map +1 -0
  25. package/build/cc/BinarySensorCC.d.ts +52 -0
  26. package/build/cc/BinarySensorCC.d.ts.map +1 -0
  27. package/build/cc/BinarySensorCC.js +321 -0
  28. package/build/cc/BinarySensorCC.js.map +1 -0
  29. package/build/cc/BinarySwitchCC.d.ts +55 -0
  30. package/build/cc/BinarySwitchCC.d.ts.map +1 -0
  31. package/build/cc/BinarySwitchCC.js +327 -0
  32. package/build/cc/BinarySwitchCC.js.map +1 -0
  33. package/build/cc/CRC16CC.d.ts +28 -0
  34. package/build/cc/CRC16CC.d.ts.map +1 -0
  35. package/build/cc/CRC16CC.js +109 -0
  36. package/build/cc/CRC16CC.js.map +1 -0
  37. package/build/cc/CentralSceneCC.d.ts +69 -0
  38. package/build/cc/CentralSceneCC.d.ts.map +1 -0
  39. package/build/cc/CentralSceneCC.js +443 -0
  40. package/build/cc/CentralSceneCC.js.map +1 -0
  41. package/build/cc/ClimateControlScheduleCC.d.ts +78 -0
  42. package/build/cc/ClimateControlScheduleCC.d.ts.map +1 -0
  43. package/build/cc/ClimateControlScheduleCC.js +417 -0
  44. package/build/cc/ClimateControlScheduleCC.js.map +1 -0
  45. package/build/cc/ClockCC.d.ts +40 -0
  46. package/build/cc/ClockCC.d.ts.map +1 -0
  47. package/build/cc/ClockCC.js +185 -0
  48. package/build/cc/ClockCC.js.map +1 -0
  49. package/build/cc/ColorSwitchCC.d.ts +98 -0
  50. package/build/cc/ColorSwitchCC.d.ts.map +1 -0
  51. package/build/cc/ColorSwitchCC.js +1045 -0
  52. package/build/cc/ColorSwitchCC.js.map +1 -0
  53. package/build/cc/ConfigurationCC.d.ts +315 -0
  54. package/build/cc/ConfigurationCC.d.ts.map +1 -0
  55. package/build/cc/ConfigurationCC.js +2257 -0
  56. package/build/cc/ConfigurationCC.js.map +1 -0
  57. package/build/cc/DeviceResetLocallyCC.d.ts +9 -0
  58. package/build/cc/DeviceResetLocallyCC.d.ts.map +1 -0
  59. package/build/cc/DeviceResetLocallyCC.js +28 -0
  60. package/build/cc/DeviceResetLocallyCC.js.map +1 -0
  61. package/build/cc/DoorLockCC.d.ts +116 -0
  62. package/build/cc/DoorLockCC.d.ts.map +1 -0
  63. package/build/cc/DoorLockCC.js +1112 -0
  64. package/build/cc/DoorLockCC.js.map +1 -0
  65. package/build/cc/DoorLockLoggingCC.d.ts +41 -0
  66. package/build/cc/DoorLockLoggingCC.d.ts.map +1 -0
  67. package/build/cc/DoorLockLoggingCC.js +288 -0
  68. package/build/cc/DoorLockLoggingCC.js.map +1 -0
  69. package/build/cc/EntryControlCC.d.ts +71 -0
  70. package/build/cc/EntryControlCC.d.ts.map +1 -0
  71. package/build/cc/EntryControlCC.js +492 -0
  72. package/build/cc/EntryControlCC.js.map +1 -0
  73. package/build/cc/FirmwareUpdateMetaDataCC.d.ts +148 -0
  74. package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -0
  75. package/build/cc/FirmwareUpdateMetaDataCC.js +727 -0
  76. package/build/cc/FirmwareUpdateMetaDataCC.js.map +1 -0
  77. package/build/cc/HailCC.d.ts +6 -0
  78. package/build/cc/HailCC.d.ts.map +1 -0
  79. package/build/cc/HailCC.js +23 -0
  80. package/build/cc/HailCC.js.map +1 -0
  81. package/build/cc/HumidityControlModeCC.d.ts +47 -0
  82. package/build/cc/HumidityControlModeCC.d.ts.map +1 -0
  83. package/build/cc/HumidityControlModeCC.js +288 -0
  84. package/build/cc/HumidityControlModeCC.js.map +1 -0
  85. package/build/cc/HumidityControlOperatingStateCC.d.ts +24 -0
  86. package/build/cc/HumidityControlOperatingStateCC.d.ts.map +1 -0
  87. package/build/cc/HumidityControlOperatingStateCC.js +129 -0
  88. package/build/cc/HumidityControlOperatingStateCC.js.map +1 -0
  89. package/build/cc/HumidityControlSetpointCC.d.ts +103 -0
  90. package/build/cc/HumidityControlSetpointCC.d.ts.map +1 -0
  91. package/build/cc/HumidityControlSetpointCC.js +626 -0
  92. package/build/cc/HumidityControlSetpointCC.js.map +1 -0
  93. package/build/cc/IndicatorCC.d.ts +88 -0
  94. package/build/cc/IndicatorCC.d.ts.map +1 -0
  95. package/build/cc/IndicatorCC.js +758 -0
  96. package/build/cc/IndicatorCC.js.map +1 -0
  97. package/build/cc/IrrigationCC.d.ts +278 -0
  98. package/build/cc/IrrigationCC.d.ts.map +1 -0
  99. package/build/cc/IrrigationCC.js +2062 -0
  100. package/build/cc/IrrigationCC.js.map +1 -0
  101. package/build/cc/LanguageCC.d.ts +41 -0
  102. package/build/cc/LanguageCC.d.ts.map +1 -0
  103. package/build/cc/LanguageCC.js +220 -0
  104. package/build/cc/LanguageCC.js.map +1 -0
  105. package/build/cc/LockCC.d.ts +41 -0
  106. package/build/cc/LockCC.d.ts.map +1 -0
  107. package/build/cc/LockCC.js +185 -0
  108. package/build/cc/LockCC.js.map +1 -0
  109. package/build/cc/ManufacturerProprietaryCC.d.ts +31 -0
  110. package/build/cc/ManufacturerProprietaryCC.d.ts.map +1 -0
  111. package/build/cc/ManufacturerProprietaryCC.js +275 -0
  112. package/build/cc/ManufacturerProprietaryCC.js.map +1 -0
  113. package/build/cc/ManufacturerSpecificCC.d.ts +59 -0
  114. package/build/cc/ManufacturerSpecificCC.d.ts.map +1 -0
  115. package/build/cc/ManufacturerSpecificCC.js +285 -0
  116. package/build/cc/ManufacturerSpecificCC.js.map +1 -0
  117. package/build/cc/MeterCC.d.ts +100 -0
  118. package/build/cc/MeterCC.d.ts.map +1 -0
  119. package/build/cc/MeterCC.js +820 -0
  120. package/build/cc/MeterCC.js.map +1 -0
  121. package/build/cc/MultiChannelAssociationCC.d.ts +127 -0
  122. package/build/cc/MultiChannelAssociationCC.d.ts.map +1 -0
  123. package/build/cc/MultiChannelAssociationCC.js +883 -0
  124. package/build/cc/MultiChannelAssociationCC.js.map +1 -0
  125. package/build/cc/MultiChannelCC.d.ts +164 -0
  126. package/build/cc/MultiChannelCC.d.ts.map +1 -0
  127. package/build/cc/MultiChannelCC.js +1004 -0
  128. package/build/cc/MultiChannelCC.js.map +1 -0
  129. package/build/cc/MultiCommandCC.d.ts +28 -0
  130. package/build/cc/MultiCommandCC.d.ts.map +1 -0
  131. package/build/cc/MultiCommandCC.js +137 -0
  132. package/build/cc/MultiCommandCC.js.map +1 -0
  133. package/build/cc/MultilevelSensorCC.d.ts +83 -0
  134. package/build/cc/MultilevelSensorCC.d.ts.map +1 -0
  135. package/build/cc/MultilevelSensorCC.js +633 -0
  136. package/build/cc/MultilevelSensorCC.js.map +1 -0
  137. package/build/cc/MultilevelSwitchCC.d.ts +86 -0
  138. package/build/cc/MultilevelSwitchCC.d.ts.map +1 -0
  139. package/build/cc/MultilevelSwitchCC.js +774 -0
  140. package/build/cc/MultilevelSwitchCC.js.map +1 -0
  141. package/build/cc/NoOperationCC.d.ts +17 -0
  142. package/build/cc/NoOperationCC.d.ts.map +1 -0
  143. package/build/cc/NoOperationCC.js +50 -0
  144. package/build/cc/NoOperationCC.js.map +1 -0
  145. package/build/cc/NodeNamingCC.d.ts +57 -0
  146. package/build/cc/NodeNamingCC.d.ts.map +1 -0
  147. package/build/cc/NodeNamingCC.js +313 -0
  148. package/build/cc/NodeNamingCC.js.map +1 -0
  149. package/build/cc/NotificationCC.d.ts +127 -0
  150. package/build/cc/NotificationCC.d.ts.map +1 -0
  151. package/build/cc/NotificationCC.js +1193 -0
  152. package/build/cc/NotificationCC.js.map +1 -0
  153. package/build/cc/PowerlevelCC.d.ts +63 -0
  154. package/build/cc/PowerlevelCC.d.ts.map +1 -0
  155. package/build/cc/PowerlevelCC.js +262 -0
  156. package/build/cc/PowerlevelCC.js.map +1 -0
  157. package/build/cc/ProtectionCC.d.ts +94 -0
  158. package/build/cc/ProtectionCC.d.ts.map +1 -0
  159. package/build/cc/ProtectionCC.js +630 -0
  160. package/build/cc/ProtectionCC.js.map +1 -0
  161. package/build/cc/SceneActivationCC.d.ts +34 -0
  162. package/build/cc/SceneActivationCC.d.ts.map +1 -0
  163. package/build/cc/SceneActivationCC.js +170 -0
  164. package/build/cc/SceneActivationCC.js.map +1 -0
  165. package/build/cc/SceneActuatorConfigurationCC.d.ts +52 -0
  166. package/build/cc/SceneActuatorConfigurationCC.d.ts.map +1 -0
  167. package/build/cc/SceneActuatorConfigurationCC.js +368 -0
  168. package/build/cc/SceneActuatorConfigurationCC.js.map +1 -0
  169. package/build/cc/SceneControllerConfigurationCC.d.ts +61 -0
  170. package/build/cc/SceneControllerConfigurationCC.d.ts.map +1 -0
  171. package/build/cc/SceneControllerConfigurationCC.js +444 -0
  172. package/build/cc/SceneControllerConfigurationCC.js.map +1 -0
  173. package/build/cc/Security2CC.d.ts +213 -0
  174. package/build/cc/Security2CC.d.ts.map +1 -0
  175. package/build/cc/Security2CC.js +1124 -0
  176. package/build/cc/Security2CC.js.map +1 -0
  177. package/build/cc/SecurityCC.d.ts +109 -0
  178. package/build/cc/SecurityCC.d.ts.map +1 -0
  179. package/build/cc/SecurityCC.js +609 -0
  180. package/build/cc/SecurityCC.js.map +1 -0
  181. package/build/cc/SoundSwitchCC.d.ts +87 -0
  182. package/build/cc/SoundSwitchCC.d.ts.map +1 -0
  183. package/build/cc/SoundSwitchCC.js +548 -0
  184. package/build/cc/SoundSwitchCC.js.map +1 -0
  185. package/build/cc/SupervisionCC.d.ts +63 -0
  186. package/build/cc/SupervisionCC.d.ts.map +1 -0
  187. package/build/cc/SupervisionCC.js +239 -0
  188. package/build/cc/SupervisionCC.js.map +1 -0
  189. package/build/cc/ThermostatFanModeCC.d.ts +53 -0
  190. package/build/cc/ThermostatFanModeCC.d.ts.map +1 -0
  191. package/build/cc/ThermostatFanModeCC.js +359 -0
  192. package/build/cc/ThermostatFanModeCC.js.map +1 -0
  193. package/build/cc/ThermostatFanStateCC.d.ts +24 -0
  194. package/build/cc/ThermostatFanStateCC.d.ts.map +1 -0
  195. package/build/cc/ThermostatFanStateCC.js +131 -0
  196. package/build/cc/ThermostatFanStateCC.js.map +1 -0
  197. package/build/cc/ThermostatModeCC.d.ts +58 -0
  198. package/build/cc/ThermostatModeCC.d.ts.map +1 -0
  199. package/build/cc/ThermostatModeCC.js +370 -0
  200. package/build/cc/ThermostatModeCC.js.map +1 -0
  201. package/build/cc/ThermostatOperatingStateCC.d.ts +24 -0
  202. package/build/cc/ThermostatOperatingStateCC.d.ts.map +1 -0
  203. package/build/cc/ThermostatOperatingStateCC.js +127 -0
  204. package/build/cc/ThermostatOperatingStateCC.js.map +1 -0
  205. package/build/cc/ThermostatSetbackCC.d.ts +42 -0
  206. package/build/cc/ThermostatSetbackCC.d.ts.map +1 -0
  207. package/build/cc/ThermostatSetbackCC.js +237 -0
  208. package/build/cc/ThermostatSetbackCC.js.map +1 -0
  209. package/build/cc/ThermostatSetpointCC.d.ts +98 -0
  210. package/build/cc/ThermostatSetpointCC.d.ts.map +1 -0
  211. package/build/cc/ThermostatSetpointCC.js +707 -0
  212. package/build/cc/ThermostatSetpointCC.js.map +1 -0
  213. package/build/cc/TimeCC.d.ts +78 -0
  214. package/build/cc/TimeCC.d.ts.map +1 -0
  215. package/build/cc/TimeCC.js +373 -0
  216. package/build/cc/TimeCC.js.map +1 -0
  217. package/build/cc/TimeParametersCC.d.ts +40 -0
  218. package/build/cc/TimeParametersCC.d.ts.map +1 -0
  219. package/build/cc/TimeParametersCC.js +275 -0
  220. package/build/cc/TimeParametersCC.js.map +1 -0
  221. package/build/cc/TransportServiceCC.d.ts +101 -0
  222. package/build/cc/TransportServiceCC.d.ts.map +1 -0
  223. package/build/cc/TransportServiceCC.js +404 -0
  224. package/build/cc/TransportServiceCC.js.map +1 -0
  225. package/build/cc/UserCodeCC.d.ts +219 -0
  226. package/build/cc/UserCodeCC.d.ts.map +1 -0
  227. package/build/cc/UserCodeCC.js +1526 -0
  228. package/build/cc/UserCodeCC.js.map +1 -0
  229. package/build/cc/VersionCC.d.ts +91 -0
  230. package/build/cc/VersionCC.d.ts.map +1 -0
  231. package/build/cc/VersionCC.js +654 -0
  232. package/build/cc/VersionCC.js.map +1 -0
  233. package/build/cc/WakeUpCC.d.ts +67 -0
  234. package/build/cc/WakeUpCC.d.ts.map +1 -0
  235. package/build/cc/WakeUpCC.js +425 -0
  236. package/build/cc/WakeUpCC.js.map +1 -0
  237. package/build/cc/ZWavePlusCC.d.ts +40 -0
  238. package/build/cc/ZWavePlusCC.d.ts.map +1 -0
  239. package/build/cc/ZWavePlusCC.js +269 -0
  240. package/build/cc/ZWavePlusCC.js.map +1 -0
  241. package/build/cc/index.d.ts +64 -0
  242. package/build/cc/index.d.ts.map +1 -0
  243. package/build/cc/index.js +496 -0
  244. package/build/cc/index.js.map +1 -0
  245. package/build/cc/manufacturerProprietary/FibaroCC.d.ts +62 -0
  246. package/build/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -0
  247. package/build/cc/manufacturerProprietary/FibaroCC.js +247 -0
  248. package/build/cc/manufacturerProprietary/FibaroCC.js.map +1 -0
  249. package/build/index.d.ts +11 -0
  250. package/build/index.d.ts.map +1 -0
  251. package/build/index.js +48 -0
  252. package/build/index.js.map +1 -0
  253. package/build/index_safe.d.ts +4 -0
  254. package/build/index_safe.d.ts.map +1 -0
  255. package/build/index_safe.js +30 -0
  256. package/build/index_safe.js.map +1 -0
  257. package/build/lib/API.d.ts +176 -0
  258. package/build/lib/API.d.ts.map +1 -0
  259. package/build/lib/API.js +325 -0
  260. package/build/lib/API.js.map +1 -0
  261. package/build/lib/CommandClass.d.ts +341 -0
  262. package/build/lib/CommandClass.d.ts.map +1 -0
  263. package/build/lib/CommandClass.js +1088 -0
  264. package/build/lib/CommandClass.js.map +1 -0
  265. package/build/lib/EncapsulatingCommandClass.d.ts +35 -0
  266. package/build/lib/EncapsulatingCommandClass.d.ts.map +1 -0
  267. package/build/lib/EncapsulatingCommandClass.js +53 -0
  268. package/build/lib/EncapsulatingCommandClass.js.map +1 -0
  269. package/build/lib/ICommandClassContainer.d.ts +9 -0
  270. package/build/lib/ICommandClassContainer.d.ts.map +1 -0
  271. package/build/lib/ICommandClassContainer.js +12 -0
  272. package/build/lib/ICommandClassContainer.js.map +1 -0
  273. package/build/lib/NotificationEventPayload.d.ts +11 -0
  274. package/build/lib/NotificationEventPayload.d.ts.map +1 -0
  275. package/build/lib/NotificationEventPayload.js +11 -0
  276. package/build/lib/NotificationEventPayload.js.map +1 -0
  277. package/build/lib/Security2/Extension.d.ts +87 -0
  278. package/build/lib/Security2/Extension.d.ts.map +1 -0
  279. package/build/lib/Security2/Extension.js +235 -0
  280. package/build/lib/Security2/Extension.js.map +1 -0
  281. package/build/lib/Security2/shared.d.ts +31 -0
  282. package/build/lib/Security2/shared.d.ts.map +1 -0
  283. package/build/lib/Security2/shared.js +37 -0
  284. package/build/lib/Security2/shared.js.map +1 -0
  285. package/build/lib/_Types.d.ts +1446 -0
  286. package/build/lib/_Types.d.ts.map +1 -0
  287. package/build/lib/_Types.js +1334 -0
  288. package/build/lib/_Types.js.map +1 -0
  289. package/build/lib/serializers.d.ts +24 -0
  290. package/build/lib/serializers.d.ts.map +1 -0
  291. package/build/lib/serializers.js +66 -0
  292. package/build/lib/serializers.js.map +1 -0
  293. package/build/lib/utils.d.ts +13 -0
  294. package/build/lib/utils.d.ts.map +1 -0
  295. package/build/lib/utils.js +675 -0
  296. package/build/lib/utils.js.map +1 -0
  297. package/package.json +77 -0
@@ -0,0 +1,97 @@
1
+ /// <reference types="node" />
2
+ import { CommandClasses, IZWaveEndpoint, Maybe, MessageOrCCLogEntry } from "@zwave-js/core/safe";
3
+ import type { ZWaveApplicationHost, ZWaveHost } from "@zwave-js/host/safe";
4
+ import { PhysicalCCAPI } from "../lib/API";
5
+ import { CommandClass, type CCCommandOptions, type CommandClassDeserializationOptions, type CommandClassOptions } from "../lib/CommandClass";
6
+ import { AssociationGroupInfoCommand, AssociationGroupInfoProfile } from "../lib/_Types";
7
+ export declare class AssociationGroupInfoCCAPI extends PhysicalCCAPI {
8
+ supportsCommand(cmd: AssociationGroupInfoCommand): Maybe<boolean>;
9
+ getGroupName(groupId: number): Promise<string | undefined>;
10
+ getGroupInfo(groupId: number, refreshCache?: boolean): Promise<{
11
+ mode: number;
12
+ profile: number;
13
+ eventCode: number;
14
+ hasDynamicInfo: boolean;
15
+ } | undefined>;
16
+ getCommands(groupId: number, allowCache?: boolean): Promise<AssociationGroupInfoCCCommandListReport["commands"] | undefined>;
17
+ }
18
+ export declare class AssociationGroupInfoCC extends CommandClass {
19
+ ccCommand: AssociationGroupInfoCommand;
20
+ constructor(host: ZWaveHost, options: CommandClassOptions);
21
+ determineRequiredCCInterviews(): readonly CommandClasses[];
22
+ /** Returns the name of an association group */
23
+ static getGroupNameCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, groupId: number): string | undefined;
24
+ /** Returns the association profile for an association group */
25
+ static getGroupProfileCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, groupId: number): AssociationGroupInfoProfile | undefined;
26
+ /** Returns the dictionary of all commands issued by the given association group */
27
+ static getIssuedCommandsCached(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, groupId: number): ReadonlyMap<CommandClasses, readonly number[]> | undefined;
28
+ static findGroupsForIssuedCommand(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint, ccId: CommandClasses, command: number): number[];
29
+ private static getAssociationGroupCountCached;
30
+ interview(applHost: ZWaveApplicationHost): Promise<void>;
31
+ refreshValues(applHost: ZWaveApplicationHost): Promise<void>;
32
+ }
33
+ export declare class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {
34
+ constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
35
+ persistValues(applHost: ZWaveApplicationHost): boolean;
36
+ readonly groupId: number;
37
+ readonly name: string;
38
+ toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
39
+ }
40
+ interface AssociationGroupInfoCCNameGetOptions extends CCCommandOptions {
41
+ groupId: number;
42
+ }
43
+ export declare class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {
44
+ constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | AssociationGroupInfoCCNameGetOptions);
45
+ groupId: number;
46
+ serialize(): Buffer;
47
+ toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
48
+ }
49
+ export interface AssociationGroupInfo {
50
+ groupId: number;
51
+ mode: number;
52
+ profile: number;
53
+ eventCode: number;
54
+ }
55
+ export declare class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {
56
+ constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
57
+ persistValues(applHost: ZWaveApplicationHost): boolean;
58
+ readonly isListMode: boolean;
59
+ readonly hasDynamicInfo: boolean;
60
+ readonly groups: readonly AssociationGroupInfo[];
61
+ toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
62
+ }
63
+ declare type AssociationGroupInfoCCInfoGetOptions = CCCommandOptions & {
64
+ refreshCache: boolean;
65
+ } & ({
66
+ listMode: boolean;
67
+ } | {
68
+ groupId: number;
69
+ });
70
+ export declare class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {
71
+ constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | AssociationGroupInfoCCInfoGetOptions);
72
+ refreshCache: boolean;
73
+ listMode?: boolean;
74
+ groupId?: number;
75
+ serialize(): Buffer;
76
+ toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
77
+ }
78
+ export declare class AssociationGroupInfoCCCommandListReport extends AssociationGroupInfoCC {
79
+ constructor(host: ZWaveHost, options: CommandClassDeserializationOptions);
80
+ private issuedCommands;
81
+ get groupId(): number;
82
+ get commands(): ReadonlyMap<CommandClasses, readonly number[]>;
83
+ toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
84
+ }
85
+ interface AssociationGroupInfoCCCommandListGetOptions extends CCCommandOptions {
86
+ allowCache: boolean;
87
+ groupId: number;
88
+ }
89
+ export declare class AssociationGroupInfoCCCommandListGet extends AssociationGroupInfoCC {
90
+ constructor(host: ZWaveHost, options: CommandClassDeserializationOptions | AssociationGroupInfoCCCommandListGetOptions);
91
+ allowCache: boolean;
92
+ groupId: number;
93
+ serialize(): Buffer;
94
+ toLogEntry(applHost: ZWaveApplicationHost): MessageOrCCLogEntry;
95
+ }
96
+ export {};
97
+ //# sourceMappingURL=AssociationGroupInfoCC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssociationGroupInfoCC.d.ts","sourceRoot":"","sources":["../../src/cc/AssociationGroupInfoCC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,530 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var AssociationGroupInfoCC_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AssociationGroupInfoCCCommandListGet = exports.AssociationGroupInfoCCCommandListReport = exports.AssociationGroupInfoCCInfoGet = exports.AssociationGroupInfoCCInfoReport = exports.AssociationGroupInfoCCNameGet = exports.AssociationGroupInfoCCNameReport = exports.AssociationGroupInfoCC = exports.AssociationGroupInfoCCAPI = void 0;
11
+ function __assertType(argName, typeName, boundHasError) {
12
+ const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
13
+ if (boundHasError()) {
14
+ throw new ZWaveError(typeName ? `${argName} is not a ${typeName}` : `${argName} has the wrong type`, ZWaveErrorCodes.Argument_Invalid);
15
+ }
16
+ }
17
+ const __assertType__number = $o => {
18
+ function _number($o) {
19
+ return typeof $o !== "number" ? {} : null;
20
+ }
21
+ return _number($o);
22
+ };
23
+ const __assertType__optional_boolean = $o => {
24
+ function _boolean($o) {
25
+ return typeof $o !== "boolean" ? {} : null;
26
+ }
27
+ function optional__boolean($o) {
28
+ if ($o !== undefined) {
29
+ const error = _boolean($o);
30
+ if (error)
31
+ return error;
32
+ }
33
+ return null;
34
+ }
35
+ return optional__boolean($o);
36
+ };
37
+ const safe_1 = require("@zwave-js/core/safe");
38
+ const safe_2 = require("@zwave-js/shared/safe");
39
+ const API_1 = require("../lib/API");
40
+ const CommandClass_1 = require("../lib/CommandClass");
41
+ const _Types_1 = require("../lib/_Types");
42
+ const AssociationCC_1 = require("./AssociationCC");
43
+ const MultiChannelAssociationCC_1 = require("./MultiChannelAssociationCC");
44
+ // @noSetValueAPI This CC only has get-type commands
45
+ /** Returns the ValueID used to store the name of an association group */
46
+ function getGroupNameValueID(endpointIndex, groupId) {
47
+ return {
48
+ commandClass: safe_1.CommandClasses["Association Group Information"],
49
+ endpoint: endpointIndex,
50
+ property: "name",
51
+ propertyKey: groupId,
52
+ };
53
+ }
54
+ /** Returns the ValueID used to store info for an association group */
55
+ function getGroupInfoValueID(endpointIndex, groupId) {
56
+ return {
57
+ commandClass: safe_1.CommandClasses["Association Group Information"],
58
+ endpoint: endpointIndex,
59
+ property: "info",
60
+ propertyKey: groupId,
61
+ };
62
+ }
63
+ /** Returns the ValueID used to store info for an association group */
64
+ function getIssuedCommandsValueID(endpointIndex, groupId) {
65
+ return {
66
+ commandClass: safe_1.CommandClasses["Association Group Information"],
67
+ endpoint: endpointIndex,
68
+ property: "issuedCommands",
69
+ propertyKey: groupId,
70
+ };
71
+ }
72
+ function getHasDynamicInfoValueID(endpointIndex) {
73
+ return {
74
+ commandClass: safe_1.CommandClasses["Association Group Information"],
75
+ endpoint: endpointIndex,
76
+ property: "hasDynamicInfo",
77
+ };
78
+ }
79
+ let AssociationGroupInfoCCAPI = class AssociationGroupInfoCCAPI extends API_1.PhysicalCCAPI {
80
+ supportsCommand(cmd) {
81
+ switch (cmd) {
82
+ case _Types_1.AssociationGroupInfoCommand.NameGet:
83
+ case _Types_1.AssociationGroupInfoCommand.InfoGet:
84
+ case _Types_1.AssociationGroupInfoCommand.CommandListGet:
85
+ return true; // This is mandatory
86
+ }
87
+ return super.supportsCommand(cmd);
88
+ }
89
+ async getGroupName(groupId) {
90
+ __assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
91
+ this.assertSupportsCommand(_Types_1.AssociationGroupInfoCommand, _Types_1.AssociationGroupInfoCommand.NameGet);
92
+ const cc = new AssociationGroupInfoCCNameGet(this.applHost, {
93
+ nodeId: this.endpoint.nodeId,
94
+ endpoint: this.endpoint.index,
95
+ groupId,
96
+ });
97
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
98
+ if (response)
99
+ return response.name;
100
+ }
101
+ async getGroupInfo(groupId, refreshCache = false) {
102
+ __assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
103
+ __assertType("refreshCache", "(optional) boolean", __assertType__optional_boolean.bind(void 0, refreshCache));
104
+ this.assertSupportsCommand(_Types_1.AssociationGroupInfoCommand, _Types_1.AssociationGroupInfoCommand.InfoGet);
105
+ const cc = new AssociationGroupInfoCCInfoGet(this.applHost, {
106
+ nodeId: this.endpoint.nodeId,
107
+ endpoint: this.endpoint.index,
108
+ groupId,
109
+ refreshCache,
110
+ });
111
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
112
+ // SDS13782 says: If List Mode is set to 0, the Group Count field MUST be set to 1.
113
+ // But that's not always the case. Apparently some endpoints return 0 groups
114
+ // although they support AGI CC
115
+ if (response && response.groups.length > 0) {
116
+ const { groupId: _, ...info } = response.groups[0];
117
+ return {
118
+ hasDynamicInfo: response.hasDynamicInfo,
119
+ ...info,
120
+ };
121
+ }
122
+ }
123
+ async getCommands(groupId, allowCache = true) {
124
+ __assertType("groupId", "number", __assertType__number.bind(void 0, groupId));
125
+ __assertType("allowCache", "(optional) boolean", __assertType__optional_boolean.bind(void 0, allowCache));
126
+ this.assertSupportsCommand(_Types_1.AssociationGroupInfoCommand, _Types_1.AssociationGroupInfoCommand.CommandListGet);
127
+ const cc = new AssociationGroupInfoCCCommandListGet(this.applHost, {
128
+ nodeId: this.endpoint.nodeId,
129
+ endpoint: this.endpoint.index,
130
+ groupId,
131
+ allowCache,
132
+ });
133
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
134
+ if (response)
135
+ return response.commands;
136
+ }
137
+ };
138
+ AssociationGroupInfoCCAPI = __decorate([
139
+ (0, CommandClass_1.API)(safe_1.CommandClasses["Association Group Information"])
140
+ ], AssociationGroupInfoCCAPI);
141
+ exports.AssociationGroupInfoCCAPI = AssociationGroupInfoCCAPI;
142
+ let AssociationGroupInfoCC = AssociationGroupInfoCC_1 = class AssociationGroupInfoCC extends CommandClass_1.CommandClass {
143
+ constructor(host, options) {
144
+ super(host, options);
145
+ this.registerValue(getGroupNameValueID(0, 0).property, {
146
+ internal: true,
147
+ });
148
+ this.registerValue(getGroupInfoValueID(0, 0).property, {
149
+ internal: true,
150
+ });
151
+ }
152
+ determineRequiredCCInterviews() {
153
+ // AssociationCC must be interviewed after Z-Wave+ if that is supported
154
+ return [
155
+ ...super.determineRequiredCCInterviews(),
156
+ safe_1.CommandClasses.Association,
157
+ safe_1.CommandClasses["Multi Channel Association"],
158
+ ];
159
+ }
160
+ /** Returns the name of an association group */
161
+ static getGroupNameCached(applHost, endpoint, groupId) {
162
+ return applHost
163
+ .getValueDB(endpoint.nodeId)
164
+ .getValue(getGroupNameValueID(endpoint.index, groupId));
165
+ }
166
+ /** Returns the association profile for an association group */
167
+ static getGroupProfileCached(applHost, endpoint, groupId) {
168
+ var _a;
169
+ return (_a = applHost.getValueDB(endpoint.nodeId).getValue(getGroupInfoValueID(endpoint.index, groupId))) === null || _a === void 0 ? void 0 : _a.profile;
170
+ }
171
+ /** Returns the dictionary of all commands issued by the given association group */
172
+ static getIssuedCommandsCached(applHost, endpoint, groupId) {
173
+ return applHost
174
+ .getValueDB(endpoint.nodeId)
175
+ .getValue(getIssuedCommandsValueID(endpoint.index, groupId));
176
+ }
177
+ static findGroupsForIssuedCommand(applHost, endpoint, ccId, command) {
178
+ const ret = [];
179
+ const associationGroupCount = this.getAssociationGroupCountCached(applHost, endpoint);
180
+ for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
181
+ // Scan the issued commands of all groups if there's a match
182
+ const issuedCommands = this.getIssuedCommandsCached(applHost, endpoint, groupId);
183
+ if (!issuedCommands)
184
+ continue;
185
+ if (issuedCommands.has(ccId) &&
186
+ issuedCommands.get(ccId).includes(command)) {
187
+ ret.push(groupId);
188
+ continue;
189
+ }
190
+ }
191
+ return ret;
192
+ }
193
+ static getAssociationGroupCountCached(applHost, endpoint) {
194
+ // The association group count is either determined by the
195
+ // Association CC or the Multi Channel Association CC
196
+ return (
197
+ // First query the Multi Channel Association CC
198
+ (endpoint.supportsCC(safe_1.CommandClasses["Multi Channel Association"]) &&
199
+ MultiChannelAssociationCC_1.MultiChannelAssociationCC.getGroupCountCached(applHost, endpoint)) ||
200
+ // Then the Association CC
201
+ (endpoint.supportsCC(safe_1.CommandClasses.Association) &&
202
+ AssociationCC_1.AssociationCC.getGroupCountCached(applHost, endpoint)) ||
203
+ // And fall back to 0
204
+ 0);
205
+ }
206
+ async interview(applHost) {
207
+ const node = this.getNode(applHost);
208
+ const endpoint = this.getEndpoint(applHost);
209
+ const api = API_1.CCAPI.create(safe_1.CommandClasses["Association Group Information"], applHost, endpoint).withOptions({ priority: safe_1.MessagePriority.NodeQuery });
210
+ applHost.controllerLog.logNode(node.id, {
211
+ endpoint: this.endpointIndex,
212
+ message: `Interviewing ${this.ccName}...`,
213
+ direction: "none",
214
+ });
215
+ const associationGroupCount = AssociationGroupInfoCC_1.getAssociationGroupCountCached(applHost, endpoint);
216
+ for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
217
+ // First get the group's name
218
+ applHost.controllerLog.logNode(node.id, {
219
+ endpoint: this.endpointIndex,
220
+ message: `Association group #${groupId}: Querying name...`,
221
+ direction: "outbound",
222
+ });
223
+ const name = await api.getGroupName(groupId);
224
+ if (name) {
225
+ const logMessage = `Association group #${groupId} has name "${name}"`;
226
+ applHost.controllerLog.logNode(node.id, {
227
+ endpoint: this.endpointIndex,
228
+ message: logMessage,
229
+ direction: "inbound",
230
+ });
231
+ }
232
+ // Then the command list
233
+ applHost.controllerLog.logNode(node.id, {
234
+ endpoint: this.endpointIndex,
235
+ message: `Association group #${groupId}: Querying command list...`,
236
+ direction: "outbound",
237
+ });
238
+ await api.getCommands(groupId);
239
+ // Not sure how to log this
240
+ }
241
+ // Finally query each group for its information
242
+ await this.refreshValues(applHost);
243
+ // Remember that the interview is complete
244
+ this.setInterviewComplete(applHost, true);
245
+ }
246
+ async refreshValues(applHost) {
247
+ const node = this.getNode(applHost);
248
+ const endpoint = this.getEndpoint(applHost);
249
+ const api = API_1.CCAPI.create(safe_1.CommandClasses["Association Group Information"], applHost, endpoint).withOptions({ priority: safe_1.MessagePriority.NodeQuery });
250
+ const valueDB = this.getValueDB(applHost);
251
+ // Query the information for each group (this is the only thing that could be dynamic)
252
+ const associationGroupCount = AssociationGroupInfoCC_1.getAssociationGroupCountCached(applHost, endpoint);
253
+ const hasDynamicInfo = valueDB.getValue(getHasDynamicInfoValueID(this.endpointIndex));
254
+ for (let groupId = 1; groupId <= associationGroupCount; groupId++) {
255
+ // Then its information
256
+ applHost.controllerLog.logNode(node.id, {
257
+ endpoint: this.endpointIndex,
258
+ message: `Association group #${groupId}: Querying info...`,
259
+ direction: "outbound",
260
+ });
261
+ const info = await api.getGroupInfo(groupId, !!hasDynamicInfo);
262
+ if (info) {
263
+ const logMessage = `Received info for association group #${groupId}:
264
+ info is dynamic: ${info.hasDynamicInfo}
265
+ profile: ${(0, safe_2.getEnumMemberName)(_Types_1.AssociationGroupInfoProfile, info.profile)}`;
266
+ applHost.controllerLog.logNode(node.id, {
267
+ endpoint: this.endpointIndex,
268
+ message: logMessage,
269
+ direction: "inbound",
270
+ });
271
+ }
272
+ }
273
+ }
274
+ };
275
+ AssociationGroupInfoCC = AssociationGroupInfoCC_1 = __decorate([
276
+ (0, CommandClass_1.commandClass)(safe_1.CommandClasses["Association Group Information"]),
277
+ (0, CommandClass_1.implementedVersion)(3)
278
+ ], AssociationGroupInfoCC);
279
+ exports.AssociationGroupInfoCC = AssociationGroupInfoCC;
280
+ let AssociationGroupInfoCCNameReport = class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {
281
+ constructor(host, options) {
282
+ super(host, options);
283
+ (0, safe_1.validatePayload)(this.payload.length >= 2);
284
+ this.groupId = this.payload[0];
285
+ const nameLength = this.payload[1];
286
+ (0, safe_1.validatePayload)(this.payload.length >= 2 + nameLength);
287
+ // The specs don't allow 0-terminated string, but some devices use them
288
+ // So we need to cut them off
289
+ this.name = (0, safe_2.cpp2js)(this.payload.slice(2, 2 + nameLength).toString("utf8"));
290
+ }
291
+ persistValues(applHost) {
292
+ if (!super.persistValues(applHost))
293
+ return false;
294
+ const valueDB = this.getValueDB(applHost);
295
+ const valueId = getGroupNameValueID(this.endpointIndex, this.groupId);
296
+ valueDB.setValue(valueId, this.name);
297
+ return true;
298
+ }
299
+ toLogEntry(applHost) {
300
+ return {
301
+ ...super.toLogEntry(applHost),
302
+ message: {
303
+ "group id": this.groupId,
304
+ name: this.name,
305
+ },
306
+ };
307
+ }
308
+ };
309
+ AssociationGroupInfoCCNameReport = __decorate([
310
+ (0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.NameReport)
311
+ ], AssociationGroupInfoCCNameReport);
312
+ exports.AssociationGroupInfoCCNameReport = AssociationGroupInfoCCNameReport;
313
+ let AssociationGroupInfoCCNameGet = class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {
314
+ constructor(host, options) {
315
+ super(host, options);
316
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
317
+ // TODO: Deserialize payload
318
+ throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
319
+ }
320
+ else {
321
+ this.groupId = options.groupId;
322
+ }
323
+ }
324
+ serialize() {
325
+ this.payload = Buffer.from([this.groupId]);
326
+ return super.serialize();
327
+ }
328
+ toLogEntry(applHost) {
329
+ return {
330
+ ...super.toLogEntry(applHost),
331
+ message: { "group id": this.groupId },
332
+ };
333
+ }
334
+ };
335
+ AssociationGroupInfoCCNameGet = __decorate([
336
+ (0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.NameGet),
337
+ (0, CommandClass_1.expectedCCResponse)(AssociationGroupInfoCCNameReport)
338
+ ], AssociationGroupInfoCCNameGet);
339
+ exports.AssociationGroupInfoCCNameGet = AssociationGroupInfoCCNameGet;
340
+ let AssociationGroupInfoCCInfoReport = class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {
341
+ constructor(host, options) {
342
+ super(host, options);
343
+ (0, safe_1.validatePayload)(this.payload.length >= 1);
344
+ this.isListMode = !!(this.payload[0] & 128);
345
+ this.hasDynamicInfo = !!(this.payload[0] & 64);
346
+ const groupCount = this.payload[0] & 63;
347
+ // each group requires 7 bytes of payload
348
+ (0, safe_1.validatePayload)(this.payload.length >= 1 + groupCount * 7);
349
+ const _groups = [];
350
+ for (let i = 0; i < groupCount; i++) {
351
+ const offset = 1 + i * 7;
352
+ // Parse the payload
353
+ const groupBytes = this.payload.slice(offset, offset + 7);
354
+ const groupId = groupBytes[0];
355
+ const mode = 0; //groupBytes[1];
356
+ const profile = groupBytes.readUInt16BE(2);
357
+ const eventCode = 0; // groupBytes.readUInt16BE(5);
358
+ _groups.push({ groupId, mode, profile, eventCode });
359
+ }
360
+ this.groups = _groups;
361
+ }
362
+ persistValues(applHost) {
363
+ if (!super.persistValues(applHost))
364
+ return false;
365
+ const valueDB = this.getValueDB(applHost);
366
+ for (const group of this.groups) {
367
+ const { groupId, mode, profile, eventCode } = group;
368
+ const valueId = getGroupInfoValueID(this.endpointIndex, groupId);
369
+ valueDB.setValue(valueId, {
370
+ mode,
371
+ profile,
372
+ eventCode,
373
+ });
374
+ }
375
+ return true;
376
+ }
377
+ toLogEntry(applHost) {
378
+ return {
379
+ ...super.toLogEntry(applHost),
380
+ message: {
381
+ "is list mode": this.isListMode,
382
+ "has dynamic info": this.hasDynamicInfo,
383
+ groups: `${this.groups
384
+ .map((g) => `
385
+ · Group #${g.groupId}
386
+ mode: ${g.mode}
387
+ profile: ${g.profile}
388
+ event code: ${g.eventCode}`)
389
+ .join("")}`,
390
+ },
391
+ };
392
+ }
393
+ };
394
+ __decorate([
395
+ (0, CommandClass_1.ccValue)({ internal: true })
396
+ ], AssociationGroupInfoCCInfoReport.prototype, "hasDynamicInfo", void 0);
397
+ AssociationGroupInfoCCInfoReport = __decorate([
398
+ (0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.InfoReport)
399
+ ], AssociationGroupInfoCCInfoReport);
400
+ exports.AssociationGroupInfoCCInfoReport = AssociationGroupInfoCCInfoReport;
401
+ let AssociationGroupInfoCCInfoGet = class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {
402
+ constructor(host, options) {
403
+ super(host, options);
404
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
405
+ // TODO: Deserialize payload
406
+ throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
407
+ }
408
+ else {
409
+ this.refreshCache = options.refreshCache;
410
+ if ("listMode" in options)
411
+ this.listMode = options.listMode;
412
+ if ("groupId" in options)
413
+ this.groupId = options.groupId;
414
+ }
415
+ }
416
+ serialize() {
417
+ const isListMode = this.listMode === true;
418
+ const optionByte = (this.refreshCache ? 128 : 0) |
419
+ (isListMode ? 64 : 0);
420
+ this.payload = Buffer.from([
421
+ optionByte,
422
+ isListMode ? 0 : this.groupId,
423
+ ]);
424
+ return super.serialize();
425
+ }
426
+ toLogEntry(applHost) {
427
+ const message = {};
428
+ if (this.groupId != undefined) {
429
+ message["group id"] = this.groupId;
430
+ }
431
+ if (this.listMode != undefined) {
432
+ message["list mode"] = this.listMode;
433
+ }
434
+ message["refresh cache"] = this.refreshCache;
435
+ return {
436
+ ...super.toLogEntry(applHost),
437
+ message,
438
+ };
439
+ }
440
+ };
441
+ AssociationGroupInfoCCInfoGet = __decorate([
442
+ (0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.InfoGet),
443
+ (0, CommandClass_1.expectedCCResponse)(AssociationGroupInfoCCInfoReport)
444
+ ], AssociationGroupInfoCCInfoGet);
445
+ exports.AssociationGroupInfoCCInfoGet = AssociationGroupInfoCCInfoGet;
446
+ let AssociationGroupInfoCCCommandListReport = class AssociationGroupInfoCCCommandListReport extends AssociationGroupInfoCC {
447
+ constructor(host, options) {
448
+ super(host, options);
449
+ (0, safe_1.validatePayload)(this.payload.length >= 2);
450
+ const groupId = this.payload[0];
451
+ const listLength = this.payload[1];
452
+ (0, safe_1.validatePayload)(this.payload.length >= 2 + listLength);
453
+ const listBytes = this.payload.slice(2, 2 + listLength);
454
+ // Parse all CC ids and commands
455
+ let offset = 0;
456
+ const commands = new Map();
457
+ while (offset < listLength) {
458
+ const { ccId, bytesRead } = (0, safe_1.parseCCId)(listBytes, offset);
459
+ const command = listBytes[offset + bytesRead];
460
+ if (!commands.has(ccId))
461
+ commands.set(ccId, []);
462
+ commands.get(ccId).push(command);
463
+ offset += bytesRead + 1;
464
+ }
465
+ this.issuedCommands = [groupId, commands];
466
+ }
467
+ get groupId() {
468
+ return this.issuedCommands[0];
469
+ }
470
+ get commands() {
471
+ return this.issuedCommands[1];
472
+ }
473
+ toLogEntry(applHost) {
474
+ return {
475
+ ...super.toLogEntry(applHost),
476
+ message: {
477
+ "group id": this.groupId,
478
+ commands: `${[...this.commands]
479
+ .map(([cc, cmds]) => {
480
+ return `\n· ${(0, safe_1.getCCName)(cc)}: ${cmds
481
+ .map((cmd) => (0, safe_2.num2hex)(cmd))
482
+ .join(", ")}`;
483
+ })
484
+ .join("")}`,
485
+ },
486
+ };
487
+ }
488
+ };
489
+ __decorate([
490
+ (0, CommandClass_1.ccKeyValuePair)({ internal: true })
491
+ ], AssociationGroupInfoCCCommandListReport.prototype, "issuedCommands", void 0);
492
+ AssociationGroupInfoCCCommandListReport = __decorate([
493
+ (0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.CommandListReport)
494
+ ], AssociationGroupInfoCCCommandListReport);
495
+ exports.AssociationGroupInfoCCCommandListReport = AssociationGroupInfoCCCommandListReport;
496
+ let AssociationGroupInfoCCCommandListGet = class AssociationGroupInfoCCCommandListGet extends AssociationGroupInfoCC {
497
+ constructor(host, options) {
498
+ super(host, options);
499
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
500
+ // TODO: Deserialize payload
501
+ throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
502
+ }
503
+ else {
504
+ this.allowCache = options.allowCache;
505
+ this.groupId = options.groupId;
506
+ }
507
+ }
508
+ serialize() {
509
+ this.payload = Buffer.from([
510
+ this.allowCache ? 128 : 0,
511
+ this.groupId,
512
+ ]);
513
+ return super.serialize();
514
+ }
515
+ toLogEntry(applHost) {
516
+ return {
517
+ ...super.toLogEntry(applHost),
518
+ message: {
519
+ "group id": this.groupId,
520
+ "allow cache": this.allowCache,
521
+ },
522
+ };
523
+ }
524
+ };
525
+ AssociationGroupInfoCCCommandListGet = __decorate([
526
+ (0, CommandClass_1.CCCommand)(_Types_1.AssociationGroupInfoCommand.CommandListGet),
527
+ (0, CommandClass_1.expectedCCResponse)(AssociationGroupInfoCCCommandListReport)
528
+ ], AssociationGroupInfoCCCommandListGet);
529
+ exports.AssociationGroupInfoCCCommandListGet = AssociationGroupInfoCCCommandListGet;
530
+ //# sourceMappingURL=AssociationGroupInfoCC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssociationGroupInfoCC.js","sourceRoot":"","sources":["../../src/cc/AssociationGroupInfoCC.ts"],"names":[],"mappings":"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"}