node-red-contrib-knx-ultimate 3.3.4 → 3.3.6

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,12 @@
6
6
 
7
7
  # CHANGELOG
8
8
 
9
+ **Version 3.3.6** - December 2024<br/>
10
+ - KNX Alerter Node: read status after deploy even of a single node.<br/>
11
+
12
+ **Version 3.3.5** - December 2024<br/>
13
+ - KNX Alerter Node: now the node works even if no ETS file has been imported.<br/>
14
+
9
15
  **Version 3.3.3** - November 2024<br/>
10
16
  - KNX Config Node: Automatic KNX Gateway discover in the gateway node config window.<br/>
11
17
  - KNX Engine: new: new telegram sequencer waiter, for more accurate timing in slow or sliggish computers.<br/>
@@ -17,6 +17,11 @@
17
17
  },
18
18
  inputs: 1,
19
19
  outputs: 3,
20
+ outputLabels: function (index) {
21
+ if (index === 0) return "Emits a message for each alerted device, at selectable intervals.";
22
+ if (index === 1) return "Emits a unique message containing all alerted devices.";
23
+ if (index === 2) return "Emits a message containing only the last alerted device.";
24
+ },
20
25
  icon: "node-alerter-icon.svg",
21
26
  label: function () {
22
27
  return (this.outputRBE == true ? "|rbe| " : "") + (this.name || this.topic || "KNX Alerter") + (this.inputRBE == true ? " |rbe|" : "")
@@ -235,4 +240,61 @@
235
240
  <p><span data-i18n="knxUltimateAlerter.other.add"></p>
236
241
  </div>
237
242
 
238
- </script>
243
+ </script>
244
+
245
+
246
+ <script type="text/markdown" data-help-name="knxUltimateAlerter">
247
+ With the Alerter node you can signal to a display or to the node-red-contrib-tts-ultimate node (audio feedback) if the selected devices are alerted, i.e. they have payload **true**.
248
+ The node issues messages at specified intervals (one message at a time) containing the details of each alerted device. For example, the node can tell you how many and which windows are open. <br/>
249
+ The node receives the values of the devices directly from the KNX BUS. Furthermore, you can send personalized messages to the node, not linked to KNX devices. <br/>
250
+ The example page explains how to use the node. <br/>
251
+
252
+ - **Gateway**
253
+
254
+ > KNX gateway selected. It is also possible not to select any gateway; in this case, only incoming messages to the node will be considered.
255
+
256
+
257
+ - **Name**
258
+
259
+ > Node name.
260
+
261
+ - **Alerting cycle start type**
262
+
263
+ > Here you can select the event that will skip the start of sending messages from alerted devices.
264
+
265
+ - **Interval between each MSG (in seconds)**
266
+
267
+ > Interval between each outgoing message from the node.
268
+
269
+ ## DEVICES TO MONITOR
270
+
271
+ Here you can add devices to monitor. <br/>
272
+ Enter the device name or its group address. <br/>
273
+
274
+ - **Read value of each device on connection/reconnect**
275
+
276
+ > On connection/reconnection, the node will send a 'read' request each device belonging to the list.
277
+
278
+ - **ADD button**
279
+
280
+ > Add a row to the list.
281
+
282
+ - **Device's rows**
283
+
284
+ > The first field is the group address (but you can also enter any text, which you can use with inbound messages, see the example page), the second is the device name **(MAX 14 CHARS)**, the third is the long device name.
285
+
286
+ - **DELETE button**
287
+
288
+ > Removes a device from the list.
289
+
290
+ <p>
291
+ <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/Alerter-Configuration" target="_blank"><i class="fa fa-info-circle"></i>&nbsp Config help</a><br/>
292
+ <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/SampleAlerter" target="_blank"><i class="fa fa-code"></i>&nbsp Samples</a>.
293
+ </p>
294
+
295
+ <p>
296
+ <a href="https://www.paypal.com/donate/?hosted_button_id=S8SKPUBSPK758" target="_blank">
297
+ <img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/CodiceQR.png' width='30%'>
298
+ </a>
299
+ </p>
300
+ </script>
@@ -16,7 +16,7 @@ module.exports = function (RED) {
16
16
  node.notifyreadrequest = false;
17
17
  node.notifyresponse = true;
18
18
  node.notifywrite = true; // Dont' remove this.
19
- node.initialread = false;
19
+ node.initialread = 0;
20
20
  node.outputtype = 'write';
21
21
  node.outputRBE = 'false';
22
22
  node.inputRBE = 'false';
@@ -30,9 +30,9 @@ module.exports = function (RED) {
30
30
  node.timerinterval = (config.timerinterval === undefined || config.timerinterval == '') ? '2' : config.timerinterval;
31
31
 
32
32
  if (config.initialreadGAInRules === undefined) {
33
- node.initialread = true;
33
+ node.initialread = 1;
34
34
  } else {
35
- node.initialread = config.initialreadGAInRules !== '0';
35
+ node.initialread = Number(config.initialreadGAInRules);
36
36
  }
37
37
 
38
38
  // Used to call the status update from the config node.
@@ -69,11 +69,6 @@ module.exports = function (RED) {
69
69
 
70
70
  // This function is called by the knx-ultimate config node, to output a msg.payload.
71
71
  node.handleSend = msg => {
72
- try {
73
- if (!msg.knx.dpt.startsWith('1.')) return;
74
- } catch (error) {
75
- return;
76
- }
77
72
  let bFound = false; // 24/04/2021 true if the cycle below found a match, otherwise false
78
73
 
79
74
  // Update the node.rules with the values taken from the file, if any, otherwise leave the default value
@@ -156,6 +151,8 @@ module.exports = function (RED) {
156
151
  // 24/04/2021 perform a read on all GA in the rule list. Called both from node.on("input") and knxUltimate-config
157
152
  node.initialReadAllDevicesInRules = () => {
158
153
  if (node.serverKNX) {
154
+ node.setLocalStatus({ fill: 'grey', shape: 'ring', text: 'Reasy', payload: '', GA: '', dpt: '', devicename: '' });
155
+
159
156
  let grpaddr = '';
160
157
  for (let i = 0; i < node.rules.length; i++) {
161
158
  // rule is { topic: rowRuleTopic, devicename: rowRuleDeviceName, longdevicename: rowRuleLongDeviceName}
@@ -165,7 +162,9 @@ module.exports = function (RED) {
165
162
  try {
166
163
  // Check if it's a group address
167
164
  // const ret = Address.KNXAddress.createFromString(grpaddr, Address.KNXAddress.TYPE_GROUP)
168
- node.setLocalStatus({ fill: 'grey', shape: 'dot', text: 'Read', payload: '', GA: grpaddr, dpt: '', devicename: rule.devicename });
165
+ setTimeout(() => {
166
+ node.setLocalStatus({ fill: 'blue', shape: 'dot', text: 'Read', payload: '', GA: grpaddr, dpt: '', devicename: rule.devicename });
167
+ }, 500);
169
168
  node.serverKNX.sendKNXTelegramToKNXEngine({ grpaddr, payload: '', dpt: '', outputtype: 'read', nodecallerid: node.id });
170
169
  } catch (error) {
171
170
  node.setLocalStatus({ fill: 'grey', shape: 'dot', text: 'Not a KNX GA ' + error.message, payload: '', GA: grpaddr, dpt: '', devicename: rule.devicename });
@@ -276,6 +275,7 @@ module.exports = function (RED) {
276
275
  node.serverKNX.removeClient(node);
277
276
  if (node.topic !== '' || node.topicSave !== '') {
278
277
  node.serverKNX.addClient(node);
278
+ node.initialReadAllDevicesInRules();
279
279
  }
280
280
  }
281
281
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "engines": {
4
4
  "node": ">=16.0.0"
5
5
  },
6
- "version": "3.3.4",
6
+ "version": "3.3.6",
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",
@@ -1,14 +0,0 @@
1
- <script type="text/html" data-help-name="knxUltimateAlerter">
2
- <h1>KNX Ultimate - Alerter</h1>
3
-
4
- <p>
5
- <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/Alerter-Configuration" target="_blank"><i class="fa fa-info-circle"></i>&nbsp Config help</a><br/>
6
- <a href="https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/SampleAlerter" target="_blank"><i class="fa fa-code"></i>&nbsp Samples</a>.
7
- </p>
8
-
9
- <p>
10
- <a href="https://www.paypal.com/donate/?hosted_button_id=S8SKPUBSPK758" target="_blank">
11
- <img src='https://raw.githubusercontent.com/Supergiovane/node-red-contrib-knx-ultimate/master/img/CodiceQR.png' width='30%'>
12
- </a>
13
- </p>
14
- </script>