node-red-contrib-knx-ultimate
Advanced tools
Comparing version
@@ -6,3 +6,10 @@  | ||
<br/> | ||
<p> | ||
<b>Version 1.1.33</b> - Feb 2020<br/> | ||
- New: the Watchdog node now outputs a msg to the flow if you issued a setGatewayConfig<br/> | ||
- Patched and switched to knxultimate-api (v. 2.3.8) underlying API. This should fix a very rare issue causing node-red to crash giving ERR_SOCKET_DGRAM_NOT_RUNNING error. | ||
<br/> | ||
</p> | ||
<p> | ||
<b>Version 1.1.32</b> - Feb 2020<br/> | ||
@@ -9,0 +16,0 @@ - New: in the knx-ultimate, added the option to <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/2.-Node-Configuration" target="_blank">format the msg.payload value</a>, if it's numeric.<br/> |
@@ -1,5 +0,5 @@ | ||
const knx = require('knx'); | ||
const dptlib = require('knx/src/dptlib'); | ||
// const knx = require('knxultimate-api'); | ||
// const dptlib = require('knxultimate-api/src/dptlib'); | ||
//const knx = require('knx'); | ||
//const dptlib = require('knx/src/dptlib'); | ||
const knx = require('knxultimate-api'); | ||
const dptlib = require('knxultimate-api/src/dptlib'); | ||
@@ -83,3 +83,3 @@ const oOS = require('os') | ||
node.timerSendTelegramFromQueue = setInterval(handleTelegramQueue, 50); // 02/01/2020 Start the timer that handles the queue of telegrams | ||
node.timerDoInitialRead; // 17/02/2020 Timer (timeout) to do initial read of all nodes requesting initial read, after all nodes have been registered to the sercer | ||
node.timerDoInitialRead = null; // 17/02/2020 Timer (timeout) to do initial read of all nodes requesting initial read, after all nodes have been registered to the sercer | ||
node.stopETSImportIfNoDatapoint = typeof config.stopETSImportIfNoDatapoint === "undefined" ? "stop" : config.stopETSImportIfNoDatapoint; // 09/01/2020 Stop or Skip the import if a group address has unset datapoint | ||
@@ -179,3 +179,3 @@ node.csv = readCSV(config.csv); // Array from ETS CSV Group Addresses | ||
node.Disconnect = () => { | ||
if (node.timerDoInitialRead !== undefined) clearTimeout(timerDoInitialRead); // 17/02/2020 Stop the initial read timer | ||
if (node.timerDoInitialRead !== null) clearTimeout(node.timerDoInitialRead); // 17/02/2020 Stop the initial read timer | ||
node.telegramsQueue = []; // 02/01/2020 clear the telegram queue | ||
@@ -254,2 +254,3 @@ node.setAllClientsStatus("Waiting", "grey", "") | ||
.filter(oClient => oClient.initialread) | ||
.filter(oClient => oClient.hasOwnProperty("isWatchDog") === false) | ||
.forEach(oClient => { | ||
@@ -305,3 +306,3 @@ if (oClient.listenallga == true) { | ||
// Start the timer to do initial read. | ||
if (node.timerDoInitialRead !== undefined) clearTimeout(timerDoInitialRead); | ||
if (node.timerDoInitialRead !== null) clearTimeout(node.timerDoInitialRead); | ||
node.timerDoInitialRead = setTimeout(readInitialValues, 5000); // 17/02/2020 Do initial read of all nodes requesting initial read, after all nodes have been registered to the sercer | ||
@@ -308,0 +309,0 @@ }, |
@@ -23,3 +23,3 @@ module.exports = function (RED) { | ||
node.beatNumber = 0; // Telegram counter | ||
node.timerWatchDog; | ||
node.timerWatchDog = null; | ||
node.isWatchDog = true; | ||
@@ -105,3 +105,3 @@ node.checkLevel = config.checkLevel !== undefined ? config.checkLevel : "Ethernet"; | ||
node.beatNumber = 0; | ||
if (node.timerWatchDog !== undefined) clearInterval(node.timerWatchDog); | ||
if (node.timerWatchDog !== null) clearInterval(node.timerWatchDog); | ||
node.timerWatchDog = setInterval(handleTheDog, node.retryInterval); // 02/01/2020 Start the timer that handles the queue of telegrams | ||
@@ -112,3 +112,3 @@ node.setNodeStatus({ fill: "green", shape: "dot", text: "WatchDog started.", payload: "", GA: "", dpt: "", devicename: "" }) | ||
if (node.autoStart) node.StartWatchDogTimer(); // Autostart watchdog | ||
node.on("input", function (msg) { | ||
@@ -128,2 +128,13 @@ | ||
node.server.setGatewayConfig(msg.setGatewayConfig.IP, msg.setGatewayConfig.Port, msg.setGatewayConfig.PhysicalAddress, msg.setGatewayConfig.BindToEthernetInterface); | ||
msg = { | ||
type: "setGatewayConfig", | ||
checkPerformed: "The Watchdog node changed the gateway configuration.", | ||
nodeid: node.id, | ||
payload: true, | ||
description: "New Config issued to the gateway. IP:" + (msg.setGatewayConfig.IP || "Unchanged") + " Port:" + (msg.setGatewayConfig.Port || "Unchanged") + " PhysicalAddress:" + (msg.setGatewayConfig.PhysicalAddress || "Unchanged") + " BindLocalInterface:" + (msg.setGatewayConfig.BindToEthernetInterface || "Unchanged"), | ||
completeError: "" | ||
}; | ||
node.send(msg); | ||
// 20/02/2020 Restart watchdog timer from scratch | ||
node.StartWatchDogTimer(); | ||
}; | ||
@@ -141,3 +152,3 @@ | ||
}); | ||
node.on('close', function () { | ||
@@ -144,0 +155,0 @@ clearInterval(node.timerWatchDog); |
{ | ||
"name": "node-red-contrib-knx-ultimate", | ||
"version": "1.1.32", | ||
"version": "1.1.33", | ||
"description": "Single Node KNX IN/OUT with optional ETS group address importer. Easy to use and highly configurable. Control your KNX intallation via Node-Red!", | ||
"dependencies": { | ||
"knxultimate-api": "2.3.7", | ||
"knxultimate-api": "2.3.8", | ||
"knx": "2.3.7" | ||
@@ -8,0 +8,0 @@ }, |
1485832
0.08%1081
1.22%Updated