Open vlink78 opened 4 years ago
The adapter might build on this small library for interacting with the Bayerluefter Wifi-Module: https://github.com/nielstron/pyernluefter
@nielstron Thank you! Does that mean it is possible to build an adapter? Thank you!
ich hab selber so ein ding, aber kein wifi modul. Bin grad noch an einem anderen adapter dran, hört sich aber interessant an
Daran hätte ich auch Interesse da ich den Bayernlüfter auch inkl. dem WLAN Modul habe... nur leider fehlt auch mir jegliches Wissen zum erstellen eines Adapters 😔
kurzes Update: Ich habe eine Anfrage an Bayernluft geschickt :) Sobald ich eine Antwort und vorallem auch die Zeit habe, werde ich einen Adapter bauen
kurzes Update: Ich habe eine Anfrage an Bayernluft geschickt :) Sobald ich eine Antwort und vorallem auch die Zeit habe, werde ich einen Adapter bauen
Good news danke dir!
ab jetzt könnt ihr hier den Fortschritt verfolgen. Das repo hab ich angelegt, allerdings ist es noch leer ;) https://github.com/Xenon-s/ioBroker.bayernluft
es gibt probleme mit der API, ich baue zuerst ein JS, danach schaue ich, dass ich das ganze in einen Adapter bekomme
Update hierzu: ich habe ein funktionierendes JS am Laufen. Mir persönlich fehlen aber noch Infos aus dem Gerät, zb welcher Modus grad aktiv ist. Ohne diese Infos ist das ganze natürlich sehr ungenau und schwer zu steuern. Stehe dazu aber auch noch in Kontakt mit Bayernluft.
Ich teste das JS 1-2 Tage dann veröffentliche ich es.
vorerst nur das JS:
@Xenon-s ich werde das so bald wie möglich testen! Genial ich danke dir für deine Bemühungen bereits im Voraus ! Ich melde mich mit Feedback
@Xenon-s, das funktioniert einwandfrei! Absolut genial!
@zuerom danke für dein Feedback, das freut mich 🙂 es gibt immer noch Probleme mit dem http request wenn man das ganze als Adapter baut. Ich muss mir da was einfallen lassen
Ich habe noch versucht anstelle der IP Adresse mit dem Hostnamen zu starten... wäre das einfach zu implementieren?
LG Roman
Mach mal issue auf sonst vergesse ich das
@vlink78 wie sieht es aus? Hast du mein Script getestet?
@Apollon77 Da hier keine Reaktion mehr folgt und anscheinend auch kein Bedarf besteht, mein Skript zu testen, kannst du das hier dicht machen.
Ne lass offen lassen ... Vllt kommen andere Interessenten. Danke für Deinen Einsatz!!
okay, alles klar :)
Auf keinen Fall schliessen, ich hab das Script im Einsatz… wollte grad noch die Zeit nutzen zu fragen ob du bereits von IP auf DNS umgestellt hast?
Ist das immernoch offen oder ist das bereits gemacht worden?
@Marco15453 ich habe ein Skript erstellt, welches den Bayernlüfter in den iobroker bringt, aber mangels Testern daraus keinen Adapter gebaut
Das script funktioniert bei mir und ich bin gerne zum Testen bereit. Wäre super wenn daraus ein Adapter wird. Vg
Ich kann mich mal daran setzten zu kucken ob das etwas wird, ich sag dir auf jeden fall bescheid falls sich daraus was ergibt
Vielen Dank!
@vlink78 Kannst du mir vielleicht ein paar screenshots von den Antworten von den API geben, damit ich es probieren kann, habe leider kein solches Gerät bei mir.
Ich brächte die Antworten von folgenden APIs
Bitte ersätze IP mit der IP Adresse von dem Gerät und PORT mit dem Port von dem Gerät, der port sollte standard auf 80 sein
@Marco15453 Es gibt ein funktionierenedes Skript, nimm doch das? Hast du die Doku überhaupt gelesen dazu? Man muss sich die API selber so bauen. Du brauchst nur ein interface bauen in das der User die IP eingeben kann, der Rest ist doch chon fertig. Wieso das Rad neu erfinden?
Der Hintergrund warum ich ncoht weiter gemacht habe ist, dass der Header fehlerhaft ist und der Adapter immer wieder crasht. Die API gibt nur eine Antwort, wenn man Werte abfragt, sonst nicht
Ich habe das Script durchgelesen/durchgeschaut, doch leider steht da nichts was die seite überhaupt als antwort zurückgibt?
Ich habe das Script durchgelesen/durchgeschaut, doch leider steht da nichts was die seite überhaupt als antwort zurückgibt?
Nix, wenn keine Werte abgefragt werden. Ob es Sinn macht ohne Hardware einen Adapter zu erstellen ist auch so eine Sache. Wie willst du das Header Problem in den Griff bekommen, wenn du nicht selber testen und debuggen kannst?
Es gibt diese abfrage /?export=0 wo Details von dem Gerät zurückgegeben wird. Doch die Demo sachen auf der Page scheinen nicht wirklich zu gehen
Ich habe das Script durchgelesen/durchgeschaut, doch leider steht da nichts was die seite überhaupt als antwort zurückgibt?
Nix, wenn keine Werte abgefragt werden. Ob es Sinn macht ohne Hardware einen Adapter zu erstellen ist auch so eine Sache. Wie willst du das Header Problem in den Griff bekommen, wenn du nicht selber testen und debuggen kannst?
Indem ich einmal von einem ECHTEN Gerät daten bekomme durch jemanden der ein Gerät hat und dadurch kann ich eine DEMO Gerät erstellen mittels NodeJS wo es so aus sieht als würde es ein echtes gerät sein.
@vlink78 Kannst du mir vielleicht ein paar screenshots von den Antworten von den API geben, damit ich es probieren kann, habe leider kein solches Gerät bei mir.
Ich brächte die Antworten von folgenden APIs
- http://IP:PORT/?export=1
- http://IP:PORT/?export=0
- http://IP:PORT/export.txt
- http://IP:PORT/?power=on
- http://IP:PORT/?power=off
- http://IP:PORT/?button=power
- http://IP:PORT/?button=timer
- http://IP:PORT/?speed=0
- http://IP:PORT/?speed=1
- http://IP:PORT/index.html?TimeSync=1
Bitte ersätze IP mit der IP Adresse von dem Gerät und PORT mit dem Port von dem Gerät, der port sollte standard auf 80 sein
Hier die Ergebnisse von meinem Gerät. MAC und IP habe ich mal auskommentiert: Vielen Dank!
{ "data": { "date": "25.10.2022", "time": "11:00:53", "name": "XXXXXXXXXX", "mac": "XXXXXXXXXX", "local_IP": "X.0.0.X", "rssi": "-72", "fw_MainController": "1838000A", "fw_WiFi": "WS181130" }, "parameter": { "temperature_In": "23,2", "temperature_Out": "23,5", "temperature_Fresh": "18,5", "rel_Humidity_In": "48,2", "rel_Humidity_Out": "53,7", "abs_Humidity_In": "10,0", "abs_Humidity_Out": "11,4", "efficiency": "93,5", "humidity_Transport": "-435" }, "states": { "speed_In": "06", "speed_Out": "06", "antiFreeze": "00", "SystemOn": "1", "AntiFreeze": "0", "Fixed_Speed": "0", "Defrosting": "0", "Landlord_Mode": "0", "Cross_Ventilation": "0", "Timer_active": "0" } }
{ "data": { "date": "25.10.2022", "time": "11:01:45", "name": "XXXXXXXXXX", "mac": "XXXXXXXXXX", "local_IP": "X.0.0.X", "rssi": "-72", "fw_MainController": "1838000A", "fw_WiFi": "WS181130" }, "parameter": { "temperature_In": "23,2", "temperature_Out": "23,5", "temperature_Fresh": "18,5", "rel_Humidity_In": "48,1", "rel_Humidity_Out": "53,7", "abs_Humidity_In": "10,0", "abs_Humidity_Out": "11,4", "efficiency": "93,5", "humidity_Transport": "-438" }, "states": { "speed_In": "06", "speed_Out": "06", "antiFreeze": "00", "SystemOn": "1", "AntiFreeze": "0", "Fixed_Speed": "0", "Defrosting": "0", "Landlord_Mode": "0", "Cross_Ventilation": "0", "Timer_active": "0" } }
{ "data": { "date": "~Date~", "time": "~Time~", "name": "~DeviceName~", "mac": "~MAC~", "local_IP": "~LocalIP~", "rssi": "~RSSI~", "fw_MainController": "~FW_MainController~", "fw_WiFi": "~FW_WiFi~" }, "parameter": { "temperature_In": "~Temp_In~", "temperature_Out": "~Temp_Out~", "temperature_Fresh": "~Temp_Fresh~", "rel_Humidity_In": "~rel_Humidity_In~", "rel_Humidity_Out": "~rel_Humidity_Out~", "abs_Humidity_In": "~abs_Humidity_In~", "abs_Humidity_Out": "~abs_Humidity_Out~", "efficiency": "~Efficiency~", "humidity_Transport": "~Humidity_Transport~" }, "states": { "speed_In": "~Speed_In~", "speed_Out": "~Speed_Out~", "antiFreeze": "~Speed_AntiFreeze~", "SystemOn": "~_SystemOn~", "AntiFreeze": "~_FrostschutzAktiv~", "Fixed_Speed": "~_Frozen~", "Defrosting": "~_AbtauMode~", "Landlord_Mode": "~_VermieterMode~", "Cross_Ventilation": "~_QuerlueftungAktiv~", "Timer_active": "~_MaxMode~" } }
Hier kommt nur die interaktive Bedienung
Hier kommt nur die interaktive Bedienung
Hier kommt nur die interaktive Bedienung
Hier kommt nur die interaktive Bedienung
Hier kommt nur die interaktive Bedienung
Hier kommt nur die interaktive Bedienung
http://ip:PORT/index.html?TimeSync=1
Hier kommt nur die interaktive Bedienung
Alles klar vielen dank ich werde mich melden wenn ich weiteres gemacht habe und ich einen tester brauche.
@Marco15453 schriftliche Genehmigung für das Logo habe ich vorliegen, kannst du also für den Adapter nutzen
Könntest du mir dies schicken also das Logo?
Der Adapter ist jetzt erstellt und sollte soweit funktionieren
Cool! Kannst du mir kurz auf die Sprünge helfen wie ich den installieren kann ? Per url mit deiner url geht es nicht. Vielen Dank !
Du musst in den Erweiterten Modus und dann per Benutzerdefinerter URL es herunterladen
Genau so habe ich das versucht und als URL:
https://github.com/Marco15453/ioBroker.bayernluefter
Eingegeben.
Sehe gerade liegt bei mir wohl ein einer alten node/npm version:
$ iobroker url https://github.com/Marco15453/ioBroker.bayernluefter --host ioBroker --debug
NPM version: 6.14.16Installing Marco15453/ioBroker.bayernluefter#21189b3e23ffc301ad3e2b534032ef2ac4881fc3... (System call)
npm ERR! code ENOTSUP
npm ERR! notsup Unsupported engine for iobroker.bayernluefter@1.1.1: wanted: {"node":">= 16"} (current: {"node":"14.19.0","npm":"6.14.16"})npm ERR! notsup Not compatible with your version of node/npm: iobroker.bayernluefter@1.1.1npm ERR! notsup Not compatible with your version of node/npm: iobroker.bayernluefter@1.1.1npm ERR! notsup Required: {"node":">= 16"}npm ERR! notsup Actual: {"npm":"6.14.16","node":"14.19.0"}
host.ioBroker Cannot install Marco15453/ioBroker.bayernluefter#21189b3e23ffc301ad3e2b534032ef2ac4881fc3: 1
ERROR: Process exited with code 25
Du musst deine Node Version Updaten
Du benutzt node v14 und brauchst aber node v16 oder höher
Danke! Habe es erfolgreich auf V16 aktualisiert. Danach konnte ich den Adapater installieren und einrichten.
Allerdings startet er nicht trotz richtiger IP und Port:
bayernluefter.0 | 2022-10-31 15:26:03.497 | warn | State "bayernluefter.0.info.connnection" has no existing object, this might lead to an error in future versions -- | -- | -- | -- bayernluefter.0 | 2022-10-31 15:26:03.096 | info | starting. Version 1.1.1 (non-npm: Marco15453/ioBroker.bayernluefter#21189b3e23ffc301ad3e2b534032ef2ac4881fc3) in /opt/iobroker/node_modules/iobroker.bayernluefter, node: v16.18.0, js-controller: 4.0.23 bayernluefter.0 | 2022-10-31 15:25:51.390 | info | Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason bayernluefter.0 | 2022-10-31 15:25:51.389 | info | terminating bayernluefter.0 | 2022-10-31 15:25:51.389 | info | Got terminate signal TERMINATE_YOURSELFIst die export.txt die gleiche wie du bei dem Script benutzt hast?
Danke! Habe es erfolgreich auf V16 aktualisiert. Danach konnte ich den Adapater installieren und einrichten.
Allerdings startet er nicht trotz richtiger IP und Port:
bayernluefter.0 2022-10-31 15:26:03.497 warn State "bayernluefter.0.info.connnection" has no existing object, this might lead to an error in future versions bayernluefter.0 2022-10-31 15:26:03.096 info starting. Version 1.1.1 (non-npm: Marco15453/ioBroker.bayernluefter#21189b3e23ffc301ad3e2b534032ef2ac4881fc3) in /opt/iobroker/node_modules/iobroker.bayernluefter, node: v16.18.0, js-controller: 4.0.23 bayernluefter.0 2022-10-31 15:25:51.390 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason bayernluefter.0 2022-10-31 15:25:51.389 info terminating bayernluefter.0 2022-10-31 15:25:51.389 info Got terminate signal TERMINATE_YOURSELF
Kannst du vielleicht ein Screenshot von den Logs machen?
Wenn ich meine export.txt vom Gerät exportiere sieht es genauso aus:
{ "data": { "date": "~Date~", "time": "~Time~", "name": "~DeviceName~", "mac": "~MAC~", "local_IP": "~LocalIP~", "rssi": "~RSSI~", "fw_MainController": "~FW_MainController~", "fw_WiFi": "~FW_WiFi~" }, "parameter": { "temperature_In": "~Temp_In~", "temperature_Out": "~Temp_Out~", "temperature_Fresh": "~Temp_Fresh~", "rel_Humidity_In": "~rel_Humidity_In~", "rel_Humidity_Out": "~rel_Humidity_Out~", "abs_Humidity_In": "~abs_Humidity_In~", "abs_Humidity_Out": "~abs_Humidity_Out~", "efficiency": "~Efficiency~", "humidity_Transport": "~Humidity_Transport~" }, "states": { "speed_In": "~Speed_In~", "speed_Out": "~Speed_Out~", "antiFreeze": "~Speed_AntiFreeze~", "SystemOn": "~_SystemOn~", "AntiFreeze": "~_FrostschutzAktiv~", "Fixed_Speed": "~_Frozen~", "Defrosting": "~_AbtauMode~", "Landlord_Mode": "~_VermieterMode~", "Cross_Ventilation": "~_QuerlueftungAktiv~", "Timer_active": "~_MaxMode~" } }
Die Connection ging auch beim Testen nicht wirklick, das kann ignoriert werden, sollte trotzdem funktioneren
Ich versuche das mal in den nächsten Tagen zu fixen
Danke. Ich helfe gerne beim Testen
Hallo, besteht die Möglichkeit einen Adapter zur Einbindung eines Bayernlüfters zu erstellen? Diese könnten sehr einfach per HTTP Requests ausglesen und gesteuert werden. Es ist ein WLAN Modul eingebaut.
Infos: https://www.bayernluft.de/de/detailanzeige.cgi?suchen=TRUE&search_field=artikel&search_for=BV-WLN-2
Übersicht der Befehle: Für Smarthome-Systeme stehen im HTML-Modus folgende Befehle zur Verfügung:
192.168.0.100/?export=1 liest die Geräte-Live-Werte im YAML oder XML-Format aus (Template frei editierbar)
192.168.0.100/?power=on schaltet das Gerät ein
192.168.0.100/?power=off schaltet das Gerät aus
192.168.0.100/?button=power wechselt zwischen ein/aus (toggle)
192.168.0.100/?button=timer hat die selbe Funktion wie ein Druck auf die Timer-Taste
192.168.0.100/?speed=1 Schaltet das Gerät auf Stufe 1 und fixiert diese (Stufen 1-10 verfügbar)
192.168.0.100/?speed=0 Wurde eine Stufe fixiert, so aktiviert dieser Befehl wieder die Feuchteautomatik (Bei Geräten mit Feuchtesensoren)
Die Beispiel-IP-Adresse 192.168.0.100 ersetzen Sie bitte durch die IP Ihres eigenen Gerätes
Denke für jemand der sich in der Adaptererstellung auskennt sollte es relativ einfach umzusetzen sein.
Danke und VG Volker