zwave-js 11.10.0 → 11.11.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.
@@ -1,11 +1,12 @@
1
1
  // @ts-check
2
- const { MockServer } = require("../build/Testing");
3
- const { readFileSync } = require("fs");
2
+ const { MockServer } = require("../build/mockServer");
3
+ const { readFileSync, statSync, readdirSync } = require("fs");
4
4
  const path = require("path");
5
5
 
6
6
  const args = process.argv.slice(2);
7
7
 
8
- if (args.includes("--help") || args.includes("-h")) {
8
+ /** @returns {never} */
9
+ function printUsage() {
9
10
  // Print a help text explaining the usage of this script and mention the options it supports
10
11
  console.log(`
11
12
  Usage: node ${path.basename(__filename)} [options]
@@ -14,26 +15,117 @@ Options:
14
15
  -h, --help Displays this help
15
16
  -i, --interface The network interface to bind to. Default: all interfaces
16
17
  -p, --port The port to bind to. Default: 5555
17
- -c, --config Path to a config file (either .js or .json), which defines the mock
18
+ -c, --config Path to a single config file, or a directory with config
19
+ files. Config files have extension .js or .json and define
20
+ the mock(s)
18
21
 
19
22
  `);
20
- process.exit(0);
23
+ throw process.exit(0);
24
+ }
25
+
26
+ if (args.includes("--help") || args.includes("-h")) {
27
+ throw printUsage();
28
+ }
29
+
30
+ /** @param {{filename: string; config: Record<string, any>}[]} files */
31
+ function mergeConfigFiles(files) {
32
+ // Make sure that only one of the files defines the controller behavior
33
+ const filesWithControllerMock = files.filter((f) => !!f.config.controller);
34
+ if (filesWithControllerMock.length > 1) {
35
+ console.error(`
36
+ Only one of the config files may define the controller behavior, but the following files do:
37
+ ${filesWithControllerMock.map((f) => `- ${f.filename}\n`).join()}
38
+ `);
39
+
40
+ process.exit(1);
41
+ }
42
+
43
+ // Remember the whole config file for each node, so we can give an error message when a node ID is duplicated
44
+ const nodeConfigFiles = new Map();
45
+ for (const file of files) {
46
+ if (!file.config.nodes) continue;
47
+ for (const nodeConfig of file.config.nodes) {
48
+ if (!nodeConfigFiles.has(nodeConfig.id)) {
49
+ nodeConfigFiles.set(nodeConfig.id, file);
50
+ } else {
51
+ console.error(`
52
+ Each node ID may only be used once in mock configs. Node ID ${
53
+ nodeConfig.id
54
+ } is duplicated in the following files:
55
+ - ${nodeConfigFiles.get(nodeConfig.id).filename}
56
+ - ${file.filename}
57
+ `);
58
+
59
+ process.exit(1);
60
+ }
61
+ }
62
+ }
63
+
64
+ const mergedConfig = {};
65
+ if (filesWithControllerMock.length) {
66
+ mergedConfig.controller = filesWithControllerMock[0].config.controller;
67
+ }
68
+
69
+ for (const [nodeId, file] of nodeConfigFiles) {
70
+ mergedConfig.nodes ??= [];
71
+ mergedConfig.nodes.push(file.config.nodes.find((n) => n.id === nodeId));
72
+ }
73
+ mergedConfig.nodes?.sort((a, b) => a.id - b.id);
74
+
75
+ return mergedConfig;
76
+ }
77
+
78
+ /**
79
+ * @param {string} filename
80
+ */
81
+ function getConfig(filename) {
82
+ if (filename.endsWith(".js")) {
83
+ return require(filename).default;
84
+ } else if (filename.endsWith(".json")) {
85
+ // TODO: JSON5 support
86
+ return JSON.parse(readFileSync(filename, "utf8"));
87
+ }
21
88
  }
22
89
 
23
90
  // Parse config
24
91
  const configIndex = args.findIndex((arg) => arg === "--config" || arg === "-c");
25
92
  const configPath = configIndex === -1 ? undefined : args[configIndex + 1];
93
+ if (configIndex !== -1 && !configPath) {
94
+ throw printUsage();
95
+ }
96
+
26
97
  let config;
27
98
  if (configPath) {
28
99
  const absolutePath = path.isAbsolute(configPath)
29
100
  ? configPath
30
101
  : path.join(process.cwd(), configPath);
31
102
 
32
- if (absolutePath.endsWith(".js")) {
33
- config = require(absolutePath).default;
34
- } else if (absolutePath.endsWith(".json")) {
35
- // TODO: JSON5 support
36
- config = JSON.parse(readFileSync(absolutePath, "utf8"));
103
+ const isDir = statSync(absolutePath).isDirectory();
104
+
105
+ if (isDir) {
106
+ // Read all .js and .json files from the directory and merge them
107
+ const files = readdirSync(absolutePath)
108
+ .filter(
109
+ (filename) =>
110
+ filename.endsWith(".js") || filename.endsWith(".json"),
111
+ )
112
+ .map((filename) => {
113
+ const fullPath = path.join(absolutePath, filename);
114
+ return {
115
+ filename: fullPath,
116
+ config: getConfig(fullPath),
117
+ };
118
+ });
119
+ if (!files.length) {
120
+ console.error(`
121
+ No config files found in ${absolutePath}
122
+ `);
123
+ process.exit(1);
124
+ }
125
+ config = mergeConfigFiles(files);
126
+ } else {
127
+ // This is a single config file, just load it
128
+ config = getConfig(absolutePath);
37
129
  }
38
130
  }
39
131
 
@@ -436,12 +436,15 @@ export declare class ZWaveController extends TypedEventEmitter<ControllerEventCa
436
436
  replaceFailedNode(nodeId: number, options?: ReplaceNodeOptions): Promise<boolean>;
437
437
  /** Configure the RF region at the Z-Wave API Module */
438
438
  setRFRegion(region: RFRegion): Promise<boolean>;
439
+ /** Configure the RF region at the Z-Wave API Module */
440
+ private setRFRegionInternal;
439
441
  /** Request the current RF region configured at the Z-Wave API Module */
440
442
  getRFRegion(): Promise<RFRegion>;
441
443
  /** Configure the Powerlevel setting of the Z-Wave API */
442
444
  setPowerlevel(powerlevel: number, measured0dBm: number): Promise<boolean>;
443
445
  /** Request the Powerlevel setting of the Z-Wave API */
444
446
  getPowerlevel(): Promise<Pick<SerialAPISetup_GetPowerlevelResponse, "powerlevel" | "measured0dBm">>;
447
+ trySetNodeIDType(nodeIdType: NodeIDType): Promise<boolean>;
445
448
  /**
446
449
  * Instructs a node to (re-)discover its neighbors.
447
450
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Controller.d.ts","sourceRoot":"","sources":["../../../src/lib/controller/Controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Controller.d.ts","sourceRoot":"","sources":["../../../src/lib/controller/Controller.ts"],"names":[],"mappings":"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"}
@@ -407,16 +407,8 @@ let ZWaveController = exports.ZWaveController = class ZWaveController extends sh
407
407
  * Queries the controller IDs and its Serial API capabilities
408
408
  */
409
409
  async identify() {
410
- // get the home and node id of the controller
411
- this.driver.controllerLog.print(`querying controller IDs...`);
412
- const ids = await this.driver.sendMessage(new GetControllerIdMessages_1.GetControllerIdRequest(this.driver), { supportCheck: false });
413
- this._homeId = ids.homeId;
414
- this._ownNodeId = ids.ownNodeId;
415
- this.driver.controllerLog.print(`received controller IDs:
416
- home ID: ${(0, shared_1.num2hex)(this._homeId)}
417
- own node ID: ${this._ownNodeId}`);
418
410
  // Figure out what the serial API can do
419
- this.driver.controllerLog.print(`querying API capabilities...`);
411
+ this.driver.controllerLog.print(`querying Serial API capabilities...`);
420
412
  const apiCaps = await this.driver.sendMessage(new GetSerialApiCapabilitiesMessages_1.GetSerialApiCapabilitiesRequest(this.driver), {
421
413
  supportCheck: false,
422
414
  });
@@ -433,14 +425,7 @@ let ZWaveController = exports.ZWaveController = class ZWaveController extends sh
433
425
  supported functions: ${this._supportedFunctionTypes
434
426
  .map((fn) => `\n · ${serial_1.FunctionType[fn]} (${(0, shared_1.num2hex)(fn)})`)
435
427
  .join("")}`);
436
- }
437
- /**
438
- * @internal
439
- * Interviews the controller for the necessary information.
440
- * @param restoreFromCache Asynchronous callback for the driver to restore the network from cache after nodes are created
441
- */
442
- async interview(restoreFromCache) {
443
- // get basic controller version info
428
+ // Get basic controller version info
444
429
  this.driver.controllerLog.print(`querying version info...`);
445
430
  const version = await this.driver.sendMessage(new GetControllerVersionMessages_1.GetControllerVersionRequest(this.driver), {
446
431
  supportCheck: false,
@@ -470,6 +455,87 @@ let ZWaveController = exports.ZWaveController = class ZWaveController extends sh
470
455
  }
471
456
  // The SDK version cannot be queried directly, but we can deduce it from the protocol version
472
457
  this._sdkVersion = (0, ZWaveSDKVersions_1.protocolVersionToSDKVersion)(this._protocolVersion);
458
+ // If the serial API can be configured, figure out which sub commands are supported
459
+ // This MUST be done after querying the SDK version due to a bug in some 7.xx firmwares, which incorrectly encode the bitmask
460
+ if (this.isFunctionSupported(serial_1.FunctionType.SerialAPISetup)) {
461
+ this.driver.controllerLog.print(`querying serial API setup capabilities...`);
462
+ const setupCaps = await this.driver.sendMessage(new SerialAPISetupMessages_1.SerialAPISetup_GetSupportedCommandsRequest(this.driver));
463
+ this._supportedSerialAPISetupCommands = setupCaps.supportedCommands;
464
+ this.driver.controllerLog.print(`supported serial API setup commands:${this._supportedSerialAPISetupCommands
465
+ .map((cmd) => `\n· ${(0, shared_1.getEnumMemberName)(SerialAPISetupMessages_1.SerialAPISetupCommand, cmd)}`)
466
+ .join("")}`);
467
+ }
468
+ else {
469
+ this._supportedSerialAPISetupCommands = [];
470
+ }
471
+ // Check and possibly update the RF region to the desired value
472
+ if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.GetRFRegion)) {
473
+ this.driver.controllerLog.print(`Querying configured RF region...`);
474
+ const resp = await this.getRFRegion().catch(() => undefined);
475
+ if (resp != undefined) {
476
+ this.driver.controllerLog.print(`The controller is using RF region ${(0, shared_1.getEnumMemberName)(core_1.RFRegion, resp)}`);
477
+ }
478
+ else {
479
+ this.driver.controllerLog.print(`Querying the RF region failed!`, "warn");
480
+ }
481
+ }
482
+ if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetRFRegion) &&
483
+ this.driver.options.rf?.region != undefined &&
484
+ this.rfRegion != this.driver.options.rf.region) {
485
+ const desiredRegion = this.driver.options.rf.region;
486
+ this.driver.controllerLog.print(`Current RF region (${(0, shared_1.getEnumMemberName)(core_1.RFRegion, this.rfRegion ?? core_1.RFRegion.Unknown)}) differs from desired region (${(0, shared_1.getEnumMemberName)(core_1.RFRegion, desiredRegion)}), configuring it...`);
487
+ const resp = await this.setRFRegionInternal(desiredRegion,
488
+ // Do not soft reset here, we'll do it later
489
+ false).catch((e) => e.message);
490
+ if (resp === true) {
491
+ this.driver.controllerLog.print(`Changed RF region to ${(0, shared_1.getEnumMemberName)(core_1.RFRegion, desiredRegion)}`);
492
+ }
493
+ else {
494
+ this.driver.controllerLog.print(`Changing the RF region failed!${resp ? ` Reason: ${resp}` : ""}`, "warn");
495
+ }
496
+ }
497
+ // Check and possibly update the powerlevel settings
498
+ if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.GetPowerlevel) &&
499
+ this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetPowerlevel) &&
500
+ this.driver.options.rf?.txPower != undefined) {
501
+ const desired = this.driver.options.rf.txPower;
502
+ this.driver.controllerLog.print(`Querying configured powerlevel...`);
503
+ const current = await this.getPowerlevel().catch(() => undefined);
504
+ if (current != undefined) {
505
+ if (current.powerlevel !== desired.powerlevel ||
506
+ current.measured0dBm !== desired.measured0dBm) {
507
+ this.driver.controllerLog.print(`Current powerlevel ${current.powerlevel} dBm (${current.measured0dBm} dBm) differs from desired powerlevel ${desired.powerlevel} dBm (${desired.measured0dBm} dBm), configuring it...`);
508
+ const resp = await this.setPowerlevel(desired.powerlevel, desired.measured0dBm).catch((e) => e.message);
509
+ if (resp === true) {
510
+ this.driver.controllerLog.print(`Powerlevel updated`);
511
+ }
512
+ else {
513
+ this.driver.controllerLog.print(`Changing the powerlevel failed!${resp ? ` Reason: ${resp}` : ""}`, "warn");
514
+ }
515
+ }
516
+ }
517
+ else {
518
+ this.driver.controllerLog.print(`Querying the powerlevel failed!`, "warn");
519
+ }
520
+ }
521
+ // Switch to 16 bit node IDs if supported. We need to do this here, as a controller may still be
522
+ // in 16 bit mode when Z-Wave starts up. This would lead to an invalid node ID being reported.
523
+ await this.trySetNodeIDType(core_1.NodeIDType.Long);
524
+ // get the home and node id of the controller
525
+ this.driver.controllerLog.print(`querying controller IDs...`);
526
+ const ids = await this.driver.sendMessage(new GetControllerIdMessages_1.GetControllerIdRequest(this.driver), { supportCheck: false });
527
+ this._homeId = ids.homeId;
528
+ this._ownNodeId = ids.ownNodeId;
529
+ this.driver.controllerLog.print(`received controller IDs:
530
+ home ID: ${(0, shared_1.num2hex)(this._homeId)}
531
+ own node ID: ${this._ownNodeId}`);
532
+ }
533
+ /**
534
+ * @internal
535
+ * Interviews the controller for the necessary information.
536
+ * @param restoreFromCache Asynchronous callback for the driver to restore the network from cache after nodes are created
537
+ */
538
+ async interview(restoreFromCache) {
473
539
  this.driver.controllerLog.print(`supported Z-Wave features: ${Object.keys(Features_1.ZWaveFeature)
474
540
  .filter((k) => /^\d+$/.test(k))
475
541
  .map((k) => parseInt(k))
@@ -493,18 +559,6 @@ let ZWaveController = exports.ZWaveController = class ZWaveController extends sh
493
559
  started this network: ${!this._isUsingHomeIdFromOtherNetwork}
494
560
  SIS is present: ${this._isSISPresent}
495
561
  was real primary: ${this._wasRealPrimary}`);
496
- // Figure out which sub commands of SerialAPISetup are supported
497
- if (this.isFunctionSupported(serial_1.FunctionType.SerialAPISetup)) {
498
- this.driver.controllerLog.print(`querying serial API setup capabilities...`);
499
- const setupCaps = await this.driver.sendMessage(new SerialAPISetupMessages_1.SerialAPISetup_GetSupportedCommandsRequest(this.driver));
500
- this._supportedSerialAPISetupCommands = setupCaps.supportedCommands;
501
- this.driver.controllerLog.print(`supported serial API setup commands:${this._supportedSerialAPISetupCommands
502
- .map((cmd) => `\n· ${(0, shared_1.getEnumMemberName)(SerialAPISetupMessages_1.SerialAPISetupCommand, cmd)}`)
503
- .join("")}`);
504
- }
505
- else {
506
- this._supportedSerialAPISetupCommands = [];
507
- }
508
562
  // Enable TX status report if supported
509
563
  if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetTxStatusReport)) {
510
564
  this.driver.controllerLog.print(`Enabling TX status report...`);
@@ -513,26 +567,6 @@ let ZWaveController = exports.ZWaveController = class ZWaveController extends sh
513
567
  }));
514
568
  this.driver.controllerLog.print(`Enabling TX status report ${resp.success ? "successful" : "failed"}...`);
515
569
  }
516
- // Also query the controller's current RF region if possible
517
- if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.GetRFRegion)) {
518
- this.driver.controllerLog.print(`Querying configured RF region...`);
519
- const resp = await this.getRFRegion().catch(() => undefined);
520
- if (resp != undefined) {
521
- this.driver.controllerLog.print(`The controller is using RF region ${(0, shared_1.getEnumMemberName)(core_1.RFRegion, resp)}`);
522
- }
523
- else {
524
- this.driver.controllerLog.print(`Querying the RF region failed!`, "warn");
525
- }
526
- }
527
- // Switch to 16 bit node IDs if supported
528
- if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetNodeIDType)) {
529
- try {
530
- await this.setNodeIDType(core_1.NodeIDType.Long);
531
- }
532
- catch {
533
- // ignore
534
- }
535
- }
536
570
  // find the SUC
537
571
  this.driver.controllerLog.print(`finding SUC...`);
538
572
  const suc = await this.driver.sendMessage(new GetSUCNodeIdMessages_1.GetSUCNodeIdRequest(this.driver), { supportCheck: false });
@@ -3122,14 +3156,7 @@ ${associatedNodes.join(", ")}`,
3122
3156
  // 7.xx firmwares (up to at least 7.19.2) have a bug where the response to
3123
3157
  // SetPriorityRoute is missing the result byte when used with 16-bit node IDs.
3124
3158
  // So we temporarily switch back to 8-bit node IDs for this message
3125
- if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetNodeIDType)) {
3126
- try {
3127
- await this.setNodeIDType(core_1.NodeIDType.Short);
3128
- }
3129
- catch {
3130
- // ignore
3131
- }
3132
- }
3159
+ await this.trySetNodeIDType(core_1.NodeIDType.Short);
3133
3160
  this.driver.controllerLog.print(`Setting priority route to node ${destinationNodeId}...`);
3134
3161
  let ret;
3135
3162
  try {
@@ -3145,14 +3172,7 @@ ${associatedNodes.join(", ")}`,
3145
3172
  ret = false;
3146
3173
  }
3147
3174
  // Switch back to 16-bit node IDs
3148
- if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetNodeIDType)) {
3149
- try {
3150
- await this.setNodeIDType(core_1.NodeIDType.Long);
3151
- }
3152
- catch {
3153
- // ignore
3154
- }
3155
- }
3175
+ await this.trySetNodeIDType(core_1.NodeIDType.Long);
3156
3176
  return ret;
3157
3177
  }
3158
3178
  /**
@@ -3443,11 +3463,15 @@ ${associatedNodes.join(", ")}`,
3443
3463
  }
3444
3464
  /** Configure the RF region at the Z-Wave API Module */
3445
3465
  async setRFRegion(region) {
3466
+ return this.setRFRegionInternal(region, true);
3467
+ }
3468
+ /** Configure the RF region at the Z-Wave API Module */
3469
+ async setRFRegionInternal(region, softReset = true) {
3446
3470
  const result = await this.driver.sendMessage(new SerialAPISetupMessages_1.SerialAPISetup_SetRFRegionRequest(this.driver, { region }));
3447
3471
  if (result instanceof SerialAPISetupMessages_1.SerialAPISetup_CommandUnsupportedResponse) {
3448
3472
  throw new core_1.ZWaveError(`Your hardware does not support setting the RF region!`, core_1.ZWaveErrorCodes.Driver_NotSupported);
3449
3473
  }
3450
- if (result.success)
3474
+ if (softReset && result.success)
3451
3475
  await this.driver.trySoftReset();
3452
3476
  this._rfRegion = region;
3453
3477
  return result.success;
@@ -3517,6 +3541,17 @@ ${associatedNodes.join(", ")}`,
3517
3541
  }
3518
3542
  return result.success;
3519
3543
  }
3544
+ async trySetNodeIDType(nodeIdType) {
3545
+ if (this.isSerialAPISetupCommandSupported(SerialAPISetupMessages_1.SerialAPISetupCommand.SetNodeIDType)) {
3546
+ try {
3547
+ return await this.setNodeIDType(nodeIdType);
3548
+ }
3549
+ catch {
3550
+ // ignore
3551
+ }
3552
+ }
3553
+ return false;
3554
+ }
3520
3555
  /**
3521
3556
  * @internal
3522
3557
  * Request the maximum payload that the Z-Wave API Module can accept for transmitting Z-Wave frames. This value depends on the RF Profile
@@ -4170,17 +4205,34 @@ ${associatedNodes.join(", ")}`,
4170
4205
  throw new core_1.ZWaveError(`Cannot check for firmware updates for node ${nodeId}: The node did not wake up within 1 minute!`, core_1.ZWaveErrorCodes.FWUpdateService_MissingInformation);
4171
4206
  }
4172
4207
  }
4173
- // Do not rely on stale information, query everything fresh from the node
4208
+ // Do not rely on potentially stale information, query everything fresh from the node.
4209
+ // The results will be stored as node properties we can read afterwards.
4210
+ // This ensures that we get the firmware version in the correct format (x.y or x.y.z)
4211
+ // Remember the RF region used to communicate with the node - just to make sure it doesn't change inbetween.
4212
+ const rfRegion = this.rfRegion;
4174
4213
  const manufacturerResponse = await node.commandClasses["Manufacturer Specific"].get();
4175
4214
  if (!manufacturerResponse) {
4176
4215
  throw new core_1.ZWaveError(`Cannot check for firmware updates for node ${nodeId}: Failed to query fingerprint from the node!`, core_1.ZWaveErrorCodes.FWUpdateService_MissingInformation);
4177
4216
  }
4178
- const { manufacturerId, productType, productId } = manufacturerResponse;
4217
+ // Query the version using both possible commands to ensure we have the full version
4179
4218
  const versionResponse = await node.commandClasses.Version.get();
4180
4219
  if (!versionResponse) {
4181
4220
  throw new core_1.ZWaveError(`Cannot check for firmware updates for node ${nodeId}: Failed to query firmware version from the node!`, core_1.ZWaveErrorCodes.FWUpdateService_MissingInformation);
4182
4221
  }
4183
- const firmwareVersion = versionResponse.firmwareVersions[0];
4222
+ if (node.commandClasses.Version.supportsCommand(cc_1.VersionCommand.ZWaveSoftwareGet)) {
4223
+ const softwareResponse = await node.commandClasses.Version.getZWaveSoftware();
4224
+ if (!softwareResponse) {
4225
+ throw new core_1.ZWaveError(`Cannot check for firmware updates for node ${nodeId}: Failed to query firmware version from the node!`, core_1.ZWaveErrorCodes.FWUpdateService_MissingInformation);
4226
+ }
4227
+ }
4228
+ const { manufacturerId, productType, productId, firmwareVersion } = node;
4229
+ // Be really sure that we have all the information we need
4230
+ if (typeof manufacturerId !== "number" ||
4231
+ typeof productType !== "number" ||
4232
+ typeof productId !== "number" ||
4233
+ typeof firmwareVersion !== "string") {
4234
+ throw new core_1.ZWaveError(`Cannot check for firmware updates for node ${nodeId}: Failed to query fingerprint or firmware version from the node!`, core_1.ZWaveErrorCodes.FWUpdateService_MissingInformation);
4235
+ }
4184
4236
  // Now invoke the service
4185
4237
  try {
4186
4238
  return await (0, FirmwareUpdateService_1.getAvailableFirmwareUpdates)({
@@ -4188,7 +4240,7 @@ ${associatedNodes.join(", ")}`,
4188
4240
  productType,
4189
4241
  productId,
4190
4242
  firmwareVersion,
4191
- rfRegion: this.rfRegion,
4243
+ rfRegion,
4192
4244
  }, {
4193
4245
  userAgent: this.driver.getUserAgentStringWithComponents(options?.additionalUserAgentComponents),
4194
4246
  apiKey: options?.apiKey ??