zwave-js 8.6.1 → 8.7.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 (42) hide show
  1. package/build/Utils.d.ts +2 -2
  2. package/build/Utils.d.ts.map +1 -1
  3. package/build/Utils.js +3 -1
  4. package/build/Utils.js.map +1 -1
  5. package/build/lib/commandclass/AssociationCC.d.ts.map +1 -1
  6. package/build/lib/commandclass/AssociationCC.js +2 -4
  7. package/build/lib/commandclass/AssociationCC.js.map +1 -1
  8. package/build/lib/commandclass/ManufacturerProprietaryCC.d.ts.map +1 -1
  9. package/build/lib/commandclass/ManufacturerProprietaryCC.js +15 -8
  10. package/build/lib/commandclass/ManufacturerProprietaryCC.js.map +1 -1
  11. package/build/lib/commandclass/MultiChannelAssociationCC.d.ts.map +1 -1
  12. package/build/lib/commandclass/MultiChannelAssociationCC.js +2 -4
  13. package/build/lib/commandclass/MultiChannelAssociationCC.js.map +1 -1
  14. package/build/lib/controller/AddNodeToNetworkRequest.d.ts +36 -8
  15. package/build/lib/controller/AddNodeToNetworkRequest.d.ts.map +1 -1
  16. package/build/lib/controller/AddNodeToNetworkRequest.js +111 -41
  17. package/build/lib/controller/AddNodeToNetworkRequest.js.map +1 -1
  18. package/build/lib/controller/ApplicationUpdateRequest.d.ts +16 -4
  19. package/build/lib/controller/ApplicationUpdateRequest.d.ts.map +1 -1
  20. package/build/lib/controller/ApplicationUpdateRequest.js +56 -15
  21. package/build/lib/controller/ApplicationUpdateRequest.js.map +1 -1
  22. package/build/lib/controller/Controller.d.ts +62 -20
  23. package/build/lib/controller/Controller.d.ts.map +1 -1
  24. package/build/lib/controller/Controller.js +629 -264
  25. package/build/lib/controller/Controller.js.map +1 -1
  26. package/build/lib/controller/Inclusion.d.ts +31 -4
  27. package/build/lib/controller/Inclusion.d.ts.map +1 -1
  28. package/build/lib/controller/Inclusion.js +15 -3
  29. package/build/lib/controller/Inclusion.js.map +1 -1
  30. package/build/lib/controller/RemoveNodeFromNetworkRequest.d.ts +15 -9
  31. package/build/lib/controller/RemoveNodeFromNetworkRequest.d.ts.map +1 -1
  32. package/build/lib/controller/RemoveNodeFromNetworkRequest.js +70 -41
  33. package/build/lib/controller/RemoveNodeFromNetworkRequest.js.map +1 -1
  34. package/build/lib/driver/Driver.d.ts +1 -1
  35. package/build/lib/driver/Driver.d.ts.map +1 -1
  36. package/build/lib/driver/Driver.js +154 -33
  37. package/build/lib/driver/Driver.js.map +1 -1
  38. package/build/lib/node/Node.d.ts +6 -0
  39. package/build/lib/node/Node.d.ts.map +1 -1
  40. package/build/lib/node/Node.js +20 -0
  41. package/build/lib/node/Node.js.map +1 -1
  42. package/package.json +10 -10
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RemoveNodeFromNetworkRequest = exports.RemoveNodeStatus = exports.RemoveNodeType = void 0;
9
+ exports.RemoveNodeFromNetworkRequestStatusReport = exports.RemoveNodeFromNetworkRequest = exports.RemoveNodeFromNetworkRequestBase = exports.RemoveNodeStatus = exports.RemoveNodeType = void 0;
10
10
  const core_1 = require("@zwave-js/core");
11
11
  const Constants_1 = require("../message/Constants");
12
12
  const Message_1 = require("../message/Message");
@@ -31,47 +31,49 @@ var RemoveNodeFlags;
31
31
  RemoveNodeFlags[RemoveNodeFlags["HighPower"] = 128] = "HighPower";
32
32
  RemoveNodeFlags[RemoveNodeFlags["NetworkWide"] = 64] = "NetworkWide";
33
33
  })(RemoveNodeFlags || (RemoveNodeFlags = {}));
34
- // TODO: Can we differentiate between sent and received here?
35
- // payload length maybe?
36
- let RemoveNodeFromNetworkRequest = class RemoveNodeFromNetworkRequest extends Message_1.Message {
34
+ let RemoveNodeFromNetworkRequestBase = class RemoveNodeFromNetworkRequestBase extends Message_1.Message {
35
+ constructor(driver, options) {
36
+ if ((0, Message_1.gotDeserializationOptions)(options) &&
37
+ new.target !== RemoveNodeFromNetworkRequestStatusReport) {
38
+ return new RemoveNodeFromNetworkRequestStatusReport(driver, options);
39
+ }
40
+ super(driver, options);
41
+ }
42
+ };
43
+ RemoveNodeFromNetworkRequestBase = __decorate([
44
+ (0, Message_1.messageTypes)(Constants_1.MessageType.Request, Constants_1.FunctionType.RemoveNodeFromNetwork)
45
+ // no expected response, the controller will respond with multiple RemoveNodeFromNetworkRequests
46
+ ,
47
+ (0, Message_1.priority)(Constants_1.MessagePriority.Controller)
48
+ ], RemoveNodeFromNetworkRequestBase);
49
+ exports.RemoveNodeFromNetworkRequestBase = RemoveNodeFromNetworkRequestBase;
50
+ function testCallbackForRemoveNodeRequest(sent, received) {
51
+ if (!(received instanceof RemoveNodeFromNetworkRequestStatusReport)) {
52
+ return false;
53
+ }
54
+ switch (sent.removeNodeType) {
55
+ case RemoveNodeType.Any:
56
+ case RemoveNodeType.Controller:
57
+ case RemoveNodeType.Slave:
58
+ return (received.status === RemoveNodeStatus.Ready ||
59
+ received.status === RemoveNodeStatus.Failed);
60
+ case RemoveNodeType.Stop:
61
+ return (received.status === RemoveNodeStatus.Done ||
62
+ received.status === RemoveNodeStatus.Failed);
63
+ default:
64
+ return false;
65
+ }
66
+ }
67
+ let RemoveNodeFromNetworkRequest = class RemoveNodeFromNetworkRequest extends RemoveNodeFromNetworkRequestBase {
37
68
  constructor(driver, options = {}) {
38
69
  super(driver, options);
39
70
  /** Whether to use high power */
40
71
  this.highPower = false;
41
- /** Whether to include network wide */
72
+ /** Whether to exclude network wide */
42
73
  this.networkWide = false;
43
- if ((0, Message_1.gotDeserializationOptions)(options)) {
44
- // not sure what the value in payload[0] means
45
- this._status = this.payload[1];
46
- switch (this._status) {
47
- case RemoveNodeStatus.Ready:
48
- case RemoveNodeStatus.NodeFound:
49
- case RemoveNodeStatus.Failed:
50
- case RemoveNodeStatus.Done:
51
- // no context for the status to parse
52
- // TODO:
53
- // An application MUST time out waiting for the REMOVE_NODE_STATUS_REMOVING_SLAVE status
54
- // if it does not receive the indication within a 14 sec after receiving the
55
- // REMOVE_NODE_STATUS_NODE_FOUND status.
56
- break;
57
- case RemoveNodeStatus.RemovingController:
58
- case RemoveNodeStatus.RemovingSlave:
59
- // the payload contains a node information frame
60
- this._statusContext = (0, core_1.parseNodeUpdatePayload)(this.payload.slice(2));
61
- break;
62
- }
63
- }
64
- else {
65
- this.removeNodeType = options.removeNodeType;
66
- this.highPower = !!options.highPower;
67
- this.networkWide = !!options.networkWide;
68
- }
69
- }
70
- get status() {
71
- return this._status;
72
- }
73
- get statusContext() {
74
- return this._statusContext;
74
+ this.removeNodeType = options.removeNodeType;
75
+ this.highPower = !!options.highPower;
76
+ this.networkWide = !!options.networkWide;
75
77
  }
76
78
  serialize() {
77
79
  let data = this.removeNodeType || RemoveNodeType.Any;
@@ -84,10 +86,37 @@ let RemoveNodeFromNetworkRequest = class RemoveNodeFromNetworkRequest extends Me
84
86
  }
85
87
  };
86
88
  RemoveNodeFromNetworkRequest = __decorate([
87
- (0, Message_1.messageTypes)(Constants_1.MessageType.Request, Constants_1.FunctionType.RemoveNodeFromNetwork)
88
- // no expected response, the controller will respond with another RemoveNodeFromNetworkRequest
89
- ,
90
- (0, Message_1.priority)(Constants_1.MessagePriority.Controller)
89
+ (0, Message_1.expectedCallback)(testCallbackForRemoveNodeRequest)
91
90
  ], RemoveNodeFromNetworkRequest);
92
91
  exports.RemoveNodeFromNetworkRequest = RemoveNodeFromNetworkRequest;
92
+ class RemoveNodeFromNetworkRequestStatusReport extends RemoveNodeFromNetworkRequestBase {
93
+ constructor(driver, options) {
94
+ super(driver, options);
95
+ this.callbackId = this.payload[0];
96
+ this.status = this.payload[1];
97
+ switch (this.status) {
98
+ case RemoveNodeStatus.Ready:
99
+ case RemoveNodeStatus.NodeFound:
100
+ case RemoveNodeStatus.Failed:
101
+ case RemoveNodeStatus.Done:
102
+ // no context for the status to parse
103
+ // TODO:
104
+ // An application MUST time out waiting for the REMOVE_NODE_STATUS_REMOVING_SLAVE status
105
+ // if it does not receive the indication within a 14 sec after receiving the
106
+ // REMOVE_NODE_STATUS_NODE_FOUND status.
107
+ break;
108
+ case RemoveNodeStatus.RemovingController:
109
+ case RemoveNodeStatus.RemovingSlave:
110
+ // the payload contains a node information frame
111
+ this.statusContext = (0, core_1.parseNodeUpdatePayload)(this.payload.slice(2));
112
+ break;
113
+ }
114
+ }
115
+ isOK() {
116
+ // Some of the status codes are for unsolicited callbacks, but
117
+ // Failed is the only NOK status.
118
+ return this.status !== RemoveNodeStatus.Failed;
119
+ }
120
+ }
121
+ exports.RemoveNodeFromNetworkRequestStatusReport = RemoveNodeFromNetworkRequestStatusReport;
93
122
  //# sourceMappingURL=RemoveNodeFromNetworkRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveNodeFromNetworkRequest.js","sourceRoot":"","sources":["../../../src/lib/controller/RemoveNodeFromNetworkRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoveNodeFromNetworkRequest.js","sourceRoot":"","sources":["../../../src/lib/controller/RemoveNodeFromNetworkRequest.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,7 @@ export declare type DriverEvents = Extract<keyof DriverEventCallbacks, string>;
64
64
  */
65
65
  export declare class Driver extends TypedEventEmitter<DriverEventCallbacks> {
66
66
  private port;
67
+ constructor(port: string, options?: DeepPartial<ZWaveOptions>);
67
68
  /** The serial port instance */
68
69
  private serial;
69
70
  /** An instance of the Send Thread state machine */
@@ -90,7 +91,6 @@ export declare class Driver extends TypedEventEmitter<DriverEventCallbacks> {
90
91
  get controller(): ZWaveController;
91
92
  private _securityManager;
92
93
  private _securityManager2;
93
- constructor(port: string, options?: DeepPartial<ZWaveOptions>);
94
94
  /** Updates the logging configuration without having to restart the driver. */
95
95
  updateLogConfig(config: DeepPartial<LogConfig>): void;
96
96
  /** Returns the current logging configuration. */
@@ -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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"}
@@ -44,7 +44,6 @@ const CommandClass_1 = require("../commandclass/CommandClass");
44
44
  const DeviceResetLocallyCC_1 = require("../commandclass/DeviceResetLocallyCC");
45
45
  const EncapsulatingCommandClass_1 = require("../commandclass/EncapsulatingCommandClass");
46
46
  const ICommandClassContainer_1 = require("../commandclass/ICommandClassContainer");
47
- const ManufacturerSpecificCC_1 = require("../commandclass/ManufacturerSpecificCC");
48
47
  const MultiChannelCC_1 = require("../commandclass/MultiChannelCC");
49
48
  const NoOperationCC_1 = require("../commandclass/NoOperationCC");
50
49
  const shared_2 = require("../commandclass/Security2/shared");
@@ -57,6 +56,7 @@ const ApplicationUpdateRequest_1 = require("../controller/ApplicationUpdateReque
57
56
  const BridgeApplicationCommandRequest_1 = require("../controller/BridgeApplicationCommandRequest");
58
57
  const Controller_1 = require("../controller/Controller");
59
58
  const GetControllerVersionMessages_1 = require("../controller/GetControllerVersionMessages");
59
+ const Inclusion_1 = require("../controller/Inclusion");
60
60
  const SendDataBridgeMessages_1 = require("../controller/SendDataBridgeMessages");
61
61
  const SendDataMessages_1 = require("../controller/SendDataMessages");
62
62
  const SendDataShared_1 = require("../controller/SendDataShared");
@@ -233,6 +233,7 @@ class Driver extends shared_1.TypedEventEmitter {
233
233
  this._controllerLog = new Controller_2.ControllerLogger(this._logContainer);
234
234
  // Initialize the cache
235
235
  this.cacheDir = this.options.storage.cacheDir;
236
+ // TODO: Load provisioning list
236
237
  // Initialize config manager
237
238
  this.configManager = new config_1.ConfigManager({
238
239
  logContainer: this._logContainer,
@@ -581,13 +582,9 @@ class Driver extends shared_1.TypedEventEmitter {
581
582
  // some 500-series sticks in virtualized environments don't respond after a soft reset
582
583
  // No need to initialize databases if skipInterview is true, because it is only used in some
583
584
  // Driver unit tests that don't need access to them
585
+ // Identify the controller and determine if it supports soft reset
584
586
  await this.controller.identify();
585
- // now that we know the home ID, we can open the databases
586
- await this.initValueDBs(this.controller.homeId);
587
- // Create the controller node so we can use its value DB
588
- this.controller.initializeControllerNode();
589
- // and check if we may do a soft reset
590
- if (this.options.enableSoftReset && !this.maySoftReset()) {
587
+ if (this.options.enableSoftReset && !(await this.maySoftReset())) {
591
588
  this.driverLog.print(`Soft reset is enabled through config, but this stick does not support it.`, "warn");
592
589
  this.options.enableSoftReset = false;
593
590
  }
@@ -599,12 +596,27 @@ class Driver extends shared_1.TypedEventEmitter {
599
596
  if ((0, core_1.isZWaveError)(e) &&
600
597
  e.code === core_1.ZWaveErrorCodes.Driver_Failed) {
601
598
  // Remember that soft reset is not supported by this stick
602
- this.rememberNoSoftReset();
599
+ await this.rememberNoSoftReset();
603
600
  // Then fail the driver
604
601
  await this.destroy();
602
+ return;
605
603
  }
606
604
  }
607
605
  }
606
+ // There are situations where a controller claims it has the ID 0,
607
+ // which isn't valid. In this case try again after having soft-reset the stick
608
+ if (this.controller.ownNodeId === 0 &&
609
+ this.options.enableSoftReset) {
610
+ this.driverLog.print(`Controller identification returned invalid node ID 0 - trying again...`, "warn");
611
+ await this.controller.identify();
612
+ }
613
+ if (this.controller.ownNodeId === 0) {
614
+ this.driverLog.print(`Controller identification returned invalid node ID 0`, "error");
615
+ await this.destroy();
616
+ return;
617
+ }
618
+ // now that we know the home ID, we can open the databases
619
+ await this.initValueDBs(this.controller.homeId);
608
620
  // Interview the controller.
609
621
  await this._controller.interview(async () => {
610
622
  // Try to restore the network information from the cache
@@ -612,6 +624,8 @@ class Driver extends shared_1.TypedEventEmitter {
612
624
  await this.restoreNetworkStructureFromCache();
613
625
  }
614
626
  });
627
+ // Auto-enable smart start inclusion
628
+ this._controller.autoProvisionSmartStart();
615
629
  }
616
630
  // Set up the S0 security manager. We can only do that after the controller
617
631
  // interview because we need to know the controller node id.
@@ -1088,17 +1102,31 @@ class Driver extends shared_1.TypedEventEmitter {
1088
1102
  throw new core_1.ZWaveError("Cannot retrieve the version of a CC that is not implemented", core_1.ZWaveErrorCodes.CC_NotSupported);
1089
1103
  }
1090
1104
  }
1091
- maySoftReset() {
1092
- const controllerNode = this.controller.nodes.getOrThrow(this.controller.ownNodeId);
1093
- const valueDB = controllerNode.valueDB;
1105
+ async maySoftReset() {
1106
+ var _a;
1094
1107
  // If we've previously determined a stick not to support soft reset, don't bother trying again
1095
- const disableSoftReset = !!valueDB.getValue((0, core_1.getNodeMetaValueID)("disableSoftReset"));
1096
- if (disableSoftReset)
1108
+ let supportsSoftReset;
1109
+ if (this._controllerInterviewed) {
1110
+ supportsSoftReset = this.controller.supportsSoftReset;
1111
+ }
1112
+ else {
1113
+ // The controller wasn't interviewed yet, read the json file manually
1114
+ const fs = this.options.storage.driver;
1115
+ const cacheFile = path_1.default.join(this.cacheDir, this.controller.homeId.toString(16) + ".json");
1116
+ // Read it if it exists
1117
+ let json;
1118
+ if (await fs.pathExists(cacheFile)) {
1119
+ try {
1120
+ json = JSON.parse(await fs.readFile(cacheFile, "utf8"));
1121
+ }
1122
+ catch { }
1123
+ }
1124
+ supportsSoftReset = (_a = json === null || json === void 0 ? void 0 : json.controller) === null || _a === void 0 ? void 0 : _a.supportsSoftReset;
1125
+ }
1126
+ if (supportsSoftReset === false)
1097
1127
  return false;
1098
1128
  // Blacklist some sticks that are known to not support soft reset
1099
- const manufacturerId = valueDB.getValue((0, ManufacturerSpecificCC_1.getManufacturerIdValueId)());
1100
- const productType = valueDB.getValue((0, ManufacturerSpecificCC_1.getProductTypeValueId)());
1101
- const productId = valueDB.getValue((0, ManufacturerSpecificCC_1.getProductIdValueId)());
1129
+ const { manufacturerId, productType, productId } = this.controller;
1102
1130
  // Z-Wave.me UZB1
1103
1131
  if (manufacturerId === 0x0115 &&
1104
1132
  productType === 0x0000 &&
@@ -1113,12 +1141,36 @@ class Driver extends shared_1.TypedEventEmitter {
1113
1141
  }
1114
1142
  return true;
1115
1143
  }
1116
- rememberNoSoftReset() {
1144
+ async rememberNoSoftReset() {
1145
+ var _a;
1117
1146
  this.driverLog.print("Soft reset seems not to be supported by this stick, disabling it.", "warn");
1118
- const controllerNode = this.controller.nodes.getOrThrow(this.controller.ownNodeId);
1119
- const valueDB = controllerNode.valueDB;
1120
- // If we've previously determined a stick not to support soft reset, don't bother trying again
1121
- valueDB.setValue((0, core_1.getNodeMetaValueID)("disableSoftReset"), true);
1147
+ this.controller.supportsSoftReset = false;
1148
+ if (this._controllerInterviewed) {
1149
+ // We can use the normal method for this
1150
+ await this.saveNetworkToCacheInternal();
1151
+ }
1152
+ else {
1153
+ // saveNetworkToCache won't write anything, just edit the file "manually"
1154
+ // TODO: This is ugly, rework this when changing how the network data is saved
1155
+ const fs = this.options.storage.driver;
1156
+ await fs.ensureDir(this.cacheDir);
1157
+ const cacheFile = path_1.default.join(this.cacheDir, this.controller.homeId.toString(16) + ".json");
1158
+ // Read it if it exists
1159
+ let json;
1160
+ if (await fs.pathExists(cacheFile)) {
1161
+ try {
1162
+ json = JSON.parse(await fs.readFile(cacheFile, "utf8"));
1163
+ }
1164
+ catch { }
1165
+ }
1166
+ // Change the supportsSoftReset flag
1167
+ json !== null && json !== void 0 ? json : (json = {});
1168
+ (_a = json.controller) !== null && _a !== void 0 ? _a : (json.controller = {});
1169
+ json.controller.supportsSoftReset = false;
1170
+ // And save it again
1171
+ const jsonString = (0, shared_1.stringify)(json);
1172
+ await this.options.storage.driver.writeFile(cacheFile, jsonString, "utf8");
1173
+ }
1122
1174
  }
1123
1175
  /**
1124
1176
  * Soft-resets the controller if the feature is enabled
@@ -1272,12 +1324,27 @@ class Driver extends shared_1.TypedEventEmitter {
1272
1324
  * Must be called under any circumstances.
1273
1325
  */
1274
1326
  async destroy() {
1275
- var _a, _b, _c;
1327
+ var _a, _b, _c, _d;
1276
1328
  // Ensure this is only called once and all subsequent calls block
1277
1329
  if (this._destroyPromise)
1278
1330
  return this._destroyPromise;
1279
1331
  this._destroyPromise = (0, deferred_promise_1.createDeferredPromise)();
1280
1332
  this.driverLog.print("destroying driver instance...");
1333
+ // Disable inclusion before shutting down
1334
+ try {
1335
+ switch ((_a = this._controller) === null || _a === void 0 ? void 0 : _a.inclusionState) {
1336
+ case Inclusion_1.InclusionState.SmartStart:
1337
+ case Inclusion_1.InclusionState.Including:
1338
+ await this._controller.stopInclusionNoCallback();
1339
+ break;
1340
+ case Inclusion_1.InclusionState.Excluding:
1341
+ await this._controller.stopExclusionNoCallback();
1342
+ break;
1343
+ }
1344
+ }
1345
+ catch {
1346
+ // ignore
1347
+ }
1281
1348
  // First stop the send thread machine and close the serial port, so nothing happens anymore
1282
1349
  if (this.sendThread.initialized)
1283
1350
  this.sendThread.stop();
@@ -1297,8 +1364,8 @@ class Driver extends shared_1.TypedEventEmitter {
1297
1364
  }
1298
1365
  try {
1299
1366
  // Attempt to close the value DBs
1300
- await ((_a = this._valueDB) === null || _a === void 0 ? void 0 : _a.close());
1301
- await ((_b = this._metadataDB) === null || _b === void 0 ? void 0 : _b.close());
1367
+ await ((_b = this._valueDB) === null || _b === void 0 ? void 0 : _b.close());
1368
+ await ((_c = this._metadataDB) === null || _c === void 0 ? void 0 : _c.close());
1302
1369
  }
1303
1370
  catch (e) {
1304
1371
  this.driverLog.print(`Closing the value DBs failed: ${(0, shared_1.getErrorMessage)(e)}`, "error");
@@ -1314,7 +1381,7 @@ class Driver extends shared_1.TypedEventEmitter {
1314
1381
  clearTimeout(timeout);
1315
1382
  }
1316
1383
  // Destroy all nodes
1317
- (_c = this._controller) === null || _c === void 0 ? void 0 : _c.nodes.forEach((n) => n.destroy());
1384
+ (_d = this._controller) === null || _d === void 0 ? void 0 : _d.nodes.forEach((n) => n.destroy());
1318
1385
  process.removeListener("exit", this._cleanupHandler);
1319
1386
  process.removeListener("SIGINT", this._cleanupHandler);
1320
1387
  process.removeListener("uncaughtException", this._cleanupHandler);
@@ -1527,7 +1594,7 @@ class Driver extends shared_1.TypedEventEmitter {
1527
1594
  throw e;
1528
1595
  }
1529
1596
  async handleSecurityS2DecodeError(e, msg) {
1530
- var _a;
1597
+ var _a, _b;
1531
1598
  if (!(0, core_1.isZWaveError)(e))
1532
1599
  return false;
1533
1600
  if ((e.code === core_1.ZWaveErrorCodes.Security2CC_NoSPAN ||
@@ -1559,13 +1626,42 @@ class Driver extends shared_1.TypedEventEmitter {
1559
1626
  ? "Message authentication failed"
1560
1627
  : "No SPAN is established yet";
1561
1628
  if (this.controller.bootstrappingS2NodeId === nodeId) {
1562
- // The node is currently being bootstrapped. Us not being able to decode the command means we need to abort the bootstrapping process
1563
- this.controllerLog.logNode(nodeId, {
1564
- message: `${message}, cannot decode command. Aborting the S2 bootstrapping process...`,
1565
- level: "error",
1566
- direction: "inbound",
1567
- });
1568
- this.controller.cancelSecureBootstrapS2(shared_2.KEXFailType.BootstrappingCanceled);
1629
+ // The node is currently being bootstrapped.
1630
+ if ((_b = this.securityManager2) === null || _b === void 0 ? void 0 : _b.tempKeys.has(nodeId)) {
1631
+ // The DSK has been verified, so we should be able to decode this command.
1632
+ // If this is the first attempt, we need to request a nonce first
1633
+ if (this.securityManager2.getSPANState(nodeId).type ===
1634
+ core_1.SPANState.None) {
1635
+ this.controllerLog.logNode(nodeId, {
1636
+ message: `${message}, cannot decode command. Requesting a nonce...`,
1637
+ level: "verbose",
1638
+ direction: "outbound",
1639
+ });
1640
+ // Send the node our nonce
1641
+ node.commandClasses["Security 2"]
1642
+ .sendNonce()
1643
+ .catch(() => {
1644
+ // Ignore errors
1645
+ });
1646
+ }
1647
+ else {
1648
+ // Us repeatedly not being able to decode the command means we need to abort the bootstrapping process
1649
+ // because the PIN is wrong
1650
+ this.controllerLog.logNode(nodeId, {
1651
+ message: `${message}, cannot decode command. Aborting the S2 bootstrapping process...`,
1652
+ level: "error",
1653
+ direction: "inbound",
1654
+ });
1655
+ this.controller.cancelSecureBootstrapS2(shared_2.KEXFailType.BootstrappingCanceled);
1656
+ }
1657
+ }
1658
+ else {
1659
+ this.controllerLog.logNode(nodeId, {
1660
+ message: `Ignoring KEXSet because the DSK has not been verified yet`,
1661
+ level: "verbose",
1662
+ direction: "inbound",
1663
+ });
1664
+ }
1569
1665
  }
1570
1666
  else if (!this.hasPendingTransactions(isS2NonceReport)) {
1571
1667
  this.controllerLog.logNode(nodeId, {
@@ -2065,6 +2161,31 @@ ${handlers.length} left`);
2065
2161
  return;
2066
2162
  }
2067
2163
  }
2164
+ else if (msg instanceof ApplicationUpdateRequest_1.ApplicationUpdateRequestSmartStartHomeIDReceived) {
2165
+ // the controller is in Smart Start learn mode and a node requests inclusion via Smart Start
2166
+ this.controllerLog.print("Received Smart Start inclusion request");
2167
+ if (this.controller.inclusionState !== Inclusion_1.InclusionState.Idle &&
2168
+ this.controller.inclusionState !== Inclusion_1.InclusionState.SmartStart) {
2169
+ this.controllerLog.print("Controller is busy and cannot handle this inclusion request right now...");
2170
+ return;
2171
+ }
2172
+ // Check if the node is on the provisioning list
2173
+ const provisioningEntry = this.controller.provisioningList.find((entry) => (0, core_1.nwiHomeIdFromDSK)((0, core_1.dskFromString)(entry.dsk)).equals(msg.nwiHomeId));
2174
+ if (!provisioningEntry) {
2175
+ this.controllerLog.print("NWI Home ID not found in provisioning list, ignoring request...");
2176
+ return;
2177
+ }
2178
+ this.controllerLog.print("NWI Home ID found in provisioning list, including node...");
2179
+ try {
2180
+ const result = await this.controller.beginInclusionSmartStart(provisioningEntry);
2181
+ if (!result) {
2182
+ this.controllerLog.print("Smart Start inclusion could not be started", "error");
2183
+ }
2184
+ }
2185
+ catch (e) {
2186
+ this.controllerLog.print(`Smart Start inclusion could not be started: ${(0, shared_1.getErrorMessage)(e)}`, "error");
2187
+ }
2188
+ }
2068
2189
  }
2069
2190
  else {
2070
2191
  // Check if we have a dynamic handler waiting for this message