@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,176 @@
1
+ import { CommandClasses, Duration, IVirtualEndpoint, IZWaveEndpoint, IZWaveNode, Maybe, NODE_ID_BROADCAST, SendCommandOptions, TXReport, ValueChangeOptions, ValueDB, ValueID } from "@zwave-js/core";
2
+ import type { ZWaveApplicationHost } from "@zwave-js/host";
3
+ import { OnlyMethods } from "@zwave-js/shared";
4
+ export declare type ValueIDProperties = Pick<ValueID, "property" | "propertyKey">;
5
+ /** Used to identify the method on the CC API class that handles setting values on nodes directly */
6
+ export declare const SET_VALUE: unique symbol;
7
+ export declare type SetValueImplementation = (property: ValueIDProperties, value: unknown, options?: SetValueAPIOptions) => Promise<void>;
8
+ /**
9
+ * A generic options bag for the `setValue` API.
10
+ * Each implementation will choose the options that are relevant for it, so you can use the same options everywhere.
11
+ * @publicAPI
12
+ */
13
+ export declare type SetValueAPIOptions = Partial<ValueChangeOptions>;
14
+ /** Used to identify the method on the CC API class that handles polling values from nodes */
15
+ export declare const POLL_VALUE: unique symbol;
16
+ export declare type PollValueImplementation<T = unknown> = (property: ValueIDProperties) => Promise<T | undefined>;
17
+ export declare function throwUnsupportedProperty(cc: CommandClasses, property: string | number): never;
18
+ export declare function throwUnsupportedPropertyKey(cc: CommandClasses, property: string | number, propertyKey: string | number): never;
19
+ export declare function throwMissingPropertyKey(cc: CommandClasses, property: string | number): never;
20
+ export declare function throwWrongValueType(cc: CommandClasses, property: string | number, expectedType: string, receivedType: string): never;
21
+ export interface SchedulePollOptions {
22
+ duration?: Duration;
23
+ transition?: "fast" | "slow";
24
+ }
25
+ /**
26
+ * The base class for all CC APIs exposed via `Node.commandClasses.<CCName>`
27
+ * @publicAPI
28
+ */
29
+ export declare class CCAPI {
30
+ protected readonly applHost: ZWaveApplicationHost;
31
+ protected readonly endpoint: IZWaveEndpoint | IVirtualEndpoint;
32
+ constructor(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint | IVirtualEndpoint);
33
+ static create<T extends CommandClasses>(ccId: T, applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint | IVirtualEndpoint, requireSupport?: boolean): CommandClasses extends T ? CCAPI : CCToAPI<T>;
34
+ /**
35
+ * The identifier of the Command Class this API is for
36
+ */
37
+ readonly ccId: CommandClasses;
38
+ protected [SET_VALUE]: SetValueImplementation | undefined;
39
+ /**
40
+ * Can be used on supported CC APIs to set a CC value by property name (and optionally the property key)
41
+ */
42
+ get setValue(): SetValueImplementation | undefined;
43
+ /** Whether a successful setValue call should imply that the value was successfully updated */
44
+ isSetValueOptimistic(valueId: ValueID): boolean;
45
+ protected [POLL_VALUE]: PollValueImplementation | undefined;
46
+ /**
47
+ * Can be used on supported CC APIs to poll a CC value by property name (and optionally the property key)
48
+ */
49
+ get pollValue(): PollValueImplementation | undefined;
50
+ /**
51
+ * Schedules a value to be polled after a given time. Schedules are deduplicated on a per-property basis.
52
+ * @returns `true` if the poll was scheduled, `false` otherwise
53
+ */
54
+ protected schedulePoll(property: ValueIDProperties, expectedValue: unknown, { duration, transition }?: SchedulePollOptions): boolean;
55
+ /**
56
+ * Retrieves the version of the given CommandClass this endpoint implements
57
+ */
58
+ get version(): number;
59
+ /** Determines if this simplified API instance may be used. */
60
+ isSupported(): boolean;
61
+ /**
62
+ * Determine whether the linked node supports a specific command of this command class.
63
+ * "unknown" means that the information has not been received yet
64
+ */
65
+ supportsCommand(command: number): Maybe<boolean>;
66
+ protected assertSupportsCommand(commandEnum: unknown, command: number): void;
67
+ protected assertPhysicalEndpoint(endpoint: IZWaveEndpoint | IVirtualEndpoint): asserts endpoint is IZWaveEndpoint;
68
+ /** Returns the command options to use for sendCommand calls */
69
+ protected get commandOptions(): SendCommandOptions;
70
+ /** Creates an instance of this API, scoped to use the given options */
71
+ withOptions(options: SendCommandOptions): this;
72
+ /** Creates an instance of this API which (if supported) will return TX reports along with the result. */
73
+ withTXReport<T extends this>(): WithTXReport<T>;
74
+ protected isSinglecast(): this is this & {
75
+ endpoint: IZWaveEndpoint;
76
+ };
77
+ protected isMulticast(): this is this & {
78
+ endpoint: IVirtualEndpoint & {
79
+ nodeId: number[];
80
+ };
81
+ };
82
+ protected isBroadcast(): this is this & {
83
+ endpoint: IVirtualEndpoint & {
84
+ nodeId: typeof NODE_ID_BROADCAST;
85
+ };
86
+ };
87
+ /**
88
+ * Returns the node this CC API is linked to. Throws if the controller is not yet ready.
89
+ */
90
+ getNode(): IZWaveNode | undefined;
91
+ /** Returns the value DB for this CC API's node (if it can be safely accessed) */
92
+ protected tryGetValueDB(): ValueDB | undefined;
93
+ /** Returns the value DB for this CC's node (or throws if it cannot be accessed) */
94
+ protected getValueDB(): ValueDB;
95
+ }
96
+ /** A CC API that is only available for physical endpoints */
97
+ export declare class PhysicalCCAPI extends CCAPI {
98
+ constructor(applHost: ZWaveApplicationHost, endpoint: IZWaveEndpoint | IVirtualEndpoint);
99
+ protected readonly endpoint: IZWaveEndpoint;
100
+ }
101
+ export declare type CCToName<CC extends CommandClasses> = [CC] extends [
102
+ typeof CommandClasses["Alarm Sensor"]
103
+ ] ? "Alarm Sensor" : [CC] extends [typeof CommandClasses["Association"]] ? "Association" : [CC] extends [typeof CommandClasses["Association Group Information"]] ? "Association Group Information" : [CC] extends [typeof CommandClasses["Barrier Operator"]] ? "Barrier Operator" : [CC] extends [typeof CommandClasses["Basic"]] ? "Basic" : [CC] extends [typeof CommandClasses["Battery"]] ? "Battery" : [CC] extends [typeof CommandClasses["Binary Sensor"]] ? "Binary Sensor" : [CC] extends [typeof CommandClasses["Binary Switch"]] ? "Binary Switch" : [CC] extends [typeof CommandClasses["CRC-16 Encapsulation"]] ? "CRC-16 Encapsulation" : [CC] extends [typeof CommandClasses["Central Scene"]] ? "Central Scene" : [CC] extends [typeof CommandClasses["Climate Control Schedule"]] ? "Climate Control Schedule" : [CC] extends [typeof CommandClasses["Clock"]] ? "Clock" : [CC] extends [typeof CommandClasses["Color Switch"]] ? "Color Switch" : [CC] extends [typeof CommandClasses["Configuration"]] ? "Configuration" : [CC] extends [typeof CommandClasses["Door Lock"]] ? "Door Lock" : [CC] extends [typeof CommandClasses["Door Lock Logging"]] ? "Door Lock Logging" : [CC] extends [typeof CommandClasses["Entry Control"]] ? "Entry Control" : [CC] extends [typeof CommandClasses["Firmware Update Meta Data"]] ? "Firmware Update Meta Data" : [CC] extends [typeof CommandClasses["Humidity Control Mode"]] ? "Humidity Control Mode" : [CC] extends [typeof CommandClasses["Humidity Control Operating State"]] ? "Humidity Control Operating State" : [CC] extends [typeof CommandClasses["Humidity Control Setpoint"]] ? "Humidity Control Setpoint" : [CC] extends [typeof CommandClasses["Indicator"]] ? "Indicator" : [CC] extends [typeof CommandClasses["Irrigation"]] ? "Irrigation" : [CC] extends [typeof CommandClasses["Language"]] ? "Language" : [CC] extends [typeof CommandClasses["Lock"]] ? "Lock" : [CC] extends [typeof CommandClasses["Manufacturer Proprietary"]] ? "Manufacturer Proprietary" : [CC] extends [typeof CommandClasses["Manufacturer Specific"]] ? "Manufacturer Specific" : [CC] extends [typeof CommandClasses["Meter"]] ? "Meter" : [CC] extends [typeof CommandClasses["Multi Channel Association"]] ? "Multi Channel Association" : [CC] extends [typeof CommandClasses["Multi Channel"]] ? "Multi Channel" : [CC] extends [typeof CommandClasses["Multi Command"]] ? "Multi Command" : [CC] extends [typeof CommandClasses["Multilevel Sensor"]] ? "Multilevel Sensor" : [CC] extends [typeof CommandClasses["Multilevel Switch"]] ? "Multilevel Switch" : [CC] extends [typeof CommandClasses["No Operation"]] ? "No Operation" : [CC] extends [typeof CommandClasses["Node Naming and Location"]] ? "Node Naming and Location" : [CC] extends [typeof CommandClasses["Notification"]] ? "Notification" : [CC] extends [typeof CommandClasses["Powerlevel"]] ? "Powerlevel" : [CC] extends [typeof CommandClasses["Protection"]] ? "Protection" : [CC] extends [typeof CommandClasses["Scene Activation"]] ? "Scene Activation" : [CC] extends [typeof CommandClasses["Scene Actuator Configuration"]] ? "Scene Actuator Configuration" : [CC] extends [typeof CommandClasses["Scene Controller Configuration"]] ? "Scene Controller Configuration" : [CC] extends [typeof CommandClasses["Security 2"]] ? "Security 2" : [CC] extends [typeof CommandClasses["Security"]] ? "Security" : [CC] extends [typeof CommandClasses["Sound Switch"]] ? "Sound Switch" : [CC] extends [typeof CommandClasses["Supervision"]] ? "Supervision" : [CC] extends [typeof CommandClasses["Thermostat Fan Mode"]] ? "Thermostat Fan Mode" : [CC] extends [typeof CommandClasses["Thermostat Fan State"]] ? "Thermostat Fan State" : [CC] extends [typeof CommandClasses["Thermostat Mode"]] ? "Thermostat Mode" : [CC] extends [typeof CommandClasses["Thermostat Operating State"]] ? "Thermostat Operating State" : [CC] extends [typeof CommandClasses["Thermostat Setback"]] ? "Thermostat Setback" : [CC] extends [typeof CommandClasses["Thermostat Setpoint"]] ? "Thermostat Setpoint" : [CC] extends [typeof CommandClasses["Time"]] ? "Time" : [CC] extends [typeof CommandClasses["Time Parameters"]] ? "Time Parameters" : [CC] extends [typeof CommandClasses["User Code"]] ? "User Code" : [CC] extends [typeof CommandClasses["Version"]] ? "Version" : [CC] extends [typeof CommandClasses["Wake Up"]] ? "Wake Up" : [CC] extends [typeof CommandClasses["Z-Wave Plus Info"]] ? "Z-Wave Plus Info" : never;
104
+ export declare type CCToAPI<CC extends CommandClasses> = CCToName<CC> extends keyof CCAPIs ? CCAPIs[CCToName<CC>] : never;
105
+ export declare type APIMethodsOf<CC extends CommandClasses> = Omit<OnlyMethods<CCToAPI<CC>>, "isSetValueOptimistic" | "isSupported" | "supportsCommand" | "withOptions" | "withTXReport">;
106
+ export declare type OwnMethodsOf<API extends CCAPI> = Omit<OnlyMethods<API>, keyof OnlyMethods<CCAPI>>;
107
+ export declare type WrapWithTXReport<T> = [T] extends [Promise<infer U>] ? Promise<WrapWithTXReport<U>> : [T] extends [void] ? {
108
+ txReport: TXReport | undefined;
109
+ } : {
110
+ result: T;
111
+ txReport: TXReport | undefined;
112
+ };
113
+ export declare type WithTXReport<API extends CCAPI> = Omit<API, keyof OwnMethodsOf<API> | "withOptions" | "withTXReport"> & {
114
+ [K in keyof OwnMethodsOf<API>]: API[K] extends (...args: any[]) => any ? (...args: Parameters<API[K]>) => WrapWithTXReport<ReturnType<API[K]>> : never;
115
+ };
116
+ export interface CCAPIs {
117
+ [Symbol.iterator](): Iterator<CCAPI>;
118
+ "Alarm Sensor": import("../cc/AlarmSensorCC").AlarmSensorCCAPI;
119
+ Association: import("../cc/AssociationCC").AssociationCCAPI;
120
+ "Association Group Information": import("../cc/AssociationGroupInfoCC").AssociationGroupInfoCCAPI;
121
+ "Barrier Operator": import("../cc/BarrierOperatorCC").BarrierOperatorCCAPI;
122
+ Basic: import("../cc/BasicCC").BasicCCAPI;
123
+ Battery: import("../cc/BatteryCC").BatteryCCAPI;
124
+ "Binary Sensor": import("../cc/BinarySensorCC").BinarySensorCCAPI;
125
+ "Binary Switch": import("../cc/BinarySwitchCC").BinarySwitchCCAPI;
126
+ "CRC-16 Encapsulation": import("../cc/CRC16CC").CRC16CCAPI;
127
+ "Central Scene": import("../cc/CentralSceneCC").CentralSceneCCAPI;
128
+ "Climate Control Schedule": import("../cc/ClimateControlScheduleCC").ClimateControlScheduleCCAPI;
129
+ Clock: import("../cc/ClockCC").ClockCCAPI;
130
+ "Color Switch": import("../cc/ColorSwitchCC").ColorSwitchCCAPI;
131
+ Configuration: import("../cc/ConfigurationCC").ConfigurationCCAPI;
132
+ "Door Lock": import("../cc/DoorLockCC").DoorLockCCAPI;
133
+ "Door Lock Logging": import("../cc/DoorLockLoggingCC").DoorLockLoggingCCAPI;
134
+ "Entry Control": import("../cc/EntryControlCC").EntryControlCCAPI;
135
+ "Firmware Update Meta Data": import("../cc/FirmwareUpdateMetaDataCC").FirmwareUpdateMetaDataCCAPI;
136
+ "Humidity Control Mode": import("../cc/HumidityControlModeCC").HumidityControlModeCCAPI;
137
+ "Humidity Control Operating State": import("../cc/HumidityControlOperatingStateCC").HumidityControlOperatingStateCCAPI;
138
+ "Humidity Control Setpoint": import("../cc/HumidityControlSetpointCC").HumidityControlSetpointCCAPI;
139
+ Indicator: import("../cc/IndicatorCC").IndicatorCCAPI;
140
+ Irrigation: import("../cc/IrrigationCC").IrrigationCCAPI;
141
+ Language: import("../cc/LanguageCC").LanguageCCAPI;
142
+ Lock: import("../cc/LockCC").LockCCAPI;
143
+ "Manufacturer Proprietary": import("../cc/ManufacturerProprietaryCC").ManufacturerProprietaryCCAPI;
144
+ "Manufacturer Specific": import("../cc/ManufacturerSpecificCC").ManufacturerSpecificCCAPI;
145
+ Meter: import("../cc/MeterCC").MeterCCAPI;
146
+ "Multi Channel Association": import("../cc/MultiChannelAssociationCC").MultiChannelAssociationCCAPI;
147
+ "Multi Channel": import("../cc/MultiChannelCC").MultiChannelCCAPI;
148
+ "Multi Command": import("../cc/MultiCommandCC").MultiCommandCCAPI;
149
+ "Multilevel Sensor": import("../cc/MultilevelSensorCC").MultilevelSensorCCAPI;
150
+ "Multilevel Switch": import("../cc/MultilevelSwitchCC").MultilevelSwitchCCAPI;
151
+ "No Operation": import("../cc/NoOperationCC").NoOperationCCAPI;
152
+ "Node Naming and Location": import("../cc/NodeNamingCC").NodeNamingAndLocationCCAPI;
153
+ Notification: import("../cc/NotificationCC").NotificationCCAPI;
154
+ Powerlevel: import("../cc/PowerlevelCC").PowerlevelCCAPI;
155
+ Protection: import("../cc/ProtectionCC").ProtectionCCAPI;
156
+ "Scene Activation": import("../cc/SceneActivationCC").SceneActivationCCAPI;
157
+ "Scene Actuator Configuration": import("../cc/SceneActuatorConfigurationCC").SceneActuatorConfigurationCCAPI;
158
+ "Scene Controller Configuration": import("../cc/SceneControllerConfigurationCC").SceneControllerConfigurationCCAPI;
159
+ "Security 2": import("../cc/Security2CC").Security2CCAPI;
160
+ Security: import("../cc/SecurityCC").SecurityCCAPI;
161
+ "Sound Switch": import("../cc/SoundSwitchCC").SoundSwitchCCAPI;
162
+ Supervision: import("../cc/SupervisionCC").SupervisionCCAPI;
163
+ "Thermostat Fan Mode": import("../cc/ThermostatFanModeCC").ThermostatFanModeCCAPI;
164
+ "Thermostat Fan State": import("../cc/ThermostatFanStateCC").ThermostatFanStateCCAPI;
165
+ "Thermostat Mode": import("../cc/ThermostatModeCC").ThermostatModeCCAPI;
166
+ "Thermostat Operating State": import("../cc/ThermostatOperatingStateCC").ThermostatOperatingStateCCAPI;
167
+ "Thermostat Setback": import("../cc/ThermostatSetbackCC").ThermostatSetbackCCAPI;
168
+ "Thermostat Setpoint": import("../cc/ThermostatSetpointCC").ThermostatSetpointCCAPI;
169
+ Time: import("../cc/TimeCC").TimeCCAPI;
170
+ "Time Parameters": import("../cc/TimeParametersCC").TimeParametersCCAPI;
171
+ "User Code": import("../cc/UserCodeCC").UserCodeCCAPI;
172
+ Version: import("../cc/VersionCC").VersionCCAPI;
173
+ "Wake Up": import("../cc/WakeUpCC").WakeUpCCAPI;
174
+ "Z-Wave Plus Info": import("../cc/ZWavePlusCC").ZWavePlusCCAPI;
175
+ }
176
+ //# sourceMappingURL=API.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.d.ts","sourceRoot":"","sources":["../../src/lib/API.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhysicalCCAPI = exports.CCAPI = exports.throwWrongValueType = exports.throwMissingPropertyKey = exports.throwUnsupportedPropertyKey = exports.throwUnsupportedProperty = exports.POLL_VALUE = exports.SET_VALUE = void 0;
4
+ const core_1 = require("@zwave-js/core");
5
+ const shared_1 = require("@zwave-js/shared");
6
+ const typeguards_1 = require("alcalzone-shared/typeguards");
7
+ const CommandClass_1 = require("./CommandClass");
8
+ /** Used to identify the method on the CC API class that handles setting values on nodes directly */
9
+ exports.SET_VALUE = Symbol.for("CCAPI_SET_VALUE");
10
+ /** Used to identify the method on the CC API class that handles polling values from nodes */
11
+ exports.POLL_VALUE = Symbol.for("CCAPI_POLL_VALUE");
12
+ // Since the setValue API is called from a point with very generic parameters,
13
+ // we must do narrowing inside the API calls. These three methods are for convenience
14
+ function throwUnsupportedProperty(cc, property) {
15
+ throw new core_1.ZWaveError(`${core_1.CommandClasses[cc]}: "${property}" is not a supported property`, core_1.ZWaveErrorCodes.Argument_Invalid);
16
+ }
17
+ exports.throwUnsupportedProperty = throwUnsupportedProperty;
18
+ function throwUnsupportedPropertyKey(cc, property, propertyKey) {
19
+ throw new core_1.ZWaveError(`${core_1.CommandClasses[cc]}: "${propertyKey}" is not a supported property key for property "${property}"`, core_1.ZWaveErrorCodes.Argument_Invalid);
20
+ }
21
+ exports.throwUnsupportedPropertyKey = throwUnsupportedPropertyKey;
22
+ function throwMissingPropertyKey(cc, property) {
23
+ throw new core_1.ZWaveError(`${core_1.CommandClasses[cc]}: property "${property}" requires a property key, but none was given`, core_1.ZWaveErrorCodes.Argument_Invalid);
24
+ }
25
+ exports.throwMissingPropertyKey = throwMissingPropertyKey;
26
+ function throwWrongValueType(cc, property, expectedType, receivedType) {
27
+ throw new core_1.ZWaveError(`${core_1.CommandClasses[cc]}: "${property}" must be of type "${expectedType}", received "${receivedType}"`, core_1.ZWaveErrorCodes.Argument_Invalid);
28
+ }
29
+ exports.throwWrongValueType = throwWrongValueType;
30
+ /**
31
+ * The base class for all CC APIs exposed via `Node.commandClasses.<CCName>`
32
+ * @publicAPI
33
+ */
34
+ class CCAPI {
35
+ constructor(applHost, endpoint) {
36
+ this.applHost = applHost;
37
+ this.endpoint = endpoint;
38
+ this.ccId = (0, CommandClass_1.getCommandClass)(this);
39
+ }
40
+ static create(ccId, applHost, endpoint, requireSupport) {
41
+ const APIConstructor = (0, CommandClass_1.getAPI)(ccId);
42
+ const ccName = core_1.CommandClasses[ccId];
43
+ if (APIConstructor == undefined) {
44
+ throw new core_1.ZWaveError(`Command Class ${ccName} (${(0, shared_1.num2hex)(ccId)}) has no associated API!`, core_1.ZWaveErrorCodes.CC_NoAPI);
45
+ }
46
+ const apiInstance = new APIConstructor(applHost, endpoint);
47
+ // Only require support for physical endpoints by default
48
+ requireSupport !== null && requireSupport !== void 0 ? requireSupport : (requireSupport = !endpoint.virtual);
49
+ if (requireSupport) {
50
+ // @ts-expect-error TS doesn't like assigning to conditional types
51
+ return new Proxy(apiInstance, {
52
+ get: (target, property) => {
53
+ // Forbid access to the API if it is not supported by the node
54
+ if (property !== "ccId" &&
55
+ property !== "endpoint" &&
56
+ property !== "isSupported" &&
57
+ property !== "withOptions" &&
58
+ property !== "commandOptions" &&
59
+ !target.isSupported()) {
60
+ let messageStart;
61
+ if (endpoint.virtual) {
62
+ const hasNodeId = typeof endpoint.nodeId === "number";
63
+ messageStart = `${hasNodeId ? "The" : "This"} virtual node${hasNodeId ? ` ${endpoint.nodeId}` : ""}`;
64
+ }
65
+ else {
66
+ messageStart = `Node ${endpoint.nodeId}`;
67
+ }
68
+ throw new core_1.ZWaveError(`${messageStart}${endpoint.index === 0
69
+ ? ""
70
+ : ` (endpoint ${endpoint.index})`} does not support the Command Class ${ccName}!`, core_1.ZWaveErrorCodes.CC_NotSupported);
71
+ }
72
+ return target[property];
73
+ },
74
+ });
75
+ }
76
+ else {
77
+ // @ts-expect-error TS doesn't like assigning to conditional types
78
+ return apiInstance;
79
+ }
80
+ }
81
+ /**
82
+ * Can be used on supported CC APIs to set a CC value by property name (and optionally the property key)
83
+ */
84
+ get setValue() {
85
+ return this[exports.SET_VALUE];
86
+ }
87
+ /** Whether a successful setValue call should imply that the value was successfully updated */
88
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
89
+ isSetValueOptimistic(valueId) {
90
+ return true;
91
+ }
92
+ /**
93
+ * Can be used on supported CC APIs to poll a CC value by property name (and optionally the property key)
94
+ */
95
+ get pollValue() {
96
+ var _a;
97
+ return (_a = this[exports.POLL_VALUE]) === null || _a === void 0 ? void 0 : _a.bind(this);
98
+ }
99
+ /**
100
+ * Schedules a value to be polled after a given time. Schedules are deduplicated on a per-property basis.
101
+ * @returns `true` if the poll was scheduled, `false` otherwise
102
+ */
103
+ schedulePoll(property, expectedValue, { duration, transition = "slow" } = {}) {
104
+ var _a;
105
+ // Figure out the delay. If a non-zero duration was given or this is a "fast" transition,
106
+ // use/add the short delay. Otherwise, default to the long delay.
107
+ const durationMs = (_a = duration === null || duration === void 0 ? void 0 : duration.toMilliseconds()) !== null && _a !== void 0 ? _a : 0;
108
+ const additionalDelay = !!durationMs || transition === "fast"
109
+ ? this.applHost.options.timeouts.refreshValueAfterTransition
110
+ : this.applHost.options.timeouts.refreshValue;
111
+ const timeoutMs = durationMs + additionalDelay;
112
+ if (this.isSinglecast()) {
113
+ const node = this.endpoint.getNodeUnsafe();
114
+ if (!node)
115
+ return false;
116
+ return this.applHost.schedulePoll(node.id, {
117
+ commandClass: this.ccId,
118
+ endpoint: this.endpoint.index,
119
+ ...property,
120
+ }, { timeoutMs, expectedValue });
121
+ }
122
+ else if (this.isMulticast()) {
123
+ // Only poll supporting nodes in multicast
124
+ const supportingNodes = this.endpoint.node.physicalNodes.filter((node) => {
125
+ var _a;
126
+ return (_a = node
127
+ .getEndpoint(this.endpoint.index)) === null || _a === void 0 ? void 0 : _a.supportsCC(this.ccId);
128
+ });
129
+ let ret = false;
130
+ for (const node of supportingNodes) {
131
+ ret || (ret = this.applHost.schedulePoll(node.id, {
132
+ commandClass: this.ccId,
133
+ endpoint: this.endpoint.index,
134
+ ...property,
135
+ }, { timeoutMs, expectedValue }));
136
+ }
137
+ return ret;
138
+ }
139
+ else {
140
+ // Don't poll the broadcast node
141
+ return false;
142
+ }
143
+ }
144
+ /**
145
+ * Retrieves the version of the given CommandClass this endpoint implements
146
+ */
147
+ get version() {
148
+ return this.endpoint.getCCVersion(this.ccId);
149
+ }
150
+ /** Determines if this simplified API instance may be used. */
151
+ isSupported() {
152
+ return (
153
+ // NoOperation is always supported
154
+ this.ccId === core_1.CommandClasses["No Operation"] ||
155
+ // Basic should always be supported. Since we are trying to hide it from library consumers
156
+ // we cannot trust supportsCC to test it
157
+ this.ccId === core_1.CommandClasses.Basic ||
158
+ this.endpoint.supportsCC(this.ccId));
159
+ }
160
+ /**
161
+ * Determine whether the linked node supports a specific command of this command class.
162
+ * "unknown" means that the information has not been received yet
163
+ */
164
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
165
+ supportsCommand(command) {
166
+ // This needs to be overwritten per command class. In the default implementation, we don't know anything!
167
+ return core_1.unknownBoolean;
168
+ }
169
+ assertSupportsCommand(commandEnum, command) {
170
+ if (this.supportsCommand(command) !== true) {
171
+ const hasNodeId = typeof this.endpoint.nodeId === "number";
172
+ throw new core_1.ZWaveError(`${hasNodeId
173
+ ? `Node #${this.endpoint.nodeId}`
174
+ : "This virtual node"}${this.endpoint.index > 0
175
+ ? ` (Endpoint ${this.endpoint.index})`
176
+ : ""} does not support the command ${(0, shared_1.getEnumMemberName)(commandEnum, command)}!`, core_1.ZWaveErrorCodes.CC_NotSupported);
177
+ }
178
+ }
179
+ assertPhysicalEndpoint(endpoint) {
180
+ if (endpoint.virtual) {
181
+ throw new core_1.ZWaveError(`This method is not supported for virtual nodes!`, core_1.ZWaveErrorCodes.CC_NotSupported);
182
+ }
183
+ }
184
+ /** Returns the command options to use for sendCommand calls */
185
+ get commandOptions() {
186
+ // No default options
187
+ return {};
188
+ }
189
+ /** Creates an instance of this API, scoped to use the given options */
190
+ withOptions(options) {
191
+ const mergedOptions = {
192
+ ...this.commandOptions,
193
+ ...options,
194
+ };
195
+ return new Proxy(this, {
196
+ get: (target, property) => {
197
+ if (property === "commandOptions") {
198
+ return mergedOptions;
199
+ }
200
+ else {
201
+ return target[property];
202
+ }
203
+ },
204
+ });
205
+ }
206
+ /** Creates an instance of this API which (if supported) will return TX reports along with the result. */
207
+ withTXReport() {
208
+ if (this.constructor === CCAPI) {
209
+ throw new core_1.ZWaveError("The withTXReport method may only be called on specific CC API implementations.", core_1.ZWaveErrorCodes.Driver_NotSupported);
210
+ }
211
+ // Remember which properties need to be proxied
212
+ const ownProps = new Set(Object.getOwnPropertyNames(this.constructor.prototype));
213
+ ownProps.delete("constructor");
214
+ function wrapResult(result, txReport) {
215
+ // Both the result and the TX report may be undefined (no response, no support)
216
+ return (0, core_1.stripUndefined)({
217
+ result,
218
+ txReport,
219
+ });
220
+ }
221
+ return new Proxy(this, {
222
+ get: (target, prop) => {
223
+ if (prop === "withTXReport")
224
+ return undefined;
225
+ let original = target[prop];
226
+ if (ownProps.has(prop) &&
227
+ typeof original === "function") {
228
+ // This is a method that only exists in the specific implementation
229
+ // Wrap each call with its own API proxy, so we don't mix up TX reports
230
+ let txReport;
231
+ const api = target.withOptions({
232
+ onTXReport: (report) => {
233
+ // Remember the last status report
234
+ txReport = report;
235
+ },
236
+ });
237
+ original = api[prop].bind(api);
238
+ // Return a wrapper function that will add the status report after the call is complete
239
+ return (...args) => {
240
+ let result = original(...args);
241
+ if (result instanceof Promise) {
242
+ result = result.then((res) => wrapResult(res, txReport));
243
+ }
244
+ else {
245
+ result = wrapResult(result, txReport);
246
+ }
247
+ return result;
248
+ };
249
+ }
250
+ else {
251
+ return original;
252
+ }
253
+ },
254
+ });
255
+ }
256
+ isSinglecast() {
257
+ return (!this.endpoint.virtual &&
258
+ typeof this.endpoint.nodeId === "number" &&
259
+ this.endpoint.nodeId !== core_1.NODE_ID_BROADCAST);
260
+ }
261
+ isMulticast() {
262
+ return this.endpoint.virtual && (0, typeguards_1.isArray)(this.endpoint.nodeId);
263
+ }
264
+ isBroadcast() {
265
+ return (this.endpoint.virtual && this.endpoint.nodeId === core_1.NODE_ID_BROADCAST);
266
+ }
267
+ /**
268
+ * Returns the node this CC API is linked to. Throws if the controller is not yet ready.
269
+ */
270
+ getNode() {
271
+ if (this.isSinglecast()) {
272
+ return this.applHost.nodes.get(this.endpoint.nodeId);
273
+ }
274
+ }
275
+ /**
276
+ * @internal
277
+ * Returns the node this CC API is linked to (or undefined if the node doesn't exist)
278
+ */
279
+ getNodeUnsafe() {
280
+ try {
281
+ return this.getNode();
282
+ }
283
+ catch (e) {
284
+ // This was expected
285
+ if ((0, core_1.isZWaveError)(e) && e.code === core_1.ZWaveErrorCodes.Driver_NotReady) {
286
+ return undefined;
287
+ }
288
+ // Something else happened
289
+ throw e;
290
+ }
291
+ }
292
+ /** Returns the value DB for this CC API's node (if it can be safely accessed) */
293
+ tryGetValueDB() {
294
+ if (!this.isSinglecast())
295
+ return;
296
+ try {
297
+ return this.applHost.getValueDB(this.endpoint.nodeId);
298
+ }
299
+ catch {
300
+ return;
301
+ }
302
+ }
303
+ /** Returns the value DB for this CC's node (or throws if it cannot be accessed) */
304
+ getValueDB() {
305
+ if (this.isSinglecast()) {
306
+ try {
307
+ return this.applHost.getValueDB(this.endpoint.nodeId);
308
+ }
309
+ catch {
310
+ throw new core_1.ZWaveError("The node for this CC does not exist or the driver is not ready yet", core_1.ZWaveErrorCodes.Driver_NotReady);
311
+ }
312
+ }
313
+ throw new core_1.ZWaveError("Cannot retrieve the value DB for non-singlecast CCs", core_1.ZWaveErrorCodes.CC_NoNodeID);
314
+ }
315
+ }
316
+ exports.CCAPI = CCAPI;
317
+ /** A CC API that is only available for physical endpoints */
318
+ class PhysicalCCAPI extends CCAPI {
319
+ constructor(applHost, endpoint) {
320
+ super(applHost, endpoint);
321
+ this.assertPhysicalEndpoint(endpoint);
322
+ }
323
+ }
324
+ exports.PhysicalCCAPI = PhysicalCCAPI;
325
+ //# sourceMappingURL=API.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.js","sourceRoot":"","sources":["../../src/lib/API.ts"],"names":[],"mappings":"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"}