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.warn("KNXUltimate-config: unable to read peristent file " + sFile + " " + err.message);
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
- }, 6000); // 17/02/2020 Do initial read of all nodes requesting initial read
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 WITH THE STRICT TIMING, REQUIRED FOR KNX TO FUNCTION PROPERLY.",
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.1",
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.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",