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>  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>  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 =
|
|
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 =
|
|
33
|
+
node.initialread = 1;
|
|
34
34
|
} else {
|
|
35
|
-
node.initialread = config.initialreadGAInRules
|
|
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
|
-
|
|
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.
|
|
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>  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>  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>
|