Zitat von TheMax74
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
KNX node for node-red
Einklappen
X
-
Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...
-
Zitat von TheMax74 Beitrag anzeigendo what PhilW suggest.Now after this has been solved, the circular reference issue kicked in ... After rbe filter didn't do the trick, I found "GETTING TOTALLY RID OF CIRCULAR REFERENCE PROTECTION" on https://github.com/Supergiovane/node...i/-Protections . So I pasted the code in between the two knx ultimate nodes - and here we go!!! Works like a charme - and it is fairly quick!
lobo_nodered_logik_5.PNG
Now - only thing that puzzles me at the moment is the fact, that I cannot see the values sent on the bus. I can see that the lights react and they send the status, but I don't see the value which is sent by knxultimate. At the moment, I am using multicast, but my computer with ETS is connected to the bus with tunneling via a wiregate gateway (eibd) which uses the only tunnel of my knx router.
Best regards,
Stefan
Mein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...
Kommentar
-
Yes, but the problem is that my router only has one single tunnel - and this is actually used by the wiregate. Eibd on the wiregate can provide more tunnels and I double-checked the configuration and noticed that I had set knx ultimate to tunneling onto the wiregate address (which basically works, but I am not sure if this has caused the issue with group monitoring).
Now I changed the setting in knx ultimate to multicast and I can monitor what has been sent.
The flow is working fine if I inject the values within node-red, but if I sent "60" on the knx bus, the left node does not react. It still says "waiting for telegram". I must check which option enables this node to react on a change from the bus.
Cheers,
StefanMein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...
Kommentar
-
-
... or have a look onto https://flows.nodered.org/node/node-...trib-cron-plus - that's the one I am using at the moment. That is the only scheduler I found which is able to send values instead of off/on ...
TheMax74 : I know that multicast doesn't have this restriction, but I already had issues with multicast (the network devices I used didn't support multicast - now I am having another switch and this one works).
Best regards,
StefanMein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...
Kommentar
-
Thank you for the information.
To test "cron-plus" send a request every minute on the GA 9/2/0 but I can't configure to retrieve the value of this GA.
Code:[{"id":"294f671f.d21918","type":"cronplus","z":"d67a3cc1.37528","name":"","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"schedule1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 * * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":420,"y":220,"wires":[["6efa8c90.8a66c4"]]},{"id":"6efa8c90.8a66c4","type":"knxUltimate","z":"d67a3cc1.37528","server":"123ea2c2.4a920d","topic":"9/2/0","outputtopic":"","dpt":"13.010","initialread":"2","notifyreadrequest":false,"notifyresponse":true,"notifywrite":false,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","listenallga":false,"name":"","outputtype":"read","outputRBE":false,"inputRBE":false,"formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"yesownprop","x":610,"y":200,"wires":[["eb7e4d23.b7665"]]},{"id":"eb7e4d23.b7665","type":"debug","z":"d67a3cc1.37528","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":920,"y":200,"wires":[]},{"id":"123ea2c2.4a920d","type":"knxUltimate-config","host":"224.0.23.12","port":"3671","physAddr":"15.15.22","suppressACKRequest":false,"csv":"\"Group name\"\t\"Address\"\t\"Central\"\t\"Unfiltered\"\t\"Description\"\t\"DatapointType\"\t\"Security\"\n\"Attuatori luci\"\t\"0/-/-\"\t\"\"\t\"\"\t\"Attuatori luci\"\t\"\"\t\"Auto\"\n\"Luci primo piano\"\t\"0/0/-\"\t\"\"\t\"\"\t\"Luci primo piano\"\t\"\"\t\"Auto\"\n\"Camera da letto luce\"\t\"0/0/1\"\t\"\"\t\"\"\t\"Camera da letto luce\"\t\"DPST-1-8\"\t\"Auto\"\n\"Loggia camera da letto\"\t\"0/0/2\"\t\"\"\t\"\"\t\"Loggia camera da letto\"\t\"DPST-1-1\"\t\"Auto\"\n\"Camera armadi luce\"\t\"0/0/3\"\t\"\"\t\"\"\t\"Camera armadi luce\"\t\"DPST-1-1\"\t\"Auto\"\n\"Bagno grande luce\"\t\"0/0/4\"\t\"\"\t\"\"\t\"Bagno grande luce\"\t\"DPST-1-1\"\t\"Auto\"\n\"Loggia bagno grande\"\t\"0/0/5\"\t\"\"\t\"\"\t\"Loggia bagno grande\"\t\"DPST-1-1\"\t\"Auto\"","KNXEthInterface":"Auto","KNXEthInterfaceManuallyInput":"","statusDisplayLastUpdate":true,"statusDisplayDeviceNameWhenALL":true,"statusDisplayDataPoint":false,"stopETSImportIfNoDatapoint":"stop","loglevel":"error","name":"Multicast Router","localEchoInTunneling":true,"delaybetweentelegrams":"","delaybetweentelegramsfurtherdelayREAD":""}]
Formatted export
Code:[ { "id": "d67a3cc1.37528", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "294f671f.d21918", "type": "cronplus", "z": "d67a3cc1.37528", "name": "", "outputField": "payload", "timeZone": "", "persistDynamic": false, "commandResponseMsgOutput": "output1", "outputs": 1, "options": [ { "name": "schedule1", "topic": "schedule1", "payloadType": "default", "payload": "", "expressionType": "cron", "expression": "0 * * * * *", "location": "", "offset": "0", "solarType": "all", "solarEvents": "sunrise,sunset" } ], "x": 420, "y": 220, "wires": [ [ "6efa8c90.8a66c4" ] ] }, { "id": "6efa8c90.8a66c4", "type": "knxUltimate", "z": "d67a3cc1.37528", "server": "123ea2c2.4a920d", "topic": "9/2/0", "outputtopic": "", "dpt": "13.010", "initialread": "2", "notifyreadrequest": false, "notifyresponse": true, "notifywrite": false, "notifyreadrequestalsorespondtobus": false, "notifyreadrequestalsorespondtobusdefaultvalueifno tinitialized": "0", "listenallga": false, "name": "", "outputtype": "read", "outputRBE": false, "inputRBE": false, "formatmultiplyvalue": 1, "formatnegativevalue": "leave", "formatdecimalsvalue": 999, "passthrough": "yesownprop", "x": 610, "y": 200, "wires": [ [ "eb7e4d23.b7665" ] ] }, { "id": "eb7e4d23.b7665", "type": "debug", "z": "d67a3cc1.37528", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 920, "y": 200, "wires": [] }, { "id": "123ea2c2.4a920d", "type": "knxUltimate-config", "host": "224.0.23.12", "port": "3671", "physAddr": "15.15.22", "suppressACKRequest": false, "csv": "\"Group name\"\t\"Address\"\t\"Central\"\t\"Unfiltered\"\t \"Description\"\t\"DatapointType\"\t\"Security\"\n \"Attuatori luci\"\t\"0/-/-\"\t\"\"\t\"\"\t\"Attuatori luci\"\t\"\"\t\"Auto\"\n\"Luci primo piano\"\t\"0/0/-\"\t\"\"\t\"\"\t\"Luci primo piano\"\t\"\"\t\"Auto\"\n\"Camera da letto luce\"\t\"0/0/1\"\t\"\"\t\"\"\t\"Camera da letto luce\"\t\"DPST-1-8\"\t\"Auto\"\n\"Loggia camera da letto\"\t\"0/0/2\"\t\"\"\t\"\"\t\"Loggia camera da letto\"\t\"DPST-1-1\"\t\"Auto\"\n\"Camera armadi luce\"\t\"0/0/3\"\t\"\"\t\"\"\t\"Camera armadi luce\"\t\"DPST-1-1\"\t\"Auto\"\n\"Bagno grande luce\"\t\"0/0/4\"\t\"\"\t\"\"\t\"Bagno grande luce\"\t\"DPST-1-1\"\t\"Auto\"\n\"Loggia bagno grande\"\t\"0/0/5\"\t\"\"\t\"\"\t\"Loggia bagno grande\"\t\"DPST-1-1\"\t\"Auto\"", "KNXEthInterface": "Auto", "KNXEthInterfaceManuallyInput": "", "statusDisplayLastUpdate": true, "statusDisplayDeviceNameWhenALL": true, "statusDisplayDataPoint": false, "stopETSImportIfNoDatapoint": "stop", "loglevel": "error", "name": "Multicast Router", "localEchoInTunneling": true, "delaybetweentelegrams": "", "delaybetweentelegramsfurtherdelayREAD": "" } ]
Zuletzt geändert von Stives; 02.05.2021, 00:04.
Kommentar
-
lobo
Stefan, it looks like all light control telegrams are going through this node and logic.
In that case I would use different GA to avoid endless circulation. You need an Input GA sended by all connected switches and the information day/night status. Both into a function node which one check the status. in case of day the input is passed through in case of night 10% is sended.
With such a function you can directly react on 1bit and 1byte telegrams.
The KNX nodes which sends the effective control telegrams uses other GAs connected to the actor.
In ETS only the status GA are directly connected between actor and Switch/Visu etc.----------------------------------------------------------------------------------
"Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
Albert Einstein
Kommentar
-
Hey Göran,
the behavior to send onto the same GA is intendet and very well justified: the reason behind this is that this is one of the essential functions to live at home. What happens is that my PIRs (movement sensors) send a low value whenever they detect someone (e.g. 5%). That means that the lighting in the corridor is switched on even if no logik (either linknx, node-red or what so ever) is working. The 5 % is far enough, so that inhabitants won't stumble when the walk along the corridor.
Now the purpose of my logik is to trigger higher light levels AFTER the low, initial light value was sent. By this, light level will be set higher during daytime. This gives a fail-safe and yet comfortable situation at home.
Of cause, you are right - I could send the new light intensities onto another GA and make the DALI actor hear onto this address, as well, but as long as I won't send a 5 % value from the logic, there shouldn't be a circular issue (and it has been working brilliantly using linknx for more than a decade). For me, this is a tech-demo to understand what is working and what is feasible and I therefore want to understand the basics behind the different settings. In fact, I am facing quite some issues with circular references with knx ultimate, but I assume this is simply because I haven't understood all the switches you can set.
Added to this, the german translation is sometimes hard to understand (sometimes because it is mixed in between english and german etc.). Please don't get me wrong - this is not an accusation, I am very grateful that there is at least an english translation! Whenever I think that I understand the switches correctly, I could even imagine to contribute to the project at least by doing some translation or documentation.
Best,
StefanMein Sammelsurium: TS2, Zennio Z38, Siemens LOGO!, Medeodata 140 S, Weinzierl KNX ENO 620, Eibmarkt IP Router, MDT KNX IP IF, Wiregate, Node-Red mit KNX Ultimate, MDT Smart II, diverse Aktoren verschiedener Hersteller ...
Kommentar
-
Hi TheMax74
Zitat von TheMax74 Beitrag anzeigeni suggest you to carefully read the knx-ultimate wiki and samples on gitHub.
You need to enable “react on response telegrams”.
cron.jpg
Zitat von TheMax74 Beitrag anzeigenAbout the pasted code, from where you got the sample code? Can you point me to the web page?
Thanks.Zuletzt geändert von Stives; 02.05.2021, 23:50.
Kommentar
-
Hi,
Here is the code of a flow which works to store the current value of the electric meter in Influxdb.
In this flow, the counter value is read in Home Assistant in which there is a link with the GA KNX (which contains the counter value).
I would like to read the GA of the KNX meter directly to store the value in Influxdb.
Code:[{"id":"c92c7602.90e1b8","type":"inject","z":"5f869aea.270dd4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":"","topic":"","payload":"","payloadType":"date","x":210,"y":80,"wires":[["d5a4a67d.00c818"]]},{"id":"d5a4a67d.00c818","type":"api-current-state","z":"5f869aea.270dd4","name":"","server":"6dbc60a4.9907","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.compteur_elec","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":470,"y":80,"wires":[["d66aea78.2d5388"]]},{"id":"d66aea78.2d5388","type":"function","z":"5f869aea.270dd4","name":"transforme en nombre + format pour influx","func":"var conso = parseFloat(msg.payload);\nmsg.payload = [];\nfields = {\"value\":conso};\ntags = {\"entity\":\"index_elec\"};\nmsg.payload = [fields,tags];\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":840,"y":80,"wires":[["8501bfa2.88eee","8190cc40.48864"]]},{"id":"8501bfa2.88eee","type":"influxdb out","z":"5f869aea.270dd4","influxdb":"468eb0a8.3cc35","name":"Influxdb Index Elec","measurement":"Conso","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":1150,"y":80,"wires":[]},{"id":"8190cc40.48864","type":"debug","z":"5f869aea.270dd4","name":"Index Elec","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1140,"y":140,"wires":[]},{"id":"6dbc60a4.9907","type":"server","name":"Home Assistant","addon":true},{"id":"468eb0a8.3cc35","type":"influxdb","hostname":"a0d7b954-influxdb","port":"8086","protocol":"http","database":"nodereddb","name":"influx db addon","usetls":false,"tls":"","influxdbVersion":"1.x","url":"http://localhost:8086","rejectUnauthorized":true}]
Kommentar
Kommentar