Ankündigung

Einklappen
Keine Ankündigung bisher.

Node Red Fragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Node Red Fragen

    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.

    Danke euch

    #2
    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!

    Kommentar


      #3
      Zitat von MPolo Beitrag anzeigen
      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)
      NEU: ARAGON - Sprachsteuerung ohne Cloud in der Schalterdose https://proknx.com/aragon-de
      Ausserdem: Automatisierungsideen mit NodeRED: (Logik, Sprachausgabe, Fremdprotokolle uvm)

      Kommentar


        #4
        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?

        Kommentar


          #5
          Lege die Werte, die du als Input verwenden möchtest als Status 2Byte oder Status 1Bit im proserv an. Dann werden sie auch aufgelistet.
          Chris (https://proknx.com)
          NEU: ARAGON - Sprachsteuerung ohne Cloud in der Schalterdose https://proknx.com/aragon-de
          Ausserdem: Automatisierungsideen mit NodeRED: (Logik, Sprachausgabe, Fremdprotokolle uvm)

          Kommentar


            #6
            Zitat von MPolo Beitrag anzeigen
            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?

            Kommentar


              #7
              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.

              Kommentar


                #8
                Zitat von 4rem Beitrag anzeigen
                Hier habe ich 2Byte Status gewählt,
                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)
                NEU: ARAGON - Sprachsteuerung ohne Cloud in der Schalterdose https://proknx.com/aragon-de
                Ausserdem: Automatisierungsideen mit NodeRED: (Logik, Sprachausgabe, Fremdprotokolle uvm)

                Kommentar


                  #9
                  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?

                  Kommentar


                    #10
                    Ja, Du kannst in den Parametern der Wetterstation sicherlich einstellen, den Temperaturwert regelmässig - so alle 5 Minuten - senden zu lassen.
                    Chris (https://proknx.com)
                    NEU: ARAGON - Sprachsteuerung ohne Cloud in der Schalterdose https://proknx.com/aragon-de
                    Ausserdem: Automatisierungsideen mit NodeRED: (Logik, Sprachausgabe, Fremdprotokolle uvm)

                    Kommentar


                      #11
                      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

                      Kommentar


                        #12
                        Zitat von Neelex Beitrag anzeigen
                        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?

                        Kommentar


                          #13
                          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
                          Zuletzt geändert von Exun; 01.12.2018, 06:19.

                          Kommentar


                            #14
                            Zitat von Neelex Beitrag anzeigen
                            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.
                            A Node Red node for implementing a finite state machine.
                            Chris (https://proknx.com)
                            NEU: ARAGON - Sprachsteuerung ohne Cloud in der Schalterdose https://proknx.com/aragon-de
                            Ausserdem: Automatisierungsideen mit NodeRED: (Logik, Sprachausgabe, Fremdprotokolle uvm)

                            Kommentar


                              #15
                              Zitat von Exun Beitrag anzeigen
                              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:

                              Code:
                              {"topic":"knx: write","payload":{"srcphy":"1.1.XX","dstgad":"2/2/XX","value":{"type":"Buffer","data":[0]}},"_msgid":"abcdefghijkl"}
                              Ziel wäre nun die Message z.B. umzubauen auf:

                              Code:
                              {"topic":"2/2/XX","payload": "false" ,"_msgid":"abcdefghijkl"}
                              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...

                              Zitat von multimedia Beitrag anzeigen
                              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.
                              Super, danke, probiere ich aus!

                              Kommentar

                              Lädt...
                              X