@zwave-js/cc 10.15.0 → 10.16.0

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 (106) hide show
  1. package/build/cc/AlarmSensorCC.d.ts +34 -34
  2. package/build/cc/AssociationCC.d.ts +18 -18
  3. package/build/cc/AssociationGroupInfoCC.d.ts +27 -27
  4. package/build/cc/BarrierOperatorCC.d.ts +11 -11
  5. package/build/cc/BasicCC.d.ts +1 -1
  6. package/build/cc/BatteryCC.d.ts +10 -10
  7. package/build/cc/BinarySensorCC.d.ts +9 -9
  8. package/build/cc/BinarySwitchCC.d.ts +1 -1
  9. package/build/cc/BinarySwitchCC.d.ts.map +1 -1
  10. package/build/cc/BinarySwitchCC.js +1 -1
  11. package/build/cc/BinarySwitchCC.js.map +1 -1
  12. package/build/cc/CentralSceneCC.d.ts +11 -11
  13. package/build/cc/ClimateControlScheduleCC.d.ts +10 -10
  14. package/build/cc/ClimateControlScheduleCC.js +6 -6
  15. package/build/cc/ClockCC.d.ts +1 -1
  16. package/build/cc/ColorSwitchCC.d.ts +22 -22
  17. package/build/cc/ColorSwitchCC.js +5 -5
  18. package/build/cc/ConfigurationCC.d.ts +21 -18
  19. package/build/cc/ConfigurationCC.d.ts.map +1 -1
  20. package/build/cc/ConfigurationCC.js +32 -26
  21. package/build/cc/ConfigurationCC.js.map +1 -1
  22. package/build/cc/DoorLockCC.d.ts +8 -8
  23. package/build/cc/EnergyProductionCC.d.ts +67 -0
  24. package/build/cc/EnergyProductionCC.d.ts.map +1 -0
  25. package/build/cc/EnergyProductionCC.js +179 -0
  26. package/build/cc/EnergyProductionCC.js.map +1 -0
  27. package/build/cc/HumidityControlSetpointCC.d.ts +22 -22
  28. package/build/cc/IndicatorCC.d.ts +30 -30
  29. package/build/cc/IrrigationCC.d.ts +177 -177
  30. package/build/cc/ManufacturerSpecificCC.d.ts +14 -14
  31. package/build/cc/MeterCC.d.ts +22 -22
  32. package/build/cc/MeterCC.d.ts.map +1 -1
  33. package/build/cc/MeterCC.js +6 -1
  34. package/build/cc/MeterCC.js.map +1 -1
  35. package/build/cc/MultiChannelAssociationCC.d.ts +28 -28
  36. package/build/cc/MultiChannelCC.d.ts +9 -9
  37. package/build/cc/MultilevelSensorCC.d.ts +18 -18
  38. package/build/cc/MultilevelSwitchCC.d.ts +19 -19
  39. package/build/cc/NodeNamingCC.d.ts +2 -2
  40. package/build/cc/NotificationCC.d.ts +54 -53
  41. package/build/cc/NotificationCC.d.ts.map +1 -1
  42. package/build/cc/NotificationCC.js +21 -0
  43. package/build/cc/NotificationCC.js.map +1 -1
  44. package/build/cc/ProtectionCC.d.ts +3 -3
  45. package/build/cc/SceneActivationCC.d.ts +1 -1
  46. package/build/cc/SceneActuatorConfigurationCC.d.ts +21 -21
  47. package/build/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  48. package/build/cc/SceneActuatorConfigurationCC.js +1 -2
  49. package/build/cc/SceneActuatorConfigurationCC.js.map +1 -1
  50. package/build/cc/SceneControllerConfigurationCC.d.ts +21 -21
  51. package/build/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  52. package/build/cc/SceneControllerConfigurationCC.js +3 -4
  53. package/build/cc/SceneControllerConfigurationCC.js.map +1 -1
  54. package/build/cc/Security2CC.d.ts +1 -0
  55. package/build/cc/Security2CC.d.ts.map +1 -1
  56. package/build/cc/Security2CC.js +29 -7
  57. package/build/cc/Security2CC.js.map +1 -1
  58. package/build/cc/SecurityCC.d.ts +9 -5
  59. package/build/cc/SecurityCC.d.ts.map +1 -1
  60. package/build/cc/SecurityCC.js +36 -17
  61. package/build/cc/SecurityCC.js.map +1 -1
  62. package/build/cc/SoundSwitchCC.d.ts +1 -1
  63. package/build/cc/SupervisionCC.d.ts +9 -9
  64. package/build/cc/ThermostatFanModeCC.d.ts +2 -2
  65. package/build/cc/ThermostatSetbackCC.js +3 -3
  66. package/build/cc/ThermostatSetpointCC.d.ts +20 -20
  67. package/build/cc/TimeCC.d.ts +1 -1
  68. package/build/cc/UserCodeCC.d.ts +22 -22
  69. package/build/cc/VersionCC.d.ts +24 -15
  70. package/build/cc/VersionCC.d.ts.map +1 -1
  71. package/build/cc/VersionCC.js +133 -10
  72. package/build/cc/VersionCC.js.map +1 -1
  73. package/build/cc/WakeUpCC.d.ts +2 -2
  74. package/build/cc/WindowCoveringCC.d.ts +347 -0
  75. package/build/cc/WindowCoveringCC.d.ts.map +1 -0
  76. package/build/cc/WindowCoveringCC.js +638 -0
  77. package/build/cc/WindowCoveringCC.js.map +1 -0
  78. package/build/cc/ZWavePlusCC.d.ts +1 -1
  79. package/build/cc/ZWavePlusCC.d.ts.map +1 -1
  80. package/build/cc/ZWavePlusCC.js +34 -0
  81. package/build/cc/ZWavePlusCC.js.map +1 -1
  82. package/build/cc/index.d.ts +2 -0
  83. package/build/cc/index.d.ts.map +1 -1
  84. package/build/cc/index.js +24 -9
  85. package/build/cc/index.js.map +1 -1
  86. package/build/lib/API.d.ts +4 -0
  87. package/build/lib/API.d.ts.map +1 -1
  88. package/build/lib/API.js.map +1 -1
  89. package/build/lib/CommandClass.d.ts.map +1 -1
  90. package/build/lib/CommandClass.js +17 -4
  91. package/build/lib/CommandClass.js.map +1 -1
  92. package/build/lib/EncapsulatingCommandClass.d.ts +1 -0
  93. package/build/lib/EncapsulatingCommandClass.d.ts.map +1 -1
  94. package/build/lib/EncapsulatingCommandClass.js +10 -1
  95. package/build/lib/EncapsulatingCommandClass.js.map +1 -1
  96. package/build/lib/Security2/Extension.d.ts +2 -0
  97. package/build/lib/Security2/Extension.d.ts.map +1 -1
  98. package/build/lib/Security2/Extension.js +9 -1
  99. package/build/lib/Security2/Extension.js.map +1 -1
  100. package/build/lib/Values.d.ts +3 -1
  101. package/build/lib/Values.d.ts.map +1 -1
  102. package/build/lib/_Types.d.ts +50 -0
  103. package/build/lib/_Types.d.ts.map +1 -1
  104. package/build/lib/_Types.js +93 -4
  105. package/build/lib/_Types.js.map +1 -1
  106. package/package.json +10 -22
@@ -0,0 +1,638 @@
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 _a, _b;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.WindowCoveringCCStopLevelChange = exports.WindowCoveringCCStartLevelChange = exports.WindowCoveringCCSet = exports.WindowCoveringCCGet = exports.WindowCoveringCCReport = exports.WindowCoveringCCSupportedGet = exports.WindowCoveringCCSupportedReport = exports.WindowCoveringCC = exports.WindowCoveringCCAPI = exports.WindowCoveringCCValues = 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__WindowCoveringParameter = $o => {
18
+ function su__1__2__3__4__5__6__7__8__9__10__11__12__13__14__15__16__17__18__19__20__21__22__23__24_eu($o) {
19
+ return ![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23].includes($o) ? {} : null;
20
+ }
21
+ return su__1__2__3__4__5__6__7__8__9__10__11__12__13__14__15__16__17__18__19__20__21__22__23__24_eu($o);
22
+ };
23
+ const __assertType__sa__2_ea_2 = $o => {
24
+ function su__4__5__6__7__8__9__10__11__12__13__14__15__16__17__18__19__20__21__22__23__24__25__26__27_eu($o) {
25
+ return ![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23].includes($o) ? {} : null;
26
+ }
27
+ function _number($o) {
28
+ return typeof $o !== "number" ? {} : null;
29
+ }
30
+ function _2($o) {
31
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
32
+ return {};
33
+ if ("parameter" in $o && $o["parameter"] !== undefined) {
34
+ const error = su__4__5__6__7__8__9__10__11__12__13__14__15__16__17__18__19__20__21__22__23__24__25__26__27_eu($o["parameter"]);
35
+ if (error)
36
+ return error;
37
+ }
38
+ else
39
+ return {};
40
+ if ("value" in $o && $o["value"] !== undefined) {
41
+ const error = _number($o["value"]);
42
+ if (error)
43
+ return error;
44
+ }
45
+ else
46
+ return {};
47
+ return null;
48
+ }
49
+ function sa__2_ea_2($o) {
50
+ if (!Array.isArray($o))
51
+ return {};
52
+ for (let i = 0; i < $o.length; i++) {
53
+ const error = _2($o[i]);
54
+ if (error)
55
+ return error;
56
+ }
57
+ return null;
58
+ }
59
+ return sa__2_ea_2($o);
60
+ };
61
+ const __assertType__optional_su__string__2_eu = $o => {
62
+ function _string($o) {
63
+ return typeof $o !== "string" ? {} : null;
64
+ }
65
+ function _2($o) {
66
+ return !($o instanceof require("@zwave-js/core").Duration) ? {} : null;
67
+ }
68
+ function su__string__2_eu($o) {
69
+ const conditions = [_string, _2];
70
+ for (const condition of conditions) {
71
+ const error = condition($o);
72
+ if (!error)
73
+ return null;
74
+ }
75
+ return {};
76
+ }
77
+ function optional_su__string__2_eu($o) {
78
+ if ($o !== undefined) {
79
+ const error = su__string__2_eu($o);
80
+ if (error)
81
+ return error;
82
+ }
83
+ return null;
84
+ }
85
+ return optional_su__string__2_eu($o);
86
+ };
87
+ const __assertType__su__1__2_eu = $o => {
88
+ function _1($o) {
89
+ return $o !== "up" ? {} : null;
90
+ }
91
+ function _2($o) {
92
+ return $o !== "down" ? {} : null;
93
+ }
94
+ function su__1__2_eu($o) {
95
+ const conditions = [_1, _2];
96
+ for (const condition of conditions) {
97
+ const error = condition($o);
98
+ if (!error)
99
+ return null;
100
+ }
101
+ return {};
102
+ }
103
+ return su__1__2_eu($o);
104
+ };
105
+ const core_1 = require("@zwave-js/core");
106
+ const safe_1 = require("@zwave-js/shared/safe");
107
+ const API_1 = require("../lib/API");
108
+ const CommandClass_1 = require("../lib/CommandClass");
109
+ const CommandClassDecorators_1 = require("../lib/CommandClassDecorators");
110
+ const Values_1 = require("../lib/Values");
111
+ const _Types_1 = require("../lib/_Types");
112
+ function parameterToMetadataStates(parameter, isTargetValue) {
113
+ switch (parameter) {
114
+ case _Types_1.WindowCoveringParameter["Vertical Slats Angle (no position)"]:
115
+ if (isTargetValue)
116
+ return undefined;
117
+ return {
118
+ 0: "Closing (right)",
119
+ 50: "Opening",
120
+ 99: "Closing (left)",
121
+ };
122
+ case _Types_1.WindowCoveringParameter["Vertical Slats Angle"]:
123
+ return {
124
+ 0: "Closed (right)",
125
+ 50: "Open",
126
+ 99: "Closed (left)",
127
+ };
128
+ case _Types_1.WindowCoveringParameter["Horizontal Slats Angle (no position)"]:
129
+ if (isTargetValue)
130
+ return undefined;
131
+ return {
132
+ 0: "Closing (up)",
133
+ 50: "Opening",
134
+ 99: "Closing (down)",
135
+ };
136
+ case _Types_1.WindowCoveringParameter["Horizontal Slats Angle"]:
137
+ return {
138
+ 0: "Closed (up)",
139
+ 50: "Open",
140
+ 99: "Closed (down)",
141
+ };
142
+ }
143
+ if (parameter % 2 === 1) {
144
+ // Odd-numbered parameters have position support
145
+ return {
146
+ 0: "Closed",
147
+ 99: "Open",
148
+ };
149
+ }
150
+ else {
151
+ if (isTargetValue)
152
+ return undefined;
153
+ return {
154
+ 0: "Closing",
155
+ 99: "Opening",
156
+ };
157
+ }
158
+ }
159
+ function isTiltParameter(parameter) {
160
+ return (parameter === _Types_1.WindowCoveringParameter["Vertical Slats Angle"] ||
161
+ parameter ===
162
+ _Types_1.WindowCoveringParameter["Vertical Slats Angle (no position)"] ||
163
+ parameter === _Types_1.WindowCoveringParameter["Horizontal Slats Angle"] ||
164
+ parameter ===
165
+ _Types_1.WindowCoveringParameter["Horizontal Slats Angle (no position)"]);
166
+ }
167
+ exports.WindowCoveringCCValues = Object.freeze({
168
+ ...Values_1.V.defineStaticCCValues(core_1.CommandClasses["Window Covering"], {
169
+ ...Values_1.V.staticProperty("supportedParameters", undefined, // meta
170
+ { internal: true }),
171
+ }),
172
+ ...Values_1.V.defineDynamicCCValues(core_1.CommandClasses["Window Covering"], {
173
+ ...Values_1.V.dynamicPropertyAndKeyWithName("currentValue", "currentValue", (parameter) => parameter, ({ property, propertyKey }) => property === "currentValue" && typeof propertyKey === "number", (parameter) => {
174
+ const states = parameterToMetadataStates(parameter, false);
175
+ return {
176
+ ...core_1.ValueMetadata.ReadOnlyLevel,
177
+ label: `Current value - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
178
+ ...(states ? { states } : {}),
179
+ ccSpecific: {
180
+ parameter,
181
+ },
182
+ };
183
+ }),
184
+ ...Values_1.V.dynamicPropertyAndKeyWithName("targetValue", "targetValue", (parameter) => parameter, ({ property, propertyKey }) => property === "targetValue" && typeof propertyKey === "number", (parameter) => {
185
+ const states = parameterToMetadataStates(parameter, false);
186
+ return {
187
+ ...core_1.ValueMetadata.Level,
188
+ label: `Target value - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
189
+ // Only odd-numbered parameters have position support and are writable
190
+ writeable: parameter % 2 === 1,
191
+ ...(states ? { states } : {}),
192
+ ccSpecific: {
193
+ parameter,
194
+ },
195
+ valueChangeOptions: ["transitionDuration"],
196
+ };
197
+ }),
198
+ ...Values_1.V.dynamicPropertyAndKeyWithName("duration", "duration", (parameter) => parameter, ({ property, propertyKey }) => property === "duration" && typeof propertyKey === "number", (parameter) => ({
199
+ ...core_1.ValueMetadata.ReadOnlyDuration,
200
+ label: `Remaining duration - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
201
+ ccSpecific: {
202
+ parameter,
203
+ },
204
+ })),
205
+ // Convenience values to control the different parameters
206
+ // Open all parameters
207
+ ...Values_1.V.dynamicPropertyAndKeyWithName("open", "open", (parameter) => parameter, ({ property, propertyKey }) => property === "open" && typeof propertyKey === "number", (parameter) => ({
208
+ ...core_1.ValueMetadata.WriteOnlyBoolean,
209
+ label: `Open - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
210
+ ccSpecific: {
211
+ parameter,
212
+ },
213
+ valueChangeOptions: ["transitionDuration"],
214
+ })),
215
+ // Close positional parameters
216
+ ...Values_1.V.dynamicPropertyAndKeyWithName("positionClose", "close", (parameter) => parameter, ({ property, propertyKey }) => property === "close" &&
217
+ typeof propertyKey === "number" &&
218
+ !isTiltParameter(propertyKey), (parameter) => ({
219
+ ...core_1.ValueMetadata.WriteOnlyBoolean,
220
+ label: `Close - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
221
+ ccSpecific: {
222
+ parameter,
223
+ },
224
+ valueChangeOptions: ["transitionDuration"],
225
+ })),
226
+ // Close vertical slats to the right, horizontal to the top
227
+ ...Values_1.V.dynamicPropertyAndKeyWithName("tiltClose0", "close0", (parameter) => parameter, ({ property, propertyKey }) => property === "close0" &&
228
+ typeof propertyKey === "number" &&
229
+ isTiltParameter(propertyKey), (parameter) => {
230
+ const direction = parameter ===
231
+ _Types_1.WindowCoveringParameter["Vertical Slats Angle"] ||
232
+ parameter ===
233
+ _Types_1.WindowCoveringParameter["Vertical Slats Angle (no position)"]
234
+ ? "Right"
235
+ : "Up";
236
+ return {
237
+ ...core_1.ValueMetadata.WriteOnlyBoolean,
238
+ label: `Close ${direction} - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
239
+ ccSpecific: {
240
+ parameter,
241
+ },
242
+ valueChangeOptions: ["transitionDuration"],
243
+ };
244
+ }),
245
+ // Close vertical slats to the left, horizontal to the bottom
246
+ ...Values_1.V.dynamicPropertyAndKeyWithName("tiltClose99", "close99", (parameter) => parameter, ({ property, propertyKey }) => property === "close99" &&
247
+ typeof propertyKey === "number" &&
248
+ isTiltParameter(propertyKey), (parameter) => {
249
+ const direction = parameter ===
250
+ _Types_1.WindowCoveringParameter["Vertical Slats Angle"] ||
251
+ parameter ===
252
+ _Types_1.WindowCoveringParameter["Vertical Slats Angle (no position)"]
253
+ ? "Left"
254
+ : "Down";
255
+ return {
256
+ ...core_1.ValueMetadata.WriteOnlyBoolean,
257
+ label: `Close ${direction} - ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, parameter)}`,
258
+ ccSpecific: {
259
+ parameter,
260
+ },
261
+ valueChangeOptions: ["transitionDuration"],
262
+ };
263
+ }),
264
+ }),
265
+ });
266
+ let WindowCoveringCCAPI = class WindowCoveringCCAPI extends API_1.CCAPI {
267
+ constructor() {
268
+ super(...arguments);
269
+ this[_a] = async ({ property, propertyKey }, value, options) => {
270
+ const valueId = {
271
+ commandClass: this.ccId,
272
+ property,
273
+ propertyKey,
274
+ };
275
+ if (exports.WindowCoveringCCValues.targetValue.is(valueId)) {
276
+ if (typeof propertyKey !== "number" ||
277
+ // Only odd-numbered parameters have position support and are writable
278
+ propertyKey % 2 === 0) {
279
+ (0, API_1.throwUnsupportedPropertyKey)(this.ccId, property, propertyKey);
280
+ }
281
+ if (typeof value !== "number") {
282
+ (0, API_1.throwWrongValueType)(this.ccId, property, "number", typeof value);
283
+ }
284
+ const duration = core_1.Duration.from(options?.transitionDuration);
285
+ const result = await this.set([{ parameter: propertyKey, value }], duration);
286
+ return result;
287
+ }
288
+ else if (exports.WindowCoveringCCValues.open.is(valueId) ||
289
+ exports.WindowCoveringCCValues.tiltClose99.is(valueId)) {
290
+ if (!value) {
291
+ (0, API_1.throwWrongValueType)(this.ccId, property, "true", typeof value);
292
+ }
293
+ // Opening a positional parameter is the same as closing a tilt parameter to one side
294
+ const duration = core_1.Duration.from(options?.transitionDuration);
295
+ const result = await this.set([{ parameter: propertyKey, value: 99 }], duration);
296
+ return result;
297
+ }
298
+ else if (exports.WindowCoveringCCValues.positionClose.is(valueId) ||
299
+ exports.WindowCoveringCCValues.tiltClose0.is(valueId)) {
300
+ if (!!value) {
301
+ (0, API_1.throwWrongValueType)(this.ccId, property, "false", typeof value);
302
+ }
303
+ // Closing a positional parameter is the same as closing a tilt parameter to the other side
304
+ const duration = core_1.Duration.from(options?.transitionDuration);
305
+ const result = await this.set([{ parameter: propertyKey, value: 0 }], duration);
306
+ return result;
307
+ }
308
+ else {
309
+ (0, API_1.throwUnsupportedProperty)(this.ccId, property);
310
+ }
311
+ };
312
+ this[_b] = async ({ property, propertyKey, }) => {
313
+ switch (property) {
314
+ case "currentValue":
315
+ case "targetValue":
316
+ case "duration":
317
+ if (propertyKey == undefined) {
318
+ (0, API_1.throwMissingPropertyKey)(this.ccId, property);
319
+ }
320
+ else if (typeof propertyKey !== "number") {
321
+ (0, API_1.throwUnsupportedPropertyKey)(this.ccId, property, propertyKey);
322
+ }
323
+ return (await this.get(propertyKey))?.[property];
324
+ default:
325
+ (0, API_1.throwUnsupportedProperty)(this.ccId, property);
326
+ }
327
+ };
328
+ }
329
+ supportsCommand(cmd) {
330
+ switch (cmd) {
331
+ case _Types_1.WindowCoveringCommand.Get:
332
+ case _Types_1.WindowCoveringCommand.Set:
333
+ case _Types_1.WindowCoveringCommand.SupportedGet:
334
+ case _Types_1.WindowCoveringCommand.StartLevelChange:
335
+ case _Types_1.WindowCoveringCommand.StopLevelChange:
336
+ return true; // This is mandatory
337
+ }
338
+ return super.supportsCommand(cmd);
339
+ }
340
+ async getSupported() {
341
+ this.assertSupportsCommand(_Types_1.WindowCoveringCommand, _Types_1.WindowCoveringCommand.SupportedGet);
342
+ const cc = new WindowCoveringCCSupportedGet(this.applHost, {
343
+ nodeId: this.endpoint.nodeId,
344
+ endpoint: this.endpoint.index,
345
+ });
346
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
347
+ return response?.supportedParameters;
348
+ }
349
+ async get(parameter) {
350
+ __assertType("parameter", "WindowCoveringParameter", __assertType__WindowCoveringParameter.bind(void 0, parameter));
351
+ this.assertSupportsCommand(_Types_1.WindowCoveringCommand, _Types_1.WindowCoveringCommand.Get);
352
+ const cc = new WindowCoveringCCGet(this.applHost, {
353
+ nodeId: this.endpoint.nodeId,
354
+ endpoint: this.endpoint.index,
355
+ parameter,
356
+ });
357
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
358
+ if (response) {
359
+ return (0, safe_1.pick)(response, ["currentValue", "targetValue", "duration"]);
360
+ }
361
+ }
362
+ async set(targetValues, duration) {
363
+ __assertType("targetValues", undefined, __assertType__sa__2_ea_2.bind(void 0, targetValues));
364
+ __assertType("duration", undefined, __assertType__optional_su__string__2_eu.bind(void 0, duration));
365
+ this.assertSupportsCommand(_Types_1.WindowCoveringCommand, _Types_1.WindowCoveringCommand.StartLevelChange);
366
+ const cc = new WindowCoveringCCSet(this.applHost, {
367
+ nodeId: this.endpoint.nodeId,
368
+ endpoint: this.endpoint.index,
369
+ targetValues,
370
+ duration,
371
+ });
372
+ return this.applHost.sendCommand(cc);
373
+ }
374
+ async startLevelChange(parameter, direction, duration) {
375
+ __assertType("parameter", "WindowCoveringParameter", __assertType__WindowCoveringParameter.bind(void 0, parameter));
376
+ __assertType("direction", undefined, __assertType__su__1__2_eu.bind(void 0, direction));
377
+ __assertType("duration", undefined, __assertType__optional_su__string__2_eu.bind(void 0, duration));
378
+ this.assertSupportsCommand(_Types_1.WindowCoveringCommand, _Types_1.WindowCoveringCommand.StartLevelChange);
379
+ const cc = new WindowCoveringCCStartLevelChange(this.applHost, {
380
+ nodeId: this.endpoint.nodeId,
381
+ endpoint: this.endpoint.index,
382
+ parameter,
383
+ direction,
384
+ duration,
385
+ });
386
+ return this.applHost.sendCommand(cc);
387
+ }
388
+ async stopLevelChange(parameter) {
389
+ __assertType("parameter", "WindowCoveringParameter", __assertType__WindowCoveringParameter.bind(void 0, parameter));
390
+ this.assertSupportsCommand(_Types_1.WindowCoveringCommand, _Types_1.WindowCoveringCommand.StopLevelChange);
391
+ const cc = new WindowCoveringCCStopLevelChange(this.applHost, {
392
+ nodeId: this.endpoint.nodeId,
393
+ endpoint: this.endpoint.index,
394
+ parameter,
395
+ });
396
+ return this.applHost.sendCommand(cc);
397
+ }
398
+ };
399
+ _a = API_1.SET_VALUE, _b = API_1.POLL_VALUE;
400
+ WindowCoveringCCAPI = __decorate([
401
+ (0, CommandClassDecorators_1.API)(core_1.CommandClasses["Window Covering"])
402
+ ], WindowCoveringCCAPI);
403
+ exports.WindowCoveringCCAPI = WindowCoveringCCAPI;
404
+ let WindowCoveringCC = class WindowCoveringCC extends CommandClass_1.CommandClass {
405
+ async interview(applHost) {
406
+ const node = this.getNode(applHost);
407
+ const endpoint = this.getEndpoint(applHost);
408
+ const api = API_1.CCAPI.create(core_1.CommandClasses["Window Covering"], applHost, endpoint).withOptions({
409
+ priority: core_1.MessagePriority.NodeQuery,
410
+ });
411
+ applHost.controllerLog.logNode(node.id, {
412
+ endpoint: this.endpointIndex,
413
+ message: `Interviewing ${this.ccName}...`,
414
+ direction: "none",
415
+ });
416
+ applHost.controllerLog.logNode(node.id, {
417
+ endpoint: this.endpointIndex,
418
+ message: "querying supported window covering parameters...",
419
+ direction: "outbound",
420
+ });
421
+ const supported = await api.getSupported();
422
+ if (supported?.length) {
423
+ const logMessage = `supported window covering parameters:
424
+ ${supported
425
+ .map((p) => `· ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, p)}`)
426
+ .join("\n")}`;
427
+ applHost.controllerLog.logNode(node.id, {
428
+ endpoint: this.endpointIndex,
429
+ message: logMessage,
430
+ direction: "inbound",
431
+ });
432
+ // Create metadata for all supported parameters
433
+ for (const param of supported) {
434
+ // Default values
435
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.currentValue(param));
436
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.targetValue(param));
437
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.duration(param));
438
+ // Convenience values
439
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.open(param));
440
+ if (isTiltParameter(param)) {
441
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.tiltClose0(param));
442
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.tiltClose99(param));
443
+ }
444
+ else {
445
+ this.setMetadata(applHost, exports.WindowCoveringCCValues.positionClose(param));
446
+ }
447
+ // And for the odd parameters (with position support), query the position
448
+ if (param % 2 === 1) {
449
+ applHost.controllerLog.logNode(node.id, {
450
+ endpoint: this.endpointIndex,
451
+ message: `querying position for parameter ${(0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, param)}...`,
452
+ direction: "outbound",
453
+ });
454
+ await api.get(param);
455
+ }
456
+ }
457
+ }
458
+ // Remember that the interview is complete
459
+ this.setInterviewComplete(applHost, true);
460
+ }
461
+ translatePropertyKey(_applHost, _property, propertyKey) {
462
+ if (typeof propertyKey === "number") {
463
+ return (0, safe_1.getEnumMemberName)(_Types_1.WindowCoveringParameter, propertyKey);
464
+ }
465
+ return super.translatePropertyKey(_applHost, _property, propertyKey);
466
+ }
467
+ };
468
+ WindowCoveringCC = __decorate([
469
+ (0, CommandClassDecorators_1.commandClass)(core_1.CommandClasses["Window Covering"]),
470
+ (0, CommandClassDecorators_1.implementedVersion)(1),
471
+ (0, CommandClassDecorators_1.ccValues)(exports.WindowCoveringCCValues)
472
+ ], WindowCoveringCC);
473
+ exports.WindowCoveringCC = WindowCoveringCC;
474
+ let WindowCoveringCCSupportedReport = class WindowCoveringCCSupportedReport extends WindowCoveringCC {
475
+ constructor(host, options) {
476
+ super(host, options);
477
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
478
+ (0, core_1.validatePayload)(this.payload.length >= 1);
479
+ const numBitmaskBytes = this.payload[0] & 0b1111;
480
+ (0, core_1.validatePayload)(this.payload.length >= 1 + numBitmaskBytes);
481
+ const bitmask = this.payload.slice(1, 1 + numBitmaskBytes);
482
+ this.supportedParameters = (0, core_1.parseBitMask)(bitmask, _Types_1.WindowCoveringParameter["Outbound Left (no position)"]);
483
+ }
484
+ else {
485
+ this.supportedParameters = options.supportedParameters;
486
+ }
487
+ }
488
+ serialize() {
489
+ const bitmask = (0, core_1.encodeBitMask)(this.supportedParameters, undefined, _Types_1.WindowCoveringParameter["Outbound Left (no position)"]).slice(0, 15);
490
+ const numBitmaskBytes = bitmask.length & 0b1111;
491
+ this.payload = Buffer.concat([
492
+ Buffer.from([numBitmaskBytes]),
493
+ bitmask.slice(0, numBitmaskBytes),
494
+ ]);
495
+ return super.serialize();
496
+ }
497
+ };
498
+ __decorate([
499
+ (0, CommandClassDecorators_1.ccValue)(exports.WindowCoveringCCValues.supportedParameters)
500
+ ], WindowCoveringCCSupportedReport.prototype, "supportedParameters", void 0);
501
+ WindowCoveringCCSupportedReport = __decorate([
502
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.SupportedReport)
503
+ ], WindowCoveringCCSupportedReport);
504
+ exports.WindowCoveringCCSupportedReport = WindowCoveringCCSupportedReport;
505
+ let WindowCoveringCCSupportedGet = class WindowCoveringCCSupportedGet extends WindowCoveringCC {
506
+ };
507
+ WindowCoveringCCSupportedGet = __decorate([
508
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.SupportedGet),
509
+ (0, CommandClassDecorators_1.expectedCCResponse)(WindowCoveringCCSupportedReport)
510
+ ], WindowCoveringCCSupportedGet);
511
+ exports.WindowCoveringCCSupportedGet = WindowCoveringCCSupportedGet;
512
+ let WindowCoveringCCReport = class WindowCoveringCCReport extends WindowCoveringCC {
513
+ constructor(host, options) {
514
+ super(host, options);
515
+ (0, core_1.validatePayload)(this.payload.length >= 4);
516
+ this.parameter = this.payload[0];
517
+ this.currentValue = this.payload[1];
518
+ this.targetValue = this.payload[2];
519
+ this.duration =
520
+ core_1.Duration.parseReport(this.payload[3]) ?? core_1.Duration.unknown();
521
+ }
522
+ };
523
+ __decorate([
524
+ (0, CommandClassDecorators_1.ccValue)(exports.WindowCoveringCCValues.currentValue, (self) => [self.parameter])
525
+ ], WindowCoveringCCReport.prototype, "currentValue", void 0);
526
+ __decorate([
527
+ (0, CommandClassDecorators_1.ccValue)(exports.WindowCoveringCCValues.targetValue, (self) => [self.parameter])
528
+ ], WindowCoveringCCReport.prototype, "targetValue", void 0);
529
+ __decorate([
530
+ (0, CommandClassDecorators_1.ccValue)(exports.WindowCoveringCCValues.duration, (self) => [self.parameter])
531
+ ], WindowCoveringCCReport.prototype, "duration", void 0);
532
+ WindowCoveringCCReport = __decorate([
533
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.Report)
534
+ ], WindowCoveringCCReport);
535
+ exports.WindowCoveringCCReport = WindowCoveringCCReport;
536
+ function testResponseForWindowCoveringGet(sent, received) {
537
+ return received.parameter === sent.parameter;
538
+ }
539
+ let WindowCoveringCCGet = class WindowCoveringCCGet extends WindowCoveringCC {
540
+ constructor(host, options) {
541
+ super(host, options);
542
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
543
+ (0, core_1.validatePayload)(this.payload.length >= 1);
544
+ this.parameter = this.payload[0];
545
+ }
546
+ else {
547
+ this.parameter = options.parameter;
548
+ }
549
+ }
550
+ serialize() {
551
+ this.payload = Buffer.from([this.parameter]);
552
+ return super.serialize();
553
+ }
554
+ };
555
+ WindowCoveringCCGet = __decorate([
556
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.Get),
557
+ (0, CommandClassDecorators_1.expectedCCResponse)(WindowCoveringCCReport, testResponseForWindowCoveringGet)
558
+ ], WindowCoveringCCGet);
559
+ exports.WindowCoveringCCGet = WindowCoveringCCGet;
560
+ let WindowCoveringCCSet = class WindowCoveringCCSet extends WindowCoveringCC {
561
+ constructor(host, options) {
562
+ super(host, options);
563
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
564
+ // TODO: Deserialize payload
565
+ throw new core_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, core_1.ZWaveErrorCodes.Deserialization_NotImplemented);
566
+ }
567
+ else {
568
+ this.targetValues = options.targetValues;
569
+ this.duration = core_1.Duration.from(options.duration);
570
+ }
571
+ }
572
+ serialize() {
573
+ const numEntries = this.targetValues.length & 0b11111;
574
+ this.payload = Buffer.allocUnsafe(2 + numEntries * 2);
575
+ this.payload[0] = numEntries;
576
+ for (let i = 0; i < numEntries; i++) {
577
+ const offset = 1 + i * 2;
578
+ this.payload[offset] = this.targetValues[i].parameter;
579
+ this.payload[offset + 1] = this.targetValues[i].value;
580
+ }
581
+ this.payload[this.payload.length - 1] = (this.duration ?? core_1.Duration.default()).serializeSet();
582
+ return super.serialize();
583
+ }
584
+ };
585
+ WindowCoveringCCSet = __decorate([
586
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.Set),
587
+ (0, CommandClassDecorators_1.expectedCCResponse)(WindowCoveringCCReport)
588
+ ], WindowCoveringCCSet);
589
+ exports.WindowCoveringCCSet = WindowCoveringCCSet;
590
+ let WindowCoveringCCStartLevelChange = class WindowCoveringCCStartLevelChange extends WindowCoveringCC {
591
+ constructor(host, options) {
592
+ super(host, options);
593
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
594
+ // TODO: Deserialize payload
595
+ throw new core_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, core_1.ZWaveErrorCodes.Deserialization_NotImplemented);
596
+ }
597
+ else {
598
+ this.parameter = options.parameter;
599
+ this.direction = options.direction;
600
+ this.duration = core_1.Duration.from(options.duration);
601
+ }
602
+ }
603
+ serialize() {
604
+ this.payload = Buffer.from([
605
+ this.direction === "up" ? 64 : 0,
606
+ this.parameter,
607
+ (this.duration ?? core_1.Duration.default()).serializeSet(),
608
+ ]);
609
+ return super.serialize();
610
+ }
611
+ };
612
+ WindowCoveringCCStartLevelChange = __decorate([
613
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.StartLevelChange),
614
+ (0, CommandClassDecorators_1.expectedCCResponse)(WindowCoveringCCReport)
615
+ ], WindowCoveringCCStartLevelChange);
616
+ exports.WindowCoveringCCStartLevelChange = WindowCoveringCCStartLevelChange;
617
+ let WindowCoveringCCStopLevelChange = class WindowCoveringCCStopLevelChange extends WindowCoveringCC {
618
+ constructor(host, options) {
619
+ super(host, options);
620
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
621
+ // TODO: Deserialize payload
622
+ throw new core_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, core_1.ZWaveErrorCodes.Deserialization_NotImplemented);
623
+ }
624
+ else {
625
+ this.parameter = options.parameter;
626
+ }
627
+ }
628
+ serialize() {
629
+ this.payload = Buffer.from([this.parameter]);
630
+ return super.serialize();
631
+ }
632
+ };
633
+ WindowCoveringCCStopLevelChange = __decorate([
634
+ (0, CommandClassDecorators_1.CCCommand)(_Types_1.WindowCoveringCommand.StopLevelChange),
635
+ (0, CommandClassDecorators_1.expectedCCResponse)(WindowCoveringCCReport)
636
+ ], WindowCoveringCCStopLevelChange);
637
+ exports.WindowCoveringCCStopLevelChange = WindowCoveringCCStopLevelChange;
638
+ //# sourceMappingURL=WindowCoveringCC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowCoveringCC.js","sourceRoot":"","sources":["../../src/cc/WindowCoveringCC.ts"],"names":[],"mappings":"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"}