zwave-js 15.25.2 → 15.25.3

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 (59) hide show
  1. package/build/cjs/lib/_version.d.ts +1 -1
  2. package/build/cjs/lib/_version.js +1 -1
  3. package/build/cjs/lib/_version.js.map +1 -1
  4. package/build/cjs/lib/controller/Controller.js +124 -98
  5. package/build/cjs/lib/controller/Controller.js.map +2 -2
  6. package/build/cjs/lib/driver/Driver.js +12 -12
  7. package/build/cjs/lib/driver/Driver.js.map +2 -2
  8. package/build/cjs/lib/log/Driver.d.ts +2 -2
  9. package/build/cjs/lib/log/Driver.js +17 -26
  10. package/build/cjs/lib/log/Driver.js.map +2 -2
  11. package/build/cjs/lib/log/Zniffer.d.ts +2 -2
  12. package/build/cjs/lib/log/Zniffer.js +21 -29
  13. package/build/cjs/lib/log/Zniffer.js.map +2 -2
  14. package/build/cjs/lib/node/MockNodeBehaviors.js +0 -3
  15. package/build/cjs/lib/node/MockNodeBehaviors.js.map +2 -2
  16. package/build/cjs/lib/node/Node.js +38 -32
  17. package/build/cjs/lib/node/Node.js.map +2 -2
  18. package/build/cjs/lib/test/integrationTestSuite.d.ts +8 -1
  19. package/build/cjs/lib/test/integrationTestSuite.js +20 -6
  20. package/build/cjs/lib/test/integrationTestSuite.js.map +2 -2
  21. package/build/cjs/lib/test/integrationTestSuiteMulti.d.ts +8 -1
  22. package/build/cjs/lib/test/integrationTestSuiteMulti.js +19 -5
  23. package/build/cjs/lib/test/integrationTestSuiteMulti.js.map +2 -2
  24. package/build/cjs/lib/zniffer/MPDU.js +17 -30
  25. package/build/cjs/lib/zniffer/MPDU.js.map +2 -2
  26. package/build/esm/lib/_version.d.ts +1 -1
  27. package/build/esm/lib/_version.js +1 -1
  28. package/build/esm/lib/controller/Controller.d.ts.map +1 -1
  29. package/build/esm/lib/controller/Controller.js +155 -120
  30. package/build/esm/lib/controller/Controller.js.map +1 -1
  31. package/build/esm/lib/driver/Driver.d.ts.map +1 -1
  32. package/build/esm/lib/driver/Driver.js +15 -13
  33. package/build/esm/lib/driver/Driver.js.map +1 -1
  34. package/build/esm/lib/log/Driver.d.ts +2 -2
  35. package/build/esm/lib/log/Driver.d.ts.map +1 -1
  36. package/build/esm/lib/log/Driver.js +22 -33
  37. package/build/esm/lib/log/Driver.js.map +1 -1
  38. package/build/esm/lib/log/Zniffer.d.ts +2 -2
  39. package/build/esm/lib/log/Zniffer.d.ts.map +1 -1
  40. package/build/esm/lib/log/Zniffer.js +26 -35
  41. package/build/esm/lib/log/Zniffer.js.map +1 -1
  42. package/build/esm/lib/node/MockNodeBehaviors.d.ts.map +1 -1
  43. package/build/esm/lib/node/MockNodeBehaviors.js +0 -4
  44. package/build/esm/lib/node/MockNodeBehaviors.js.map +1 -1
  45. package/build/esm/lib/node/Node.d.ts.map +1 -1
  46. package/build/esm/lib/node/Node.js +40 -36
  47. package/build/esm/lib/node/Node.js.map +1 -1
  48. package/build/esm/lib/test/integrationTestSuite.d.ts +8 -1
  49. package/build/esm/lib/test/integrationTestSuite.d.ts.map +1 -1
  50. package/build/esm/lib/test/integrationTestSuite.js +26 -10
  51. package/build/esm/lib/test/integrationTestSuite.js.map +1 -1
  52. package/build/esm/lib/test/integrationTestSuiteMulti.d.ts +8 -1
  53. package/build/esm/lib/test/integrationTestSuiteMulti.d.ts.map +1 -1
  54. package/build/esm/lib/test/integrationTestSuiteMulti.js +25 -9
  55. package/build/esm/lib/test/integrationTestSuiteMulti.js.map +1 -1
  56. package/build/esm/lib/zniffer/MPDU.d.ts.map +1 -1
  57. package/build/esm/lib/zniffer/MPDU.js +17 -30
  58. package/build/esm/lib/zniffer/MPDU.js.map +1 -1
  59. package/package.json +9 -9
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "15.25.2";
1
+ export declare const PACKAGE_VERSION = "15.25.3";
2
2
  export declare const PACKAGE_NAME = "zwave-js";
3
3
  //# sourceMappingURL=_version.d.ts.map
@@ -22,7 +22,7 @@ __export(version_exports, {
22
22
  PACKAGE_VERSION: () => PACKAGE_VERSION
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- const PACKAGE_VERSION = "15.25.2";
25
+ const PACKAGE_VERSION = "15.25.3";
26
26
  const PACKAGE_NAME = "zwave-js";
27
27
  // Annotate the CommonJS export names for ESM import in node:
28
28
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lib/_version.ts"],
4
- "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.25.2\";\nexport const PACKAGE_NAME = \"zwave-js\";\n"],
4
+ "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.25.3\";\nexport const PACKAGE_NAME = \"zwave-js\";\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;;AACO,MAAM,kBAAkB;AACxB,MAAM,eAAe;",
6
6
  "names": []
7
7
  }
@@ -567,13 +567,15 @@ let ZWaveController = (() => {
567
567
  this._productType = apiCaps.productType;
568
568
  this._productId = apiCaps.productId;
569
569
  this._supportedFunctionTypes = apiCaps.supportedFunctionTypes;
570
- this.driver.controllerLog.print(`received API capabilities:
571
- firmware version: ${this._firmwareVersion}
572
- manufacturer ID: ${(0, import_shared.num2hex)(this._manufacturerId)}
573
- product type: ${(0, import_shared.num2hex)(this._productType)}
574
- product ID: ${(0, import_shared.num2hex)(this._productId)}
575
- supported functions: ${this._supportedFunctionTypes.map((fn) => `
576
- \xB7 ${import_serial.FunctionType[fn]} (${(0, import_shared.num2hex)(fn)})`).join("")}`);
570
+ this.driver.controllerLog.print((0, import_core.logText)("received API capabilities:", {
571
+ nested: (0, import_core.logDict)({
572
+ "firmware version": this._firmwareVersion,
573
+ "manufacturer ID": (0, import_shared.num2hex)(this._manufacturerId),
574
+ "product type": (0, import_shared.num2hex)(this._productType),
575
+ "product ID": (0, import_shared.num2hex)(this._productId),
576
+ "supported functions": (0, import_core.logList)(this._supportedFunctionTypes.map((fn) => `${import_serial.FunctionType[fn]} (${(0, import_shared.num2hex)(fn)})`))
577
+ })
578
+ }));
577
579
  const initData = await this.getSerialApiInitData();
578
580
  this.driver.controllerLog.print(`querying version info...`);
579
581
  const version = await this.driver.sendMessage(new import_serialapi.GetControllerVersionRequest(), {
@@ -581,25 +583,24 @@ let ZWaveController = (() => {
581
583
  });
582
584
  this._protocolVersion = version.libraryVersion;
583
585
  this._type = version.controllerType;
584
- this.driver.controllerLog.print(`received version info:
585
- controller type: ${(0, import_shared.getEnumMemberName)(import_core.ZWaveLibraryTypes, this._type)}
586
- library version: ${this._protocolVersion}`);
586
+ this.driver.controllerLog.print((0, import_core.logText)("received version info:", {
587
+ nested: (0, import_core.logDict)({
588
+ "controller type": (0, import_shared.getEnumMemberName)(import_core.ZWaveLibraryTypes, this._type),
589
+ "library version": this._protocolVersion
590
+ })
591
+ }));
587
592
  if (this.isFunctionSupported(import_serial.FunctionType.GetProtocolVersion)) {
588
593
  this.driver.controllerLog.print(`querying protocol version info...`);
589
594
  const protocol = await this.driver.sendMessage(new import_serialapi.GetProtocolVersionRequest());
590
595
  this._protocolVersion = protocol.protocolVersion;
591
- let message = `received protocol version info:
592
- protocol type: ${(0, import_shared.getEnumMemberName)(import_core.ProtocolType, protocol.protocolType)}
593
- protocol version: ${protocol.protocolVersion}`;
594
- if (protocol.applicationFrameworkBuildNumber) {
595
- message += `
596
- appl. framework build no.: ${protocol.applicationFrameworkBuildNumber}`;
597
- }
598
- if (protocol.gitCommitHash) {
599
- message += `
600
- git commit hash: ${protocol.gitCommitHash}`;
601
- }
602
- this.driver.controllerLog.print(message);
596
+ this.driver.controllerLog.print((0, import_core.logText)("received protocol version info:", {
597
+ nested: (0, import_core.logDict)({
598
+ "protocol type": (0, import_shared.getEnumMemberName)(import_core.ProtocolType, protocol.protocolType),
599
+ "protocol version": protocol.protocolVersion,
600
+ "appl. framework build no.": protocol.applicationFrameworkBuildNumber || void 0,
601
+ "git commit hash": protocol.gitCommitHash || void 0
602
+ })
603
+ }));
603
604
  }
604
605
  this._sdkVersion = (0, import_ZWaveSDKVersions.protocolVersionToSDKVersion)(this._protocolVersion);
605
606
  await this.getControllerCapabilities();
@@ -607,8 +608,9 @@ let ZWaveController = (() => {
607
608
  this.driver.controllerLog.print(`querying serial API setup capabilities...`);
608
609
  const setupCaps = await this.driver.sendMessage(new import_serialapi.SerialAPISetup_GetSupportedCommandsRequest());
609
610
  this._supportedSerialAPISetupCommands = setupCaps.supportedCommands;
610
- this.driver.controllerLog.print(`supported serial API setup commands:${this._supportedSerialAPISetupCommands.map((cmd) => `
611
- \xB7 ${(0, import_shared.getEnumMemberName)(import_serialapi.SerialAPISetupCommand, cmd)}`).join("")}`);
611
+ this.driver.controllerLog.print((0, import_core.logText)("supported serial API setup commands:", {
612
+ nested: (0, import_core.logList)(this._supportedSerialAPISetupCommands.map((cmd) => (0, import_shared.getEnumMemberName)(import_serialapi.SerialAPISetupCommand, cmd)))
613
+ }));
612
614
  } else {
613
615
  this._supportedSerialAPISetupCommands = [];
614
616
  }
@@ -621,8 +623,9 @@ let ZWaveController = (() => {
621
623
  this._supportsLongRange = false;
622
624
  this._supportsLongRangeAutoChannelSelection = false;
623
625
  }
624
- this.driver.controllerLog.print(`supported Z-Wave features: ${Object.keys(import_Features.ZWaveFeature).filter((k) => /^\d+$/.test(k)).map((k) => parseInt(k)).filter((feat) => this.supportsFeature(feat)).map((feat) => `
625
- \xB7 ${(0, import_shared.getEnumMemberName)(import_Features.ZWaveFeature, feat)}`).join("")}`);
626
+ this.driver.controllerLog.print((0, import_core.logText)("supported Z-Wave features:", {
627
+ nested: (0, import_core.logList)(Object.keys(import_Features.ZWaveFeature).filter((k) => /^\d+$/.test(k)).map((k) => parseInt(k)).filter((feat) => this.supportsFeature(feat)).map((feat) => (0, import_shared.getEnumMemberName)(import_Features.ZWaveFeature, feat)))
628
+ }));
626
629
  return {
627
630
  nodeIds: initData.nodeIds
628
631
  };
@@ -638,9 +641,12 @@ let ZWaveController = (() => {
638
641
  if (this.isSerialAPISetupCommandSupported(import_serialapi.SerialAPISetupCommand.GetLongRangeMaximumPayloadSize)) {
639
642
  this._maxPayloadSizeLR = await this.getMaxPayloadSizeLongRange();
640
643
  }
641
- this.driver.controllerLog.print(`received Z-Wave Long Range capabilities:
642
- max. payload size: ${this._maxPayloadSizeLR} bytes
643
- nodes: ${lrNodeIds.join(", ")}`);
644
+ this.driver.controllerLog.print((0, import_core.logText)("received Z-Wave Long Range capabilities:", {
645
+ nested: (0, import_core.logDict)({
646
+ "max. payload size": `${this._maxPayloadSizeLR} bytes`,
647
+ nodes: lrNodeIds.join(", ")
648
+ })
649
+ }));
644
650
  return {
645
651
  lrNodeIds
646
652
  };
@@ -694,20 +700,21 @@ let ZWaveController = (() => {
694
700
  continue;
695
701
  }
696
702
  }
697
- this.driver.controllerLog.print(`supported regions:${[...this._supportedRegions.values()].map((info) => {
698
- let ret = `
699
- \xB7 ${(0, import_shared.getEnumMemberName)(import_core.RFRegion, info.region)}`;
700
- if (info.includesRegion != void 0) {
701
- ret += ` \xB7 superset of ${(0, import_shared.getEnumMemberName)(import_core.RFRegion, info.includesRegion)}`;
702
- }
703
- if (info.supportsLongRange) {
704
- ret += " \xB7 ZWLR";
705
- if (!info.supportsZWave) {
706
- ret += " only";
703
+ this.driver.controllerLog.print((0, import_core.logText)("supported regions:", {
704
+ nested: (0, import_core.logList)([...this._supportedRegions.values()].map((info) => {
705
+ let ret = (0, import_shared.getEnumMemberName)(import_core.RFRegion, info.region);
706
+ if (info.includesRegion != void 0) {
707
+ ret += ` \xB7 superset of ${(0, import_shared.getEnumMemberName)(import_core.RFRegion, info.includesRegion)}`;
707
708
  }
708
- }
709
- return ret;
710
- }).join("")}`);
709
+ if (info.supportsLongRange) {
710
+ ret += " \xB7 ZWLR";
711
+ if (!info.supportsZWave) {
712
+ ret += " only";
713
+ }
714
+ }
715
+ return ret;
716
+ }))
717
+ }));
711
718
  }
712
719
  if (this.isSerialAPISetupCommandSupported(import_serialapi.SerialAPISetupCommand.GetRFRegion)) {
713
720
  this.driver.controllerLog.print(`Querying configured RF region...`);
@@ -794,10 +801,12 @@ let ZWaveController = (() => {
794
801
  this.driver.controllerLog.print(`Querying configured Long Range channel information...`);
795
802
  const resp = await this.getLongRangeChannel().catch(() => void 0);
796
803
  if (resp != void 0) {
797
- this.driver.controllerLog.print(`received Z-Wave Long Range channel information:
798
- channel: ${resp.channel != void 0 ? (0, import_shared.getEnumMemberName)(import_core.LongRangeChannel, resp.channel) : "(unknown)"}
799
- supports auto channel selection: ${resp.supportsAutoChannelSelection}
800
- `);
804
+ this.driver.controllerLog.print((0, import_core.logText)("received Z-Wave Long Range channel information:", {
805
+ nested: (0, import_core.logDict)({
806
+ channel: resp.channel != void 0 ? (0, import_shared.getEnumMemberName)(import_core.LongRangeChannel, resp.channel) : "(unknown)",
807
+ "supports auto channel selection": resp.supportsAutoChannelSelection
808
+ })
809
+ }));
801
810
  } else {
802
811
  this.driver.controllerLog.print(`Querying the Long Range channel information failed!`, "warn");
803
812
  }
@@ -828,9 +837,12 @@ let ZWaveController = (() => {
828
837
  const ids = await this.driver.sendMessage(new import_serialapi.GetControllerIdRequest(), { supportCheck: false });
829
838
  this._homeId = ids.homeId;
830
839
  this._ownNodeId = ids.ownNodeId;
831
- this.driver.controllerLog.print(`received controller IDs:
832
- home ID: ${(0, import_shared.num2hex)(this._homeId)}
833
- own node ID: ${this._ownNodeId}`);
840
+ this.driver.controllerLog.print((0, import_core.logText)("received controller IDs:", {
841
+ nested: (0, import_core.logDict)({
842
+ "home ID": (0, import_shared.num2hex)(this._homeId),
843
+ "own node ID": this._ownNodeId
844
+ })
845
+ }));
834
846
  }
835
847
  /**
836
848
  * @internal
@@ -1303,14 +1315,15 @@ let ZWaveController = (() => {
1303
1315
  supportedCCs,
1304
1316
  controlledCCs
1305
1317
  });
1306
- this.driver.controllerLog.print(`finished adding node ${newNode.id}:${newNode.deviceClass ? `
1307
- basic device class: ${(0, import_shared.getEnumMemberName)(import_core.BasicDeviceClass, newNode.deviceClass.basic)}
1308
- generic device class: ${newNode.deviceClass.generic.label}
1309
- specific device class: ${newNode.deviceClass.specific.label}` : ""}
1310
- supported CCs: ${supportedCCs.map((cc) => `
1311
- \xB7 ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`).join("")}
1312
- controlled CCs: ${controlledCCs.map((cc) => `
1313
- \xB7 ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`).join("")}`);
1318
+ this.driver.controllerLog.print((0, import_core.logText)(`finished adding node ${newNode.id}:`, {
1319
+ nested: (0, import_core.logDict)({
1320
+ "basic device class": newNode.deviceClass ? (0, import_shared.getEnumMemberName)(import_core.BasicDeviceClass, newNode.deviceClass.basic) : void 0,
1321
+ "generic device class": newNode.deviceClass?.generic.label,
1322
+ "specific device class": newNode.deviceClass?.specific.label,
1323
+ "supported CCs": (0, import_core.logList)(supportedCCs.map((cc) => `${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`)),
1324
+ "controlled CCs": (0, import_core.logList)(controlledCCs.map((cc) => `${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`))
1325
+ })
1326
+ }));
1314
1327
  this._nodes.set(newNode.id, newNode);
1315
1328
  newNode.markAsAlive();
1316
1329
  if (newNode.protocol == import_core.Protocols.ZWave) {
@@ -1952,8 +1965,9 @@ let ZWaveController = (() => {
1952
1965
  const securityManager = isLongRange ? this.driver.securityManagerLR : this.driver.securityManager2;
1953
1966
  const missingKeys = provisioningEntry.securityClasses.filter((sc) => !securityManager?.hasKeysForSecurityClass(sc));
1954
1967
  if (missingKeys.length > 0) {
1955
- this.driver.controllerLog.print(`Ignoring inclusion request because the following security classes were granted but have no key configured:${missingKeys.map((sc) => `
1956
- \xB7 ${(0, import_shared.getEnumMemberName)(import_core.SecurityClass, sc)}${isLongRange ? " (Long Range)" : ""}`).join("")}`, "error");
1968
+ this.driver.controllerLog.print((0, import_core.logText)("Ignoring inclusion request because the following security classes were granted but have no key configured:", {
1969
+ nested: (0, import_core.logList)(missingKeys.map((sc) => `${(0, import_shared.getEnumMemberName)(import_core.SecurityClass, sc)}${isLongRange ? " (Long Range)" : ""}`))
1970
+ }), "error");
1957
1971
  return;
1958
1972
  }
1959
1973
  this.driver.controllerLog.print("NWI Home ID found in provisioning list, including node...");
@@ -1998,12 +2012,14 @@ let ZWaveController = (() => {
1998
2012
  deviceClass,
1999
2013
  supportedCCs: nodeInfo.supportedCCs
2000
2014
  });
2001
- this.driver.controllerLog.print(`Node ${newNode.id} was included by another controller:${newNode.deviceClass ? `
2002
- basic device class: ${(0, import_shared.getEnumMemberName)(import_core.BasicDeviceClass, newNode.deviceClass.basic)}
2003
- generic device class: ${newNode.deviceClass.generic.label}
2004
- specific device class: ${newNode.deviceClass.specific.label}` : ""}
2005
- supported CCs: ${nodeInfo.supportedCCs.map((cc) => `
2006
- \xB7 ${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`).join("")}`);
2015
+ this.driver.controllerLog.print((0, import_core.logText)(`Node ${newNode.id} was included by another controller:`, {
2016
+ nested: (0, import_core.logDict)({
2017
+ "basic device class": newNode.deviceClass ? (0, import_shared.getEnumMemberName)(import_core.BasicDeviceClass, newNode.deviceClass.basic) : void 0,
2018
+ "generic device class": newNode.deviceClass?.generic.label,
2019
+ "specific device class": newNode.deviceClass?.specific.label,
2020
+ "supported CCs": (0, import_core.logList)(nodeInfo.supportedCCs.map((cc) => `${import_core.CommandClasses[cc]} (${(0, import_shared.num2hex)(cc)})`))
2021
+ })
2022
+ }));
2007
2023
  await this.updateProxyInclusionMachine({
2008
2024
  value: "NIF",
2009
2025
  nodeInfo,
@@ -2550,10 +2566,9 @@ let ZWaveController = (() => {
2550
2566
  }
2551
2567
  node.dsk = nodePublicKey.subarray(0, 16);
2552
2568
  this.driver.controllerLog.logNode(node.id, {
2553
- message: `Security S2 bootstrapping successful with these security classes:${[
2554
- ...node.securityClasses.entries()
2555
- ].filter(([, v]) => v).map(([k]) => `
2556
- \xB7 ${(0, import_shared.getEnumMemberName)(import_core.SecurityClass, k)}`).join("")}`
2569
+ message: (0, import_core.logText)("Security S2 bootstrapping successful with these security classes:", {
2570
+ nested: (0, import_core.logList)([...node.securityClasses.entries()].filter(([, v]) => v).map(([k]) => (0, import_shared.getEnumMemberName)(import_core.SecurityClass, k)))
2571
+ })
2557
2572
  });
2558
2573
  } catch (e) {
2559
2574
  let errorMessage = `Security S2 bootstrapping failed, the node was not granted any S2 security class`;
@@ -4223,14 +4238,17 @@ let ZWaveController = (() => {
4223
4238
  async getSerialApiInitData() {
4224
4239
  this.driver.controllerLog.print(`querying additional controller information...`);
4225
4240
  const initData = await this.driver.sendMessage(new import_serialapi.GetSerialApiInitDataRequest());
4226
- this.driver.controllerLog.print(`received additional controller information:
4227
- Z-Wave API version: ${initData.zwaveApiVersion.version} (${initData.zwaveApiVersion.kind})${initData.zwaveChipType ? `
4228
- Z-Wave chip type: ${typeof initData.zwaveChipType === "string" ? initData.zwaveChipType : `unknown (type: ${(0, import_shared.num2hex)(initData.zwaveChipType.type)}, version: ${(0, import_shared.num2hex)(initData.zwaveChipType.version)})`}` : ""}
4229
- node type ${(0, import_shared.getEnumMemberName)(import_core.NodeType, initData.nodeType)}
4230
- controller role: ${initData.isPrimary ? "primary" : "secondary"}
4231
- controller is the SIS: ${initData.isSIS}
4232
- controller supports timers: ${initData.supportsTimers}
4233
- Z-Wave Classic nodes: ${initData.nodeIds.join(", ")}`);
4241
+ this.driver.controllerLog.print((0, import_core.logText)("received additional controller information:", {
4242
+ nested: (0, import_core.logDict)({
4243
+ "Z-Wave API version": `${initData.zwaveApiVersion.version} (${initData.zwaveApiVersion.kind})`,
4244
+ "Z-Wave chip type": initData.zwaveChipType ? typeof initData.zwaveChipType === "string" ? initData.zwaveChipType : `unknown (type: ${(0, import_shared.num2hex)(initData.zwaveChipType.type)}, version: ${(0, import_shared.num2hex)(initData.zwaveChipType.version)})` : void 0,
4245
+ "node type": (0, import_shared.getEnumMemberName)(import_core.NodeType, initData.nodeType),
4246
+ "controller role": initData.isPrimary ? "primary" : "secondary",
4247
+ "controller is the SIS": initData.isSIS,
4248
+ "controller supports timers": initData.supportsTimers,
4249
+ "Z-Wave Classic nodes": initData.nodeIds.join(", ")
4250
+ })
4251
+ }));
4234
4252
  const ret = {
4235
4253
  ...(0, import_shared.pick)(initData, [
4236
4254
  "zwaveApiVersion",
@@ -4269,12 +4287,15 @@ let ZWaveController = (() => {
4269
4287
  this._wasRealPrimary = ret.wasRealPrimary;
4270
4288
  this._isSUC = ret.isSUC;
4271
4289
  this._noNodesIncluded = ret.noNodesIncluded;
4272
- this.driver.controllerLog.print(`received controller capabilities:
4273
- controller role: ${(0, import_shared.getEnumMemberName)(import_core.ControllerRole, this.role)}
4274
- is the SUC: ${ret.isSUC}
4275
- started this network: ${!ret.isUsingHomeIdFromOtherNetwork}
4276
- SIS is present: ${ret.isSISPresent}
4277
- was real primary: ${ret.wasRealPrimary}`);
4290
+ this.driver.controllerLog.print((0, import_core.logText)("received controller capabilities:", {
4291
+ nested: (0, import_core.logDict)({
4292
+ "controller role": (0, import_shared.getEnumMemberName)(import_core.ControllerRole, this.role),
4293
+ "is the SUC": ret.isSUC,
4294
+ "started this network": !ret.isUsingHomeIdFromOtherNetwork,
4295
+ "SIS is present": ret.isSISPresent,
4296
+ "was real primary": ret.wasRealPrimary
4297
+ })
4298
+ }));
4278
4299
  return ret;
4279
4300
  }
4280
4301
  /**
@@ -5118,13 +5139,15 @@ let ZWaveController = (() => {
5118
5139
  const firmwares = [];
5119
5140
  for (let i = 0; i < files.length; i++) {
5120
5141
  const update = files[i];
5121
- let logMessage = `Downloading firmware update ${i} of ${files.length}...`;
5122
- if (loglevel === "silly") {
5123
- logMessage += `
5124
- URL: ${update.url}
5125
- integrity: ${update.integrity}`;
5126
- }
5127
- this.driver.controllerLog.logNode(nodeId, logMessage);
5142
+ const logMessage = `Downloading firmware update ${i} of ${files.length}...`;
5143
+ this.driver.controllerLog.logNode(nodeId, {
5144
+ message: loglevel === "silly" ? (0, import_core.logText)(logMessage, {
5145
+ nested: (0, import_core.logDict)({
5146
+ URL: update.url,
5147
+ integrity: update.integrity
5148
+ })
5149
+ }) : logMessage
5150
+ });
5128
5151
  try {
5129
5152
  const firmware = await (0, import_FirmwareUpdateService.downloadFirmwareUpdate)(update);
5130
5153
  firmwares.push(firmware);
@@ -5640,10 +5663,9 @@ let ZWaveController = (() => {
5640
5663
  for (const [secClass, key] of receivedKeys) {
5641
5664
  this.driver.cacheSet(import_NetworkCache.cacheKeys.controller.securityKeys(secClass), key);
5642
5665
  }
5643
- this.driver.driverLog.print(`Security S2 bootstrapping successful with these security classes:${[
5644
- ...bootstrappingNode.securityClasses.entries()
5645
- ].filter(([, v]) => v).map(([k]) => `
5646
- \xB7 ${(0, import_shared.getEnumMemberName)(import_core.SecurityClass, k)}`).join("")}`);
5666
+ this.driver.driverLog.print((0, import_core.logText)("Security S2 bootstrapping successful with these security classes:", {
5667
+ nested: (0, import_core.logList)([...bootstrappingNode.securityClasses.entries()].filter(([, v]) => v).map(([k]) => (0, import_shared.getEnumMemberName)(import_core.SecurityClass, k)))
5668
+ }));
5647
5669
  } catch (e) {
5648
5670
  let errorMessage = `Security S2 bootstrapping failed, no S2 security classes were granted`;
5649
5671
  let result = import_Inclusion.SecurityBootstrapFailure.Unknown;
@@ -5752,10 +5774,14 @@ let ZWaveController = (() => {
5752
5774
  }
5753
5775
  if (grant) {
5754
5776
  this.driver.controllerLog.logNode(nodeId, {
5755
- message: `Received S2 bootstrap initiation, requesting keys: ${grant.securityClasses.map((sc) => `
5756
- \xB7 ${(0, import_shared.getEnumMemberName)(import_core.SecurityClass, sc)}
5757
- `).join("")}
5758
- client-side auth: ${grant.clientSideAuth}`
5777
+ message: (0, import_core.logText)("Received S2 bootstrap initiation, requesting keys:", {
5778
+ nested: [
5779
+ (0, import_core.logList)(grant.securityClasses.map((sc) => (0, import_shared.getEnumMemberName)(import_core.SecurityClass, sc))),
5780
+ (0, import_core.logDict)({
5781
+ "client-side auth": grant.clientSideAuth
5782
+ })
5783
+ ]
5784
+ })
5759
5785
  });
5760
5786
  const bootstrapResult = await this.expectSecurityBootstrapS2(bootstrappingNode, grant, this._joinNetworkOptions?.userCallbacks);
5761
5787
  if (bootstrapResult !== void 0) {