Velux KLF200 einbinden
Einbinden des Velux KLF200 Interface in Loxone, Steuerung aller funkfähigen io-homecontrol Velux Produkten über Programme auf dem KLF200 wie z.B.:
- Rolläden (Velux SML, Velux SSL, Velux SMG, Somfy IO-Produkte)
- Sichtschutz innen (Velux FSK, Velux DML)
- Fensteröffner (Velux KMG, Velux CVP, Velux KSX, Velux GPU)
- Markisen (Velux MML, Velux MSL, Somfy IO-Produkte)
Variante 1 - Steuerung über direkte Verkabelung:
- Direkte Verkabelung des KLF200 mit den Ein- und Ausgängen des Miniservers bzw. entsprechender Extensions
- Keine Rückmeldung über die Position der Produkte im Miniserver möglich. Das KLF200 liefert lediglich ein OK oder ein Fehler-Status. Das bedeutet, der Miniserver kann die Veluxprodukte steuern, kennt aber deren Status (z.B. geöffnet oder geschlossen) nicht. Dies führt ggf. zu Irritationen, wenn auch über andere Velux-Produkte gesteuert werden soll z.B. Fernbedienungen oder Funktionen nicht parallel möglich sind (z.B. Öffnen und Beschattung).
- Maximal sind 5 Produkte und 5 getrennte Rückmeldungen steuerbar
Variante 2 - Steuerung über LAN:
- Steuerung des KLF200 über LAN
- verschiedene Lösungsansätze je nach Firmwareversion des KLF200 (Stand 2020 - neue Produkte werden mit Firmwareversion 2.0.0.71 vom 2018-09-27 ausgeliefert)
- Bis zu 200 Geräte wohl möglich (nur Firmwareversion 2)
- Rückmeldung über den Status und auch zu den integrierten Sensoren (nur Firmwareversion 2)
- Je nach Ansteuerungsmethodik kann es zu einer gewissen Verzögerung zwischen Ansteuerung und Ausführung kommen
Generell gilt zu Beachten, dass Stand Okt. 2020 die Loxone Bausteine typischerweise keinen Statuspositionseingang besitzen. D.h. eine Rückmeldung kann nur über Klimmzüge in der Ansteuerung in den Baustein eingefügt werden.
Achtung
Welche Variante man auch wählt, die Einbindung erfordert Erfahrung im Umgang mit Loxone und Hausautomatisierungen. Es existiert zur Thematik des KLF200 daher auch ein Feature Request im Loxwiki.
Variante 2 für KLF200 mit Firmwareversion 1.0.x.xx - Schritt-für-Schritt-Anleitung
Achtung
Es gibt Berichte in Foren, dass bei einem Upgrade von Version 1.0 auf Version 2.0 ein Reset der KLF200 erfolgt. Scheinbar ist es dann nötig die Produkte selbst komplett zurückzusetzen und neu anzulernen.
Die Steuerung erfolgt über das Webfrontend über die LAN-Schnittstele. Detailierte Doku mit Bildern im Blog.
- Pico C Script aus GitHub laden und in Loxone einpflegen.
- Zeile 6 mit korrekter IP und Zeile 50 mit korrektem Passwort für KLF200 anpassen.
Die hinterlegten Programme im Velux KLF200 haben alle eine eigene ID. Diese ist aber auf den ersten Moment nicht ersichtlich, um sie zu sehen, muss man den Browser in den Debug-Modus versetzen. Nun muss man einen Programmnamen abändern, danach kann man das Feedback abfangen das etwa so aussieht:
data:{id: 3, name: "close_all (3)"} deviceStatus:"IDLE"
Die Zahl hinter ID sollte man sich merken, ich habe sie jeweils allen Programmen gleich in Klammern angefügt, so habe ich die Übersicht.
- Programm-ID mittels Status-Baustein dem PicoC Script übergeben. Hier darauf achten, dass "0" auch ein aktives Programm ist:
Variante 2 für KLF200 mit Firmwareversion 2.0.x.xx - Anleitung
Die Firmwareversion 2 erlaubt keinen Zugriff mehr auf das Webfrontend über die LAN-Schnittstelle. Dafür steht auf der LAN-Schnittstelle eine API bereit. Velux hat eine ausführliche Dokumentation der API veröffentlicht. Eine Ansteuerung direkt über den Miniserver (z.B. PicoC) ist vermutlich komplex - bisher (Stand Okt. 2020) scheint es keine Lösung zu geben.
Für FHEM existiert ein Velux-KLF200-Plugin zur Ansteuerung. Eine Einbindung ist also z.B. über den LoxBerry möglich. Ein eigenes Loxberry-Plugin existiert bisher nicht:
- Das KLF200 ist eingerichtet und hängt am LAN. Alle Produkte sind angelernt. Ggf. sind Szenen eingerichtet (ist aber kein muss und natürlich kann man Produkte auch noch später anlernen). Die fortlaufenden Nummer die beim Anlernen der Produkte im Namen generiert werden, sollte man sich merken. Die Produkte können dann später in FHEM und auch im Miniserver über die Nummern identifiziert werden (Namensschema: Velux_<Nummer>). Die im KLF200 definierten Namen werden aber ebenso an FHEM übertragen.
Einrichtung eines Loxberry mit FHEM und MQTT-Plugins:
Zunächst benötigt man einen LoxBerry - alles dazu unter /wiki/spaces/LOXBERRY/pages/1207501902 Danach gehts zur Installtion der notwendigen Plugins
/wiki/spaces/LOXBERRY/pages/1192493685
/wiki/spaces/LOXBERRY/pages/1219757633
Installation des Net::MQTT:Constants Moduls:
- Login auf dem Loxberry per SSH mit dem SSH-/Konsolen-Login (Standard User: loxberry, alternativer User kann z.B. bei der Loxberry Installation geändert worden sein)
- Wechsel zu root mittels „su -<ENTER>“ (Passwort für den root Superuser wurde typischerweise ebenfalls bei der Loxberry Installation gesetzt)
- Ausführen von "cpan install Net::MQTT:Constants". Nach erfolgreicher Installation kann mit der Einrichtung von FHEM und MQTT fortgesetzt werden.
Hinweis für FHEM-Benutzer
Das MQTT Plugin vereinfacht den Einrichtungsaufwand, insbesondere für FHEM Unerfahrene. Grundsätzlich kann man den Miniserver auch direkt mit FHEM kommunizieren lassen und auf das MQTT-Plugin verzichten. Eine Anleitung findet sich z.B. hier.
- Einrichtung von FHEM und MQTT:
- Zunächst muss FHEM beigebracht werden, alle Daten an das MQTT-Gateway weiterzureichen. /wiki/spaces/LOXBERRY/pages/1219757717 In den folgenden Beispielen und Screenshots wurde das Topic einfach mit fhem benannt. Im MQTT-Plugin muss man zur Einrichtung zum einen das Passwort nachschlagen, zum anderen die Subscription eintragen.
- Als nächstes muss FHEM beigebracht werden, Befehle vom MQTT-Gateway zu empfangen. /wiki/spaces/LOXBERRY/pages/1250755184 Es genügt zunächst nur den FHEM-Teil durchzuführen.
- Das KLF200 Plugin muss separat installiert werden: Installationsanleitung des FHEM-Plugins. Ist das Plugin
Die angelernten Produkte auf der KLF werden automatisch nach FHEM übernommen. FHEM sieht dann z.B. so aus:
Hier ist der Zeitpunkt um die Funktion FHEM → KLF200 ausführlich zu testen. Alle im KLF200 angelernten Produkte sollte angezeigt werden und sollten sich steuern lassen. Über FHEM lassen sich ggf. noch weitere Einstellungen tunen wie z.B. die Fahrgeschwindigkeit. Weitere Optionen und Möglichkeiten siehe dazu die Anleitung des Velux-KLF200-Plugin.
Weiterhin sollten im MQTT-Plugin die gewünschten Daten angekommen, d.h. die Verbindung KLF200→ FHEM → MQTT funktioniert:
- Im nächsten Schritt kann die Anbindung des MQTT-Plugins an den Miniserver erfolgen. Die Einstellung im MQTT-Plugin sollte auf HTTP stehen, da das KLF200 auch Textstatus sendet, der sich durchaus verarbeiten lässt.
Die Einrichtung der Virtuellen Eingänge ist ausführlich /wiki/spaces/LOXBERRY/pages/1219757663 erklärt. Es eignen sich die folgenden Topics bzw. hier im Syntax für die Bezeichnung der Virtuellen Eingänge:
<fhem>_Velux_<Nr>_pct - aktuelle Position. Kann die Werte 0..100 annehmen.
<fhem>_Velux_<Nr>_execution - Ausführungstatus. Kann die Werte stop / up / down annehmen.
Es existieren eine Reihe weiterer Daten die man für komplexe Aufgaben verwenden kann. Man sollte allerdings beachten, dass keine der Bezeichnungen die im MQTT-Plugin angezeigt werden innerhalb der LoxoneConfig für etwas anderes als Bezeichnungen für virtuelle Eingänge benutzt wird.
Zum Steuern vom Miniserver müssen Virtuelle Ausgänge angelegt werden. Auch hier folgt man wieder der /wiki/spaces/LOXBERRY/pages/1219757665.
Der Befehl bei Ein lautet z.B.: /fhem/cmnd set Velux_<Nr> execution down
Hinweis
Folgt man den o.g. Anleitungen, dann wird FHEM so eingerichtet, dass die Bezeichnung der virtuellen Eingänge OHNE "/" am Anfang benutzt werden. Im Gegensatz dazu haben die virtuellen Ausgänge ein "/" am Anfang. Dies ist in der LoxoneConfig entsprechend zu beachten und schnell eine Fehlerquelle.
Analog lässt sich auch der Positionswert direkt setzen: /fhem/cmnd set Velux_<Nr> pct <Wert>
In der KLF hinterlegte Programme lassen sich mit: /fhem/cmnd set Velux scene <Name> - Die Ansteuerung in der LoxoneConfig:
a) Möchte man die Velux Komponente nur über Loxone steuern, dann kann man die Virtuellen Ausgänge je nach Bedarf über die entsprechenden Bausteine der Komponenten wie z.B. Dachfensterbaustein direkt ansprechen.
b) Wenn man auch parallel Velux eigene Fernbedienungen benutzt und/oder Sensorsteuerungen (z.B. Regensensor) oder Begrenzungen hat, wird es kompliziert. Das Grundproblem besteht dann darin, dass die Bausteine wie Jalousie und Dachfenster keinen Positionseingang unterstützen. Das bedeutet, der Loxone Baustein merkt nicht, wenn das Fenster z.B. über die Velux Fernbedienung geöffnet wurde. Der Workaround besteht darin, die aktuelle Position über einen Analogspeicher zu puffern und bei Bedarf den Baustein die Position zu setzen und dabei die Ansteuerung des Produktes zu unterbinden. Damit "führt" dann der Baustein die Position nach.
Ein Beispiel ist im Lox-Forum gezeigt. Eine etwas abgewandelte Form sei kurz hier am Beispiel eines Dachfensterbausteins skizziert (Achtung, die Bilder sind nicht vollständig - sondern visualisieren nur den Grundgedanken. Eine Beispielprojektdatei folgt am Ende). Das Beispiel verwendet zur Ansteuerung die Virtuellen Ausgangsbefehle: /fhem/cmnd set Velux_<Nr> execution <up/down/stop> und drei Statusbausteine:
- Position nehmen, Skalieren und in einen Analogspeicher schieben (untere Zweig). Parallel den Wert mit der Analogposition des Bausteins vergleichen (obere Zweig). Weicht der Wert ab, eine Sperre setzen und den Monoflop für den Analogspeicher auslösen (Mitte und unten). Der hintere obere Zweig setzt nach der zweiten Einschaltverzögerung alles wieder zurück. Die Einschaltverzögerungen sollten der max. Fahrzeit der Veluxkomponente entsprechen, sodass ein Update nur erfolgt, wenn die Komponente zur Ruhe gekommen ist.
- Der Dachfensterbaustein bekommt vom Analogspeicher die Position, die Ausgänge sind zu einem Statusbaustein verbunden. Auf AI4 ist die Sperre verbunden. Auf AI3 der Execution State. Solange wie die Sperre nicht aktiv ist, reicht der Statusbaustein die Steuerbefehle durch. Stoppen die Steuerbefehle wird auch ein Stopbefehl gesendet.
Ein Projektbeispiel für die oben beschriebenen Ansteuerungsvarianten a) und b) zum Herunterladen und Ansehen:
Alternative for KLF200 over LAN
Als Alternative zu FHEM oder LoxBerry können Sie die Home Assistant-Integration verwenden, wie hier erläutert (englische Version).
HA → Loxone-Schattierungen oder Fensterzustand wird wie im Link beschrieben propagiert.
Loxone → Home Assistant erfolgt durch die Verwendung der REST-API Virtual Output to Home Assistant. Der Einfachheit halber können Sie einen Skriptdienst anrufen. Zum Beispiel ist dies eine Logik, die ich verwende, um die Fensterposition zu speichern, Schattierungen zu verschieben und die Position danach wiederherzustellen:
alias: cover-sypialnia-position-1
sequence:
- delay:
hours: 0
minutes: 0
seconds: 6
milliseconds: 0
- variables:
window_position: "{{ state_attr('cover.okna_sypialnia','current_position') }}"
cover_position: "{{ state_attr('cover.0','current_position') }}"
position: "{{states('input_number.sypialnia_covers_pos') }}"
- if:
- condition: and
conditions:
- condition: template
value_template: "{{ cover_position == 0 }}"
- condition: template
value_template: "{{ position == 0 }}"
then:
- stop: ""
else:
- if:
- condition: or
conditions:
- condition: template
value_template: "{{ cover_position > 21 }}"
- condition: template
value_template: "{{ window_position > 6 }} "
then:
- service: cover.set_cover_position
target:
entity_id:
- cover.2
- cover.3
data:
position: 7
- delay:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
- service: cover.set_cover_position
target:
entity_id:
- cover.0
- cover.1
data:
position: "{{position}}"
- delay:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
- service: cover.set_cover_position
metadata: {}
data:
position: "{{window_position}}"
target:
entity_id:
- cover.2
- cover.3
else:
- service: cover.set_cover_position
target:
entity_id:
- cover.0
- cover.1
data:
position: "{{position}}"
mode: queued
max: 2
Verwandte Artikel