node-red-contrib-zwave-js 8.0.0 → 8.2.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,12 @@
1
1
  # node-red-contrib-zwave-js Change Log
2
2
 
3
+ - 8.1.0
4
+
5
+ **Changes**
6
+ - Update dependencies.
7
+ - Switch serial port list to use Driver provided methods, removing the dependency on the serilaport package
8
+
9
+
3
10
  - 8.0.0
4
11
 
5
12
  **Breaking Changes**
package/package.json CHANGED
@@ -1,19 +1,18 @@
1
1
  {
2
2
  "name": "node-red-contrib-zwave-js",
3
- "version": "8.0.0",
3
+ "version": "8.2.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
- "serialport": "^10.4.0",
10
- "winston": "^3.8.2",
9
+ "winston": "^3.10.0",
11
10
  "winston-transport": "^4.5.0",
12
- "zwave-js": "^10.2.0"
11
+ "zwave-js": "^11.6.0"
13
12
  },
14
13
  "devDependencies": {
15
- "eslint": "^8.23.1",
16
- "prettier": "^2.7.1"
14
+ "eslint": "^8.45.0",
15
+ "prettier": "^3.0.0"
17
16
  },
18
17
  "scripts": {
19
18
  "validate": "node-red-dev validate -o validation_result.json"
@@ -62,4 +61,4 @@
62
61
  "url": "https://github.com/zwave-js/node-red-contrib-zwave-js/issues"
63
62
  },
64
63
  "homepage": "https://github.com/zwave-js/node-red-contrib-zwave-js#readme"
65
- }
64
+ }
@@ -217,9 +217,9 @@ const DCs = {
217
217
  name: 'getAvailableFirmwareUpdates',
218
218
  noWait: false
219
219
  },
220
- beginOTAFirmwareUpdate: {
220
+ firmwareUpdateOTA: {
221
221
  API: 'ControllerAPI',
222
- name: 'beginOTAFirmwareUpdate',
222
+ name: 'firmwareUpdateOTA',
223
223
  noWait: false
224
224
  }
225
225
  };
@@ -522,11 +522,11 @@ const ZwaveJsUI = (function () {
522
522
  }
523
523
 
524
524
  ControllerCMD(
525
- DCs.beginOTAFirmwareUpdate.API,
526
- DCs.beginOTAFirmwareUpdate.name,
525
+ DCs.firmwareUpdateOTA.API,
526
+ DCs.firmwareUpdateOTA.name,
527
527
  undefined,
528
528
  [Node, File],
529
- DCs.beginOTAFirmwareUpdate.noWait
529
+ DCs.firmwareUpdateOTA.noWait
530
530
  )
531
531
  .then(() => {
532
532
  FWRunning = true;
@@ -1126,7 +1126,7 @@ const ZwaveJsUI = (function () {
1126
1126
  const RestrictedModes = ['IEAPI'];
1127
1127
  const RestrictedMethods = [
1128
1128
  'setPowerlevel',
1129
- 'beginFirmwareUpdate',
1129
+ 'updateFirmware',
1130
1130
  'abortFirmwareUpdate',
1131
1131
  'setRFRegion',
1132
1132
  'hardReset',
@@ -3570,8 +3570,7 @@ const ZwaveJsUI = (function () {
3570
3570
 
3571
3571
  const Child = renderPropertyElement(Prop);
3572
3572
  propertyList
3573
- .treeList('data')
3574
- [Index].treeList.addChild({ element: Child });
3573
+ .treeList('data')[Index].treeList.addChild({ element: Child });
3575
3574
 
3576
3575
  if (Writeable && Type !== 'any') {
3577
3576
  const icon = Child.prev();
@@ -1 +1 @@
1
- {"package":{"name":"node-red-contrib-zwave-js","version":"8.0.0"},"P01":{"test":true,"license":"MIT"},"P03":{"test":true},"P04":{"test":true},"P08":{"test":true},"P05":{"test":true},"P06":{"test":true,"versions":["3.0.2","2.2.3"]},"P07":{"test":false,"version":">=14.13.0"},"N01":{"test":true},"N02":{"test":true,"nodes":["zwave-js","zwave-device","event-filter","cmd-factory"]},"D01":{"test":true,"total":6},"D02":{"test":true},"D03":{"test":true}}
1
+ {"package":{"name":"node-red-contrib-zwave-js","version":"8.1.0"},"P01":{"test":true,"license":"MIT"},"P03":{"test":true},"P04":{"test":true},"P08":{"test":true},"P05":{"test":true},"P06":{"test":true,"versions":["3.0.2","2.2.3"]},"P07":{"test":false,"version":">=14.13.0"},"N01":{"test":true},"N02":{"test":true,"nodes":["zwave-js","zwave-device","event-filter","cmd-factory"]},"D01":{"test":true,"total":5},"D02":{"test":true},"D03":{"test":true}}
@@ -1,4 +1,3 @@
1
- const SP = require('serialport').SerialPort;
2
1
  const ModulePackage = require('../../package.json');
3
2
  const { CommandClasses } = require('@zwave-js/core');
4
3
  const ZWaveJS = require('zwave-js');
@@ -80,13 +79,12 @@ const SetupGlobals = function (RED) {
80
79
  `/zwave-js/cfg-serialports`,
81
80
  RED.auth.needsPermission('flows.read'),
82
81
  (req, res) => {
83
- SP.list()
82
+ ZWaveJS.Driver.enumerateSerialPorts()
84
83
  .then((ports) => {
85
- const a = ports.map((p) => p.path);
86
- res.json(a);
84
+ res.json(ports);
87
85
  })
88
86
  .catch((err) => {
89
- RED.log.error('Error listing serial ports', err);
87
+ RED.log.error(`Error listing serial ports: ${err}`);
90
88
  res.json([]);
91
89
  });
92
90
  }
@@ -282,7 +280,7 @@ class UIServer {
282
280
 
283
281
  const PL = {
284
282
  mode: 'ControllerAPI',
285
- method: 'beginFirmwareUpdate',
283
+ method: 'updateFirmware',
286
284
  params: [NodeID, Target, FileName, _Buffer]
287
285
  };
288
286
 
@@ -527,11 +525,16 @@ class UIServer {
527
525
  node.on('notification', (node, value) => {
528
526
  this._SendNodeEvent('node-value', node, value);
529
527
  });
530
- node.on('firmware update progress', (node, S, R) => {
531
- this._SendNodeEvent('node-fwu-progress', node, { sent: S, remain: R });
528
+ node.on('firmware update progress', (node, Progress) => {
529
+ this._SendNodeEvent('node-fwu-progress', node, {
530
+ sent: Progress.sentFragments,
531
+ remain: Progress.totalFragments - Progress.sentFragments
532
+ });
532
533
  });
533
- node.on('firmware update finished', (node, Status) => {
534
- this._SendNodeEvent('node-fwu-completed', node, { status: Status });
534
+ node.on('firmware update finished', (node, Result) => {
535
+ this._SendNodeEvent('node-fwu-completed', node, {
536
+ status: Result.status
537
+ });
535
538
  });
536
539
 
537
540
  // Meta
@@ -915,10 +915,10 @@ module.exports = function (RED) {
915
915
  Send(ReturnNode, 'FIRMWARE_UPDATE_CHECK_RESULT', FWU, send);
916
916
  break;
917
917
 
918
- case 'beginOTAFirmwareUpdate':
918
+ case 'firmwareUpdateOTA':
919
919
  NodeCheck(Params[0]);
920
920
  ReturnNode.id = Params[0];
921
- await Driver.controller.beginOTAFirmwareUpdate(Params[0], Params[1]);
921
+ await Driver.controller.firmwareUpdateOTA(Params[0], Params[1]);
922
922
  Send(ReturnNode, 'FIRMWARE_UPDATE_STARTED', Params[1], send);
923
923
  break;
924
924
 
@@ -943,14 +943,19 @@ module.exports = function (RED) {
943
943
  Send(ReturnNode, 'FIRMWARE_UPDATE_ABORTED', undefined, send);
944
944
  break;
945
945
 
946
- case 'beginFirmwareUpdate':
946
+ case 'updateFirmware':
947
947
  NodeCheck(Params[0]);
948
948
  ReturnNode.id = Params[0];
949
949
  const Format = ZWaveJS.guessFirmwareFileFormat(Params[2], Params[3]);
950
950
  const Firmware = ZWaveJS.extractFirmware(Params[3], Format);
951
+ const Package = {
952
+ data: Firmware.data,
953
+ firmwareTarget: Params[1]
954
+ };
955
+
951
956
  await Driver.controller.nodes
952
957
  .get(Params[0])
953
- .beginFirmwareUpdate(Firmware.data, Params[1]);
958
+ .updateFirmware([Package]);
954
959
  Send(ReturnNode, 'FIRMWARE_UPDATE_STARTED', Params[1], send);
955
960
  break;
956
961
 
@@ -1406,7 +1411,7 @@ module.exports = function (RED) {
1406
1411
  case 'getLastEvents':
1407
1412
  const PL = [];
1408
1413
  Driver.controller.nodes.forEach((N) => {
1409
- if(N.isControllerNode){
1414
+ if (N.isControllerNode) {
1410
1415
  return;
1411
1416
  }
1412
1417
  const I = {
@@ -2136,8 +2141,8 @@ module.exports = function (RED) {
2136
2141
  }
2137
2142
 
2138
2143
  Node.once(event_Ready.zwaveName, () => {
2139
- Node.on(event_FirmwareUpdateFinished.zwaveName, (N, S) => {
2140
- Send(N, event_FirmwareUpdateFinished.redName, S);
2144
+ Node.on(event_FirmwareUpdateFinished.zwaveName, (N, R) => {
2145
+ Send(N, event_FirmwareUpdateFinished.redName, R);
2141
2146
  });
2142
2147
 
2143
2148
  Node.on(event_ValueNotification.zwaveName, (N, VL) => {