Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Momentan versuche ich in Node Red meine Giesser EMX-8 Wetterstation für die Automatisierung zu benutzen. Bei den realKNX Objekten welche übernommen werden, zeigt es ja nur die Aktoren an, aber nicht die Eingänge. Kann mir jemand kurz erklären wie ich Informationen vom KNX Bus (Temperatur, Status IR Melder, Sonnenstand etc) in Node Red verwenden kann? Eine Gruppenadresse habe ich in der ETS erstellt, welche ich mit der Temperatur der Wetterstation verknüpfen könnte.
Ich habe bei mir ein Input Objekt eingefügt, mit dem ich alle Gruppenadressen, die auf den Bus gelangen auslesen kann um darüber die Telegramme abzufischen, die ich für die weitere Auswertung benötige. Wenn Du die installierten Komponenten durchsuchst oder die noch möglichen Installationen, solltest Du das finden. Ich hoffe, das ist ein Ansatz für Dich.
KNX input node. Use this to inject flows from KNX events. msg.topic will be:
'knx: read': when a read request arrives on the bus
'knx: respond': when another KNX device responds to a read request on the bus
'knx: write': when somebody writes a value to a KNX group address.
msg.payload will be an object with the following properties:
srcphy: source physical address (eg.'1.1.100')
dstgad: destination group address (eg.'1/2/3')
value: the actual value received (NOTE: just a raw Buffer)
One major disadvantage of the generic knx-in node is that there is no DPT context, hence the values emitted from KNX come in as raw values (integer or byte arrays) that you need to translate into useful values.
Please take a look at the knx-device node to define DPT-aware endpoints!
Ich habe bei mir ein Input Objekt eingefügt, mit dem ich alle Gruppenadressen, die auf den Bus gelangen auslesen kann um darüber die Telegramme abzufischen, die ich für die weitere Auswertung benötige. Wenn Du die installierten Komponenten durchsuchst oder die noch möglichen Installationen, solltest Du das finden. Ich hoffe, das ist ein Ansatz für Dich.
ja, das ist eine Möglichkeit.
Wenn man mit dem realKNX Server arbeitet werden aber auch direkt die Funktionen angeboten, die über den konfigurierten proServ zur Verfügung gestellt werden. Da gibt es Knoten als Input, Output oder auch Abfrage. knoten.PNG
Chris (https://proknx.com) wir haben ARAGON entwickelt, einen offline Sprachassistenten für KNX.
Google, Amazon und Apple hätten das auch gekonnt. Aber sie verdienen eben besser an unseren persönlichen Daten...
MPolo Super, Danke dir, werde ich mal versuchen. multimedia Bei mir sieht das so aus wenn ich beim realKNX Server das realKNX verknüpfen möchte: realKNX Node-RED.png
Hier kann ich wie gesagt ja nur Aktoren ansteuern (Jalousien, Leuchten) aber keine Inputs wie eben die Wetterstation. Mach ich hier vielleicht doch was falsch?
Ich habe bei mir ein Input Objekt eingefügt, mit dem ich alle Gruppenadressen, die auf den Bus gelangen auslesen kann um darüber die Telegramme abzufischen, die ich für die weitere Auswertung benötige. Wenn Du die installierten Komponenten durchsuchst oder die noch möglichen Installationen, solltest Du das finden. Ich hoffe, das ist ein Ansatz für Dich.
KNX input node. Use this to inject flows from KNX events.
Könntest Du ein Beispiel machen wie eine Weiterverarbeitung aussehen kann? Irgendwie fehlt mir gedanklich etwas
Die Events auf dem KNX-Bus werden von dem KNX-IN-Node mitgeschnitten, allerdings ohne (lesbaren) Value. Value ist immer "buffer(undefined)". Könnte daran liegen, dass die Values im RAW Format übergeben werden. Wie baue ich das z.B. auf einen DPT1-Value um?
MPolo Ein Beispiel fände ich hier auch noch spannend
multimedia Eine Frage zu den realKNX Funktionen habe ich noch. Bei mir funktioniert das ganze noch nicht ganz korrekt. Denn Sonnenazimut bzw. Elevationswert gibt es mir sauber weiter bis ins Node Red. Das ganze in der ETS mittels Status. Leider funktioniert es mit der Aussentemperatur nicht. Hier habe ich 2Byte Status gewählt, und die Einheit auf Grad eingestellt. Diesen Wert mit dem Sensorausgang der Wetterstation verknüpft. Im Node Red zeigt er nun aber immer 0 an. Woran könnte das liegen? Hab es auch erfolglos in der ETS mit Control, resp. AUX versucht.
Genau das ist auch richtig. Was siehst Du denn im Gruppenmonitor in der ETS? Vielleicht sendet der Sensorausgang der Wetterstation nur selten mal einen neuen Wert... Schreib einfach mal einen Wert über den Gruppenmonitor auf die GA.
Chris (https://proknx.com) wir haben ARAGON entwickelt, einen offline Sprachassistenten für KNX.
Google, Amazon und Apple hätten das auch gekonnt. Aber sie verdienen eben besser an unseren persönlichen Daten...
multimedia Super, du hast Recht Chris. Wenn ich manuel einen Wert auf die Gruppenadresse sende, zeigt es mir diesen wie gewollt an im Node Red. Heisst das, dass meine Wetterstation die Aussentemperatur nicht aktiv sendet?
Stimmt, hab eine Einstellung gefunden. Entweder bei Änderungen, oder alle x Minuten. Dies allerdings immer die 4 Byte Funktion "Alle Sensorwerte". Kann man eventuell diesen benützen im Proserv? Spannend ist auch, dass der Proserv immer die richtige Aussentemperatur anzeigt. Dies wird ja unter Global konfiguriert
Die Events auf dem KNX-Bus werden von dem KNX-IN-Node mitgeschnitten, allerdings ohne (lesbaren) Value. Value ist immer "buffer(undefined)". Könnte daran liegen, dass die Values im RAW Format übergeben werden. Wie baue ich das z.B. auf einen DPT1-Value um?
Also ich habe michvnun damit beschäftigt. So richtig weitergekommen bin ich leider nicht. Im msg.payload gibt es den bereits beschriebenen Value, der einen Array enthält, der den type "buffer" und z.B. data 1 (0x1) enthält. ich kriege das einfach nicht umgebaut, dass im payload nur noch ein "true" oder "false" steht.
Noch eine andere Frage:
Ich würde gerne eine Aktion auslösen, wenn innerhalb einer definierten Zeitspanne 2 oder 3 Bewegungsmelder in definierter Reihenfolge eine Bewegung erkennen. Ich gehe schwer davon aus, dass sich auch so etwas in Node Red (mit dem Function-Node) realisieren lässt. Hat das jemand schon mal gemacht und ein Beispiel, an dem man sich etwas entlanghangeln kann?
Versuche mal den Haken bei :"Convert output to boolean" zu setzen. Du kannst auch mit der Node "Change" ein payload vorgeben (boolean) oder mit der Node "Switch" den Inhalt auf verschieden Wege bringen und dann mit "Change" nach Bedarf umändern.
LG, Tobi
Ich würde gerne eine Aktion auslösen, wenn innerhalb einer definierten Zeitspanne 2 oder 3 Bewegungsmelder in definierter Reihenfolge eine Bewegung erkennen. Ich gehe schwer davon aus, dass sich auch so etwas in Node Red (mit dem Function-Node) realisieren lässt. Hat das jemand schon mal gemacht und ein Beispiel, an dem man sich etwas entlanghangeln kann?
Das lässt sich sehr schön mit dem Knoten "state-machine" durchführen. Für den Status der Bewegungsmelder jeweils 1-Bit Status anlegen. Jeder Status schaltet dann die State-Machine einen Schritt weiter. Mit dem Knoten "trigger" kannst Du die Zeitspannen definieren, wann die Bewegungsmelder "scharf" sind, um in den nächsten Schritt der State Machine weiterzuschalten.
Versuche mal den Haken bei :"Convert output to boolean" zu setzen. Du kannst auch mit der Node "Change" ein payload vorgeben (boolean) oder mit der Node "Switch" den Inhalt auf verschieden Wege bringen und dann mit "Change" nach Bedarf umändern.
LG, Tobi
Bei dem Fall handelt es sich ja um den Node KNX-IN aus dem "node-red-contrib-knxjs"-Paket. Vorteil ist, dass Du damit einfach die Lese- und Schreibvorgänge auf die Gruppenaddressen mitschneiden kannst. Und hier kommt eine Message raus im Format:
Ich habe es bisher nicht geschafft einen String / eine Expression etc. zu finden, die den Wert von "data" irgendwie zu fassen kriegt, was wohl daran liegt, dass es sich hier um einen Buffer handelt. Paar Ansätze habe ich beim Googeln gefunden, die mich aber ebenfalls nicht weiter gebracht haben. Mag auch an meinen begrenzten Coding-Fähigkeiten zu liegen...
Das lässt sich sehr schön mit dem Knoten "state-machine" durchführen. Für den Status der Bewegungsmelder jeweils 1-Bit Status anlegen. Jeder Status schaltet dann die State-Machine einen Schritt weiter. Mit dem Knoten "trigger" kannst Du die Zeitspannen definieren, wann die Bewegungsmelder "scharf" sind, um in den nächsten Schritt der State Machine weiterzuschalten.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar