Velux KLF200

Aus FHEMWiki


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


KLF200
Zweck / Funktion
Anbindung io-homecontrol Aktoren an FHEM
Allgemein
Typ Inoffiziell
Details
Dokumentation Thema
Modulname 83_KLF200.pm
Ersteller buennerbernd (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


KLF200 ist ein Modul zur Steuerung von io-homecontrol Aktoren über das Gateway Velux KLF 200.

Velux KLF 200

Die KLF-200-Box ist über LAN mit FHEM verbunden und steuert die Aktoren über das verschlüsselte Funkprotokoll io-homecontrol. Die Aktoren geben Rückmeldung über ihren aktuellen Zustand.

Die Box hat 10 elektrische Eingänge mit denen man 5 Geräte oder Gerätegruppen steuern kann. Damit kann man z.B. mit Doppeltastern an der Wand seine Rollladen oder Fenster steuern. Über den LAN-Anschluss lassen sich mit FHEM bis zu 200 Geräte mit einer KLF 200 verwalten.

Das Modul erfordert die Firmware-Version 2.0.0.71 und basiert auf der dokumentierten API von Velux. Download und weitere Informationen

Das Gateway hat keine Cloud-Integration.

Unterstützte Geräte

Grundsätzlich sollten alle io-homecontrol Aktoren funktionieren. Alleinstehende Sensoren (z.B. Lichtsensor, Windsensor) werden von der KLF-200-Box nicht unterstützt. Es besteht aber die Möglichkeit, den Status von Sensoren auszuwerten, die in Aktoren integriert sind.

Aktuell werden folgende Geräte erfolgreich mit diesem Modul verwendet:

  • Rollladen:
    • VELUX SML
    • VELUX SSL
    • VELUX SMG (Doppelrollladen getrennt steuerbar)
    • Somfy Oximo io
    • Somfy RS100 io
    • Somfy Izymo io
  • Sichtschutz innen:
    • VELUX FSK
    • VELUX DML
  • Fensteröffner mit integriertem Regensensor:
    • VELUX KMG
    • VELUX CVP
    • VELUX KSX
    • VELUX GPU
  • Markisen:
    • VELUX MSL
    • VELUX MML
    • Somfy Sunea io
    • Somfy Maestria+ 50 io
  • Raffstore
    • Somfy (Winkelsteuerung der Lamellen möglich)

Benutzung in FHEM

Vorbereitung

Bevor die Aktoren in FHEM verwendet werden können, müssen sie in der KLF 200 angelernt werden. Das geschieht über das WebUI der KLF 200, das über einen Wifi-Hotspot erreichbar ist. Dieser Vorgang ist im Handbuch beschrieben. Im WebUI können die angeschlossenen Geräte auch benannt werden. Zusätzlich hat man die Möglichkeit, Programme (Szenen) aufzuzeichnen, um ein oder mehrere Geräte in eine definierte Position zu bringen. Diese Szenen kann man aus FHEM ebenfalls ansteuern.


Das Modul wird momentan noch nicht über FHEM ausgeliefert. Es wird wie folgt geladen und aktualisiert:

update all https://raw.githubusercontent.com/buennerbernd/fhem/master/KLF200/2.0/controls_KLF200.txt
shutdown restart

Mit diesem Befehl wird das Modul so eingerichtet, dass es ebenfalls aktualisiert wird, wenn man FHEM aktualisiert:

update add https://raw.githubusercontent.com/buennerbernd/fhem/master/KLF200/2.0/controls_KLF200.txt

Anlegen der Geräte

define <name> KLF200 <host>

Beispiel:

define Velux KLF200 192.168.0.66

Danach Login durch Eingabe des Passwortes:

set <name> login <password>

Hinweis: Das Passwort ist laut Dokumentation das Wifi-Passwort, das auf den Boden der Box gedruckt ist. Das funktioniert bei einigen Nutzern. Bei vielen Nutzern funktioniert hingegen das Passwort des WebUI. Scheinbar hängt das davon ab, mit welcher Firmware die Box ausgeliefert wurde und ob schon einmal ein Reset durchgeführt wurde. Das Passwort wird verschleiert im FHEM-Backend gespeichert. Es muss nach erfolgreichem Login nicht mehr eingegeben werden.

Die angeschlossenen Aktoren werden jetzt durch autocreate als Instanzen von KLF200Node im Raum KLF200Node angelegt. Die Namen der Geräte folgen dem Muster <name>_<NodeID>. Wurde im WebUI der KLF200 ein Name für das Gerät vergeben dann wird dieser als Alias übernommen.

Die Geräte sind jetzt einsatzbereit.

Modul KLF200

Verbindungsstatus

STATE

Im STATE des Moduls sieht man den aktuellen Verbindungsstatus. Im Idealfall ist er nach der Initialisierung Logged in.

Ausführung von Programmen (Szenen)

Obwohl man mit dem Modul KLF200Node jedes Gerät unabhängig und auch gleichzeitig steuern kann, sind Szenen eine nützliche Ergänzung. So kann man mit Szenen wie "Alle zu" oder "Alle auf" viele Geräte gleichzeitig mit einem Befehl bedienen.

Hinweis: Während der Abarbeitung einer Szene werden weitere Befehle gepuffert.

scene/sceneID

Mit diesen Set-Funktionen kann man eine aufgezeichnete Szene aufrufen. Im entsprechenden Reading steht die zuletzt aufgerufene Szene.

Die Zuordnung zwischen sceneID und scene sieht man in den Internals unter scenes.

Ausführungsgeschwindigkeit: Schnell, Flüstermodus

Bei vielen aktuellen Geräten lässt sich die Ausführungsgeschwindigkeit (Velocity) variieren. So lässt sich die Geschwindigkeit gegenüber der Default-Geschwindigkeit noch erhöhen oder auch deutlich reduzieren. So ist eine besonders leise Bedienung möglich.

Argument DEFAULT, FAST, SILENT

Die Velocity kann man bei der Ausführung von Szenen als zusätzliches Argument von set scene oder set sceneID setzen. Unterstützte Werte sind DEFAULT, FAST und SILENT

set Velux scene "Alle zu" SILENT

Attribut velocity

Alternativ kann man im Modul KLF200 das Attribut velocity setzen, das bei der Ausführung von Szenen herangezogen wird, wenn das oben genannte Argument nicht gesetzt ist.

Hinweis: Dieses Attribut hat keine Auswirkungen auf Befehle, die vom Modul KLF200Node abgesetzt werden.

Modul KLF200Node

Dieses Modul wurde dem Homematic-Modul CUL_HM nachempfunden, da es ebenfalls ein breites Spektrum an Geräten unterstützt und möglichst kompatibel zu vorhandenen Hilfsmodulen sein soll.

Aktueller Status

Im Folgenden wird der Zusammenhang zwischen den wichtigsten Readings/Set-Funktionen pct, state, execution erklärt.

pct

Dieses Reading enthält den aktuell bekannten Status des Gerätes in Prozent.

Wird das Gerät über die KLF-200-Box gesteuert, wird das Reading beim Erreichen der Zielposition sofort aktualisiert.

Wird das Gerät über eine Fernbedienung oder einen Sensor gesteuert, kann sich die Aktualisierung wenige Minuten verzögern.

Mit der Set-Funktion kann man das Gerät in diesen Status versetzen. Per Default entspricht 100 auf der Fernbedienung oben und 0 unten.

state

Dieses Reading entspricht dem Reading pct, mit der Ausnahme, dass 0 durch off ersetzt wird und 100 durch on.

Die Set-Funktion funktioniert analog. Per Default entspricht on auf der Fernbedienung oben und off unten.

Es werden die set extensions unterstützt. Damit können mit einem Set ein oder mehrere Befehle zeitgesteuert abgesetzt werden.

Doku: set extensions in der commandref und im DevelopmentModuleIntro#X_Set jeweils etwas weiter unten.

execution

Dieses Reading gibt den aktuellen Ausführungsstatus wieder. Die meiste Zeit ist der Wert stop. Wird gerade ein Befehl ausgeführt, ist der Wert up oder down.

Mit der Set-Funktion werden entsprechende Befehle ausgeführt, up entspricht auf der Fernbedienung oben und down unten. Bei stop wird die aktuelle Ausführung angehalten.

Attribut directionOn

Wie oben beschrieben, entspricht per Default on = 100 = up.

Das kann bei bestimmten Geräten für manchen Nutzer verwirrend sein. Wenn man z.B. bei einem Rollladen lieber im geschlossenen Zustand 100 Prozent sehen möchte, dann setzt man das Attribut directionOn, z.B.

attr Velux_2 directionOn down

Ausführungsgeschwindigkeit: Schnell, Flüstermodus

Wie bei Szenen lässt sich auch bei Kommandos auf KLF200Node die Ausführungsgeschwindigkeit beeinflussen, soweit das vom Gerät unterstützt ist.

Reading velocity

Dieses Reading hat den Wert supported, wenn die Geschwindigkeit bei diesem Gerät geändert werden kann. Selbst bei Not supported wäre es einen Versuch wert, es zu testen.

Argument DEFAULT, FAST, SILENT

Alle set-Funktionen, die eine Bewegung auslösen unterstützen das optionale Argument DEFAULT, FAST oder SILENT.

Attribut velocity

Alternativ kann man im Modul KLF200Node das Attribut velocity setzen, das bei der Ausführung von Kommandos herangezogen wird, wenn das oben genannte Argument nicht gesetzt ist.

Raw-Befehle zum Testen von unbekannten Geräten

Die bisher beschriebenen Funktionen des KLF200Node-Moduls bieten einen vereinfachten Zugang zu io-homecontrol-Geräten mit nur einem Motor.

Intern wird bei diesen Funktionen der Main Parameter (MP) für die Steuerung des Motors und der Functional Parameter 1 (FP1) für die Velocity gesetzt. Theoretisch können Geräte bis zu 16 Functional Parameter (FP1 bis FP16) haben. Der Wertebereich aller Parameter ist 0 - 65535, wobei sich 0 - 100% auf 0 - 51200 abbilden.

Für Experten bietet die Funktion set raw die Möglichkeit, mehrere Parameter gleichzeitig zu setzen. Damit lassen sich dann z.B. die Lamellen von Raffstores bewegen. Zuvor wird empfohlen, in der KLF 200 API die folgenden Kapitel zu lesen:

  • 10.1.1 GW_COMMAND_SEND_REQ
  • 10.1.1.4 ParameterActive parameter
  • 13 Appendix 1: Standard Parameter definition
  • 14 Appendix 2: List of actuator types and their use of Main Parameter and Functional Parameters

Beispiel-Aufrufe:

set Velux_1 raw MP=51200
set Velux_2 raw MP=0 FP1=51200
set Velux_3 raw ParameterActive=3 FP3=25600 FP2=51200

Winkelsteuerung Somfy Raffstore:

set Velux_4 raw ParameterActive=3 FP3=0
set Velux_4 raw ParameterActive=3 FP3=51200

Beim Aufruf muss man sich für einen Parameter entscheiden, von dem man Feedback erhalten will. Diesen wählt man mit ParameterActive aus. Default ist ParameterActive=0 für MP. Ein Functional Parameter kann mit 1 - 16 ausgewählt werden. Die aktuell bekannten Werte stehen in den Readings MP und FP1 bis FP16, wobei nur Readings für tatsächlich genutzte Parameter angelegt werden.

Die Funktion set updateCurrentPosition aktualisiert die Readings MP und FP1 - FP7, falls vorhanden.

Beispiele für Geräte mit mehreren Motoren:

  • Somfy J4 io Protect
  • evtl. VELUX SMG Doppelrollladen

Wenn sich Nutzer melden sollten, die auf diese Weise Geräte mit mehreren Motoren getestet haben, dann kann entschieden werden, wie dieses Modul auf sinnvolle Weise weiterentwickelt werden kann.

Begrenzung des Bewegungsradius / Limitation

Die io-homecontrol Geräte haben ein Feature eingebaut, um den Bewegungsradius der Geräte einzuschränken, egal von wo aus sie gesteuert werden. Dieses Limitation-Feature ist in dieses FHEM-Modul ebenfalls integriert.

limitationMin und limitationMax

Mit den Settern und Readings limitationMin und limitationMax kann man die Limitation setzen und auslesen. Natürlich kann man auch selbst von der Limitation Gebrauch machen. Man kann z.B. einen Rollladen begrenzen, wenn man weiß, dass das Dachfenster weit offen ist. Dann kann der Rollladen nicht gegen das Fenster stoßen, selbst wenn man ihn mit der Fernbedienung bewegt.

limiationClear

Mit dem Setter limiationClear kann man alle Limitations (auch von fremden Geräten ausgelöste) löschen.

updateLimiation

Der Setter updateLimiation aktualisiert die Readings limitationMin und limitationMax auf diesem Gerät, falls die Limitation außerhalb von FHEM gesetzt wurde.

Auswerten der Regensensoren

Die Regensensoren von Velux Fensteröffnern machen von diesem Limitation-Feature Gebrauch. Wenn es regnet, wird der Bewegungsradius der Fenster eingeschränkt. Zum Beispiel (evtl. Geräte-abhängig):

  • limitationMax = 7 bei Regen (0 bei Velux GPU Fenstern),
  • limitationMax = 100 wenn es aufhört.

Diese Werte kann man auslesen, ohne dass sich das Fenster dazu bewegt haben muss.

limitationUpdateInterval

Mit set limitationUpdateInterval kann man festlegen, wie oft diese Werte ausgelesen werden:

  • off: Dieser Wert ist für Geräte ohne integrierte Sensoren der Beste, denn zusätzliche Updates sind überflüssig.
  • onChange: Hier wird limitationMin und limitationMax aktualisiert, wenn das Gerät bewegt wurde.
  • interval in s: Ein Poll-Intervall in Sekunden. Tests mit 120 sind erfolgreich durchgelaufen. Dieser Wert ist vielleicht etwas übertrieben, man denke an das Funkfeuer und den Akku der Geräte. Ein Intervall von 600 ist vielleicht sinnvoller. Beispiele:
set Velux_1 limitationUpdateInterval off
set Velux_2 limitationUpdateInterval onChange
set Velux_3 limitationUpdateInterval 600

Extra Reading für den Regensensor

Wem die Auswertung vom Reading limitationMax zu indirekt ist, der kann sich ein neues Reading anlegen. Der folgende Code legt ein Reading namens sensor an, die Werte sind im Beispiel "Regen" oder "trocken". Es besteht die Annahme, dass bei limitationMax = 7 der Regensensor angeschlagen hat.

attr Velux_3 userReadings sensor {(ReadingsVal($name,"limitationMax",100) == 7)?"Regen":"trocken"}

Hinweis: Das neue Reading sensor erscheint erst, wenn das Reading limitationMax einmal aktualisiert wurde.

Vorschläge zur schöneren Darstellung

Wie Homematic-Geräte kommt KLF200Node im FHEM-Web sehr schlicht daher. Dieses Kapitel gibt Vorschläge zur Konfiguration einer schöneren Darstellung.

Rollladen

Dieses Beispiel stellt den Status des Rollladen 10-Prozent genau im Icon dar. Bewegen sich der Rollladen, hat das Icon einen Pfeil nach oben oder unten. Ein Klick auf das Icon setzt den Rollladen in Bewegung oder hält ihn an (toggle).

attr Velux_2 stateFormat pct execution
attr Velux_2 devStateIcon .*up:fts_shutter_up:toggle .*down:fts_shutter_down:toggle \d.stop:fts_shutter_100:toggle 1\d.stop:fts_shutter_90:toggle 2\d.stop:fts_shutter_80:toggle 3\d.stop:fts_shutter_70:toggle 4\d.stop:fts_shutter_60:toggle 5\d.stop:fts_shutter_50:toggle 6\d.stop:fts_shutter_40:toggle 7\d.stop:fts_shutter_30:toggle 8\d.stop:fts_shutter_20:toggle 9\d.stop:fts_shutter_10:toggle 100.stop:fts_window_2w:toggle

Rollladen mit Pfeilen

So erhält man einen Slider für die Rollladenposition:

attr Velux_2 webCmd pct

Dachschrägenfenster mit Regensensor

Dieses Beispiel stellt ein Dachschrägenfenster in drei Stufen dar:

0% - 9%: geschlossen

10% - 59%: halb geöffnet

60% - 100%: ganz geöffnet

Bei Bewegung erscheint ein Pfeil nach oben bzw. nach unten.

Wenn es regnet, erscheint eine Regenwolke. (limitationMax = 7)

Ein Klick auf das Icon setzt das Fenster in Bewegung oder hält es an (toggle).

set Velux_4 limitationUpdateInterval 600
attr Velux_4 stateFormat pct (limitationMin - limitationMax) execution
attr Velux_4 devStateIcon .*up:control_arrow_up:toggle .*down:control_arrow_down:toggle .*-.7\).*:weather_rain:toggle \d.\(.*:fts_window_roof:toggle [1-5]\d.\(.*:fts_window_roof_open_1:toggle [6-9]\d.\(.*:fts_window_roof_open_2:toggle 100.\(.*:fts_window_roof_open_2:toggle

Dachkuppelfenster mit Regensensor

Dieses Beispiel stellt ein Dachkuppelfenster in zwei Stufen dar:

0% - 9%: geschlossen

10% - 100%: geöffnet

Bei Bewegung erscheint ein Pfeil nach oben bzw. nach unten.

Wenn es regnet, erscheint eine Regenwolke. (limitationMax = 7)

Ein Klick auf das Icon setzt das Fenster in Bewegung oder hält es an (toggle).

set Velux_5 limitationUpdateInterval 600
attr Velux_5 stateFormat pct (limitationMin - limitationMax) execution
attr Velux_5 devStateIcon .*up:control_arrow_up:toggle .*down:control_arrow_down:toggle .*-.7\).*:weather_rain:toggle \d.\(.*:fts_light_dome:toggle [1-9]\d.\(.*:fts_light_dome_open:toggle 100.\(.*:fts_light_dome_open:toggle

Problembehebung

Verbindungsabbrüche

Sollte es zu Verbindungsabbrüchen zwischen FHEM und der KLF200-Box kommen, dann sind folgende Dinge zu überprüfen:

FHEM Update

Ist FHEM aktuell? Am 18.12.2018 gab es ein wichtiges FHEM-Update, das die Stabilität von SSL-Verbindungen wesentlich verbessert hat.

OpenSSL

OpenSLL sollte immer aktuell sein.

Perl SSL-Bibliotheken

Wenn die Perl SSL-Bibliotheken zu alt sind, ist das oben genannte FHEM-Update wirkungslos.

  • IO::Socket::SSL
  • Net::SSL
  • Net::SSLeay
  • Net::SSLeay::Handle
  • Crypt::SSLeay
  • Net::Server::Proto::SSL

Registrieren von Geräten an der KLF200-Box

Die KLF200-Dokumentation Seite 11 - 19 beschreibt 2 Varianten, um Geräte mit der Box zu koppeln.

1. Registrierung mit einer Zweiweg-Bedienung

Dieser Weg funktioniert über die Schlüssel-Taste oder im Web-UI über PRODUKTE KOPIEREN.

Es ist eine Zweiweg-Bedienung erforderlich, die in der Lage ist, die IO-Schlüssel zu exportieren.

Dieser Weg geht z.B. mit dem Control Pad KLR200, Somfy TaHoma, Nina io, Telis Composio io, Impresario Chronis io, Easy Sun io und Telis 1 io..

TaHoma: anmelden, Menü "Sicherheitseinstellungen", Reiter "io-System", "SICHERHEITSSCHLÜSSEL SENDEN"

2. Registrierung mit einer Einweg-Bedienung

Dieser Weg funktioniert über die Reset-Taste oder im Web-UI über PRODUKTSUCHE.

Hierzu wird das Gerät über eine Fernbedienung oder direkt am Gerät in einen Anlernzustand versetzt und dann einigen sich KLF200 und das Gerät über einen Schlüssel.

Bei manchen Somfy-Geräten scheint dieser Weg nicht zu funktionieren, z.B. einige Somfy Smoove Produkte. Hier bleibt nur die Möglichkeit, die Schlüssel wie in Variante 1 von einer Somfy Zweiweg-Bedienung zu kopieren.

WARNUNG vor Reset der KLF200-Box!

Sollten an der KLF200-Box schon Geräte registriert sein, dann ist ein Factory-Reset unbedingt zu vermeiden! Die Geräte, die mit der KLF200 bereits Schlüssel ausgetauscht haben, lassen sich nicht ohne weiteres noch einmal registrieren. Um diese Geräte nach einem Reset der KLF200 trotzdem zu registrieren, sind folgende Schritte notwendig:

  1. Die registrierten Geräte müssen komplett zurückgesetzt werden.
  2. Die entsprechenden Fernbedienungen müssen neu angelernt werden.
  3. Die Geräte können an der KLF200-Box registriert werden.

Links