Thank you. I'll let you know as soon as i've checked the code.
Ankündigung
Einklappen
Keine Ankündigung bisher.
KNX node for node-red
Einklappen
X
-
Hi all,
I am totally new to Home Assistant and Node-Red, just started migrating several years of KNX-automation from another platform. Must admit, I am getting a bit lost, also after several tutorials and the KNX ultimate docu. Maybe you guys can nudge me in the right direction, please?
(FYI: Basics are all working, can read/write to KNX but, basic understanding of how NR compares to scripting etc.)
Thought I pick a simple first use case to get a hang of things, but seems to be more tricky:
- Let's say, a shutter is open and you long press the respective switch UP. Control GA is triggered with a move up command.
- Shutter actor does not react because it's already open, which is good.
However, in Node-Red:
1) Pick up that the control GA was triggered and do a look up: which status GA belongs to the triggered control GA. (Solved)
2) Read the status of the respective shutter. (first step, but getting lost)
3) If the control GA has an UP and the status is UP, too; trigger a scene GA (which puts the shutter into shade mode). (have an idea how that will be working)
Vice versa for closed shutter with DOWN command, but that only alters the logic for step 3.
And do want to have the same logic for all my seven shutters in a single place, without having seven flows (but using a central configuration object).
For step 2, I have written a function that outputs to a KNX device node: (I using the
function:
Code:for (var i = 0; i < msg.payload.length; i++) { if (msg.knx.destination = msg.payload[i].controlGA) { var newMsg = {}; newMsg.destination = msg.payload[i].statusGA; newMsg.payload = false; newMsg.event = "GroupValue_Response"; newMsg.dpt = 5; newMsg.shutter = msg.payload[i]; } } node.warn(newMsg); node.send(newMsg);
KNX device node:
image.png
image.png
Would like to continue in debug4 with logic, but that one is never triggered.
The Read request is triggered, see that in the bus monitor.
I see the following options:
A) Global variable
Looking at the examples online, another KNX device node is needed that listens to the status GA.
Combined with a global variable set by the function above to control for regular status GA writes.
Sounds complicated and "unclean"? At least to someone used to scripting.
B) Continue at debug 4
But how!?
C) knx.read()
Is there an extension to JS that I can directly call from the function?
So instead of building a new message, directly read the status from the KNX bus?
Thanks so much for any help!
Kommentar
-
That ist No topic for that Support Thread, you need advice how KNX ist working in general and how a Logic is working with KNX.
KNX ist Event based.l and each KO knows the Last Value of recieved Telegrams
Your scenario doesn't need a logic. 1), 2) is Not relevant only 3) that is an AND Logic from GA Control and GA Status.
Therefore no NodeRed ist needed.----------------------------------------------------------------------------------
"Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
Albert Einstein
Kommentar
-
Agreed, Node Red is of course only one of thousand posiibilities to solve such a topic and maybe it is a bit oversized.
But if there is much more logic in this installation, a Node Red instance offers to be one of the most flexible logic devices of all.
For this request it is only AND. But you still need the instance where to realize it....
Kommentar
-
Hi
I get this error message when I update knx-ultimate :
2023-11-09T23:49:19.088Z Installer : node-red-contrib-knx-ultimate 2.2.25
2023-11-09T23:49:18.412Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-knx-ultimate@2.2.25
2023-11-09T23:49:18.748Z [err] npm
2023-11-09T23:49:18.749Z [err]
2023-11-09T23:49:18.749Z [err] WARN
2023-11-09T23:49:18.749Z [err]
2023-11-09T23:49:18.749Z [err] config
2023-11-09T23:49:18.749Z [err] production Use `--omit=dev` instead.
2023-11-09T23:50:29.485Z [err] npm
2023-11-09T23:50:29.485Z [err] ERR! code ENETUNREACH
2023-11-09T23:50:29.486Z [err] npm ERR! syscall connect
2023-11-09T23:50:29.486Z [err] npm
2023-11-09T23:50:29.486Z [err] ERR!
2023-11-09T23:50:29.486Z [err] errno ENETUNREACH
2023-11-09T23:50:29.488Z [err] npm ERR!
2023-11-09T23:50:29.488Z [err] request to https://registry.npmjs.org/node-red-...b-knx-ultimate failed, reason: connect ENETUNREACH 2606:4700::6810:1a22:443
2023-11-09T23:50:29.490Z [err]
2023-11-09T23:50:29.490Z [err] npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-11-09T23_49_18_712Z-debug-0.log
2023-11-09T23:50:29.498Z rc=1
Kommentar
-
Hi zusammen,
ich bekomme permanet diese Fehler im Iobroker Log abgezeigt.
Kann mir jemand damit helfen?grafik.png
Kommentar
-
Man könnte vermuten der ioBroker versucht den Bus zu fluten wird aber vom KNX-Node zum Glück ausgebremst durch die Telegrammratenbegrenzung.----------------------------------------------------------------------------------
"Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
Albert Einstein
Kommentar
-
Hi Max,
I was curious if the messages from device nodes could be extended to include structured GA data. Currently the only thing you get is "msg.devicename" being a combination of "([Main group]->[Middle group]) [GA name]". It would be nice if there was a new property (changing the existing might break existing flows) like "msg.gadata", containing child properties like "maingroupname", "middlegroupname" and "ganame". Maybe even the actual GA numbers ("msg.gadata.maingroupnumber" etc) for each could be added so users requiring those don't have to split the msg.topic themselves - though that's obviously quite simple so way lower priority
Cheers,
ChrisChris
Kommentar
Kommentar