zwave-js 12.1.1 → 12.2.1

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.
package/build/Utils.d.ts CHANGED
@@ -2,6 +2,7 @@ export { QRCodeVersion, extractFirmware, guessFirmwareFileFormat, parseQRCodeStr
2
2
  export type { Firmware, FirmwareFileFormat, ProtocolDataRate, ProtocolType, ProtocolVersion, Protocols, QRProvisioningInformation, RouteProtocolDataRate, protocolDataRateToString, } from "@zwave-js/core";
3
3
  export { buffer2hex, formatId, getEnumMemberName, num2hex, } from "@zwave-js/shared/safe";
4
4
  export { createDefaultBehaviors as createDefaultMockControllerBehaviors } from "./lib/controller/MockControllerBehaviors";
5
+ export { driverPresets } from "./lib/driver/ZWaveOptions";
5
6
  export { formatLifelineHealthCheckRound, formatLifelineHealthCheckSummary, formatRouteHealthCheckRound, formatRouteHealthCheckSummary, healthCheckRatingToWord, } from "./lib/node/HealthCheck";
6
7
  export { createDefaultBehaviors as createDefaultMockNodeBehaviors } from "./lib/node/MockNodeBehaviors";
7
8
  //# sourceMappingURL=Utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,OAAO,GACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,IAAI,oCAAoC,EAAE,MAAM,0CAA0C,CAAC;AAC1H,OAAO,EACN,8BAA8B,EAC9B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,OAAO,GACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,IAAI,oCAAoC,EAAE,MAAM,0CAA0C,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACN,8BAA8B,EAC9B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC"}
package/build/Utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDefaultMockNodeBehaviors = exports.healthCheckRatingToWord = exports.formatRouteHealthCheckSummary = exports.formatRouteHealthCheckRound = exports.formatLifelineHealthCheckSummary = exports.formatLifelineHealthCheckRound = exports.createDefaultMockControllerBehaviors = exports.num2hex = exports.getEnumMemberName = exports.formatId = exports.buffer2hex = exports.rssiToString = exports.parseQRCodeString = exports.guessFirmwareFileFormat = exports.extractFirmware = exports.QRCodeVersion = void 0;
3
+ exports.createDefaultMockNodeBehaviors = exports.healthCheckRatingToWord = exports.formatRouteHealthCheckSummary = exports.formatRouteHealthCheckRound = exports.formatLifelineHealthCheckSummary = exports.formatLifelineHealthCheckRound = exports.driverPresets = exports.createDefaultMockControllerBehaviors = exports.num2hex = exports.getEnumMemberName = exports.formatId = exports.buffer2hex = exports.rssiToString = exports.parseQRCodeString = exports.guessFirmwareFileFormat = exports.extractFirmware = exports.QRCodeVersion = void 0;
4
4
  var core_1 = require("@zwave-js/core");
5
5
  Object.defineProperty(exports, "QRCodeVersion", { enumerable: true, get: function () { return core_1.QRCodeVersion; } });
6
6
  Object.defineProperty(exports, "extractFirmware", { enumerable: true, get: function () { return core_1.extractFirmware; } });
@@ -14,6 +14,8 @@ Object.defineProperty(exports, "getEnumMemberName", { enumerable: true, get: fun
14
14
  Object.defineProperty(exports, "num2hex", { enumerable: true, get: function () { return safe_1.num2hex; } });
15
15
  var MockControllerBehaviors_1 = require("./lib/controller/MockControllerBehaviors");
16
16
  Object.defineProperty(exports, "createDefaultMockControllerBehaviors", { enumerable: true, get: function () { return MockControllerBehaviors_1.createDefaultBehaviors; } });
17
+ var ZWaveOptions_1 = require("./lib/driver/ZWaveOptions");
18
+ Object.defineProperty(exports, "driverPresets", { enumerable: true, get: function () { return ZWaveOptions_1.driverPresets; } });
17
19
  var HealthCheck_1 = require("./lib/node/HealthCheck");
18
20
  Object.defineProperty(exports, "formatLifelineHealthCheckRound", { enumerable: true, get: function () { return HealthCheck_1.formatLifelineHealthCheckRound; } });
19
21
  Object.defineProperty(exports, "formatLifelineHealthCheckSummary", { enumerable: true, get: function () { return HealthCheck_1.formatLifelineHealthCheckSummary; } });
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":";;;AAAA,uCAMwB;AALvB,qGAAA,aAAa,OAAA;AACb,uGAAA,eAAe,OAAA;AACf,+GAAA,uBAAuB,OAAA;AACvB,yGAAA,iBAAiB,OAAA;AACjB,oGAAA,YAAY,OAAA;AAab,8CAK+B;AAJ9B,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,yGAAA,iBAAiB,OAAA;AACjB,+FAAA,OAAO,OAAA;AAER,oFAA0H;AAAjH,+IAAA,sBAAsB,OAAwC;AACvE,sDAMgC;AAL/B,6HAAA,8BAA8B,OAAA;AAC9B,+HAAA,gCAAgC,OAAA;AAChC,0HAAA,2BAA2B,OAAA;AAC3B,4HAAA,6BAA6B,OAAA;AAC7B,sHAAA,uBAAuB,OAAA;AAExB,kEAAwG;AAA/F,mIAAA,sBAAsB,OAAkC"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":";;;AAAA,uCAMwB;AALvB,qGAAA,aAAa,OAAA;AACb,uGAAA,eAAe,OAAA;AACf,+GAAA,uBAAuB,OAAA;AACvB,yGAAA,iBAAiB,OAAA;AACjB,oGAAA,YAAY,OAAA;AAab,8CAK+B;AAJ9B,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,yGAAA,iBAAiB,OAAA;AACjB,+FAAA,OAAO,OAAA;AAER,oFAA0H;AAAjH,+IAAA,sBAAsB,OAAwC;AACvE,0DAA0D;AAAjD,6GAAA,aAAa,OAAA;AACtB,sDAMgC;AAL/B,6HAAA,8BAA8B,OAAA;AAC9B,+HAAA,gCAAgC,OAAA;AAChC,0HAAA,2BAA2B,OAAA;AAC3B,4HAAA,6BAA6B,OAAA;AAC7B,sHAAA,uBAAuB,OAAA;AAExB,kEAAwG;AAA/F,mIAAA,sBAAsB,OAAkC"}
@@ -1,5 +1,6 @@
1
1
  export { ProtocolDataRate, ProtocolType, ProtocolVersion, Protocols, RouteProtocolDataRate, protocolDataRateToString, rssiToString, } from "@zwave-js/core/safe";
2
2
  export type { Firmware, FirmwareFileFormat } from "@zwave-js/core/safe";
3
3
  export { buffer2hex, formatId, getEnumMemberName, num2hex, } from "@zwave-js/shared/safe";
4
+ export { driverPresets } from "./lib/driver/ZWaveOptions";
4
5
  export { formatLifelineHealthCheckRound, formatLifelineHealthCheckSummary, formatRouteHealthCheckRound, formatRouteHealthCheckSummary, healthCheckRatingToWord, } from "./lib/node/HealthCheck";
5
6
  //# sourceMappingURL=Utils_safe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Utils_safe.d.ts","sourceRoot":"","sources":["../src/Utils_safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACN,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,OAAO,GACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,8BAA8B,EAC9B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,GACvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"Utils_safe.d.ts","sourceRoot":"","sources":["../src/Utils_safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACN,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,OAAO,GACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACN,8BAA8B,EAC9B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,GACvB,MAAM,wBAAwB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.healthCheckRatingToWord = exports.formatRouteHealthCheckSummary = exports.formatRouteHealthCheckRound = exports.formatLifelineHealthCheckSummary = exports.formatLifelineHealthCheckRound = exports.num2hex = exports.getEnumMemberName = exports.formatId = exports.buffer2hex = exports.rssiToString = exports.protocolDataRateToString = exports.RouteProtocolDataRate = exports.Protocols = exports.ProtocolVersion = exports.ProtocolType = exports.ProtocolDataRate = void 0;
3
+ exports.healthCheckRatingToWord = exports.formatRouteHealthCheckSummary = exports.formatRouteHealthCheckRound = exports.formatLifelineHealthCheckSummary = exports.formatLifelineHealthCheckRound = exports.driverPresets = exports.num2hex = exports.getEnumMemberName = exports.formatId = exports.buffer2hex = exports.rssiToString = exports.protocolDataRateToString = exports.RouteProtocolDataRate = exports.Protocols = exports.ProtocolVersion = exports.ProtocolType = exports.ProtocolDataRate = void 0;
4
4
  var safe_1 = require("@zwave-js/core/safe");
5
5
  Object.defineProperty(exports, "ProtocolDataRate", { enumerable: true, get: function () { return safe_1.ProtocolDataRate; } });
6
6
  Object.defineProperty(exports, "ProtocolType", { enumerable: true, get: function () { return safe_1.ProtocolType; } });
@@ -14,6 +14,8 @@ Object.defineProperty(exports, "buffer2hex", { enumerable: true, get: function (
14
14
  Object.defineProperty(exports, "formatId", { enumerable: true, get: function () { return safe_2.formatId; } });
15
15
  Object.defineProperty(exports, "getEnumMemberName", { enumerable: true, get: function () { return safe_2.getEnumMemberName; } });
16
16
  Object.defineProperty(exports, "num2hex", { enumerable: true, get: function () { return safe_2.num2hex; } });
17
+ var ZWaveOptions_1 = require("./lib/driver/ZWaveOptions");
18
+ Object.defineProperty(exports, "driverPresets", { enumerable: true, get: function () { return ZWaveOptions_1.driverPresets; } });
17
19
  var HealthCheck_1 = require("./lib/node/HealthCheck");
18
20
  Object.defineProperty(exports, "formatLifelineHealthCheckRound", { enumerable: true, get: function () { return HealthCheck_1.formatLifelineHealthCheckRound; } });
19
21
  Object.defineProperty(exports, "formatLifelineHealthCheckSummary", { enumerable: true, get: function () { return HealthCheck_1.formatLifelineHealthCheckSummary; } });
@@ -1 +1 @@
1
- {"version":3,"file":"Utils_safe.js","sourceRoot":"","sources":["../src/Utils_safe.ts"],"names":[],"mappings":";;;AAAA,4CAQ6B;AAP5B,wGAAA,gBAAgB,OAAA;AAChB,oGAAA,YAAY,OAAA;AACZ,uGAAA,eAAe,OAAA;AACf,iGAAA,SAAS,OAAA;AACT,6GAAA,qBAAqB,OAAA;AACrB,gHAAA,wBAAwB,OAAA;AACxB,oGAAA,YAAY,OAAA;AAGb,8CAK+B;AAJ9B,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,yGAAA,iBAAiB,OAAA;AACjB,+FAAA,OAAO,OAAA;AAER,sDAMgC;AAL/B,6HAAA,8BAA8B,OAAA;AAC9B,+HAAA,gCAAgC,OAAA;AAChC,0HAAA,2BAA2B,OAAA;AAC3B,4HAAA,6BAA6B,OAAA;AAC7B,sHAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"Utils_safe.js","sourceRoot":"","sources":["../src/Utils_safe.ts"],"names":[],"mappings":";;;AAAA,4CAQ6B;AAP5B,wGAAA,gBAAgB,OAAA;AAChB,oGAAA,YAAY,OAAA;AACZ,uGAAA,eAAe,OAAA;AACf,iGAAA,SAAS,OAAA;AACT,6GAAA,qBAAqB,OAAA;AACrB,gHAAA,wBAAwB,OAAA;AACxB,oGAAA,YAAY,OAAA;AAGb,8CAK+B;AAJ9B,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,yGAAA,iBAAiB,OAAA;AACjB,+FAAA,OAAO,OAAA;AAER,0DAA0D;AAAjD,6GAAA,aAAa,OAAA;AACtB,sDAMgC;AAL/B,6HAAA,8BAA8B,OAAA;AAC9B,+HAAA,gCAAgC,OAAA;AAChC,0HAAA,2BAA2B,OAAA;AAC3B,4HAAA,6BAA6B,OAAA;AAC7B,sHAAA,uBAAuB,OAAA"}
@@ -49,7 +49,7 @@ export type DriverEvents = Extract<keyof DriverEventCallbacks, string>;
49
49
  */
50
50
  export declare class Driver extends TypedEventEmitter<DriverEventCallbacks> implements ZWaveApplicationHost {
51
51
  private port;
52
- constructor(port: string | ZWaveSerialPortImplementation, options?: PartialZWaveOptions);
52
+ constructor(port: string | ZWaveSerialPortImplementation, ...optionsAndPresets: (PartialZWaveOptions | undefined)[]);
53
53
  /** The serial port instance */
54
54
  private serial;
55
55
  private queue;
@@ -356,7 +356,6 @@ export declare class Driver extends TypedEventEmitter<DriverEventCallbacks> impl
356
356
  private handleSecurityS2DecodeError;
357
357
  /** Checks if a transaction failed because a node didn't respond in time */
358
358
  private isMissingNodeACK;
359
- private handleUnresponsiveController;
360
359
  private shouldRequestWakeupOnDemand;
361
360
  private partialCCSessions;
362
361
  private getPartialCCSession;
@@ -1 +1 @@
1
- {"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../../../src/lib/driver/Driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Driver.d.ts","sourceRoot":"","sources":["../../../src/lib/driver/Driver.ts"],"names":[],"mappings":"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"}
@@ -91,11 +91,12 @@ const defaultOptions = {
91
91
  ack: 1000,
92
92
  byte: 150,
93
93
  // Ideally we'd want to have this as low as possible, but some
94
- // 500 series controllers can take upwards of 10 seconds to respond sometimes.
95
- response: 30000,
94
+ // 500 series controllers can take several seconds to respond sometimes.
95
+ response: 10000,
96
96
  report: 1000,
97
97
  nonce: 5000,
98
- sendDataCallback: 65000,
98
+ sendDataAbort: 20000,
99
+ sendDataCallback: 30000,
99
100
  sendToSleep: 250,
100
101
  retryJammed: 1000,
101
102
  refreshValue: 5000,
@@ -151,6 +152,11 @@ function checkOptions(options) {
151
152
  if (options.timeouts.sendDataCallback < 10000) {
152
153
  throw new core_1.ZWaveError(`The Send Data Callback timeout must be at least 10000 milliseconds!`, core_1.ZWaveErrorCodes.Driver_InvalidOptions);
153
154
  }
155
+ if (options.timeouts.sendDataAbort < 5000
156
+ || options.timeouts.sendDataAbort
157
+ > options.timeouts.sendDataCallback - 5000) {
158
+ throw new core_1.ZWaveError(`The Send Data Abort Callback timeout must be between 5000 and ${options.timeouts.sendDataCallback - 5000} milliseconds!`, core_1.ZWaveErrorCodes.Driver_InvalidOptions);
159
+ }
154
160
  if (options.timeouts.serialAPIStarted < 1000
155
161
  || options.timeouts.serialAPIStarted > 30000) {
156
162
  throw new core_1.ZWaveError(`The Serial API started timeout must be between 1000 and 30000 milliseconds!`, core_1.ZWaveErrorCodes.Driver_InvalidOptions);
@@ -221,7 +227,7 @@ function checkOptions(options) {
221
227
  */
222
228
  class Driver extends shared_1.TypedEventEmitter {
223
229
  port;
224
- constructor(port, options) {
230
+ constructor(port, ...optionsAndPresets) {
225
231
  super();
226
232
  this.port = port;
227
233
  // Ensure the given serial port is valid
@@ -229,15 +235,21 @@ class Driver extends shared_1.TypedEventEmitter {
229
235
  && !(0, serial_1.isZWaveSerialPortImplementation)(port)) {
230
236
  throw new core_1.ZWaveError(`The port must be a string or a valid custom serial port implementation!`, core_1.ZWaveErrorCodes.Driver_InvalidOptions);
231
237
  }
232
- // merge given options with defaults
233
- this._options = (0, shared_1.mergeDeep)(options, (0, shared_1.cloneDeep)(defaultOptions));
238
+ // Deep-Merge all given options/presets
239
+ const definedOptionsAndPresets = optionsAndPresets.filter((o) => !!o);
240
+ let mergedOptions = {};
241
+ for (const preset of definedOptionsAndPresets) {
242
+ mergedOptions = (0, shared_1.mergeDeep)(mergedOptions, preset, true);
243
+ }
244
+ // Finally apply the defaults, without overwriting any existing settings
245
+ this._options = (0, shared_1.mergeDeep)(mergedOptions, (0, shared_1.cloneDeep)(defaultOptions));
234
246
  // And make sure they contain valid values
235
247
  checkOptions(this._options);
236
- if (options?.userAgent) {
237
- if (!(0, typeguards_1.isObject)(options.userAgent)) {
248
+ if (this._options.userAgent) {
249
+ if (!(0, typeguards_1.isObject)(this._options.userAgent)) {
238
250
  throw new core_1.ZWaveError(`The userAgent property must be an object!`, core_1.ZWaveErrorCodes.Driver_InvalidOptions);
239
251
  }
240
- this.updateUserAgent(options.userAgent);
252
+ this.updateUserAgent(this._options.userAgent);
241
253
  }
242
254
  // Initialize logging
243
255
  this._logContainer = new core_1.ZWaveLogContainer(this._options.logConfig);
@@ -2425,27 +2437,23 @@ class Driver extends shared_1.TypedEventEmitter {
2425
2437
  return true;
2426
2438
  }
2427
2439
  }
2428
- handleUnresponsiveController(transaction, error) {
2440
+ /**
2441
+ * @internal
2442
+ * Handles the case that the controller didn't acknowledge a command in time
2443
+ * Returns `true` if the transaction failure was handled, `false` if it needs to be rejected.
2444
+ */
2445
+ handleMissingControllerACK(transaction, error) {
2429
2446
  if (!this._controller)
2430
2447
  return false;
2431
2448
  const fail = (message) => {
2432
2449
  this.rejectTransaction(transaction, error);
2433
2450
  void this.destroyWithMessage(message);
2434
2451
  };
2435
- if (this._recoveryPhase
2436
- === 3 /* ControllerRecoveryPhase.CallbackTimeoutAfterReset */) {
2437
- // The controller is still timing out transmitting after a soft reset, don't try again.
2438
- // Reject the transaction and destroy the driver.
2439
- fail("Controller is still timing out. Restarting the driver...");
2440
- return true;
2441
- }
2442
- else if (this._controller.status !== core_1.ControllerStatus.Unresponsive) {
2452
+ if (this._controller.status !== core_1.ControllerStatus.Unresponsive) {
2443
2453
  // The controller was responsive before this transaction failed.
2444
2454
  // Mark it as unresponsive and try to soft-reset it.
2445
2455
  this.controller.setStatus(core_1.ControllerStatus.Unresponsive);
2446
- this._recoveryPhase = (0, core_1.isMissingControllerACK)(error)
2447
- ? 1 /* ControllerRecoveryPhase.NoACK */
2448
- : 2 /* ControllerRecoveryPhase.CallbackTimeout */;
2456
+ this._recoveryPhase = 1 /* ControllerRecoveryPhase.NoACK */;
2449
2457
  this.driverLog.print("Attempting to recover unresponsive controller...", "warn");
2450
2458
  // Re-queue the transaction.
2451
2459
  // Its message generator may have finished, so reset that too.
@@ -2455,14 +2463,7 @@ class Driver extends shared_1.TypedEventEmitter {
2455
2463
  void this.softReset().then(() => {
2456
2464
  // The controller responded. It is no longer unresponsive
2457
2465
  this._controller?.setStatus(core_1.ControllerStatus.Ready);
2458
- if (this._recoveryPhase === 1 /* ControllerRecoveryPhase.NoACK */) {
2459
- this._recoveryPhase = 0 /* ControllerRecoveryPhase.None */;
2460
- }
2461
- else if (this._recoveryPhase
2462
- === 2 /* ControllerRecoveryPhase.CallbackTimeout */) {
2463
- this._recoveryPhase =
2464
- 3 /* ControllerRecoveryPhase.CallbackTimeoutAfterReset */;
2465
- }
2466
+ this._recoveryPhase = 0 /* ControllerRecoveryPhase.None */;
2466
2467
  }).catch(() => {
2467
2468
  // Soft-reset failed. Reject the original transaction and try restarting the driver.
2468
2469
  fail("Recovering unresponsive controller failed. Restarting the driver...");
@@ -2475,6 +2476,86 @@ class Driver extends shared_1.TypedEventEmitter {
2475
2476
  return false;
2476
2477
  }
2477
2478
  }
2479
+ /**
2480
+ * @internal
2481
+ * Handles the case that the controller didn't send the callback for a SendData in time
2482
+ * Returns `true` if the transaction failure was handled, `false` if it needs to be rejected.
2483
+ */
2484
+ handleMissingSendDataResponseOrCallback(transaction, error) {
2485
+ if (!this._controller)
2486
+ return false;
2487
+ if (
2488
+ // The SendData response can time out on older controllers trying to reach a dead node.
2489
+ // In this case, we do not want to reset the controller, but just mark the node as dead.
2490
+ error.context === "response"
2491
+ // Also do this if the callback is timing out even after restarting the controller
2492
+ || this._recoveryPhase
2493
+ === 3 /* ControllerRecoveryPhase.CallbackTimeoutAfterReset */) {
2494
+ const node = this.getNodeUnsafe(transaction.message);
2495
+ if (!node)
2496
+ return false; // This should never happen, but whatever
2497
+ // The controller is still timing out transmitting after a soft reset, don't try again.
2498
+ // Real-world experience has shown that for older controllers this situation can be caused by unresponsive nodes.
2499
+ // The following is essentially a copy of handleMissingNodeACK, but with updated error messages
2500
+ const messagePart1 = "The node is causing the controller to become unresponsive";
2501
+ if (node.canSleep) {
2502
+ if (node.status === _Types_1.NodeStatus.Asleep) {
2503
+ // We already moved the messages to the wakeup queue before. If we end up here, this means a command
2504
+ // was sent that may be sent to potentially asleep nodes - including pings.
2505
+ return false;
2506
+ }
2507
+ this.controllerLog.logNode(node.id, `${messagePart1}. It is probably asleep, moving its messages to the wakeup queue.`, "warn");
2508
+ // There is no longer a reference to the current transaction. If it should be moved to the wakeup queue,
2509
+ // it temporarily needs to be added to the queue again.
2510
+ const handled = this.mayMoveToWakeupQueue(transaction);
2511
+ if (handled) {
2512
+ this.queue.add(transaction);
2513
+ }
2514
+ // Mark the node as asleep. This will move the messages to the wakeup queue
2515
+ node.markAsAsleep();
2516
+ return handled;
2517
+ }
2518
+ else {
2519
+ const errorMsg = `${messagePart1}, it is presumed dead`;
2520
+ this.controllerLog.logNode(node.id, errorMsg, "warn");
2521
+ node.markAsDead();
2522
+ // There is no longer a reference to the current transaction on the queue, so we need to reject it separately.
2523
+ transaction.setProgress({
2524
+ state: core_1.TransactionState.Failed,
2525
+ reason: errorMsg,
2526
+ });
2527
+ transaction.abort(error);
2528
+ this.rejectAllTransactionsForNode(node.id, errorMsg);
2529
+ return true;
2530
+ }
2531
+ }
2532
+ else if (this._controller.status !== core_1.ControllerStatus.Unresponsive) {
2533
+ // The controller was responsive before this transaction failed.
2534
+ // Mark it as unresponsive and try to soft-reset it.
2535
+ this.controller.setStatus(core_1.ControllerStatus.Unresponsive);
2536
+ this._recoveryPhase = 2 /* ControllerRecoveryPhase.CallbackTimeout */;
2537
+ this.driverLog.print("Controller missed Send Data callback. Attempting to recover...", "warn");
2538
+ // Re-queue the transaction.
2539
+ // Its message generator may have finished, so reset that too.
2540
+ transaction.reset();
2541
+ this.queue.add(transaction.clone());
2542
+ // Execute the soft-reset asynchronously
2543
+ void this.softReset().then(() => {
2544
+ // The controller responded. It is no longer unresponsive
2545
+ this._controller?.setStatus(core_1.ControllerStatus.Ready);
2546
+ this._recoveryPhase =
2547
+ 3 /* ControllerRecoveryPhase.CallbackTimeoutAfterReset */;
2548
+ }).catch(() => {
2549
+ // Soft-reset failed. Just reject the original transaction.
2550
+ this.rejectTransaction(transaction, error);
2551
+ });
2552
+ return true;
2553
+ }
2554
+ else {
2555
+ // Not sure what to do here
2556
+ return false;
2557
+ }
2558
+ }
2478
2559
  shouldRequestWakeupOnDemand(node) {
2479
2560
  return (!!node.supportsWakeUpOnDemand
2480
2561
  && node.status === _Types_1.NodeStatus.Asleep
@@ -3399,7 +3480,7 @@ ${handlers.length} left`);
3399
3480
  }
3400
3481
  if (this.mayRetrySerialAPICommand(msg,
3401
3482
  // Ignore the number of attempts while jammed
3402
- attemptNumber - jammedAttempts, e.code)) {
3483
+ attemptNumber - jammedAttempts, e)) {
3403
3484
  // Retry the command
3404
3485
  continue attemptMessage;
3405
3486
  }
@@ -3441,16 +3522,21 @@ ${handlers.length} left`);
3441
3522
  });
3442
3523
  return result;
3443
3524
  }
3444
- mayRetrySerialAPICommand(msg, attemptNumber, errorCode) {
3525
+ mayRetrySerialAPICommand(msg, attemptNumber, error) {
3526
+ // Only retry Send Data, nothing else
3445
3527
  if (!(0, SendDataShared_1.isSendData)(msg))
3446
3528
  return false;
3447
- if (msg instanceof SendDataMessages_1.SendDataMulticastRequest
3448
- || msg instanceof SendDataBridgeMessages_1.SendDataMulticastBridgeRequest) {
3449
- // Don't try to resend multicast messages if they were already transmitted.
3450
- // One or more nodes might have already reacted
3451
- if (errorCode === core_1.ZWaveErrorCodes.Controller_CallbackNOK) {
3452
- return false;
3453
- }
3529
+ // Don't try to resend SendData commands when the response times out
3530
+ if (error.code === core_1.ZWaveErrorCodes.Controller_Timeout
3531
+ && error.context === "response") {
3532
+ return false;
3533
+ }
3534
+ // Don't try to resend multicast messages if they were already transmitted.
3535
+ // One or more nodes might have already reacted
3536
+ if ((msg instanceof SendDataMessages_1.SendDataMulticastRequest
3537
+ || msg instanceof SendDataBridgeMessages_1.SendDataMulticastBridgeRequest)
3538
+ && error.code === core_1.ZWaveErrorCodes.Controller_CallbackNOK) {
3539
+ return false;
3454
3540
  }
3455
3541
  return attemptNumber < msg.maxSendAttempts;
3456
3542
  }
@@ -3460,7 +3546,8 @@ ${handlers.length} left`);
3460
3546
  */
3461
3547
  async executeSerialAPICommand(msg, transactionSource) {
3462
3548
  const machine = (0, SerialAPICommandMachine_1.createSerialAPICommandMachine)(msg, {
3463
- sendData: this.writeSerial.bind(this),
3549
+ sendData: (data) => this.writeSerial(data),
3550
+ sendDataAbort: () => this.abortSendData(false),
3464
3551
  notifyUnsolicited: (msg) => {
3465
3552
  void this.handleUnsolicitedMessage(msg);
3466
3553
  },
@@ -3504,6 +3591,12 @@ ${handlers.length} left`);
3504
3591
  },
3505
3592
  }, (0, shared_1.pick)(this._options, ["timeouts", "attempts"]));
3506
3593
  const result = (0, deferred_promise_1.createDeferredPromise)();
3594
+ // Work around an issue in the 700 series firmware where the ACK after a soft-reset has a random high nibble.
3595
+ // This was broken in 7.19, not fixed so far
3596
+ if (msg.functionType === serial_1.FunctionType.SoftReset
3597
+ && this.controller.sdkVersionGte("7.19.0")) {
3598
+ this.serial?.ignoreAckHighNibbleOnce();
3599
+ }
3507
3600
  this.serialAPIInterpreter = (0, xstate_1.interpret)(machine).onDone((evt) => {
3508
3601
  this.serialAPIInterpreter?.stop();
3509
3602
  this.serialAPIInterpreter = undefined;
@@ -3522,6 +3615,14 @@ ${handlers.length} left`);
3522
3615
  result.reject((0, StateMachineShared_1.serialAPICommandErrorToZWaveError)(cmdResult.reason, msg, cmdResult.result, transactionSource));
3523
3616
  }
3524
3617
  });
3618
+ // Uncomment this for debugging state machine transitions
3619
+ // this.serialAPIInterpreter.onTransition((state) => {
3620
+ // if (state.changed) {
3621
+ // this.driverLog.print(
3622
+ // `CMDMACHINE: ${JSON.stringify(state.toStrings())}`,
3623
+ // );
3624
+ // }
3625
+ // });
3525
3626
  this.serialAPIInterpreter.start();
3526
3627
  return result;
3527
3628
  }
@@ -4016,10 +4117,14 @@ ${handlers.length} left`);
4016
4117
  if (this.handleMissingNodeACK(transaction, error))
4017
4118
  return;
4018
4119
  }
4019
- else if ((0, core_1.isMissingControllerACK)(error)
4020
- || ((0, SendDataShared_1.isSendData)(transaction.message)
4021
- && (0, core_1.isMissingControllerCallback)(error))) {
4022
- if (this.handleUnresponsiveController(transaction, error))
4120
+ else if ((0, core_1.isMissingControllerACK)(error)) {
4121
+ if (this.handleMissingControllerACK(transaction, error))
4122
+ return;
4123
+ }
4124
+ else if ((0, SendDataShared_1.isSendData)(transaction.message)
4125
+ && ((0, core_1.isMissingControllerResponse)(error)
4126
+ || (0, core_1.isMissingControllerCallback)(error))) {
4127
+ if (this.handleMissingSendDataResponseOrCallback(transaction, error))
4023
4128
  return;
4024
4129
  }
4025
4130
  this.rejectTransaction(transaction, error);