NEWS
[Neuer Adapter] Xiaomi Luftfilter
-
@moeff du kannst den alten noch verwenden. Jedoch werde ich in den alten keine Energie mehr stecken, denn ganz schlau wurde ich bis zum Schluss nicht.
-
@dontobi sagte in [Neuer Adapter] Xiaomi Luftfilter:
Wer den Mal testen möchte
gibts auch was zu testen mit dem 3H
-
-
Wen es interessiert. Hier bei Github hab ich eine Version von Pittinis Script und die nötigen Dateien für Node-Mihome abgelegt, mit denen ich den 3C, 3H und Pro H problemlos steuern und auslesen kann. Ist halt als Script welches Datenpunkte füllt und kein Adapter, aber läuft problemlos.
Gruß, Jürgen
-
So problemlos ist das leider nicht.
Hab auf Github und diversen anderen Seiten, pittinis und deine Beschreibungen durchgelesen. Geklappt hat davon leider nichts.
Javascript ist die neueste Version.
mi-home einzutragen hat nichts gebracht , ausser Fehlermeldungen.2021-03-16 19:33:19.851 - error: javascript.0 (517) script.js.Luftreiniger: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome' 2021-03-16 19:33:19.852 - error: javascript.0 (517) at script.js.Luftreiniger:3:16 2021-03-16 19:33:19.852 - error: javascript.0 (517) at script.js.Luftreiniger:870:3 2021-03-16 19:33:19.852 - error: javascript.0 (517) at Script.runInContext (vm.js:133:20) 2021-03-16 19:33:19.852 - info: javascript.0 (517) script.js.Luftreiniger: Starting AllMyMi V.0.2.6 2021-03-16 19:33:19.858 - info: javascript.0 (517) script.js.Luftreiniger: registered 0 subscriptions and 0 schedules 2021-03-16 19:33:19.859 - error: javascript.0 (517) script.js.Luftreiniger: TypeError: Cannot read property 'miioProtocol' of undefined 2021-03-16 19:33:19.859 - error: javascript.0 (517) at Init (script.js.Luftreiniger:599:12) 2021-03-16 19:33:19.859 - error: javascript.0 (517) at script.js.Luftreiniger:67:1 2021-03-16 19:33:19.860 - error: javascript.0 (517) at script.js.Luftreiniger:870:3 2021-03-16 19:33:19.860 - error: javascript.0 (517) at Script.runInContext (vm.js:133:20)
Auch die neueste Version von Pittini bringt die gleiche Fehlermeldung.
node-mihome wird im Log installiert, wenn ich sie in der Javascript Instanz hinzufüge. dass kann ich sehen. -
sorry aber das stimmt so nicht. das Script funktionier super. Habe selbst den H3 und kann damit wunderbar auslasen und die Steuerung der Modis übernehmen. Mehr braucht man ja auch nicht.
-
Das es super funktioniert will ich gar nicht absprechen.
Aber anscheinend haben nicht alle die gleichen Voraussetzungen.
Ich habe es 1:1 nach den Vorgaben gemacht und bekomme die Meldungen oben.
Nun ist die Frage, was weicht ab, was der JS Ersteller nicht erwähnt.
JS Controller Version?
Nodejs Version? -
@haselchen Du musst, nachdem Du node-mihome im Javascript-Adapter eingetragen hast, diesen stoppen, Dich per SSH auf den iobroker einloggen und von Hand das passende device-file nach /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices kopieren. Anschliessend den javascript-adapter wieder starten und es läuft.
Die devices sind leider noch nicht im offiziellen Github vom Entwickler von node-mihome drin und der ist, sagen wir es mal so, recht träge.
Das ganze ist leider immer mal wieder nötig, z.B. nach iobroker-Neustart oder Update vom JS-Adapter. Erst, wenn die devices im offiziellen node-mihome drin sind kommen sie dann auch automatisch mit, wenn der JS-Adapter startet.Gruss, Jürgen
-
Muss ich dafür zwingend die Version ab 4.8 des Javascript Adapters haben?
Muss ich per SSH kopieren? Hab nen Container im Docker auf ner Synology. -
@haselchen Welche Version zwingend nötig ist, kann ich Dir nicht sagen. Der Adapter ist ja nicht von mir.
Und wo was in Docker hinkommt und wie man es dorthin kopiert weiß ich leider auch nicht. Docker war mir immer suspekt.Gruß, Jürgen
-
Hab mir komplett alles zerschossen mit dem "Experiment".
Downgrade der Script Engine hat nur auf dem Papier geklappt.
Das Layout ist beim Upgrade geblieben.
Also deinstalliert, damit waren allerdings die Ordner auch weg vom Adapter.
Also Backup eingespielt.
Und die Erkenntnis, man muss nicht alles haben -
@haselchen Naja, eigentlich sollte das Einrichten für die Xiaomi air purifier kein großer Act sein, und schon gar nicht irgendetwas, womit man sich sein System abschiesst. Im JS-Adapter node-mihome eintragen und danach stoppen, passende(s) device von hier als txt herunterladen und umbennen (.txt hinten weg), anschliessend das device in der passenden Ebene unter dem iobroker.javascript abspeichern (siehe oben /opt/...) evtl. Rechte anpassen (sollte iobroker:iobroker mit 644 sein), js-adapter wieder starten, das Script (auch direkt vom Link) Laden, anpassen an eigene Bedürfnisse und starten. Da kann man nicht viel falsch machen, das "schwierigste" ist wohl das Kopieren der device-files.
Ich bin bei der Script-engine auf 5.0.14, bin aber ziemlich sicher, dass es auch mit älteren und auch aktuelleren (beta) Versionen laufen müsste. Warum Du da ein downgrade machen wolltest, erschliesst sich mir da nicht. Aber, Du musst doch irgendwie auf die Files im Docker-Container zugreifen können. Muss ja nicht direkt per SSH sein, aber irgendwie muss das doch gehen?! Ohne die passenden device-files kann es nicht gehen, da der JS-Adapter dann die Geräte nicht kennt. Schau doch mal, in welchem Pfad iobroker im Docker-Container liegt und schlängel Dich da weiter durch.Gruss, Jürgen
-
Ich hatte mich an Pittinis Anleitung gehalten, dass die Script Engine Version mindestens 4.8 sein muss. Also musste ich upgraden.
Dann begann aber schon der Stress mit meinen vorhandenen Scripten.
Viele kamen mit der 5.0.15 nicht zurecht.
Und deine und Pittinis Anleitung ergaben dauernd den mioo protocoll Fehler.
Also wieder downgrade auf 3.6.4
Und da ging es dann richtig in die Hose.
Nun läuft es wieder....Gott sei Dank.
Aber eben ohne Air Purifier. -
@haselchen sagte in [Neuer Adapter] Xiaomi Luftfilter:
Viele kamen mit der 5.0.15 nicht zurecht.
Dann würde ich die skripte überarbeiten und an geänderte syntax anpassen.
-
Das Themengebiet werde ich in nächster Zeit mal so überhaupt nicht anfassen.
Neue Versionen sind immer gewöhnungsbedürftig, aber das ich keine Texte mit der Maus (oder ich bin einfach zu blöd) kopieren und einfügen kann und stattdessen ein Script zippen soll zum Einfügen.....klar geht anscheinend die Tastenkombination zum kopieren und einfügen, aber ich bin nen Maustyp und werde es deswegen auch nicht ändern.javascript.0 2021-03-17 19:36:59.153 error (29750) at require (internal/modules/cjs/helpers.js:25:18) javascript.0 2021-03-17 19:36:59.153 error (29750) at Module.require (internal/modules/cjs/loader.js:692:17) javascript.0 2021-03-17 19:36:59.152 error (29750) at Function.Module._load (internal/modules/cjs/loader.js:585:3) javascript.0 2021-03-17 19:36:59.152 error (29750) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) javascript.0 2021-03-17 19:36:59.152 error (29750) at Module.load (internal/modules/cjs/loader.js:653:32) javascript.0 2021-03-17 19:36:59.152 error (29750) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) javascript.0 2021-03-17 19:36:59.152 error (29750) at Module._compile (internal/modules/cjs/loader.js:778:30) javascript.0 2021-03-17 19:36:59.152 error (29750) at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/index.js:5:16) javascript.0 2021-03-17 19:36:59.151 error (29750) at require (internal/modules/cjs/helpers.js:25:18) javascript.0 2021-03-17 19:36:59.151 error (29750) at Module.require (internal/modules/cjs/loader.js:692:17) javascript.0 2021-03-17 19:36:59.151 error (29750) at Function.Module._load (internal/modules/cjs/loader.js:585:3) javascript.0 2021-03-17 19:36:59.151 error (29750) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) javascript.0 2021-03-17 19:36:59.151 error (29750) at Module.load (internal/modules/cjs/loader.js:653:32) javascript.0 2021-03-17 19:36:59.151 error (29750) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) javascript.0 2021-03-17 19:36:59.150 error (29750) at Module._compile (internal/modules/cjs/loader.js:778:30) javascript.0 2021-03-17 19:36:59.150 error (29750) at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device.js:1:16) javascript.0 2021-03-17 19:36:59.150 error (29750) at require (internal/modules/cjs/helpers.js:25:18) javascript.0 2021-03-17 19:36:59.150 error (29750) at Module.require (internal/modules/cjs/loader.js:692:17) javascript.0 2021-03-17 19:36:59.150 error (29750) at Function.Module._load (internal/modules/cjs/loader.js:585:3) javascript.0 2021-03-17 19:36:59.149 error (29750) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) javascript.0 2021-03-17 19:36:59.149 error (29750) at Module.load (internal/modules/cjs/loader.js:653:32) javascript.0 2021-03-17 19:36:59.149 error (29750) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) javascript.0 2021-03-17 19:36:59.149 error (29750) at Module._compile (internal/modules/cjs/loader.js:778:30) javascript.0 2021-03-17 19:36:59.149 error (29750) at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:6:54) javascript.0 2021-03-17 19:36:59.148 error (29750) at Array.forEach (<anonymous>:null:null) javascript.0 2021-03-17 19:36:59.148 error (29750) at glob.sync.forEach.modelPath (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/models.js:9:23) javascript.0 2021-03-17 19:36:59.148 error (29750) at require (internal/modules/cjs/helpers.js:25:18) javascript.0 2021-03-17 19:36:59.148 error (29750) at Module.require (internal/modules/cjs/loader.js:692:17) javascript.0 2021-03-17 19:36:59.148 error (29750) at Function.Module._load (internal/modules/cjs/loader.js:585:3) javascript.0 2021-03-17 19:36:59.148 error (29750) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) javascript.0 2021-03-17 19:36:59.147 error (29750) at Module.load (internal/modules/cjs/loader.js:653:32) javascript.0 2021-03-17 19:36:59.146 error (29750) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) javascript.0 2021-03-17 19:36:59.145 error (29750) script.js.Luft: /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/zhimi.airpurifier.mb3.js:5
Keine Chance. So easy ist es halt nicht
-
@haselchen Soweit ich das sehe sind es zumindest nicht die typischen Fehlermeldungen, wenn ein device-file nicht gefunden wird. Vielleicht kann @Pittini dazu was sagen?
Entweder was Docker-typisches oder es liegt an Deiner veralteten Version des JS-Adapters?!Gruss, Jürgen
-
Die kommen leider auch mit der neuesten Java Version.
Es reizt ja schon das Ganze, weil ich 2 von den Dingern habeDie Erweiterung node-mihome, wo müsste ich die manuell installieren in welchen Ordner?
-
Oh man, welch eigentlich simples Problem.
Ich denke, dass hilft viele Fragenden:Nodejs MUSS mindestens V12 sein
Javascript KANN auch noch V3.6.4 seinDamit geht es jetzt.
Hab Nodejs einfach nur aktualisiert.
Das sollte @Pittini vielleicht noch irgendwo mit aufnehmen.
Zeitgleich natürlich ein fettes Danke für das Script!Edit:
Stehe gerade mächtig wohl auf dem Schlauch.
Werden die Werte nur ausgelesen oder kann ich das Gerät damit auch steuern?
Sorry für die bescheuerte Frage, aber ich bin 48 Stunden auf den Beinen -
@haselchen Klar kannst Du auch Steuern. Die Modes, Fanspeeds und Favorite-Level lassen sich steuern.
Schön, wenn es jetzt läuft. Sagt uns aber auch, es geht nix über ein halbwegs aktuelles System...Gruß, Jürgen
-
Wie gesagt, waren lange Tage
Also ab in den IOT , Modes Datenpunkt nehmen und Alexa auf zum Beispiel Sleep schalten lassen?
Oder wie löst du das?