NEWS
Test Adapter klf200 v1.0.x latest
-
Aktuelle Test Version 1.0.0 Veröffentlichungsdatum 19.06.2020 Github Link https://github.com/MiSchroe/ioBroker.klf200 Support der Firmware 2.0.0.71
Der Adapter wurde komplett neu entwickelt und arbeitet nun mit der neuen Firmware 2.0.0.71 zusammen. Ältere Firmwares werden nicht mehr unterstützt.
Wichtig: Das KLF-200 muss per LAN-Kabel verbunden sein. Über das WLAN ist nur der interne Webserver erreichbar, jedoch nicht die offizielle API, die von diesem Adapter angesprochen wird.
Installation:
Der Adapter ist über das latest-Repository verfügbar.Über GitHub:
per Kommandozeile:
iobroker url https://github.com/MiSchroe/ioBroker.klf200/tarball/masteroder die URL in der Admin-Oberfläche einbinden.
Konfiguration:
In der Konfiguration beim Host ist der DNS-Hostname anzugeben, dass ist üblicherweise velux-klf-xxxx, wobei xxxx den letzten 4 Hexziffern der MAC entspricht, wenn das nicht über einen DNS-Server angepasst wurde. Alternativ kann hier auch die IP-Adresse angegeben werden.Benutzer einer FritzBox müssen .fritz.box and den Host-Namen anhängen, also z.B. velux-klf-1234.fritz.box
Bei anderen Routern kann das ähnlich sein.Passwort:
Das Standard-Passwort entspricht dem auf der Rückseite des Geräts angegebenen WLAN-Passwort. Wenn Ihr das Passwort bereits geändert habt, entspricht es evtl. auch eurem geänderten Passwort.Features des Adapters
- Direkte Steuerung der angeschlossenen Produkte inkl. Status- und Positionsrückmeldung
- Unterbrechen von laufenden Vorgängen
- Starten und Stoppen von im KLF-200 definierten Szenen
- Steuerung der Produkte über vordefinierte Gruppen, z.B. alle Fenster schliessen
Die komplette Dokumentation inkl. der Datenpunkte findet sich auf GitHub in der Readme: https://github.com/MiSchroe/ioBroker.klf200/blob/master/README.md
Problembehandlung
- Ich bekomme Login failed:
- Der Adapter kommuniziert mit dem KLF-200 über den Port 51200, d.h. ioBroker muss über diesen Port auf das Gerät zugreifen können.
Stellt bitte sicher, dass eine etwaige Firewall die Kommunikation nicht unterbindet. - Prüft zunächst, ob Ihr die Box per ping erreicht, und zwar mit genau dem Hostnamen, den Ihr in der Konfiguration eingetragen habt.
- Prüft, ob Ihr Euch per telnet über Port 51200 mit der Box verbinden könnt.
- FritzBox-Benutzer: Bitte die Anmerkung oben unter Konfiguration beachten.
- Startet das KLF-200 neu, es können max. 2 Verbindungen gleichzeitig aktiv sein. Wenn eine Verbindung abbricht, so wird diese in der KLF-200 erst nach 15 Minuten geschlossen. Evtl. hat sich das ganze Gateway auch aufgehängt. Dazu einfach nur kurz das Stromkabel ziehen und wieder einstecken.
Der Adatper versucht sich ggfs. selbstständig neu zu verbinden.
- Der Adapter kommuniziert mit dem KLF-200 über den Port 51200, d.h. ioBroker muss über diesen Port auf das Gerät zugreifen können.
Aktuelle Beschränkungen
- Werden bei laufendem Adapter neue Szenen definiert, wird dies erst nach Neustart des Adapters erkannt.
- Die Zeitzone wird auf mitteleuropäische Sommerzeit festgelegt, das soll später mal konfigurierbar sein,
leider ist die interne Logik recht komplex und ich möchte das möglichst benutzerfreundlich lösen. - Der Adapter schaltet den sog. Haus Status Monitor ein. Das ist ein Prozess innerhalb des KLF-200, der regelmäßig den Status der
angeschlossenen Produkte abfragt, wobei die Häufigkeit der Abfrage dabei von der Art der Stromversorgung des Produkts abhängt.
Dieser Prozess bleibt dauerhaft an und wird auch nach einem Neustart des KLF-200 wieder gestartet. Erst dieser Prozess ermöglicht es,
dass der Adapter Änderungen mitbekommt, die nicht über ioBroker gesteuert werden, d.h. wenn der Regensensor das Fenster automatisch
schließt, bekommt Ihr das jetzt mit (und seht auch, dass es der Regensensor war).
Wie melde ich ein Problem oder einen Fehler?
Gerne hier im Forum als Antwort, offensichtliche Fehler des Adapters (also, z.B. ich lösche alle Szenen und nun startet der Adapter nicht mehr)
bitte auch gerne ein Issue in Github anlegen (das erspart mir dann etwas Arbeit und ich bekomme es schneller mit).Was soll ich testen?
Ich habe nur Velux-Fenster und Rollläden, wenn jemand andere io-homecontrol(R)-fähige Geräte angeschlossen hat, würde ich mich auch über eine
Rückmeldung freuen, dass die auch funktionieren.
Im Dauereinsatz wäre es auch noch interessant zu beobachten, ob es irgendwo Speicherlecks gibt und der Adapter im Laufe der Zeit immer mehr
Speicher verbraucht. Im Rahmen der Entwicklung ist der Adapter bei mir bisher leider immer nur kurzzeitig im Betrieb gewesen. -
@MiSchroe sagte in Test Adapter klf200 v1.0.x GitHub:
Hallo, habe gerade mal schnell installiert, sieht sehr gut aus.
Habe 3 Rollläden liefen bis jetzt über das script, wurden alle erkannt und fahren auch beim setzen des targetPosition DP. änderungen über den Velux taster werden auch zeitnah erkannt.Super gemacht
Edit:
Gerade im Log aufgetauchthost.CT-IO-Broker 2020-06-19 14:02:00.116 info Restart adapter system.adapter.klf200.0 because enabled host.CT-IO-Broker 2020-06-19 14:02:00.115 info instance system.adapter.klf200.0 terminated with code 0 (NO_ERROR) klf200.0 2020-06-19 14:01:59.607 info (5445) Terminated (NO_ERROR): Without reason klf200.0 2020-06-19 14:01:59.607 info (5445) terminating klf200.0 2020-06-19 14:01:59.601 info (5445) Cleaned everything up... klf200.0 2020-06-19 14:01:59.599 info (5445) Disconnecting from the KLF-200... klf200.0 2020-06-19 14:01:59.598 info (5445) Shutting down event handlers... klf200.0 2020-06-19 14:01:59.598 info (5445) Remove socket listener... klf200.0 2020-06-19 14:01:59.597 error (5445) Error at new module.exports.TimeoutError (/opt/iobroker/node_modules/promise-timeout/index.js:44:16) at Object.module.exports.timeout (/opt/iobroker/node_modules/promise-timeout/index.j klf200.0 2020-06-19 14:01:59.597 error (5445) unhandled promise rejection: Timeout klf200.0 2020-06-19 14:01:59.597 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().[s=] [/s]
-
@Frank579 Kannst Du sagen, was Du vorher gemacht hast oder was vorher passiert ist? Gibt es noch mehr Log-Einträge davor?
-
@MiSchroe
Habe gerade mal das log gelöscht und eine über target auf 10% gefahren. da kam er schonder komplette Log :
klf200.0 2020-06-19 15:11:22.790 info (27756) Starting background state refresher... klf200.0 2020-06-19 15:11:22.790 info (27756) Adapter is ready for use. klf200.0 2020-06-19 15:11:22.789 info (27756) Setting up notification handler for gateway state... klf200.0 2020-06-19 15:11:22.789 info (27756) Setting up notification handlers for discovering new objects... klf200.0 2020-06-19 15:11:22.789 info (27756) Setting up notification handlers for removal... klf200.0 2020-06-19 15:11:22.737 info (27756) Setup objects for product Schlafzimmer. klf200.0 2020-06-19 15:11:22.704 info (27756) Setup objects for product Bad. klf200.0 2020-06-19 15:11:22.673 info (27756) Setup objects for product Flur. klf200.0 2020-06-19 15:11:22.241 info (27756) 3 products found. klf200.0 2020-06-19 15:11:21.999 info (27756) Reading products... klf200.0 2020-06-19 15:11:21.999 info (27756) 0 groups found. klf200.0 2020-06-19 15:11:21.788 info (27756) Reading groups... klf200.0 2020-06-19 15:11:21.788 info (27756) 0 scenes found. klf200.0 2020-06-19 15:11:21.577 info (27756) Reading scenes... klf200.0 2020-06-19 15:11:21.358 info (27756) Setting time zone to :GMT+1:GMT+2:0060:(1994)040102-0:110102-0 klf200.0 2020-06-19 15:11:21.148 info (27756) Setting UTC clock to the current time. klf200.0 2020-06-19 15:11:21.127 info (27756) Enabling the house status monitor... klf200.0 2020-06-19 15:11:21.127 info (27756) Reading device information... klf200.0 2020-06-19 15:11:21.127 info (27756) Connected to interface. klf200.0 2020-06-19 15:11:16.867 info (27756) Host: 192.168.50.7 klf200.0 2020-06-19 15:11:16.853 info (27756) starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.klf200, node: v12.18.1, js-controller: 3.1.4 host.CT-IO-Broker 2020-06-19 15:11:16.366 info instance system.adapter.klf200.0 started with pid 27756 host.CT-IO-Broker 2020-06-19 15:10:46.356 info Restart adapter system.adapter.klf200.0 because enabled host.CT-IO-Broker 2020-06-19 15:10:46.354 info instance system.adapter.klf200.0 terminated with code 0 (NO_ERROR) klf200.0 2020-06-19 15:10:45.846 info (21623) Terminated (NO_ERROR): Without reason klf200.0 2020-06-19 15:10:45.846 info (21623) terminating klf200.0 2020-06-19 15:10:45.845 info (21623) Cleaned everything up... klf200.0 2020-06-19 15:10:45.842 info (21623) Disconnecting from the KLF-200... klf200.0 2020-06-19 15:10:45.841 info (21623) Shutting down event handlers... klf200.0 2020-06-19 15:10:45.841 info (21623) Remove socket listener... klf200.0 2020-06-19 15:10:45.841 error (21623) Error at new module.exports.TimeoutError (/opt/iobroker/node_modules/promise-timeout/index.js:44:16) at Object.module.exports.timeout (/opt/iobroker/node_modules/promise-timeout/index. klf200.0 2020-06-19 15:10:45.841 error (21623) unhandled promise rejection: Timeout klf200.0 2020-06-19 15:10:45.840 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
-
@Frank579 Ok, der Fehler tritt bei mir nicht auf, weil ich noch mit Node 10 und js-controller 2.x teste. Ich habe mir allerdings einen Docker-Container mit Node 12 und js-controller 3.1.4 aufbauen können und den Fehler dort nachvollziehen können.
Unter https://github.com/MiSchroe/ioBroker.klf200/issues/45 habe ich einen entsprechenden Fehler aufgenommen.
Ich habe auch bereits eine Idee: Da der Fehler nach ziemlich genau 10 Sekunden auftritt, glaube ich, dass mein Background-Status-Refresher dafür verantwortlich ist. Wenn Du eine kurze Status-Änderung machst, z.B. das Fenster von 0% auf 3% öffnest, stürzt der Adapter nicht an.
Ich schaue es mir an.
-
@MiSchroe sagte in Test Adapter klf200 v1.0.x GitHub:
Ich schaue es mir an.
Super Danke, aber funktioniert bei mir alles was ich testen konnte.
-
@Frank579 Ich habe eine neue Version auf Github gestellt. Du kannst es nochmal probieren, auf meiner Testumgebung läuft es jetzt ohne Absturz. Es hing daran, dass ich bei jeder Nachricht vom Gateway den aktuellen Gateway-Status abfrage. Das hat sich bei vielen schnellen Nachrichten gegenseitig überholt und dann kam alles etwas durcheinander. Jetzt frage ich nur noch ab, wenn ich nicht bereits in einer Abfrage bin.
Ich habe jetzt außerdem einige zusätzliche Debug-Ausgaben hinzugefügt, die bei einem Problem evtl. mehr Infos liefern. Davon werde ich allerdings noch ein paar mehr einbauen müssen.
-
kann ich bestätigen bei mir auch kein Absturz mehr
-
@MiSchroe
Hi ich schon wieder Gerade hat sich die Verbindung zum KLF aufgehangen. Login failed neustart vom adapter hat nicht geholfen, Neustart vom KLF schon. Meine mich zu erinnern das das bei den script auch ein Problem war, und deshalb im Script ein Täglicher neustart des KLF drin war, werde mal schauen ob es morgen auch wieder so ist...Edit: Habe ich gerade bei Velux auf der seite gesehen... Hoffentlich schrauben die nicht wieder an der Schnittstelle ::
Firmware-Update
"Das Firmware-Update wird momentan überarbeitet und steht Ihnen in Kürze wieder zur Verfügung." -
@Frank579 Bei mir ist das Gateway noch erreichbar, aber ich hatte das auch schon mal in der zwischenzeitlichen Entwicklungsphase. Manchmal scheint das Gateway die Verbindungen auch nach einer Trennung nicht zu schließen und das Gateway unterstützt nur maximal 2 Verbindungen, d.h. die können dann irgendwann aufgebraucht sein.
Ich habe eine neue Version hochgeladen, bei der der Background-Timer funktioniert. Es wird alle 10 Sekunden oder nach dem Empfang einer Nachricht vom Gateway der Status des Gateways abgefragt. (Das war eigentlich schon drin, hatte aber noch nicht richtig funktioniert.) Vielleicht hilft das bereits, dass das Gateway nicht "stirbt".
Ich werde zusätzlich noch einen Datenpunkt zum Reboot des Gateways einfügen und eine Option, dies automatisch zu einem bestimmten Zeitpunkt durchzuführen (abschaltbar).
Kannst Du übrigens bitte mal deine Versionsnummern des Gateways posten? Mich würde interessieren, ob wir abweichende Versionen haben, die vielleicht unterschiedlich reagieren.
Meine sind:
-
@MiSchroe
Also mein war heute morgen schon nicht mehr erreichbar, nur ein neustart hat wieder geholfen, konnte leider nicht feststellen seit wann, log war voll mit "Login failed" alle 10 sek. hatten dann den Adapter abgestellt und das script Aktiviert da ich bis gerade Unterwegs war. Habe nun die neue Version installiert und aktiviert.Hier die Versionen :
-
@Frank579 Danke. Du hast Hardware-Version 6, bei mir ist noch die Hardware-Version 5 drin. Vielleicht macht das einen Unterschied. Ich werde auf jeden Fall einen automatischen Reboot der Box einbauen.
-
@Frank579 Ich habe schonmal einen neuen Datenpunkt RebootGateway hinzugefügt. Das funktioniert aber nur, wenn man überhaupt noch eine Verbindung zum Gateway hat.
-
@MiSchroe
Hi deine erste Änderung scheint schon geholfen zu haben, Läuft noch immer mit der Version ohne reboot Datenpunkt. Werde jetzt mal updaten und schauen was passiert -
Ich habe nun die Version 1.0.0 auf npm veröffentlicht. Damit sollte die Version auch in kürze über das latest-Repository verfügbar werden. Da ich noch eine Verschlüsselung des Passwords integriert habe, müsst Ihr nach der Installation Euer Password einmalig neu eintragen.
-
Hallo, erst einmal vielen Dank für die Entwicklung. Habe das Projekt in den letzten Tagen intensiv verfolgt. Jetzt habe ich den Adapter 1.0.0 installiert, bekomme ihn aber nicht zum laufen. Folgende Fehlermeldung erhalte ich:
host.ioBroker 2020-06-27 13:49:26.485 info Restart adapter system.adapter.klf200.0 because enabled
host.ioBroker 2020-06-27 13:49:26.485 error instance system.adapter.klf200.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
host.ioBroker 2020-06-27 13:49:26.485 error Caught by controller[0]: }
host.ioBroker 2020-06-27 13:49:26.484 error Caught by controller[0]: requestPath: 'klf-200-api'
host.ioBroker 2020-06-27 13:49:26.484 error Caught by controller[0]: path: '/opt/iobroker/node_modules/klf-200-api/package.json',
host.ioBroker 2020-06-27 13:49:26.484 error Caught by controller[0]: code: 'MODULE_NOT_FOUND',
host.ioBroker 2020-06-27 13:49:26.483 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:986:32) {
host.ioBroker 2020-06-27 13:49:26.483 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
host.ioBroker 2020-06-27 13:49:26.482 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1138:30)
host.ioBroker 2020-06-27 13:49:26.482 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.klf200/build/main.js:9:23)
host.ioBroker 2020-06-27 13:49:26.481 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:72:18)
host.ioBroker 2020-06-27 13:49:26.481 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1026:19)
host.ioBroker 2020-06-27 13:49:26.481 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:842:27)
host.ioBroker 2020-06-27 13:49:26.481 error Caught by controller[0]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:953:27)
host.ioBroker 2020-06-27 13:49:26.480 error Caught by controller[0]: at Function.Module._findPath (internal/modules/cjs/loader.js:683:18)
host.ioBroker 2020-06-27 13:49:26.480 error Caught by controller[0]: at tryPackage (internal/modules/cjs/loader.js:322:19)
host.ioBroker 2020-06-27 13:49:26.480 error Caught by controller[0]: Error: Cannot find module '/opt/iobroker/node_modules/klf-200-api/dist/index.js'. Please verify that the package.json has a valid "main" entry
host.ioBroker 2020-06-27 13:49:26.479 error Caught by controller[0]: ^
host.ioBroker 2020-06-27 13:49:26.479 error Caught by controller[0]: throw err;
host.ioBroker 2020-06-27 13:49:26.478 error Caught by controller[0]: internal/modules/cjs/loader.js:330
host.ioBroker 2020-06-27 13:49:25.957 info instance system.adapter.klf200.0 started with pid 11654
host.ioBroker 2020-06-27 13:48:55.917 info Restart adapter system.adapter.klf200.0 because enabledHabe mit WinSCP nachgesehen. Es fehlt "/opt/iobroker/node_modules/klf-200-api/dist/index.js". klf-200-api ist installiert. Das Gateway ist per IP eingerichtet und erreichbar. Auch mit Telnet komme ich rein. Was kann/ muss ich zur Behebung machen?
Andreas
-
Hallo, auch meinerseits ein herzliches Danke für die Entwicklung des Adapters. Ich bin gestern auf die neue Version umgestiegen und erhalte nun immer folgende Meldung
2020-06-27 17:38:43.807 - error: host.hans-Lenovo-YOGA-900-13ISK instance system.adapter.klf200.0 terminated by request of the instance itself and will not be restarted, before user restarts it. 2020-06-27 17:38:43.807 - info: host.hans-Lenovo-YOGA-900-13ISK Do not restart adapter system.adapter.klf200.0 because desired by instance 2020-06-27 17:39:33.597 - info: host.hans-Lenovo-YOGA-900-13ISK instance system.adapter.klf200.0 started with pid 4364 2020-06-27 17:39:34.284 - info: klf200.0 (4364) starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.klf200, node: v12.18.1, js-controller: 3.1.5 2020-06-27 17:39:34.313 - info: klf200.0 (4364) Host: VELUX-KLF-E5B7.fritz.box
Die todo's aus der Anleitung habe ich schon alle durch . Ich hoffe mir kann geholfen werden
lg Hans -
@Andy61 Es fehlt das klf-200-api-Modul. Das installiert sich mit der Installation des Adapters normalerweise mit. Wie hast Du die Installation des Adapters durchgeführt, über den Admin oder manuell?
Wechsele mal in das Verzeichnis /opt/iobroker/node_modules/iobroker.klf200 und führe dort npm install aus. Dadurch installieren sich die fehlenden Abhängigkeiten nach.
-
@schauaufdich Kannst Du bitte auch die Log-Einträge vor der Fehlermeldung posten? Der Adapter beendet sich selbst, wenn er sich nicht mit der Box verbinden kann, das kann ein falsches Passwort sein oder irgendetwas anderes. Passwort ist entweder das WLAN-Passwort auf der Rückseite der Box oder ein selbst vergebenes.
-
@MiSchroe einfach super, vielen Dank. Keine Fehlermeldungen mehr und verbunden ist er auch. Jetzt wird er eingebunden und getestet. Die api hatte ich auf der Konsole installiert, den Adapter als admin. Es könnte evtl. damit zusammenhängen, das ich den alten Adapter mal installiert hatte und die Steuerung bisher über Scripte gelöst hatte. Das wollte ich jetzt ablösen. Vielen Dank für die schnelle Hilfe. LG Andreas