Ankündigung

Einklappen
Keine Ankündigung bisher.

Velux KLF200 & Gria Homeserver 4 / NodeRed

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

    Velux KLF200 & Gria Homeserver 4 / NodeRed

    Hallo Zusammen,

    Ich möchte gerne das Leidige Thema Velux Dachflächenfenster mit Rollo sowie Teils mit Öffnung erneut anstoßen.
    Vorab habe Ich nach der kurz Anleitung von KNXsmart hier aus dem Forum das ganz soweit zum Laufen gebracht.

    Zitat von KNXsmart Beitrag anzeigen
    Also ich versuch das mal etwas zu beschreiben

    Für die Installation von Node-Red gibt es sicher genügend Anleitungen. Ich verwende folgenden Docker Container auf meinem Synology NAS:
    https://registry.hub.docker.com/r/nodered/node-red/

    Den KLF 200 Gateway muss man per WLAN konfigurieren. Sprich auf das WLAN einloggen, welches der KLF erzeugt und dann die Velux Geräte gemäss Anleitung einlernen. Ich habe auch noch eine Szene programmiert, da ich sonst immer Fehlermeldungen bekommen habe, wäre aber wohl nicht nötig.
    Für das API muss der KLF zwingend per Ethernet Kabel angeschlossen sein!

    Dann im Node-Red folgende Pakete installieren:
    - node-red-contrib-knx-ultimate
    - node-red-contrib-velux

    Der Basis-Flow für 2 Rolläden sieht dann wie folgt aus:

    2020-10-03 11_02_16-Node-RED _ diskstation.png

    Die Verbindung zum KLF benötigt die IP (vom Ethernet Interface) und das WLAN Passwort (nicht mit dem Passwort der Konfigurationsumgebung verwechseln).

    Bei Monitoring unbedingt "use home monitor" auswählen, sonst werden keine Positionen zurück gemeldet.

    Den Velux Node wie folgt einstellen:

    2020-10-03 11_09_45-Node-RED _ diskstation.png

    Somit werden alle Änderungen der angemeldeten Velux Geräte geschickt. -1 bei node index steht für alle Geräte.

    Den Switch nach Geräten mache ich anhand von msg.payload.nodeID. In der Change Nods schreibe ich die aktuelle Position (msg.payload.currentPosition.value) in msg.payload:

    2020-10-03 11_15_37-Node-RED _ diskstation.png

    Nun haben wir die aktuelle Position im Payload und können diese mit knx ultimate Device Node auf den Bus schreiben:

    2020-10-03 11_15_58-Node-RED _ diskstation.png

    Um dann ein Gerät anzusteuern, höre ich auf eine Gruppenadresse. Bitte unbedingt das Topic auf velux:write ändern, dies sagt dem Velux Node im nächsten Schritt, dass wir den Wert vom Bus auf das Velux Gerät schreiben möchten:

    2020-10-03 11_19_06-Node-RED _ diskstation.png

    Im Velux Node muss man dann nur noch das Device auswählen (node index) und send value auf target setzten. Somit wird der Wert aus dem payload als Zielposition zum Fenster gesendet:

    2020-10-03 11_20_53-Node-RED _ diskstation.png

    So weit so gut für den einfachsten Fall. Ich habe noch Gruppenadressen definiert, welche mehrere Fenster gleichzeitig ansteuern (Achtung: hier muss eine Zeitverzögerung eingebaut werden, da der KLF nicht 2 Befehle zeitgleich verarbeiten kann. 100ms Verzögerung für das zweite Fenster haben bereits gereicht). Zudem werde ich noch verhindern, dass man bei geöffnetem Fenster die Rollläden schliessen kann und umgekehrt.

    Ich hoffe, diese kurze Anleitung hilft jemandem. Bei Unklarheiten gerne auch nachfragen.

    Ich habe aber noch das Problem das ich in der Gira Homeserver 4 App Ich die Rollade nicht auf Position Fahren kann. Wenn Ich Ihr jetzt sage z.b. 50%
    Wenn ich über die Funk Sender eine Position Anfahre wird mir die Position auch % Angezeigt. Fahre Ich das Rollo über die ETS5 (Wert Schreiben) auf z.b. 50% Klappt das auch Problemlos. Ich vermute das es Irgendwas mit den Datentyp der Gruppenadressen zu tun hat. Wenn Ich in der App aber die Pfeilrichtung Benutze Fährt die Rollade nur Hoch, Runter aber nicht.

    Aktuell habe ich Zwei Gruppen Adressen dafür:

    13/0/25 Rollo Fahren -> Datentyp 5.001
    13/0/26 Rollo Position -> Datentyp 5.001

    Im Homeserver habe ich die Datentypen auch Kontrolliert.

    Vielleicht weiß KNXsmart rat? Hab Ich irgendwas übersehen oder ausgelassen?
    Für Erfahrungsberichte wäre Ich Äußerst dankbar ;-)

    lg.
    Sebastian



    #2
    Der Datentyp für Fahren (Kurzzeit oder Langzeit) ist ein 1Bit-Datentyp (z.b. 1.001), für Position dann ein 1byte (5.001).

    Kommentar


      #3
      Ich hatte in meinem Beispiel nur die absolute Position verwendet. Ich bin gar nicht sicher ob das API Befehle für Fahren und Stopp implementiert. Langzeit Fahren könnte man dadurch lösen, dass man im Node red einfach den Befehl in die entsprechende Endlage (Position 0 oder 100) umwandelt. Kurzzeit könnte
      Code:
      Neue Position = aktuelle Position +/- x
      sein.

      Mir reicht die absolute Position sowie ganz auf und ganz zu und ich verwende daher in der App (X1 nicht HomeServer) und bei den Tastern einen Wertgeben 0-100% und nicht den Storen Baustein.

      Ansonsten kannst du ja noch den Busmonitor verwenden um zu sehen, was die App für Befehle sendet und diese dann wie oben beschrieben im Node Red entsprechend emulieren.

      Kommentar


        #4
        Guten Abend zusammen!

        Welche Funktion verwendest du KNXsmart den auf deinem X1? Ganz Normal "Rolladen / Jalousie?

        Irgendwie will das ganze noch nicht Laufen. Ist die Rollade unten kann Ich diese Hoch Fahren. Aber nicht mehr runter.
        Im Busmonitor Sendet er zum Hoch Fahren "0" zum Runter Fahren "1" Wie bringe ich den Homeserver dazu das er statt "1" - "100" oder einen Beliebigen Wert sendet?
        "1" Fährt die Rollade auch an.


        Ist es möglich den "Stop" Befehl auch an die Rollade zu Senden zu können?


        lg.

        Kommentar


          #5
          Zitat von Sebastian200 Beitrag anzeigen
          Ganz Normal "Rolladen / Jalousie?
          Rollladen/Jalousie hat wie beschrieben jeweils typischerweise die zwei GA für Fahren und Position. Meine Anleitung implementiert nur "Position" und müsste für Fahren entsprechend erweitert werden, wie ich das in meiner vorherigen Antwort geschrieben hatte.

          Wenn du Fahren (Werte 0 oder 1 für rauf bzw. runter) als Position sendest, dann funktioniert natürlich 0, da das auch gleich die 0 Position ist. 1 ist aber sehr nahe bei 0. Allenfalls zuckt der Behang einzig etwas.

          Zitat von Sebastian200 Beitrag anzeigen
          Wie bringe ich den Homeserver dazu das er statt "1" - "100" oder einen Beliebigen Wert sendet?
          Du könntest das im NodeRed entsprechend erweitern mit einer Funktion, welche auf die Gruppenadresse 13/0/25 Rollo Fahren hört und dann mit einem "Function"-Node den Wert mit 100 multiplizieren. 0 bleibt 0 und aus 1 wird 100.

          Für Stopp habe ich wie gesagt nicht gerade eine Lösung, da müsstest du herausfinden, ob das API einen Stopp Befehl bietet.

          Kommentar


            #6
            Hallo in die Runde!

            Ich habe es inzwischen soweit Geschafft das Ich die Fenster & Rollos über die Homeserver 4 App und über die Schalter in der Wohnung fahren kann.

            Es hackt aber bisher noch daran das Ich die Rollos auch gerne Stoppen würde, an der jeweiligen Position.
            Hat es schon jemand geschafft die Rollos während der Fahrt über NodeRed zu stoppen?


            //edit

            Geschafft!

            KNX Node ---> "Change Node" setze msg.Payload auf {} - {"rawValue":"0xD200"}
            Velux Node: send value: target
            Velux Node: Topic: velux:wirte
            Zuletzt geändert von Sebastian200; 27.03.2022, 20:50.

            Kommentar


              #7
              Hallo zusammen,

              ich habe meine Velux Fenster und Rollladen über die klf200 auch mit nodered laufen und dann mittels KNX Ultimate an den Bus gebracht. Jetzt würde ich gerne der Verfahrgeschwindigkeit der Rollladen auf Silent schalten können, bekomme das aber nicht hin. Hat das jemand von euch ans Laufen gebracht, so dass man die Geschwindigkeit auf Silent stellen kann?

              Danke für eure Hilfe.

              Kommentar

              Lädt...
              X