zwave-js 8.8.3 → 8.9.0-beta.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 (113) hide show
  1. package/build/CommandClass.js +1 -0
  2. package/build/CommandClass.js.map +1 -1
  3. package/build/Controller.d.ts +1 -0
  4. package/build/Controller.d.ts.map +1 -1
  5. package/build/Controller.js +4 -1
  6. package/build/Controller.js.map +1 -1
  7. package/build/Node.d.ts +1 -1
  8. package/build/Node.d.ts.map +1 -1
  9. package/build/Node.js.map +1 -1
  10. package/build/Utils.d.ts +1 -0
  11. package/build/Utils.d.ts.map +1 -1
  12. package/build/Utils.js +7 -1
  13. package/build/Utils.js.map +1 -1
  14. package/build/lib/commandclass/API.d.ts +17 -4
  15. package/build/lib/commandclass/API.d.ts.map +1 -1
  16. package/build/lib/commandclass/API.js +50 -0
  17. package/build/lib/commandclass/API.js.map +1 -1
  18. package/build/lib/commandclass/CommandClass.d.ts +0 -6
  19. package/build/lib/commandclass/CommandClass.d.ts.map +1 -1
  20. package/build/lib/commandclass/CommandClass.js +0 -12
  21. package/build/lib/commandclass/CommandClass.js.map +1 -1
  22. package/build/lib/commandclass/DoorLockLoggingCC.d.ts +91 -0
  23. package/build/lib/commandclass/DoorLockLoggingCC.d.ts.map +1 -0
  24. package/build/lib/commandclass/DoorLockLoggingCC.js +320 -0
  25. package/build/lib/commandclass/DoorLockLoggingCC.js.map +1 -0
  26. package/build/lib/commandclass/Security2CC.d.ts +1 -10
  27. package/build/lib/commandclass/Security2CC.d.ts.map +1 -1
  28. package/build/lib/commandclass/Security2CC.js +16 -49
  29. package/build/lib/commandclass/Security2CC.js.map +1 -1
  30. package/build/lib/commandclass/SecurityCC.d.ts +4 -9
  31. package/build/lib/commandclass/SecurityCC.d.ts.map +1 -1
  32. package/build/lib/commandclass/SecurityCC.js +39 -71
  33. package/build/lib/commandclass/SecurityCC.js.map +1 -1
  34. package/build/lib/commandclass/SupervisionCC.js +2 -2
  35. package/build/lib/commandclass/SupervisionCC.js.map +1 -1
  36. package/build/lib/commandclass/index.d.ts +1 -0
  37. package/build/lib/commandclass/index.d.ts.map +1 -1
  38. package/build/lib/commandclass/index.js +15 -7
  39. package/build/lib/commandclass/index.js.map +1 -1
  40. package/build/lib/controller/BridgeApplicationCommandRequest.d.ts +2 -6
  41. package/build/lib/controller/BridgeApplicationCommandRequest.d.ts.map +1 -1
  42. package/build/lib/controller/BridgeApplicationCommandRequest.js +9 -19
  43. package/build/lib/controller/BridgeApplicationCommandRequest.js.map +1 -1
  44. package/build/lib/controller/Controller.d.ts +12 -1
  45. package/build/lib/controller/Controller.d.ts.map +1 -1
  46. package/build/lib/controller/Controller.js +13 -6
  47. package/build/lib/controller/Controller.js.map +1 -1
  48. package/build/lib/controller/SendDataBridgeMessages.d.ts +5 -3
  49. package/build/lib/controller/SendDataBridgeMessages.d.ts.map +1 -1
  50. package/build/lib/controller/SendDataBridgeMessages.js +21 -8
  51. package/build/lib/controller/SendDataBridgeMessages.js.map +1 -1
  52. package/build/lib/controller/SendDataMessages.d.ts +5 -3
  53. package/build/lib/controller/SendDataMessages.d.ts.map +1 -1
  54. package/build/lib/controller/SendDataMessages.js +21 -9
  55. package/build/lib/controller/SendDataMessages.js.map +1 -1
  56. package/build/lib/controller/SendDataShared.d.ts +72 -2
  57. package/build/lib/controller/SendDataShared.d.ts.map +1 -1
  58. package/build/lib/controller/SendDataShared.js +195 -1
  59. package/build/lib/controller/SendDataShared.js.map +1 -1
  60. package/build/lib/driver/CommandQueueMachine.d.ts +7 -3
  61. package/build/lib/driver/CommandQueueMachine.d.ts.map +1 -1
  62. package/build/lib/driver/CommandQueueMachine.js +66 -29
  63. package/build/lib/driver/CommandQueueMachine.js.map +1 -1
  64. package/build/lib/driver/Driver.d.ts +15 -10
  65. package/build/lib/driver/Driver.d.ts.map +1 -1
  66. package/build/lib/driver/Driver.js +160 -125
  67. package/build/lib/driver/Driver.js.map +1 -1
  68. package/build/lib/driver/MessageGenerators.d.ts +26 -0
  69. package/build/lib/driver/MessageGenerators.d.ts.map +1 -0
  70. package/build/lib/driver/MessageGenerators.js +246 -0
  71. package/build/lib/driver/MessageGenerators.js.map +1 -0
  72. package/build/lib/driver/SendThreadMachine.d.ts +24 -53
  73. package/build/lib/driver/SendThreadMachine.d.ts.map +1 -1
  74. package/build/lib/driver/SendThreadMachine.js +161 -619
  75. package/build/lib/driver/SendThreadMachine.js.map +1 -1
  76. package/build/lib/driver/StateMachineShared.d.ts +2 -0
  77. package/build/lib/driver/StateMachineShared.d.ts.map +1 -1
  78. package/build/lib/driver/StateMachineShared.js +21 -10
  79. package/build/lib/driver/StateMachineShared.js.map +1 -1
  80. package/build/lib/driver/Transaction.d.ts +35 -3
  81. package/build/lib/driver/Transaction.d.ts.map +1 -1
  82. package/build/lib/driver/Transaction.js +20 -15
  83. package/build/lib/driver/Transaction.js.map +1 -1
  84. package/build/lib/driver/TransactionMachine.d.ts +30 -0
  85. package/build/lib/driver/TransactionMachine.d.ts.map +1 -0
  86. package/build/lib/driver/TransactionMachine.js +247 -0
  87. package/build/lib/driver/TransactionMachine.js.map +1 -0
  88. package/build/lib/driver/ZWaveOptions.d.ts +0 -2
  89. package/build/lib/driver/ZWaveOptions.d.ts.map +1 -1
  90. package/build/lib/message/Constants.d.ts +6 -6
  91. package/build/lib/message/Constants.d.ts.map +1 -1
  92. package/build/lib/message/Constants.js +12 -14
  93. package/build/lib/message/Constants.js.map +1 -1
  94. package/build/lib/message/Message.d.ts +5 -1
  95. package/build/lib/message/Message.d.ts.map +1 -1
  96. package/build/lib/message/Message.js +11 -0
  97. package/build/lib/message/Message.js.map +1 -1
  98. package/build/lib/node/HealthCheck.d.ts +8 -0
  99. package/build/lib/node/HealthCheck.d.ts.map +1 -0
  100. package/build/lib/node/HealthCheck.js +83 -0
  101. package/build/lib/node/HealthCheck.js.map +1 -0
  102. package/build/lib/node/Node.d.ts +10 -2
  103. package/build/lib/node/Node.d.ts.map +1 -1
  104. package/build/lib/node/Node.js +278 -6
  105. package/build/lib/node/Node.js.map +1 -1
  106. package/build/lib/node/Types.d.ts +125 -1
  107. package/build/lib/node/Types.d.ts.map +1 -1
  108. package/build/lib/node/Types.js.map +1 -1
  109. package/build/lib/serialapi/misc/GetBackgroundRSSIMessages.d.ts +14 -0
  110. package/build/lib/serialapi/misc/GetBackgroundRSSIMessages.d.ts.map +1 -0
  111. package/build/lib/serialapi/misc/GetBackgroundRSSIMessages.js +46 -0
  112. package/build/lib/serialapi/misc/GetBackgroundRSSIMessages.js.map +1 -0
  113. package/package.json +15 -15
@@ -0,0 +1,91 @@
1
+ /// <reference types="node" />
2
+ import { Maybe, MessageOrCCLogEntry } from "@zwave-js/core";
3
+ import type { Driver } from "../driver/Driver";
4
+ import { PhysicalCCAPI } from "./API";
5
+ import { CCCommandOptions, CommandClass, CommandClassDeserializationOptions } from "./CommandClass";
6
+ export declare enum DoorLockLoggingCommand {
7
+ RecordsSupportedGet = 1,
8
+ RecordsSupportedReport = 2,
9
+ RecordGet = 3,
10
+ RecordReport = 4
11
+ }
12
+ export declare enum EventType {
13
+ LockCode = 1,
14
+ UnlockCode = 2,
15
+ LockButton = 3,
16
+ UnlockButton = 4,
17
+ LockCodeOutOfSchedule = 5,
18
+ UnlockCodeOutOfSchedule = 6,
19
+ IllegalCode = 7,
20
+ LockManual = 8,
21
+ UnlockManual = 9,
22
+ LockAuto = 10,
23
+ UnlockAuto = 11,
24
+ LockRemoteCode = 12,
25
+ UnlockRemoteCode = 13,
26
+ LockRemote = 14,
27
+ UnlockRemote = 15,
28
+ LockRemoteCodeOutOfSchedule = 16,
29
+ UnlockRemoteCodeOutOfSchedule = 17,
30
+ RemoteIllegalCode = 18,
31
+ LockManual2 = 19,
32
+ UnlockManual2 = 20,
33
+ LockSecured = 21,
34
+ LockUnsecured = 22,
35
+ UserCodeAdded = 23,
36
+ UserCodeDeleted = 24,
37
+ AllUserCodesDeleted = 25,
38
+ MasterCodeChanged = 26,
39
+ UserCodeChanged = 27,
40
+ LockReset = 28,
41
+ ConfigurationChanged = 29,
42
+ LowBattery = 30,
43
+ NewBattery = 31,
44
+ Unknown = 32
45
+ }
46
+ export interface DoorLockLoggingRecord {
47
+ timestamp: string;
48
+ eventType: EventType;
49
+ label: string;
50
+ userId?: number;
51
+ userCode?: string | Buffer;
52
+ }
53
+ export declare enum RecordStatus {
54
+ Empty = 0,
55
+ HoldsLegalData = 1
56
+ }
57
+ export declare class DoorLockLoggingCCAPI extends PhysicalCCAPI {
58
+ supportsCommand(cmd: DoorLockLoggingCommand): Maybe<boolean>;
59
+ getRecordsCount(): Promise<number | undefined>;
60
+ /** Retrieves the specified audit record. Defaults to the latest one. */
61
+ getRecord(recordNumber?: number): Promise<DoorLockLoggingRecord | undefined>;
62
+ }
63
+ export declare class DoorLockLoggingCC extends CommandClass {
64
+ ccCommand: DoorLockLoggingCommand;
65
+ interview(): Promise<void>;
66
+ refreshValues(): Promise<void>;
67
+ }
68
+ export declare class DoorLockLoggingCCRecordsSupportedReport extends DoorLockLoggingCC {
69
+ constructor(driver: Driver, options: CommandClassDeserializationOptions);
70
+ readonly recordsCount: number;
71
+ toLogEntry(): MessageOrCCLogEntry;
72
+ }
73
+ export declare class DoorLockLoggingCCRecordsSupportedGet extends DoorLockLoggingCC {
74
+ }
75
+ export declare class DoorLockLoggingCCRecordReport extends DoorLockLoggingCC {
76
+ constructor(driver: Driver, options: CommandClassDeserializationOptions);
77
+ readonly recordNumber: number;
78
+ readonly record?: DoorLockLoggingRecord;
79
+ toLogEntry(): MessageOrCCLogEntry;
80
+ }
81
+ interface DoorLockLoggingCCRecordGetOptions extends CCCommandOptions {
82
+ recordNumber: number;
83
+ }
84
+ export declare class DoorLockLoggingCCRecordGet extends DoorLockLoggingCC {
85
+ constructor(driver: Driver, options: CommandClassDeserializationOptions | DoorLockLoggingCCRecordGetOptions);
86
+ recordNumber: number;
87
+ serialize(): Buffer;
88
+ toLogEntry(): MessageOrCCLogEntry;
89
+ }
90
+ export {};
91
+ //# sourceMappingURL=DoorLockLoggingCC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoorLockLoggingCC.d.ts","sourceRoot":"","sources":["../../../src/lib/commandclass/DoorLockLoggingCC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,320 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DoorLockLoggingCCRecordGet = exports.DoorLockLoggingCCRecordReport = exports.DoorLockLoggingCCRecordsSupportedGet = exports.DoorLockLoggingCCRecordsSupportedReport = exports.DoorLockLoggingCC = exports.DoorLockLoggingCCAPI = exports.RecordStatus = exports.EventType = exports.DoorLockLoggingCommand = void 0;
10
+ const core_1 = require("@zwave-js/core");
11
+ const shared_1 = require("@zwave-js/shared");
12
+ const Constants_1 = require("../message/Constants");
13
+ const API_1 = require("./API");
14
+ const CommandClass_1 = require("./CommandClass");
15
+ function segmentsToDate(segments) {
16
+ return new Date(segments.year, segments.month - 1, // JS months are 0-based.
17
+ segments.day, segments.hour, segments.minute, segments.second);
18
+ }
19
+ // All the supported commands
20
+ var DoorLockLoggingCommand;
21
+ (function (DoorLockLoggingCommand) {
22
+ DoorLockLoggingCommand[DoorLockLoggingCommand["RecordsSupportedGet"] = 1] = "RecordsSupportedGet";
23
+ DoorLockLoggingCommand[DoorLockLoggingCommand["RecordsSupportedReport"] = 2] = "RecordsSupportedReport";
24
+ DoorLockLoggingCommand[DoorLockLoggingCommand["RecordGet"] = 3] = "RecordGet";
25
+ DoorLockLoggingCommand[DoorLockLoggingCommand["RecordReport"] = 4] = "RecordReport";
26
+ })(DoorLockLoggingCommand = exports.DoorLockLoggingCommand || (exports.DoorLockLoggingCommand = {}));
27
+ // @publicAPI
28
+ var EventType;
29
+ (function (EventType) {
30
+ EventType[EventType["LockCode"] = 1] = "LockCode";
31
+ EventType[EventType["UnlockCode"] = 2] = "UnlockCode";
32
+ EventType[EventType["LockButton"] = 3] = "LockButton";
33
+ EventType[EventType["UnlockButton"] = 4] = "UnlockButton";
34
+ EventType[EventType["LockCodeOutOfSchedule"] = 5] = "LockCodeOutOfSchedule";
35
+ EventType[EventType["UnlockCodeOutOfSchedule"] = 6] = "UnlockCodeOutOfSchedule";
36
+ EventType[EventType["IllegalCode"] = 7] = "IllegalCode";
37
+ EventType[EventType["LockManual"] = 8] = "LockManual";
38
+ EventType[EventType["UnlockManual"] = 9] = "UnlockManual";
39
+ EventType[EventType["LockAuto"] = 10] = "LockAuto";
40
+ EventType[EventType["UnlockAuto"] = 11] = "UnlockAuto";
41
+ EventType[EventType["LockRemoteCode"] = 12] = "LockRemoteCode";
42
+ EventType[EventType["UnlockRemoteCode"] = 13] = "UnlockRemoteCode";
43
+ EventType[EventType["LockRemote"] = 14] = "LockRemote";
44
+ EventType[EventType["UnlockRemote"] = 15] = "UnlockRemote";
45
+ EventType[EventType["LockRemoteCodeOutOfSchedule"] = 16] = "LockRemoteCodeOutOfSchedule";
46
+ EventType[EventType["UnlockRemoteCodeOutOfSchedule"] = 17] = "UnlockRemoteCodeOutOfSchedule";
47
+ EventType[EventType["RemoteIllegalCode"] = 18] = "RemoteIllegalCode";
48
+ EventType[EventType["LockManual2"] = 19] = "LockManual2";
49
+ EventType[EventType["UnlockManual2"] = 20] = "UnlockManual2";
50
+ EventType[EventType["LockSecured"] = 21] = "LockSecured";
51
+ EventType[EventType["LockUnsecured"] = 22] = "LockUnsecured";
52
+ EventType[EventType["UserCodeAdded"] = 23] = "UserCodeAdded";
53
+ EventType[EventType["UserCodeDeleted"] = 24] = "UserCodeDeleted";
54
+ EventType[EventType["AllUserCodesDeleted"] = 25] = "AllUserCodesDeleted";
55
+ EventType[EventType["MasterCodeChanged"] = 26] = "MasterCodeChanged";
56
+ EventType[EventType["UserCodeChanged"] = 27] = "UserCodeChanged";
57
+ EventType[EventType["LockReset"] = 28] = "LockReset";
58
+ EventType[EventType["ConfigurationChanged"] = 29] = "ConfigurationChanged";
59
+ EventType[EventType["LowBattery"] = 30] = "LowBattery";
60
+ EventType[EventType["NewBattery"] = 31] = "NewBattery";
61
+ EventType[EventType["Unknown"] = 32] = "Unknown";
62
+ })(EventType = exports.EventType || (exports.EventType = {}));
63
+ const eventTypeLabel = {
64
+ LockCode: "Locked via Access Code",
65
+ UnlockCode: "Unlocked via Access Code",
66
+ LockButton: "Locked via Lock Button",
67
+ UnlockButton: "Unlocked via Unlock Button",
68
+ LockCodeOutOfSchedule: "Out of Schedule Lock Attempt via Access Code",
69
+ UnlockCodeOutOfSchedule: "Out of Schedule Unlock Attempt via Access Code",
70
+ IllegalCode: "Illegal Access Code Entered",
71
+ LockManual: "Manually Locked",
72
+ UnlockManual: "Manually Unlocked",
73
+ LockAuto: "Auto Locked",
74
+ UnlockAuto: "Auto Unlocked",
75
+ LockRemoteCode: "Locked via Remote Access Code",
76
+ UnlockRemoteCode: "Unlocked via Remote Access Code",
77
+ LockRemote: "Locked via Remote",
78
+ UnlockRemote: "Unlocked via Remote",
79
+ LockRemoteCodeOutOfSchedule: "Out of Schedule Lock Attempt via Remote Access Code",
80
+ UnlockRemoteCodeOutOfSchedule: "Out of Schedule Unlock Attempt via Remote Access Code",
81
+ RemoteIllegalCode: "Illegal Remote Access Code",
82
+ LockManual2: "Manually Locked (2)",
83
+ UnlockManual2: "Manually Unlocked (2)",
84
+ LockSecured: "Lock Secured",
85
+ LockUnsecured: "Lock Unsecured",
86
+ UserCodeAdded: "User Code Added",
87
+ UserCodeDeleted: "User Code Deleted",
88
+ AllUserCodesDeleted: "All User Codes Deleted",
89
+ MasterCodeChanged: "Master Code Changed",
90
+ UserCodeChanged: "User Code Changed",
91
+ LockReset: "Lock Reset",
92
+ ConfigurationChanged: "Configuration Changed",
93
+ LowBattery: "Low Battery",
94
+ NewBattery: "New Battery Installed",
95
+ Unknown: "Unknown",
96
+ };
97
+ const LATEST_RECORD_NUMBER_KEY = 0;
98
+ // @publicAPI
99
+ var RecordStatus;
100
+ (function (RecordStatus) {
101
+ RecordStatus[RecordStatus["Empty"] = 0] = "Empty";
102
+ RecordStatus[RecordStatus["HoldsLegalData"] = 1] = "HoldsLegalData";
103
+ })(RecordStatus = exports.RecordStatus || (exports.RecordStatus = {}));
104
+ let DoorLockLoggingCCAPI = class DoorLockLoggingCCAPI extends API_1.PhysicalCCAPI {
105
+ supportsCommand(cmd) {
106
+ switch (cmd) {
107
+ case DoorLockLoggingCommand.RecordsSupportedGet:
108
+ case DoorLockLoggingCommand.RecordsSupportedReport:
109
+ case DoorLockLoggingCommand.RecordGet:
110
+ case DoorLockLoggingCommand.RecordReport:
111
+ return true;
112
+ }
113
+ return super.supportsCommand(cmd);
114
+ }
115
+ async getRecordsCount() {
116
+ this.assertSupportsCommand(DoorLockLoggingCommand, DoorLockLoggingCommand.RecordsSupportedGet);
117
+ const cc = new DoorLockLoggingCCRecordsSupportedGet(this.driver, {
118
+ nodeId: this.endpoint.nodeId,
119
+ endpoint: this.endpoint.index,
120
+ });
121
+ const response = await this.driver.sendCommand(cc, this.commandOptions);
122
+ return response === null || response === void 0 ? void 0 : response.recordsCount;
123
+ }
124
+ /** Retrieves the specified audit record. Defaults to the latest one. */
125
+ async getRecord(recordNumber = LATEST_RECORD_NUMBER_KEY) {
126
+ this.assertSupportsCommand(DoorLockLoggingCommand, DoorLockLoggingCommand.RecordGet);
127
+ const cc = new DoorLockLoggingCCRecordGet(this.driver, {
128
+ nodeId: this.endpoint.nodeId,
129
+ endpoint: this.endpoint.index,
130
+ recordNumber,
131
+ });
132
+ const response = await this.driver.sendCommand(cc, this.commandOptions);
133
+ return response === null || response === void 0 ? void 0 : response.record;
134
+ }
135
+ };
136
+ DoorLockLoggingCCAPI = __decorate([
137
+ (0, CommandClass_1.API)(core_1.CommandClasses["Door Lock Logging"])
138
+ ], DoorLockLoggingCCAPI);
139
+ exports.DoorLockLoggingCCAPI = DoorLockLoggingCCAPI;
140
+ let DoorLockLoggingCC = class DoorLockLoggingCC extends CommandClass_1.CommandClass {
141
+ async interview() {
142
+ const node = this.getNode();
143
+ this.driver.controllerLog.logNode(node.id, {
144
+ endpoint: this.endpointIndex,
145
+ message: `Interviewing ${this.ccName}...`,
146
+ direction: "none",
147
+ });
148
+ await this.refreshValues();
149
+ // Remember that the interview is complete
150
+ this.interviewComplete = true;
151
+ }
152
+ async refreshValues() {
153
+ const node = this.getNode();
154
+ const endpoint = this.getEndpoint();
155
+ const api = endpoint.commandClasses["Door Lock Logging"].withOptions({
156
+ priority: Constants_1.MessagePriority.NodeQuery,
157
+ });
158
+ this.driver.controllerLog.logNode(node.id, {
159
+ endpoint: this.endpointIndex,
160
+ message: "querying supported number of records...",
161
+ direction: "outbound",
162
+ });
163
+ const recordsCount = await api.getRecordsCount();
164
+ if (!recordsCount) {
165
+ this.driver.controllerLog.logNode(node.id, {
166
+ endpoint: this.endpointIndex,
167
+ message: "Door Lock Logging records count query timed out, skipping interview...",
168
+ level: "warn",
169
+ });
170
+ return;
171
+ }
172
+ const recordsCountLogMessage = `supports ${recordsCount} record${recordsCount === 1 ? "" : "s"}`;
173
+ this.driver.controllerLog.logNode(node.id, {
174
+ endpoint: this.endpointIndex,
175
+ message: recordsCountLogMessage,
176
+ direction: "inbound",
177
+ });
178
+ }
179
+ };
180
+ DoorLockLoggingCC = __decorate([
181
+ (0, CommandClass_1.commandClass)(core_1.CommandClasses["Door Lock Logging"]),
182
+ (0, CommandClass_1.implementedVersion)(1)
183
+ ], DoorLockLoggingCC);
184
+ exports.DoorLockLoggingCC = DoorLockLoggingCC;
185
+ let DoorLockLoggingCCRecordsSupportedReport = class DoorLockLoggingCCRecordsSupportedReport extends DoorLockLoggingCC {
186
+ constructor(driver, options) {
187
+ super(driver, options);
188
+ (0, core_1.validatePayload)(this.payload.length >= 1);
189
+ this.recordsCount = this.payload[0];
190
+ this.persistValues();
191
+ }
192
+ toLogEntry() {
193
+ return {
194
+ ...super.toLogEntry(),
195
+ message: {
196
+ "supported no. of records": this.recordsCount,
197
+ },
198
+ };
199
+ }
200
+ };
201
+ __decorate([
202
+ (0, CommandClass_1.ccValue)({ internal: true })
203
+ ], DoorLockLoggingCCRecordsSupportedReport.prototype, "recordsCount", void 0);
204
+ DoorLockLoggingCCRecordsSupportedReport = __decorate([
205
+ (0, CommandClass_1.CCCommand)(DoorLockLoggingCommand.RecordsSupportedReport)
206
+ ], DoorLockLoggingCCRecordsSupportedReport);
207
+ exports.DoorLockLoggingCCRecordsSupportedReport = DoorLockLoggingCCRecordsSupportedReport;
208
+ function eventTypeToLabel(eventType) {
209
+ var _a;
210
+ return ((_a = eventTypeLabel[EventType[eventType]]) !== null && _a !== void 0 ? _a : `Unknown ${(0, shared_1.num2hex)(eventType)}`);
211
+ }
212
+ let DoorLockLoggingCCRecordsSupportedGet = class DoorLockLoggingCCRecordsSupportedGet extends DoorLockLoggingCC {
213
+ };
214
+ DoorLockLoggingCCRecordsSupportedGet = __decorate([
215
+ (0, CommandClass_1.CCCommand)(DoorLockLoggingCommand.RecordsSupportedGet),
216
+ (0, CommandClass_1.expectedCCResponse)(DoorLockLoggingCCRecordsSupportedReport)
217
+ ], DoorLockLoggingCCRecordsSupportedGet);
218
+ exports.DoorLockLoggingCCRecordsSupportedGet = DoorLockLoggingCCRecordsSupportedGet;
219
+ let DoorLockLoggingCCRecordReport = class DoorLockLoggingCCRecordReport extends DoorLockLoggingCC {
220
+ constructor(driver, options) {
221
+ super(driver, options);
222
+ (0, core_1.validatePayload)(this.payload.length >= 11);
223
+ this.recordNumber = this.payload[0];
224
+ const recordStatus = this.payload[5] >>> 5;
225
+ if (recordStatus === RecordStatus.Empty) {
226
+ return;
227
+ }
228
+ else {
229
+ const dateSegments = {
230
+ year: this.payload.readUInt16BE(1),
231
+ month: this.payload[3],
232
+ day: this.payload[4],
233
+ hour: this.payload[5] & 0b11111,
234
+ minute: this.payload[6],
235
+ second: this.payload[7],
236
+ };
237
+ const eventType = this.payload[8];
238
+ const recordUserID = this.payload[9];
239
+ const userCodeLength = this.payload[10];
240
+ (0, core_1.validatePayload)(userCodeLength <= 10, this.payload.length >= 11 + userCodeLength);
241
+ const userCodeBuffer = this.payload.slice(11, 11 + userCodeLength);
242
+ // See User Code CC for a detailed description. We try to parse the code as ASCII if possible
243
+ // and fall back to a buffer otherwise.
244
+ const userCodeString = userCodeBuffer.toString("utf8");
245
+ const userCode = (0, shared_1.isPrintableASCII)(userCodeString)
246
+ ? userCodeString
247
+ : userCodeBuffer;
248
+ this.record = {
249
+ eventType: eventType,
250
+ label: eventTypeToLabel(eventType),
251
+ timestamp: segmentsToDate(dateSegments).toISOString(),
252
+ userId: recordUserID,
253
+ userCode,
254
+ };
255
+ }
256
+ }
257
+ toLogEntry() {
258
+ let message;
259
+ if (!this.record) {
260
+ message = {
261
+ "record #": `${this.recordNumber} (empty)`,
262
+ };
263
+ }
264
+ else {
265
+ message = {
266
+ "record #": `${this.recordNumber}`,
267
+ "event type": this.record.label,
268
+ timestamp: this.record.timestamp,
269
+ };
270
+ if (this.record.userId) {
271
+ message["user ID"] = this.record.userId;
272
+ }
273
+ if (this.record.userCode) {
274
+ message["user code"] =
275
+ typeof this.record.userCode === "string"
276
+ ? this.record.userCode
277
+ : (0, shared_1.buffer2hex)(this.record.userCode);
278
+ }
279
+ }
280
+ return {
281
+ ...super.toLogEntry(),
282
+ message,
283
+ };
284
+ }
285
+ };
286
+ DoorLockLoggingCCRecordReport = __decorate([
287
+ (0, CommandClass_1.CCCommand)(DoorLockLoggingCommand.RecordReport)
288
+ ], DoorLockLoggingCCRecordReport);
289
+ exports.DoorLockLoggingCCRecordReport = DoorLockLoggingCCRecordReport;
290
+ function testResponseForDoorLockLoggingRecordGet(sent, received) {
291
+ return (sent.recordNumber === LATEST_RECORD_NUMBER_KEY ||
292
+ sent.recordNumber === received.recordNumber);
293
+ }
294
+ let DoorLockLoggingCCRecordGet = class DoorLockLoggingCCRecordGet extends DoorLockLoggingCC {
295
+ constructor(driver, options) {
296
+ super(driver, options);
297
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
298
+ throw new core_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, core_1.ZWaveErrorCodes.Deserialization_NotImplemented);
299
+ }
300
+ else {
301
+ this.recordNumber = options.recordNumber;
302
+ }
303
+ }
304
+ serialize() {
305
+ this.payload = Buffer.from([this.recordNumber]);
306
+ return super.serialize();
307
+ }
308
+ toLogEntry() {
309
+ return {
310
+ ...super.toLogEntry(),
311
+ message: { "record number": this.recordNumber },
312
+ };
313
+ }
314
+ };
315
+ DoorLockLoggingCCRecordGet = __decorate([
316
+ (0, CommandClass_1.CCCommand)(DoorLockLoggingCommand.RecordGet),
317
+ (0, CommandClass_1.expectedCCResponse)(DoorLockLoggingCCRecordReport, testResponseForDoorLockLoggingRecordGet)
318
+ ], DoorLockLoggingCCRecordGet);
319
+ exports.DoorLockLoggingCCRecordGet = DoorLockLoggingCCRecordGet;
320
+ //# sourceMappingURL=DoorLockLoggingCC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoorLockLoggingCC.js","sourceRoot":"","sources":["../../../src/lib/commandclass/DoorLockLoggingCC.ts"],"names":[],"mappings":"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"}
@@ -29,10 +29,6 @@ export declare class Security2CCAPI extends CCAPI {
29
29
  * The return value indicates whether a nonce was successfully sent
30
30
  */
31
31
  sendNonce(): Promise<boolean>;
32
- /**
33
- * Requests a nonce from the target node
34
- */
35
- requestNonce(): Promise<void>;
36
32
  /**
37
33
  * Queries the securely supported commands for the current security class
38
34
  * @param securityClass Can be used to overwrite the security class to use. If this doesn't match the current one, new nonces will need to be exchanged.
@@ -83,16 +79,11 @@ export declare class Security2CCMessageEncapsulation extends Security2CC {
83
79
  get sequenceNumber(): number;
84
80
  encapsulated?: CommandClass;
85
81
  extensions: Security2Extension[];
86
- private _wasRetriedAfterDecodeFailure;
87
- /** Indicates whether sending this command was retried after the target node failed to decode it */
88
- get wasRetriedAfterDecodeFailure(): boolean;
89
- prepareRetryAfterDecodeFailure(): void;
82
+ unsetSequenceNumber(): void;
90
83
  private getDestinationIDTX;
91
84
  private getDestinationIDRX;
92
85
  /** Returns the Sender's Entropy Input if this command contains an SPAN extension */
93
86
  private getSenderEI;
94
- requiresPreTransmitHandshake(): boolean;
95
- preTransmitHandshake(): Promise<void>;
96
87
  serialize(): Buffer;
97
88
  protected computeEncapsulationOverhead(): number;
98
89
  toLogEntry(): MessageOrCCLogEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"Security2CC.d.ts","sourceRoot":"","sources":["../../../src/lib/commandclass/Security2CC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Security2CC.d.ts","sourceRoot":"","sources":["../../../src/lib/commandclass/Security2CC.ts"],"names":[],"mappings":"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"}
@@ -109,7 +109,7 @@ let Security2CCAPI = class Security2CCAPI extends API_1.CCAPI {
109
109
  await this.driver.sendMessage(msg, {
110
110
  ...this.commandOptions,
111
111
  // Nonce requests must be handled immediately
112
- priority: Constants_1.MessagePriority.Handshake,
112
+ priority: Constants_1.MessagePriority.Nonce,
113
113
  // We don't want failures causing us to treat the node as asleep or dead
114
114
  changeNodeStatusOnMissingACK: false,
115
115
  });
@@ -127,29 +127,6 @@ let Security2CCAPI = class Security2CCAPI extends API_1.CCAPI {
127
127
  }
128
128
  return true;
129
129
  }
130
- /**
131
- * Requests a nonce from the target node
132
- */
133
- async requestNonce() {
134
- this.assertSupportsCommand(Security2Command, Security2Command.NonceGet);
135
- this.assertPhysicalEndpoint(this.endpoint);
136
- if (!this.driver.securityManager2) {
137
- throw new core_1.ZWaveError(`Nonces can only be sent if secure communication is set up!`, core_1.ZWaveErrorCodes.Driver_NoSecurity);
138
- }
139
- const cc = new Security2CCNonceGet(this.driver, {
140
- nodeId: this.endpoint.nodeId,
141
- endpoint: this.endpoint.index,
142
- });
143
- await this.driver.sendCommand(cc, {
144
- ...this.commandOptions,
145
- priority: Constants_1.MessagePriority.PreTransmitHandshake,
146
- // Only try getting a nonce once
147
- maxSendAttempts: 1,
148
- // We don't want failures causing us to treat the node as asleep or dead
149
- // The "real" transaction will do that for us
150
- changeNodeStatusOnMissingACK: false,
151
- });
152
- }
153
130
  /**
154
131
  * Queries the securely supported commands for the current security class
155
132
  * @param securityClass Can be used to overwrite the security class to use. If this doesn't match the current one, new nonces will need to be exchanged.
@@ -423,17 +400,28 @@ Security2CC = Security2CC_1 = __decorate([
423
400
  (0, CommandClass_1.implementedVersion)(1)
424
401
  ], Security2CC);
425
402
  exports.Security2CC = Security2CC;
403
+ // An S2 encapsulated command may result in a NonceReport to be sent by the node if it couldn't decrypt the message
426
404
  function getCCResponseForMessageEncapsulation(sent) {
427
405
  var _a;
428
406
  if ((_a = sent.encapsulated) === null || _a === void 0 ? void 0 : _a.expectsCCResponse()) {
429
- return Security2CCMessageEncapsulation;
407
+ return [
408
+ Security2CCMessageEncapsulation,
409
+ Security2CCNonceReport,
410
+ ];
411
+ }
412
+ }
413
+ function testCCResponseForMessageEncapsulation(sent, received) {
414
+ if (received instanceof Security2CCMessageEncapsulation) {
415
+ return "checkEncapsulated";
416
+ }
417
+ else {
418
+ return received.SOS && !!received.receiverEI;
430
419
  }
431
420
  }
432
421
  let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation extends Security2CC {
433
422
  constructor(driver, options) {
434
423
  var _a;
435
424
  super(driver, options);
436
- this._wasRetriedAfterDecodeFailure = false;
437
425
  // Make sure that we can send/receive secure commands
438
426
  assertSecurity.call(this, options);
439
427
  if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
@@ -603,15 +591,7 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
603
591
  }
604
592
  return this._sequenceNumber;
605
593
  }
606
- /** Indicates whether sending this command was retried after the target node failed to decode it */
607
- get wasRetriedAfterDecodeFailure() {
608
- return this._wasRetriedAfterDecodeFailure;
609
- }
610
- prepareRetryAfterDecodeFailure() {
611
- if (this._wasRetriedAfterDecodeFailure) {
612
- throw new core_1.ZWaveError(`S2 encapsulated messages may only be retried once after the target failed to decode them!`, core_1.ZWaveErrorCodes.Controller_MessageDropped);
613
- }
614
- this._wasRetriedAfterDecodeFailure = true;
594
+ unsetSequenceNumber() {
615
595
  this._sequenceNumber = undefined;
616
596
  }
617
597
  getDestinationIDTX() {
@@ -633,19 +613,6 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
633
613
  const spanExtension = this.extensions.find((e) => e instanceof Extension_1.SPANExtension);
634
614
  return spanExtension === null || spanExtension === void 0 ? void 0 : spanExtension.senderEI;
635
615
  }
636
- requiresPreTransmitHandshake() {
637
- // We need the receiver's EI to be able to send an encrypted command
638
- const secMan = this.driver.securityManager2;
639
- const peerNodeId = this.nodeId;
640
- const spanState = secMan.getSPANState(peerNodeId);
641
- return (spanState.type === core_1.SPANState.None ||
642
- spanState.type === core_1.SPANState.LocalEI);
643
- }
644
- async preTransmitHandshake() {
645
- // Request a nonce
646
- return this.getNode().commandClasses["Security 2"].requestNonce();
647
- // Yeah, that's it :)
648
- }
649
616
  serialize() {
650
617
  var _a, _b, _c;
651
618
  // TODO: Support Multicast
@@ -747,7 +714,7 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
747
714
  };
748
715
  Security2CCMessageEncapsulation = __decorate([
749
716
  (0, CommandClass_1.CCCommand)(Security2Command.MessageEncapsulation),
750
- (0, CommandClass_1.expectedCCResponse)(getCCResponseForMessageEncapsulation, () => "checkEncapsulated")
717
+ (0, CommandClass_1.expectedCCResponse)(getCCResponseForMessageEncapsulation, testCCResponseForMessageEncapsulation)
751
718
  ], Security2CCMessageEncapsulation);
752
719
  exports.Security2CCMessageEncapsulation = Security2CCMessageEncapsulation;
753
720
  let Security2CCNonceReport = class Security2CCNonceReport extends Security2CC {