NEWS
Adapter für VELUX KLF-200 Interface
-
Es gibt eine neue Version 1.3.1 des Adapters, derzeit erstmal nur im latest-Repository. Wenn sich der Adapter bewährt hat, kann ich den in ein paar Tagen auch in das stable-Repository übertragen lassen.
Was ist neu? Details s.u.
- Unterstützung von Limitations. Stichwort: Regensensor.
- Geräteverwaltung in den Einstellungen ermöglicht (verwalten von Geräten, Gruppen, Szenen).
- Mindestens erforderliche Node-Version auf 18.x angepasst.
Fehlerbehebungen u.a.
- Neu angelernte Geräte wurden erst nach Neustart des Adapter erkannt. Jetzt funktioniert das auch im laufenden Betrieb.
- Aktualisierung von verwendeten Paketen.
- Zusätzliche, automatisierte Code-Prüfungen hinzugefügt (sog. Linting) und die daraus gemeldeten Fehler behoben.
- Potentiell mögliche Speicherlecks (memory leaks) behoben.
Limitations (z.B. Regensensor)
Jedes im KLF angelernte Gerät verfügt grundsätzlich immer über einen sog. Main Parameter (MP) und bis zu 16 weiteren Functional Parameters (FP1-FP16).Der MP steuert dabei normalerweise die Hauptfunktion des Geräts, also z.B. Fenster öffnen, Rollladen hoch/runter, Licht an/aus/dimmen, usw.
Über die FPs lassen sich ggfs. vorhandene Nebenfunktionen eines Geräts steuern, bei einer Lampe könnte das z.B. der Farbwert der Lampe sein. Bei Fenstern und Rollläden ist das z.B. die Geschwindigkeit, mit der sich die Fenster oder Rollläden öffnen und schließen.
Im Adapter unterstütze ich derzeit generell nur den MP und die FP1-4, da das das bisherige Maximum ist, was von VELUX dokumentiert wurde.
Auch die Begrenzungen können für jeden dieser Parameter grundsätzlich unterschiedlich eingestellt sein, sind aber nicht immer sinnvoll und werden daher von den jeweiligen Geräten nicht unbedingt unterstützt. Ob ein FP limitiert sein kann oder nicht, ist leider nicht abfragbar. Ich erkenne es aber daran, dass ich beim Versuch, die Limitations abzufragen, eine unsinnige Antwort bekomme. Parameter, die eine unschlüssige Antwort liefern, werden daher bei den Datenpunkten für die Limitations nicht erstellt.
Daher gibt es für den MP bzw. für jeden erkannten FP die folgenden Datenpunkte (am Beispiel MP):
- limitationMPOriginator: Das ist die Herkunft der Begrenzung. Obwohl es auch den Regensensor als möglichen Wert gibt, steht bei mir immer nur "Emergency controlled". Das kann je nach Fenstertyp sicherlich unterschiedlich sein.
- limitationMPTimeRaw: Wert von 0-255. 0 = 30 Sekunden, 1 = 60 Sekunden usw. bis 252 = 7590 Sekunden. 253 entspricht unendlich und 254 und 255 haben noch Sonderwerte, die eigentlich nur beim Setzen von Begrenzungen eine Bedeutung haben.
- limitationMPTime: Hier rechne ich die Werte in Sekunden um, sofern möglich, sonst steht hier null drin.
- limitationMPMinRaw, limitationMPMaxRaw: Der Wertebereich für einen Parameter liegt zwischen 0 und 51200. Über den jeweiligen Min/Max-Wert wird dieser Wertebereich weiter eingeschränkt, d.h. der Raw-Wert des Parameters muss zwischen den Werten von limitationMPMinRaw und limitationMPMaxRaw liegen.
- limitationMPMin, limitationMPMax: Wie limitationMPMinRaw und limitationMPMaxRaw, nur dass die Werte auf Prozentwerte (0-100) umgerechnet werden. Achtung: Es gibt Geräte, z.B. Fenster, bei denen die Prozentskala umgekehrt ist, d.h. der Raw-Wert 0 entspricht 100% und der Raw-Wert 51200 entspricht 0%. Das führt dazu, dass dann der Min-Wert als 100% und der Max-Wert als 0% angezeigt wird. Das ist verwirrend, aber leider wurde das so von den Herstellern designed.
Die Aktualisierung der Werte findet leider nicht automatisch statt, weil das KLF-200 darüber aktiv keine Informationen sendet. Daher gibt es bei jedem Produkt den Datenpunkt refreshLimitation, mit dem Ihr manuell oder z.B. über ein einfaches Skript/Blockly die Aktualisierung anstoßen könnt. Ich habe das bewusst nicht in den Adapter eingebaut, da ich z.B. vermeiden möchte, dass Akku-betriebene Geräte über Gebühr belastet werden. Um z.B. Regen zu erkennen, müsste ich auch nicht unbedingt sämtliche Fenster abfragen, da könnte ich mich z.B. auf eins je Himmelsrichtung beschränken.
Geräteverwaltung
In den Einstellungen gibt es einen neuen Tabreiter für die Geräteverwaltung. Dort könnt ihr folgendes tun:- Vorhandene Geräte löschen
- Vorhandene Geräte umbenennen
- Neue Geräte suchen (z.B. wenn ein Fenstermotor ausgetauscht wurde)
- Gruppen anlegen (Gruppen können immer nur Geräte des gleichen Typs enthalten, also z.B. nur mehrere Fenster)
- Gruppen umbenennen/bearbeiten
- Gruppen löschen
- Szenen löschen
- Szenen umbenennen
- Szenen erstellen, dabei muss die Position der Geräte während der Szenen-Erkennung mit einer herkömmlichen Fernbedienung verändert werden
Für diese grundlegenden Verwaltungsaufgaben muss man sich also nicht mehr per WLAN mit dem KLF-200 verbinden.
Viel Spaß beim Testen und mit den neuen Möglichkeiten!
Gruß
Michael -
@mischroe Wow, super Verbesserungen. Danke!
Adapter benötigt bei mir jetzt einige Sekunden länger beim Start (hängt ca. 10sec brim Lesen der Limitations) und einmal gab es auch ein Timeout, aber ansonsten alles primaOkay, beim nächtlichen Neustart des Adapters hat es heute gehakt und der Adapter ist rot geblieben. Im Log komischerweise keinerlei Meldung. Bin erstmal wieder zurück zur 1.2.0 und werde es später nochmal ausgiebiger tester.
-
@oxident Das Lesen der Limitations dauert leider ziemlich lange. Für jedes Produkt muss die aktuelle Limitation für Min und Max jeweils getrennt abgefragt werden. Und dann frage ich das für 5 Parameter ab, MP und FP1-4. Falls ich z.B. für Min FP1 schon eine fehlerhafte Antwort bekommen, frage ich Max FP1 gar nicht mehr ab. Aber bei FP2 muss ich natürlich trotzdem prüfen. Und je nach Anzahl der Produkte dauert das dann ein bisschen. Ein Timeout hatte ich dabei allerdings noch nie.
Den Reboot hatte ich aufgrund Deiner Rückmeldung heute morgen extra noch einmal getestet. Der läuft bei mir sauber durch. Zur Not mal bitte das Logging in den Adapter-Settings auf Alles stellen und dann mal gucken, ob was kommt.
-
@mischroe Werde das nochmal in Ruhe testen. Bei mir sind es halt insgesamt 9 Geräte (6x Jalousie und 3x Fensteröffner). Vermutlich dauert es da dann wirklich zu lange.
Danke für die Erklärung!
-
@oxident Das dürfte dann zwar beim Starten etwas dauern, bis der Adapter alles gelesen hat, aber ein timeout sollte trotzdem nicht kommen.
-
@mischroe Erst mal vielen Dank für den Adapter und jetzt die Ergänzung um Limitations. Das hilft enorm mit dem Regensensor.
Bisher lief der Adapter zumindest nach ein paarmal Reset über "Reading limitations..." hinweg ohne timeout. Heute musste ich allerdings ein Rollo austauschen und habe das Produkt in der KLF-200 vorher nicht gelöscht. Seitdem gelingt es mir nicht mehr, den Adapter zu starten. Er bekommt bei "Reading limitations..." immer einen Timeout. Könnte es daran liegen, dass er auf ein Produkt wartet, das nicht mehr existiert?
...ich habe insgesamt 16 Produkte von Velux dran...
-
@joefarm Ahh, könnte bei mir auch das Problem sein. Habe noch ein "Waisenkind" aus meinen Versuchen mit der Wärmepumpe im KLF. Die ist aber eigentlich nicht mehr gekoppelt, jedoch wohl noch immer im KLF eingetragen. Da läuft er sich dann sicherlich tot.
-
@joefarm Guter Hinweis. Kannst Du beim Adapter bitte mal das Logging auf Alles stellen und das Log posten? Ich probiere mal parallel, ob ich das zuhause nachstellen kann.
-
@mischroe Oops sorry hab deine Nachricht zu spät gesehen.
Ich hab mich jetzt über WLAN am KLF angemeldet und die fehlenden Produkte gelöscht. Und siehe da, kein Timeout mehr... -
Mir ist gerade noch etwas aufgefallen: nach einem "RefreshLimitations" geht "CurrentPosition" auf 100%...
Auch wenn noch nicht alles klappt: Ich kann es nicht oft genug sagen: der Adapter ist Klasse!
-
@joefarm Ich habe für beides Issues auf Github angelegt. Ich kann testweise bei einem der Fenster das Kabel zum Akku abziehen. Das sollte dann wie ein nicht vorhandenes Produkt funktionieren.
-
-
@mischroe Ja das war es wohl.
Ich habe gestern einen Motor abgeklemmt und später wieder angeklemmt (T-Stück war gebrochen, anderes Thema...). Ob der neue Fehler damit zusammenhängt weiß ich nicht jedenfalls kommt jetzt:klf200.0 2024-07-24 16:31:26.703 info Terminated (ADAPTER_REQUESTED_TERMINATION): Error: Invalid frame structure. klf200.0 2024-07-24 16:31:26.702 error Error: Invalid frame structure. klf200.0 2024-07-24 16:31:26.702 error Error during initialization of the adapter. klf200.0 2024-07-24 16:31:04.098 info Reading product limitations...
Was könnte das sein?
Edit: nach einem Power off-on cycle des KLF200 geht es wieder. Eigenartig...
-
Mich würde mal interessieren, ob ihr Euch schon Gedanken gemacht habt, wie ihr die RefreshLimitation auslöst.
Mir schwebt so ein 5min Interval vor um z. B. mitzubekommen, ob die Regensensoren eingreifen würden.Haltet ihr das für sinnvoll?
-
@oxident Im Prinzip mach ich das so. Ich hab in Javascript eine Steuerung geschrieben, die 8 Dachfenster inkl. Sonnenrollos auf Basis von Innentemperatur und Helligkeit auf und zu macht. Wir wohnen im Dach und die Fenster sind die großen UK10, so dass es ziemlich warm wird ohne Automatik. Alle 5 min wird das Script aktiv und jetzt habe ich einen RefreshLimitation an den Anfang gesetzt. Wenn es regnet, passiert an den Fenstern nichts.
Was besseres ist mir erst mal auch nicht eingefallen.
-
@joefarm Klingt spannend. Magst Du in's Detail gehen? Unter welchen Bedingungen machst Du was mit den Fenstern/Rollos?
Habe zwar nur die kleinen Fenster ... aber auch kleine Räume (sowie ein Bad). Temperatur und Feuchtigkeit wird überall gemessen, aber eine kluge "Taktik" fehlt mir bisher
-
@oxident Oh so wahnsinnig viel Logik ist da nicht eingebaut. Im Wesentlichen läuft es so ab:
-
Schwelle für Temperatur und Helligkeit lässt sich über Vis einstellen
-
Bei Überschreiten der Schwelle für Temperatur werden die Fenster geöffnet (Wert auch über Vis einstellbar)
-
Bei Überschreiten von Temperatur und Helligkeit werden auch die Rollos zugemacht
-
Mit einer Hysterese von 0,5° Temperaturunterschied und starkem Abfall der Helligkeit werden entsprechend die Fenster zugemacht und die Rollos eingefahren
-
Das Skript ist nur von 8 Uhr bis Sonnenuntergang gescheduled. Nach Sonnenuntergang wird alles zugemacht und eingefahren
Das war es schon. Mit der Hysterese muss man etwas rumspielen, sonst gehen die Fenster und Rollos dauernd auf und zu. Nicht so gut für WAF.
Mein größtes Problem ist, dass der KLF sehr regelmäßig die Verbindung verliert. Ich hab jetzt schon eine schaltbare Steckdose eingebaut und resette den Adapter danach, aber so richtig stabil ist das nicht. Bin ich da allein mit dem Problem?
-
-
@joefarm Danke, das ist schon eine gute Inspiration!
Hast Du mal geschaut, ob das Netzteil eventuell die Ursache sein könnte? Ich nutze eine PoE-Splitter zur Stromversorgung und es läuft extrem stabil!
Ansonsten könnte es ja nur ein Defekt sein ... so viel macht der KLF ja nicht
-
Ich mache etwas ähnliches wie @joefarm , allerdings auf Basis der Außentemperatur, die dasWetter.de über den zugehörigen Adapter meldet. Ich habe einen konfigurierbaren Schwellwert für jedes Dachfenster und eine konfigurierbare Uhrzeit. Zur genannten Uhrzeit (je nach Ausrichung 9:30 oder 11:30) schaue ich den Wetterbericht an. Wenn die Tageshöchsttemperatur über 23°C steigt, schließe ich den Laden auf 90%. Am späten Nachmittag fahre ich dann wieder hoch.
Die Wettervorhersage zu diesem späten Zeitpunkt ist ziemlich präzise. Um die Helligkeit einzubeziehen, könnte man den PV Ertrag mit berücksichtigen. Von Eurer eigenen Anlage könnt Ihr sicher gut einschätzen, wie die Sonneneinstrahlung abhängig vom PV Ertrag ist. Für mich funktioniert diese einfache zeit- und temperaturbasierte Regelung aber recht gut.
-
@oxident Netzteil ist ein Punkt. Ich verwende einfach das, das dabei ist. Muss ich mal probieren, ob das einen Unterschied macht. Danke für die Idee.