NEWS
[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
-
@Thomas-Braun Das war für mich auch der Grund, die Xiaomi-Luftreiniger von iobroker per Script dann (wieder) in FHEM umzuziehen und darüber zu steuern und auszulesen. FHEM läuft hier bei mir eh für diverse Dinge, die iobroker einfach nicht kann und damit laufen die air purifier einfach problemlos und auch nach einem Neustart, während bei iobroker spätestens dann wieder eine Kopier-Orgie starten musste, um die Geräte, die der node-mihome trotz Pull-request von @Pittini einfach nicht vom Developer beigebracht bekam, wieder manuell in die devices zu kopieren.
Wäre zwar schön, wenn alles in iobroker integriert wäre, aber andererseits ist es ja auch der große Vorteil von iobroker, dass man damit verschiedenste Smart-Home-Systeme unter einen Hut bekommt.Gruss, Jürgen
-
Hi. Ich hänge mich hier auch einmal dran, da ich leider mit dem Script einen Fehler habe, den ich nicht gelöst bekomme.
Ausgangslage:
Ich möchte einen Mi Smart Standing Fan 2 ("dmaker.fan.p18") in mein System einbinden. Dieser funktioniert auch über die App.
Leider habe ich einen Fehler jedes Mal wenn ich das Basis-Script laufen lasse11:19:49.859 error javascript.0 (830) script.js.Web.MiFan_Steuerung: TypeError: Cannot read property 'forEach' of undefined 11:19:49.860 error javascript.0 (830) at CreateDevices (script.js.Web.MiFan_Steuerung:922:17) 11:19:49.860 error javascript.0 (830) at main (script.js.Web.MiFan_Steuerung:840:5)
Die Datenpunkte werden korrekt angelegt (nur ein Device vorhanden), Anmeldung scheint zu funktionieren, nur die Steuereigenschaften haben den Wert "NULL".
Die entsprechende "Node-Mihome" Referenz in den Javascript Einstellungen habe ich auch gemacht
Bisher versuchte Lösungen
(nach jeder versuchten Lösung wurden alle Datenpunkte entfernt, das Script neu eingespielt, alle Referenzen entfernt und das "Node-MiHome" Verezichnis unter "/ioBroker/node_modules" gelöscht und der JavaScript Adapter bzw das System neu gestartet, um einen sauberen Ausgangspunkt zu haben)- "Node-Mihome" Referenz eingefügt - Restart JavaScript Adapter - Script einfügen (mit Verbindungsdaten) - Ausführen Script - Fehler
- "Node-Mihome" Referenz eingefügt - Restart System - Script einfügen (mit Verbindungsdaten) - Ausführen Script - Fehler
- "Node-Mihome" Referenz eingefügt - Restart JavaScript Adapter - Script einfügen (mit Verbindungsdaten) - Adapter Konfiguration für "dmaker.fan.p18" in das Geräte Verzeichnis kopiert - Ausführen Script - Fehler
- "Node-Mihome" Referenz eingefügt - Restart System - Script einfügen (mit Verbindungsdaten) - Adapter Konfiguration für "dmaker.fan.p18" in das Geräte Verzeichnis kopiert - Ausführen Script - Fehler
Beim Script handelt es sich auch jeweils um die letzte Version von Github.
Leider habe ich keine Idee mehr, woran es liegen kann. Da ich hier in der Diskussion gesehen habe, dass es vielleicht relevant sein kann: ds System hat einen normalen Internetzugang, der Login in den Account scheint zu funktionieren. Falls ich weitere Informationen liefern kann, gebt mir kurz Bescheid was benötigt wird. -
@tableautin Schau mal da rein, ähnliches Problem, evtl. hilft die dortige Lösung auch Dir: https://github.com/Pittini/iobroker-nodemihome/issues/59
-
@pittini Danke für den Hinweis. Klingt nach einem ähnlichen Problem (und das gleiche Gerät) wie bei mir. Ich werde es demnächst mal testen und ein Feedback geben. Feedback lieber hier oder bei Github?
-
@tableautin sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Feedback lieber hier oder bei Github?
Idealerweise sowohl als auch. Prio hat aber Git.
-
Hab noch die 23er Skript Version am Laufen.
Funktioniert tadellos mit 3H Reinigern, Yeelight Pendelleuchte und Smart Fan Pro.
Nur was @Wildbill geschrieben hat, nervt ein bisschen.
Bei jedem Neustart die Definitionsdateien kopieren.
Dafür habe ich aber eine smarte Bedienung dann. -
Hallo zusammen,
ich habe mir den Xiaomi Mi Air Purifier Pro gekauft. Wird dieser Luftreiniger jetzt unterstützt, oder ist dieser Adapter "tot" weil er nicht weiter entwickelt wird?
Eben wie Thomas Braun schon geschrieben hat: "Da kommt wohl nix mehr vom Developer:".
Grüße
Manfred -
-
@beowolf Der Developer dieses Scripts ist @Pittini . Und der ist noch aktiv, kann hier nur leider nicht viel machen. Das Script baut auf der Gerätebibliothek von node-mihome auf. Und dieser Developer, der mit dem Forum hier und diesem Script nix zu tun hat, der hat seit 2 Jahren nichts mehr eingepflegt. Deshalb müssen die Gerätedateien für das Script hier eben manuell ins System gepflegt werden. Da lässt sich leider nicht viel dran ändern, außer jemand schreibt einen komplett neuen Adapter, der nicht auf node-mihome aufbaut sondern alles selbst mit bringt.
Gruss, Jürgen
Edit: Es geht eben um das javascript-Modul node-mihome, welches der Javascript-Adapter von einem Github-Repo zieht, welches nicht mehr gepflegt wird.
-
Alles klar. Danke für die Unterscheidung.
-
@wildbill Ich kann schnell ein adapter schreiben aber ich habe noch nicht ganz den unterschied zu https://github.com/ioBroker/ioBroker.mihome verstanden
-
@tombox sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@wildbill Ich kann schnell ein adapter schreiben aber ich habe noch nicht ganz den unterschied zu https://github.com/ioBroker/ioBroker.mihome verstanden
Der mihome Adapter integriert vor allem das Gateway und die Zigbee Devices. Alles was via WLAN direkt läuft, wie Ventilatoren, Luftbefeuchter, Luftreiniger etc. kannste mit dem mihome Adapter nicht steuern.
-
@wildbill Ich habe mal schnell ein Adapter geschrieben der die Geräte infos via Cloud abfragt ich bin mir jetzt unsicher ob das die richtige Richtung ist
Steuern ist noch nicht möglich kommt drauf an ob so ein Adapter überhaupt sinnvoll ist
https://forum.iobroker.net/topic/59636/test-adapter-mihome-cloud -
Erstmal cool, dass du dich dem Thema widmest!!
Nur Infos lesen wird natürlich nicht reichen.
Der User möchte ja schalten oder Einstellungen vornehmen.
Und da sind wir dann bei den Devices, die vom Adapter unterstütz werden müssen.
Momentan gibt es Konfigurationsdateien für die einzelnen Geräte.
Keine Ahnung, ob man die so ohne weiteres in einen Adapter bauen kann. -
@haselchen Es würde mir erstmal reichen als Feedback ob alle Geräte gelesen und angezeigt werden dann kann man steuern noch nachziehen
-
Alles klärchen. Werde ich nachher testen und Feedback geben.
-
@tombox Von mir wird da kein Feedback kommen. Ich verwende seit Monaten für die air purifier FHEM und habe das per Adapter mit iobroker verbunden. Läuft absolut problemlos, seitdem nicht einmal das kleinste Problem und somit kein Grund für mich, das zu ändern. FHEM läuft sowieso nich für ein paar andere Dinge.
Aber Danke trotzdem.Gruss, Jürgen
-
@thomas-braun said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Ja, hab ich auch:
2022-07-22 19:05:42.199 - info: javascript.0 (155217) Start javascript script.js.common.nodemihome 2022-07-22 19:05:42.394 - info: javascript.0 (155217) script.js.common.nodemihome: Starting AllMyMi V.0.2.29 2022-07-22 19:05:42.500 - info: javascript.0 (155217) script.js.common.nodemihome: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2022-07-22 19:05:43.259 - info: javascript.0 (155217) script.js.common.nodemihome: Retrieving your in cn registered MiHome Devices 2022-07-22 19:05:48.288 - error: javascript.0 (155217) An error happened which is most likely from one of your scripts, but the originating script could not be detected. 2022-07-22 19:05:48.290 - error: javascript.0 (155217) Error: network timeout at: https://api.io.mi.com/app/home/device_list 2022-07-22 19:05:48.291 - error: javascript.0 (155217) FetchError: network timeout at: https://api.io.mi.com/app/home/device_list at Timeout.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/lib/index.js:1484:13) at listOnTimeout (node:internal/timers:564:17) at processTimers (node:internal/timers:507:7)
Issue angelegt:
Hallo zusammen,
auf Github hat jemand eine Lösung für das Timeout gepostet!George-Cara commented 8 days ago •
Hi . For this error with newer JSCRIPT Adapter (>6) the developer should modify the code. until then please go to /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib and edit the file protocol-micloud.js . You will find
this.REQUEST_TIMEOUT = that you should set to 20000
This is the proper timeout for me. I think it will work for you also.Hat bei mir funktioniert, ich kann den Luftreiniger wieder steuern.
Mike
-
[SOLVED]
habe hier jetzt mal soweit alles durch, aber leider nicht wirklich die Lösung gefunden...
Bei mir startet das Script nicht, es kommt immer folgender Fehler:
14:17:49.332 info javascript.0 (28083) Start javascript script.js.MiHomeAll 14:17:49.342 error javascript.0 (28083) script.js.MiHomeAll: /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/yeelink.light.color2.js:8 14:17:49.342 error javascript.0 (28083) at script.js.MiHomeAll:3:16 14:17:49.343 error javascript.0 (28083) at script.js.MiHomeAll:1186:3 14:17:49.343 info javascript.0 (28083) script.js.MiHomeAll: Starting AllMyMi V.0.2.29 14:17:49.344 info javascript.0 (28083) script.js.MiHomeAll: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 14:17:49.345 error javascript.0 (28083) script.js.MiHomeAll: TypeError: Cannot read properties of undefined (reading 'miioProtocol') 14:17:49.345 error javascript.0 (28083) at Init (script.js.MiHomeAll:863:12) 14:17:49.345 error javascript.0 (28083) at script.js.MiHomeAll:35:1 14:17:49.345 error javascript.0 (28083) at script.js.MiHomeAll:1186:3
NodeJS18 und NPM9.6.2...
Installiert hab ichs nach Github Anleitung und auch das NPM Modul Mi-Home nochmal händisch nachinstalliert ohne Erfolg. Iobroker läuft auf einem Debian Bullseye.
Was kann ich noch machen um das Script zum laufen zu bekommen?Lösche ich die yeelink.light.color2.js, dann startet das Script und legt die beiden Lampen an, aber es kommt dann die Fehlermeldung Yeelink.light.color2 not supported...
Kopiere ich die yeelink.light.color2.js wieder in den ordner, dann startet das script komplett nicht, siehe geposteten Log von oben.EDIT: Problem gelöst, war mein Fehler, da hat sich die yeelink.light.color2.js irgendwie verhauen, hab die nochmal neu erstellt und den Inhalt händisch rein kopiert, jetzt läuft es
-
@w0rschd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
NodeJS18 und NPM9.6.2...
Von Hand herumgebastelt...
Die Kombination kommt so nicht von nodejs im Downstream voreingestellt.
Schau dir das Thema nodejs und wie man das richtig sauber installiert an.