Closed daniel89fhem closed 2 years ago
Ich hab Dein "kannst Du mal..." zum Anlass genommen die schon länger geplante Anleitung für "Kannste mal" zu schreiben, damit ich das nicht jeden aufs neue hier schreibe. Schau doch bitte mal in die Develop Branch auf Git. Dort liegt Skript in neuer Version, passende Def Datei und ne Anleitung, schau doch bitte ob Du damit klar kommst und gib Feedback.
Danke dir für die rasche Bearbeitung.
Ich habe mir deine ganzen Infos mal angesehen und auch den Test durchgeführt. Dabei konnte ich von iobroker aus den Luftbefeuchter Ein und Ausschalten. In der App wurde das auch angezeigt. Umgekehrt ging das leider nicht. Also wenn ich in der App Ein und Ausschalte, dann wurde der Datenpunkt in iobroker nicht aktualisiert.
Ich hatte mir dann einen anderen Luftbefeuchter im Script als auch in der def Datei angesehen und dort ist mir aufgefallen, dass das wohl mit getPower funktionieren sollte. Leider klappte das bei mir nicht. Im Gegenteil, sobald ich diese Funktion in die def Datei geschrieben habe, kam ein Fehler im Javascript Adapter, dass das modul "node-mihome" nicht gefunden wurde und folgende Fehlermeldung:
javascript.0 (2410) script.js.Xiaomi: TypeError: Cannot read property 'miioProtocol' of undefined
Ich habe aber trotzdem schon versucht, die 3 Arbeitsfunktionen hinzuzufügen. Also Lüfterstufe 1, Lüfterstufe 2 und automatisch nach Luftfeuchtigkeit. Das hat dann auch funktioniert. Also ich konnte im iobroker den Datenpunkt fan-level ändern und dass wurde dann auch in der app angezeigt. Umgekehrt ging das wie oben bei power leider auch nicht.
Dann wollte ich noch die Temperatur und die Luftfeuchtigkeit anzeigen lassen. Auch das klappte leider nicht.
Ich hab dir mal den Script-Code angehängt, sowie die Def-Datei1, die funktioniert, aber keine Rückmeldung aus der App gibt. Und die Def-Datei2, mit der ich das Problem beheben wollte (durch vergleichen mit einem anderen Luftbefeuchter), aber nach dem Start des Javascript-Adapters fehler kommen
Bin gespannt, was ich hier alles verbrochen habe :D
Soo habs Dir mal fertig gemacht wie ich denke dasses passen müßte. Bitte Def Datei und Skript neu vom Def Branch holen, und sicherheitshalber den angelegten Objektbaum komplett löschen (wird autom. neu angelegt)
Zu Deinen Versuchen/Fragen:
Wow, dankeschön für die schnelle Rückmeldung
Was soll ich sagen: Script und def Datei aus der developer branch reinkopiert, Baum gelöscht, Javascript Adapter neu gestartet und? => ALLES FUNKTIONIERTE SOFORT. DANKE dir vielmals :)
Nun funktioniert auch alles in beide Richtungen.
Einen letzten Punkt habe ich noch, dieser hat aber nichts mit diesem Gerät zu tun denke ich. Ich bekomme in unregelmäßigen Abständen einen Timeout error vom Script im Javascript Adapter. Hier die Meldungen: `
javascript.0 | 2021-12-03 15:14:49.125 | error | FetchError: network timeout at: https://api.io.mi.com/app/home/device_list at Timeout. |
---|---|---|---|
javascript.0 | 2021-12-03 15:14:49.125 | error | Error: network timeout at: https://api.io.mi.com/app/home/device_list |
javascript.0 | 2021-12-03 15:14:49.123 | error | An error happened which is most likely from one of your scripts, but the originating script could not be detected. |
Es funktioniert aber weiterhin die Kommunikation in beide Richtungen. Weißt du, was hier die Fehlermeldung verursacht?`
Prima wenn alles klappt. Bitte alles mal durchtesten und dann freigeben, dann gehts in die Main Branch. Die Fehlermeldung kommt ab und an (auch bei mir), kannste soweit ignorieren. Is ne Art connection timeout zu xiaomi, passiert scheinbar wenn im Netz bei Xiaomi viel los ist.
Also ich habe heute noch einmal alles getestet. Auch die leere Tankmeldung. Alles hat funktioniert. Kann von mir aus gerne in die Main Branch landen.
An dieser Stelle noch einmal ein fettes DANKE an dich :)
Bezüglich der Fehlermeldung: Ok, gut zu wissen. Wahrscheinlich kann man das im Script nicht irgendwie berücksichtigen, damit da kein Fehler mehr kommt oder? Bei mir kam diese Meldung manchmal im Minutentakt. Dann wieder längere Zeit nicht usw. Aber das müllt halt das logfile unnötig zu. Daher die Frage
Wahrscheinlich kann man das im Script nicht irgendwie berücksichtigen, damit da kein Fehler mehr kommt oder?
So isses, weil die Meldung gar nicht vom Skript kommt, sondern von der node-mihome.
Nachdem alles passt, mach ich hier dann mal zu und wünsche viel Spaß.
Hi Pittini,
kannst du bitte die Unterstützung für den Luftbefeuchter XIAOMI Mijia CJSJSQ01DY Pure Evaporation (lt. deinem Script kommt das Modell deerma.humidifier.jsq4) hinzufügen?
In der App gibt es folgende Punkte: Ein / Aus Level 1 / Level 2 / Humidify Im Modus Humidity kann der Zielwert von 40 bis 70% stufenlos eingestellt werden Sheduled On / Off (damit kann man eine "Zeitschaltuhr" einstellen, nach der der Befeuchter Ein / Ausgeschaltet werden kann - wird also nicht benötigt) Licht Ein / Aus Sound Ein / Aus
Umgebungstemperatur und Luftfeuchtigkeit können ausgelesen werden. Wenn der Tank leer ist, gibt es eine Push-Benachrichtigung (ebenso wenn der Tank angehoben wird)
Wenn du noch weitere Informationen von mir brauchst, bitte einfach Bekannt geben.
Danke dir schonmal