node-red-contrib-knx-ultimate 3.2.1 → 3.2.3
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
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
# CHANGELOG
|
|
8
8
|
|
|
9
|
+
**Version 3.2.3** - September 2024<br/>
|
|
10
|
+
- KNX engine: fix oldest invalid KNX queue interval, by defaulting it to 25ms.<br/>
|
|
11
|
+
|
|
12
|
+
**Version 3.2.2** - September 2024<br/>
|
|
13
|
+
- KNX engine: Bump to 3.0.2: fixed an issue with the KNX queue.<br/>
|
|
9
14
|
|
|
10
15
|
**Version 3.2.1-beta.0** - September 2024<br/>
|
|
11
16
|
- Rewrote the logger engine and fixed some issues in the KNXUltimate package.<br/>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
category: 'config',
|
|
6
6
|
defaults: {
|
|
7
7
|
host: { value: "224.0.23.12", required: true },
|
|
8
|
-
port: { value: 3671, required: true, validate: RED.validators.number() },
|
|
8
|
+
port: { value: 3671, required: true, validate: RED.validators.number(), min: 20, max: 500 },
|
|
9
9
|
// the KNX physical address we'd like to use
|
|
10
10
|
physAddr: { value: "15.15.22", required: true },
|
|
11
11
|
hostProtocol: { value: "Auto", required: false }, // TunnelUDP/TunnelTCP/Multicast
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
loglevel: { value: "error" },
|
|
19
19
|
name: { value: "KNX Gateway" },
|
|
20
20
|
localEchoInTunneling: { value: true },
|
|
21
|
-
delaybetweentelegrams: { value: 25, required: false },
|
|
21
|
+
delaybetweentelegrams: { value: 25, required: false, validate: RED.validators.number() },
|
|
22
22
|
ignoreTelegramsWithRepeatedFlag: { value: false, required: false },
|
|
23
23
|
keyringFileXML: { value: "" },
|
|
24
24
|
knxSecureSelected: { value: false },
|
|
@@ -104,7 +104,8 @@ module.exports = (RED) => {
|
|
|
104
104
|
node.allowLauch_initKNXConnection = true; // See the node.timerKNXUltimateCheckState function
|
|
105
105
|
node.hostProtocol = config.hostProtocol === undefined ? "Auto" : config.hostProtocol; // 20/03/2022 Default
|
|
106
106
|
node.knxConnection = null; // 20/03/2022 Default
|
|
107
|
-
node.delaybetweentelegrams = config.delaybetweentelegrams === undefined ? 25 : config.delaybetweentelegrams;
|
|
107
|
+
node.delaybetweentelegrams = (config.delaybetweentelegrams === undefined || config.delaybetweentelegrams === null) ? 25 : Number(config.delaybetweentelegrams);
|
|
108
|
+
if (node.delaybetweentelegrams < 20) node.delaybetweentelegrams = 20; // Protection avoiding handleKNXQueue hangs
|
|
108
109
|
|
|
109
110
|
// 05/12/2021 Set the protocol (this is undefined if coming from ild versions
|
|
110
111
|
if (node.hostProtocol === "Auto") {
|
|
@@ -216,7 +217,7 @@ module.exports = (RED) => {
|
|
|
216
217
|
node.exposedGAs = JSON.parse(fs.readFileSync(sFile, "utf8"));
|
|
217
218
|
} catch (err) {
|
|
218
219
|
node.exposedGAs = [];
|
|
219
|
-
if (node.sysLogger !== undefined && node.sysLogger !== null) node.sysLogger.
|
|
220
|
+
if (node.sysLogger !== undefined && node.sysLogger !== null) node.sysLogger.error("KNXUltimate-config: unable to read peristent file " + sFile + " " + err.message);
|
|
220
221
|
}
|
|
221
222
|
}
|
|
222
223
|
|
|
@@ -513,7 +514,8 @@ module.exports = (RED) => {
|
|
|
513
514
|
// localEchoInTunneling: true,
|
|
514
515
|
// localIPAddress: "",
|
|
515
516
|
// jKNXSecureKeyring: node.jKNXSecureKeyring
|
|
516
|
-
// interface: ""
|
|
517
|
+
// interface: "",
|
|
518
|
+
// KNXQueueSendIntervalMilliseconds: Number(node.delaybetweentelegrams)
|
|
517
519
|
// };
|
|
518
520
|
|
|
519
521
|
node.setKnxConnectionProperties = () => {
|
|
@@ -679,7 +681,7 @@ module.exports = (RED) => {
|
|
|
679
681
|
} catch (error) {
|
|
680
682
|
if (node.sysLogger !== undefined && node.sysLogger !== null) node.sysLogger.error("knxUltimate-config: DoInitialReadFromKNXBusOrFile " + error.stack);
|
|
681
683
|
}
|
|
682
|
-
},
|
|
684
|
+
}, 1000); // 17/02/2020 Do initial read of all nodes requesting initial read
|
|
683
685
|
const t = setTimeout(() => {
|
|
684
686
|
// 21/03/2022 fixed possible memory leak. Previously was setTimeout without "let t = ".
|
|
685
687
|
node.setAllClientsStatus("Connected.", "green", "On duty.");
|
|
@@ -1151,7 +1153,7 @@ module.exports = (RED) => {
|
|
|
1151
1153
|
if (node.sysLogger !== undefined && node.sysLogger !== null) node.sysLogger.warn(
|
|
1152
1154
|
"knxUltimate-config: handleTelegramQueue: the KNXEngine is busy or is waiting for a telegram ACK with seqNumner " +
|
|
1153
1155
|
node.knxConnection.getSeqNumber() +
|
|
1154
|
-
". Delay handling queue. YOUR COMPUTER COULD BE TOO SLOW OR BUSY TO KEEP UP
|
|
1156
|
+
". Delay handling queue. YOUR COMPUTER COULD BE TOO SLOW OR BUSY TO KEEP UP ADDED TELEGRAM TO COMMANDQUEUE. Len: 3",
|
|
1155
1157
|
);
|
|
1156
1158
|
}
|
|
1157
1159
|
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=16.0.0"
|
|
5
5
|
},
|
|
6
|
-
"version": "3.2.
|
|
6
|
+
"version": "3.2.3",
|
|
7
7
|
"description": "Control your KNX intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control and ETS group address importer. Easy to use and highly configurable.",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"binary-parser": "2.2.1",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dns-sync": "0.2.1",
|
|
12
12
|
"eventsource": "2.0.2",
|
|
13
13
|
"js-yaml": "4.1.0",
|
|
14
|
-
"knxultimate": ">=3.0.
|
|
14
|
+
"knxultimate": ">=3.0.3",
|
|
15
15
|
"limiter": "^2.1.0",
|
|
16
16
|
"lodash": "4.17.21",
|
|
17
17
|
"node-color-log": "12.0.1",
|