node-red-contrib-zwave-js 9.0.3 → 9.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # node-red-contrib-zwave-js Change Log
2
2
 
3
+ - 9.1.0
4
+
5
+ **Changes**
6
+ - Bump ZWave JS from v12 to V14 + other dependencies
7
+
8
+ **New Features**
9
+ - Added ability to set the base config directory.
10
+ Note: Installing configuration updates, now requires this to be utilised.
11
+ This not considered a breaking change, as it does not affect use.
12
+
13
+ - 9.0.4
14
+
15
+ **Maintenance Release**
16
+ - Update dependencies
17
+
3
18
 
4
19
  - 9.0.3
5
20
 
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "node-red-contrib-zwave-js",
3
- "version": "9.0.3",
3
+ "version": "9.1.0",
4
4
  "license": "MIT",
5
5
  "description": "The most powerful, high performing and highly polished Z-Wave node for Node-RED based on Z-Wave JS. If you want a fully featured Z-Wave framework in your Node-RED instance, you have found it.",
6
6
  "dependencies": {
7
7
  "limiter": "^2.1.0",
8
8
  "lodash": "^4.17.21",
9
- "winston": "^3.11.0",
10
- "winston-transport": "^4.6.0",
11
- "zwave-js": "^12.4.0"
9
+ "winston": "^3.17.0",
10
+ "winston-transport": "^4.9.0",
11
+ "zwave-js": "^14.3.3"
12
12
  },
13
13
  "devDependencies": {
14
- "eslint": "^8.55.0",
15
- "prettier": "^3.1.0"
14
+ "eslint": "^9.15.0",
15
+ "prettier": "^3.3.3"
16
16
  },
17
17
  "scripts": {
18
18
  "validate": "node-red-dev validate -o validation_result.json"
@@ -1030,6 +1030,7 @@
1030
1030
  sendUsageStatistics: { value: true },
1031
1031
  valueCacheDiskThrottle: { value: 'normal' },
1032
1032
  customConfigPath: { value: undefined },
1033
+ baseConfigPath: { value: undefined },
1033
1034
  intvwUserCodes: { value: false },
1034
1035
  softResetUSB: { value: false },
1035
1036
  outputs: { value: 1 },
@@ -1316,9 +1317,13 @@
1316
1317
  <strong>Advanced Driver Settings</strong>
1317
1318
  </p>
1318
1319
  <div class="form-row">
1319
- <label for="node-input-customConfigPath" style="width:130px"><i class="fa fa-pencil"></i> Custom CFG Dir</label>
1320
+ <label for="node-input-customConfigPath" style="width:130px"><i class="fa fa-pencil"></i> Priority CFG Dir</label>
1320
1321
  <input type="text" id="node-input-customConfigPath" placeholder="/some/directory" style="width: calc(100% - 135px)">
1321
1322
  </div>
1323
+ <div class="form-row">
1324
+ <label for="node-input-baseConfigPath" style="width:130px"><i class="fa fa-pencil"></i> Base CFG Dir</label>
1325
+ <input type="text" id="node-input-baseConfigPath" placeholder="Use Default" style="width: calc(100% - 135px)">
1326
+ </div>
1322
1327
  <div class="form-row">
1323
1328
  <label for="node-input-valueCacheDiskThrottle" style="width:130px"><i class="fa fa-pencil"></i> Disk IO Throttle</label>
1324
1329
  <select id="node-input-valueCacheDiskThrottle" style="width: calc(100% - 135px)">
@@ -310,16 +310,19 @@ module.exports = function (RED) {
310
310
  DriverOptions.disableOptimisticValueUpdate = false;
311
311
  }
312
312
 
313
+ DriverOptions.features = {};
314
+
313
315
  // Soft Reset
314
316
  if (config.softResetUSB !== undefined && config.softResetUSB) {
315
317
  Log(
316
318
  'debug',
317
319
  'NDERED',
318
320
  undefined,
319
- '[options] [enableSoftReset]',
321
+ '[options] [features.softReset]',
320
322
  'Enabled'
321
323
  );
322
- DriverOptions.enableSoftReset = true;
324
+
325
+ DriverOptions.features.softReset = true;
323
326
 
324
327
  if (
325
328
  config.serialAPIStarted !== undefined &&
@@ -342,10 +345,10 @@ module.exports = function (RED) {
342
345
  'debug',
343
346
  'NDERED',
344
347
  undefined,
345
- '[options] [enableSoftReset]',
348
+ '[options] [features.softReset]',
346
349
  'Disabled'
347
350
  );
348
- DriverOptions.enableSoftReset = false;
351
+ DriverOptions.features.softReset = true;
349
352
  }
350
353
 
351
354
  DriverOptions.storage = {};
@@ -378,6 +381,20 @@ module.exports = function (RED) {
378
381
  DriverOptions.storage.deviceConfigPriorityDir = config.customConfigPath;
379
382
  }
380
383
 
384
+ if (
385
+ config.baseConfigPath !== undefined &&
386
+ config.baseConfigPath.length > 0
387
+ ) {
388
+ Log(
389
+ 'debug',
390
+ 'NDERED',
391
+ undefined,
392
+ '[options] [storage.deviceConfigExternalDir]',
393
+ config.baseConfigPath
394
+ );
395
+ DriverOptions.storage.deviceConfigExternalDir = config.baseConfigPath;
396
+ }
397
+
381
398
  // Disk throttle
382
399
  if (
383
400
  config.valueCacheDiskThrottle !== undefined &&
@@ -1166,9 +1183,9 @@ module.exports = function (RED) {
1166
1183
  if (SupportsNN) {
1167
1184
  await Driver.controller.nodes
1168
1185
  .get(Params[0])
1169
- .commandClasses['Node Naming and Location'].setLocation(
1170
- Params[1]
1171
- );
1186
+ .commandClasses[
1187
+ 'Node Naming and Location'
1188
+ ].setLocation(Params[1]);
1172
1189
  }
1173
1190
  ReturnNode.id = Params[0];
1174
1191
  Send(ReturnNode, 'NODE_LOCATION_SET', Params[1], send);
@@ -1705,7 +1722,8 @@ module.exports = function (RED) {
1705
1722
  NodeCheck(Params[0].nodeId);
1706
1723
  Params[2].forEach((A) => {
1707
1724
  if (
1708
- !Driver.controller.isAssociationAllowed(Params[0], Params[1], A)
1725
+ Driver.controller.checkAssociation(Params[0], Params[1], A) !==
1726
+ ZWaveJS.AssociationCheckResult.OK
1709
1727
  ) {
1710
1728
  const ErrorMSG = `Association: Source -> ${JSON.stringify(
1711
1729
  Params[0]
@@ -2072,9 +2090,9 @@ module.exports = function (RED) {
2072
2090
  });
2073
2091
 
2074
2092
  // Include
2075
- Driver.controller.on(event_InclusionStarted.zwaveName, (Secure) => {
2093
+ Driver.controller.on(event_InclusionStarted.zwaveName, (strategy) => {
2076
2094
  Send(undefined, event_InclusionStarted.redName, {
2077
- isSecureInclude: Secure
2095
+ isSecureInclude: strategy !== ZWaveJS.InclusionStrategy.Insecure
2078
2096
  });
2079
2097
  SetFlowNodeStatus({
2080
2098
  fill: 'yellow',