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 +7 -0
- package/package.json +6 -7
- package/resources/UITab/client.js +7 -8
- package/validation_result.json +1 -1
- package/zwave-js/ui/server.js +13 -10
- package/zwave-js/zwave-js.js +12 -7
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red-contrib-zwave-js",
|
|
3
|
-
"version": "8.
|
|
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
|
-
"
|
|
10
|
-
"winston": "^3.8.2",
|
|
9
|
+
"winston": "^3.10.0",
|
|
11
10
|
"winston-transport": "^4.5.0",
|
|
12
|
-
"zwave-js": "^
|
|
11
|
+
"zwave-js": "^11.6.0"
|
|
13
12
|
},
|
|
14
13
|
"devDependencies": {
|
|
15
|
-
"eslint": "^8.
|
|
16
|
-
"prettier": "^
|
|
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
|
-
|
|
220
|
+
firmwareUpdateOTA: {
|
|
221
221
|
API: 'ControllerAPI',
|
|
222
|
-
name: '
|
|
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.
|
|
526
|
-
DCs.
|
|
525
|
+
DCs.firmwareUpdateOTA.API,
|
|
526
|
+
DCs.firmwareUpdateOTA.name,
|
|
527
527
|
undefined,
|
|
528
528
|
[Node, File],
|
|
529
|
-
DCs.
|
|
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
|
-
'
|
|
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();
|
package/validation_result.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"package":{"name":"node-red-contrib-zwave-js","version":"8.
|
|
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}}
|
package/zwave-js/ui/server.js
CHANGED
|
@@ -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
|
-
|
|
82
|
+
ZWaveJS.Driver.enumerateSerialPorts()
|
|
84
83
|
.then((ports) => {
|
|
85
|
-
|
|
86
|
-
res.json(a);
|
|
84
|
+
res.json(ports);
|
|
87
85
|
})
|
|
88
86
|
.catch((err) => {
|
|
89
|
-
RED.log.error(
|
|
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: '
|
|
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,
|
|
531
|
-
this._SendNodeEvent('node-fwu-progress', node, {
|
|
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,
|
|
534
|
-
this._SendNodeEvent('node-fwu-completed', node, {
|
|
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
|
package/zwave-js/zwave-js.js
CHANGED
|
@@ -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 '
|
|
918
|
+
case 'firmwareUpdateOTA':
|
|
919
919
|
NodeCheck(Params[0]);
|
|
920
920
|
ReturnNode.id = Params[0];
|
|
921
|
-
await Driver.controller.
|
|
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 '
|
|
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
|
-
.
|
|
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,
|
|
2140
|
-
Send(N, event_FirmwareUpdateFinished.redName,
|
|
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) => {
|