NEWS
[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
-
@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. -
@thomas-braun ja hast recht, normal ist 9.5.0... lag ja aber letzten Endes nicht da dran
-
@w0rschd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
lag ja aber letzten Endes nicht da dran
Fix das, sonst liegt es beim nächsten Problem dann doch daran.
-
@thomas-braun downgrade durchgeführt, bin wieder bei 9.5.0... (npm install -g npm@9.5.0)
Ein Problem habe ich schon, die Lampen lassen sich an, aber nicht mehr ausschalten ...
Der Datenpunkt POWER geht auf false, die Lampen bleiben aber an
-
@w0rschd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
downgrade durchgeführt, bin wieder bei 9.5.0...
Schau per
sudo ln -s /usr/bin/node /usr/bin/nodejs &> /dev/null uname -m && type -P nodejs node npm npx && nodejs -v && node -v && npm -v && npx -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
nach ob das jetzt senkrecht ist.
-
x86_64 /usr/bin/nodejs /usr/bin/node /usr/bin/npm /usr/bin/npx v18.15.0 v18.15.0 9.5.0 9.5.0 4.0.24 root root /root nodejs: Installiert: 18.15.0-deb-1nodesource1 Installationskandidat: 18.15.0-deb-1nodesource1 Versionstabelle: *** 18.15.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_18.x bullseye/main amd64 Packages 100 /var/lib/dpkg/status 12.22.5~dfsg-2~11u1 500 500 http://ftp.de.debian.org/debian bullseye/main amd64 Packages
-
16:13:23.049 info javascript.0 (140952) script.js.MiHomeAll: Keyvalue=true key=0 16:13:23.049 info javascript.0 (140952) script.js.MiHomeAll: {} 16:13:23.711 info javascript.0 (140952) script.js.MiHomeAll: Keyvalue=true key=0 16:13:23.711 info javascript.0 (140952) script.js.MiHomeAll: {} 16:13:26.884 info javascript.0 (140952) script.js.MiHomeAll: Keyvalue=false key=0 16:13:26.884 info javascript.0 (140952) script.js.MiHomeAll: {} 16:13:27.519 info javascript.0 (140952) script.js.MiHomeAll: Keyvalue=false key=0 16:13:27.519 info javascript.0 (140952) script.js.MiHomeAll: {}
Gehen aber nur an, aber nicht mehr aus ?!?
-
Passt, allerdings meld dich als root ab!!
Nutze einen Standarduser, wie es vorgesehen ist. -
@thomas-braun ja, das ist klar, so hab ichs auch in der Regel.
Nur hast du evtl. auch eine Lösung, dass die Lampen IMMER an gehen, das klappt jedesmal, aber AUS gehen sie nicht mehr, wenn ich den Datenpunkt POWER auf false schalte. Auf false geht er, die Lampen bleiben aber an, ich muss sie dann wieder über die APP ausschalten... Wo könnte der Fehler liegen dass das ausschalten nicht geht?
-
@w0rschd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
so hab ichs auch in der Regel.
Und warum JETZT nicht? Man wird NIE NIE NIE root, weil es einfach NIE NIE NIE dafür einen Grund gibt.
Als user einloggen, root-Zugang vergessen,
Mit
iob stop iob fix iob start
den iobroker reparieren.
-
@thomas-braun ja, danke für den Hinweis, ich verstehe die Problematik schon, fix auch schon durchgeführt...
Kann mir jemand evtl. noch bitte sagen warum die Lampen nicht mehr auszuschalten gehen? Es kommt auch kein Fehler und der Datenpunkt bleibt auf False...
In der App sieht man aber dass sie noch an sind und nur über die App lassen sie sich wieder ausschalten.
Mit der Yeelight App ging das an und ausschalten, die läuft ja leider unter NodeJS18 nicht mehr (was an sich auch egal wäre, wenn das schalten per Script klappen würde) -
Habs hinbekommen, jetzt läufts, habe das Script folgendermassen verändert:
"power": async function (obj, val) { await device[obj].setPower(val ? 'on' : 'off') },
"power": async function (obj, val) { await device[obj].setPower(val) },
-
Eine andere Frage,
damit die Yeelight Color 2 mit dem Script funktionieren, muss man ja das File mit dem Profile in den "/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/yeelink.light.color2.js" Ordner kopieren.
Danach Javascript und das eigentliche Script neu starten...
Das funktioniert auch soweit gut, allerdings habe ich das Problem, nach einem Neustart von iobroker ist das File wieder weg.
Habe gedacht ok, mach ich ein shell script, welches nach einem reboot das file direkt wieder in den Ordner kopiert, aaaaber: Den Ordner gibts nicht direkt nach
Reboot, der wird erst wieder erstellt wenn iobroker gestartet ist, bzw. 1-2 Minuten nach Start von iobroker...
Somit muss ich das file jedesmal nachdem iobroker gestartet ist wieder hin kopiert werden und und und...
Auch wenn ich das File hin kopiere, den Besitzer auf iobroker ändere und die rechte setze, ist nach einem Neustart wieder das File weg.
Hat(te) das Problem noch jemand, falls ja wie gelöst damit das dauerhaft vorhanden bleibt? -
Damit wirst Du leben müssen .
Ist tatsächlich so.
Mich stört es schon gar nicht mehr.
1,2 Klicks und alles erledigt .
Passiert schon im Schlaf -
Ja, leider reagiert der Entwickler vom node-mihome nicht mehr auf github.
Da liegen einige offene merge-requests und offene Probleme.
Leider geht es da mit der Entwicklung nicht weiter.