ioBroker / AdapterRequests

This Place is used to track the status of new Adapter-Requests.
248 stars 36 forks source link

Bayernlüfter Adapter #392

Open vlink78 opened 4 years ago

vlink78 commented 4 years ago

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

nielstron commented 4 years ago

The adapter might build on this small library for interacting with the Bayerluefter Wifi-Module: https://github.com/nielstron/pyernluefter

vlink78 commented 3 years ago

@nielstron Thank you! Does that mean it is possible to build an adapter? Thank you!

Xenon-s commented 3 years ago

ich hab selber so ein ding, aber kein wifi modul. Bin grad noch an einem anderen adapter dran, hört sich aber interessant an

zuerom commented 3 years ago

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 😔

Xenon-s commented 3 years ago

kurzes Update: Ich habe eine Anfrage an Bayernluft geschickt :) Sobald ich eine Antwort und vorallem auch die Zeit habe, werde ich einen Adapter bauen

zuerom commented 3 years ago

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!

Xenon-s commented 3 years ago

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

Xenon-s commented 3 years ago

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. bayernluft

Xenon-s commented 3 years ago

vorerst nur das JS:

https://github.com/Xenon-s/js.Bayernluft

zuerom commented 3 years ago

@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

zuerom commented 3 years ago

@Xenon-s, das funktioniert einwandfrei! Absolut genial!

Xenon-s commented 3 years ago

@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

zuerom commented 3 years ago

Ich habe noch versucht anstelle der IP Adresse mit dem Hostnamen zu starten... wäre das einfach zu implementieren?

LG Roman

Xenon-s commented 3 years ago

Mach mal issue auf sonst vergesse ich das

Xenon-s commented 3 years ago

@vlink78 wie sieht es aus? Hast du mein Script getestet?

Xenon-s commented 2 years ago

@Apollon77 Da hier keine Reaktion mehr folgt und anscheinend auch kein Bedarf besteht, mein Skript zu testen, kannst du das hier dicht machen.

Apollon77 commented 2 years ago

Ne lass offen lassen ... Vllt kommen andere Interessenten. Danke für Deinen Einsatz!!

Xenon-s commented 2 years ago

okay, alles klar :)

zuerom commented 2 years ago

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?

Marco15453 commented 1 year ago

Ist das immernoch offen oder ist das bereits gemacht worden?

Xenon-s commented 1 year ago

@Marco15453 ich habe ein Skript erstellt, welches den Bayernlüfter in den iobroker bringt, aber mangels Testern daraus keinen Adapter gebaut

vlink78 commented 1 year ago

Das script funktioniert bei mir und ich bin gerne zum Testen bereit. Wäre super wenn daraus ein Adapter wird. Vg

Marco15453 commented 1 year ago

Ich kann mich mal daran setzten zu kucken ob das etwas wird, ich sag dir auf jeden fall bescheid falls sich daraus was ergibt

vlink78 commented 1 year ago

Vielen Dank!

Marco15453 commented 1 year ago

@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

Xenon-s commented 1 year ago

@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

Marco15453 commented 1 year ago

Ich habe das Script durchgelesen/durchgeschaut, doch leider steht da nichts was die seite überhaupt als antwort zurückgibt?

Xenon-s commented 1 year ago

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?

Marco15453 commented 1 year ago

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

Marco15453 commented 1 year ago

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 commented 1 year ago

@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

vlink78 commented 1 year ago

Hier die Ergebnisse von meinem Gerät. MAC und IP habe ich mal auskommentiert: Vielen Dank!

http://ip:PORT/?export=1

{ "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" } }

http://ip:PORT/?export=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" } }

http://ip:PORT/export.txt

{ "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~" } }

http://ip:PORT/?power=on

Hier kommt nur die interaktive Bedienung

http://ip:PORT/?power=off

Hier kommt nur die interaktive Bedienung

http://ip:PORT/?button=power

Hier kommt nur die interaktive Bedienung

http://ip:PORT/?button=timer

Hier kommt nur die interaktive Bedienung

http://ip:PORT/?speed=0

Hier kommt nur die interaktive Bedienung

http://ip:PORT/?speed=1

Hier kommt nur die interaktive Bedienung

http://ip:PORT/index.html?TimeSync=1

Hier kommt nur die interaktive Bedienung

Marco15453 commented 1 year ago

Alles klar vielen dank ich werde mich melden wenn ich weiteres gemacht habe und ich einen tester brauche.

Xenon-s commented 1 year ago

@Marco15453 schriftliche Genehmigung für das Logo habe ich vorliegen, kannst du also für den Adapter nutzen

Marco15453 commented 1 year ago

Könntest du mir dies schicken also das Logo?

Marco15453 commented 1 year ago

Der Adapter ist jetzt erstellt und sollte soweit funktionieren

https://github.com/Marco15453/ioBroker.bayernluefter

vlink78 commented 1 year ago

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 !

Marco15453 commented 1 year ago

Du musst in den Erweiterten Modus und dann per Benutzerdefinerter URL es herunterladen

vlink78 commented 1 year ago

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

Marco15453 commented 1 year ago

Du musst deine Node Version Updaten

Marco15453 commented 1 year ago

Du benutzt node v14 und brauchst aber node v16 oder höher

vlink78 commented 1 year ago

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
Marco15453 commented 1 year ago

Ist die export.txt die gleiche wie du bei dem Script benutzt hast?

Marco15453 commented 1 year ago

https://github.com/Marco15453/ioBroker.bayernluefter#how-to-change-the-template

Marco15453 commented 1 year ago

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?

vlink78 commented 1 year ago

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~" } }

vlink78 commented 1 year ago

2022-10-31 15_43_15-logs - ioBroker — Mozilla Firefox

vlink78 commented 1 year ago

2022-10-31 15_45_16-objects - ioBroker — Mozilla Firefox

Marco15453 commented 1 year ago

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

vlink78 commented 1 year ago

Danke. Ich helfe gerne beim Testen