NEWS
[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
-
@e-i-k-e sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
verwende das Skripe in der aktuellen Version und möchte einen Xiaomi Air Purifier 3H und Mi Air Purifier Pro H bedienen.
Das wäre der typische Fehler wenn die Definitionsdatei nicht vorliegt. Bitte kontrollier ob die "zhimi.airpurifier.vb2.js" auch wirklich in "/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices/" vorhanden ist, und wenn nein kopier se da hin wie in der Anleitung beschrieben.
-
@pittini sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@saibot1981 Das ist seltsam! Zuerst mal wird kein Gerät unterstützt das mit H3 endet, ich nehm mal an Du meinst den Purifier 3H, also zhimi.airpurifier.mb3? Den hab ich selber und der dürfte einer der meist getesteten im ganzen Skript sein, bei mir zeigt er auch die korrekte Temp an. Und wenn da ein Wert befüllt wird, dann wird dieser Wert von der node-mihome bzw. der Cloud so angeliefert, da hab ich 0 Einfluss drauf, das Skript zeigt nur die Daten an die geliefert werden und macht da ja nix selber. Du kannst mal alle Datenpunkte von dem Gerät löschen (werden dann neu angelegt) um sicher zu gehen dass da nix hängt und natürlich mal ins Log guggen. Und vorallem mal den Admin neu laden, ich hab auch gelegentlich mal den Fall dass der Admin drauf besteht alte Daten anzuzeigen obwohl schon andere vorliegen was ich dann im Vis sehe.
Ja sorry, meinte natürlich den 3H.
Nungut ich werde es nochmal mit löschen der Datensätze testen.
-
@pittini said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
zhimi.airpurifier.vb2.js
Danke!
-
Hab eben auf Github geantwortet.
Bin bei deiner Antwort letztens davon ausgegangen, dass du eine neue Version veröffentlichst. -
Danke nun läufts
-
Die Smarthome Sucht hat mich nun nen Smart Standing Fan Pro anschaffen lassen.
(dmaker.fan.p15)
Habs nach nen bisschen Fummelei hinbekommen und nun fehlt 1 einziger Datenpunkt, der nicht befüllt wird:
Muss ich dazu bei dem Ventilator was besonderes einstellen oder musste da nochmal rübergucken ?
-
@haselchen Habs mir grad mal angeguggt, der Dp wird nicht befüllt weil so definiert, write only. Also versuch mal nen Wert zu setzen, ob das geht, sollte eigentlich.
-
Danke fürs schnelle Feedback.
Bevor ich experimentiere, wofür steht:
none
left
rightbei dem Datenpunkt? Quasi, was passiert?
-
@haselchen Gute Frage, nächste Frage. Ich hab den ja auch und das bisher weder gebraucht, noch rausgefunden wasses macht. Da mußt selber forschen wenns Dir wichtig ist. Ich nutze so ziemlich alle relevanten Werte, mehr brauch ich nich:
-
Steuerst Du auch über Alexa, wenn ja , wie haste das realisiert?
Da wir beide nicht wissen, was der Datenpunkt macht, lassen wir ihn so, wie er ist
-
@haselchen sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Steuerst Du auch über Alexa, wenn ja , wie haste das realisiert?
Alexa kommt mir nich ins Haus. Wenn ich mal was mit Sprache steuern will dann hab ich dafür Snips laufen. Aber grundsätzlich finde ich das alles nich wirklich smart, smart is für mich wenn das Haus von alleine weis was es tun soll anhand meiner üblichen Routinen.
-
Frauen unterhalten sich halt gerne und viel,
also musste ich meiner Frau eine Gesprächspartnerin besorgenBin ja heilfroh, dass du den Ventilator integriert hast, so muss ich nachts nicht mehr aufstehen und das Teil ausschalten oder den Timer verlängern.
-
Hast Du durch irgendwelche Quellen die Möglichkeit den Akkustand vom Fan auszulesen?
Er scheint einfach heute Nacht ausgegangen zu sein.
Komischerweise steht der Datenpunkt on noch auf true?! -
@haselchen sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@Pittini
Hast Du durch irgendwelche Quellen die Möglichkeit den Akkustand vom Fan auszulesen?Nein.
Komischerweise steht der Datenpunkt on noch auf true?!
Wenn er wegen Akku aus geht, kann er ja auch nimmer senden.
-
Müsste dann das Skript nicht erkennen das er offline ist?
Hast du ne Idee wie wir den Akku Stand auslesen könnten?
-
@haselchen sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Müsste dann das Skript nicht erkennen das er offline ist?
Das Skript erkennt nix, es zeigt nur an was von der Cloud gemeldet wird.
Hast du ne Idee wie wir den Akku Stand auslesen könnten?
Is nich. Klick auf den Link bei dem Gerät im Skript, dann siehste das JSON aller verfügbarer Werte und von Akku is da weit und breit nix zu sehen.
-
Ok.
Aber die Cloud hat ja keinen Kontakt zum Fan , wenn er aus geht oder offline ist.
Also müsste das Skript es doch mitbekommen.Ich muss das mal in der App beobachten , was angezeigt wird, wenn er aus geht wegen des Akkus.
-
Re: [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
@Pittini, danke für dieses großartige Skript. Habe jetzt zugeschlagen und mir einen Mi Smart Standing Fan 2 besorgt.
Ich bin der Installationsanleitung unter https://github.com/Pittini/iobroker-nodemihome gefolgt.
Leider bekomme ich das Script (welches ich AllMyMi genannt habe) nicht zum Laufen mit den folgenden Fehlermeldungen (die wohl mit dem log-in zu tun haben?):
16:53:05.572 info javascript.0 (2589) Stop script script.js.AllMyMi 16:53:06.458 info javascript.0 (2589) Start javascript script.js.AllMyMi 16:53:06.476 info javascript.0 (2589) script.js.AllMyMi: Starting AllMyMi V.0.2.23 16:53:06.484 info javascript.0 (2589) script.js.AllMyMi: registered 0 subscriptions and 0 schedules 16:53:07.806 info javascript.0 (2589) script.js.AllMyMi: You are already logged in, login canceled 16:53:07.806 info javascript.0 (2589) script.js.AllMyMi: Retrieving your in de registered MiHome Devices 16:53:07.807 error javascript.0 (2589) script.js.AllMyMi: Error: Pls login before make any request 16:53:07.807 error javascript.0 (2589) at Init (script.js.AllMyMi:797:50)
Als Benutzernamen habe ich die E-Mail Adresse meiner Registrierung bei der iOS App "Xiaomi Home" und das entsprechende Passwort im Skript hinterlegt. Über die iOS App "Xiaomi Home" läuft der Ventilator perfekt. Ein Neustart des Raspis, auf welchem ioBroker läuft, hat leider auch nicht geholfen. Ich bin auch nirgens parallel auf der Xiaomi Platform eingeloggt, so dass die Fehlermeldung "You are already logged in" Sinn machen würde. Habe es dann mit "Dummy" log-in Daten versucht, gleiche Fehlermeldung. Ich habe auch die V.0.2.18 des Skripts ohne Erfolg versucht (ähnliche Fehlermeldungen).
Sonstige Systeminformation:
JS-Controller version: (iobroker -v in SSH): 3.2.16
ioBroker.admin 4.2.1
Node JS: v12.22.1
NPM: 6.14.12
JS-Script Engine: 5.13
iobroker System: Raspi 4 mit viel RAM
zu steuernder Ventilator: Mi Smart Standing Fan 2 - dmaker.fan.p18Hat hier jemand eine Idee wo mein Fehler liegt?
PS sorry für das Cross-Posting, bin mit den Forumsfunktionen noch nicht so vertraut.
-
@fd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Ich bin auch nirgens parallel auf der Xiaomi Platform eingeloggt, so dass die Fehlermeldung "You are already logged in" Sinn machen würde.
Ein Login bleibt ne Zeitlang erhalten, auch wenn das Skript zwischenzeitlich gestoppt war, wennst es jetzt startest, versucht es sich ein zu loggen, obwohl der alte Login noch gültig ist, genau dann kommt diese Meldung, an sich also ok, und kein Problem, is quasi nur ne Info. Allerdings ists seltsam dass er danach sagt Du sollst Dich einloggen, das ist bisher noch nie aufgetreten. Den richtigen Server haste gewählt im Skript? Logindaten 100% korrekt? wenn beides ja, hab ich grad keine Idee worans liegen könnte.
Login gleichzeitig mit App und Skript geht normalerweise auch, daran liegts sicher nich, das mach ich zum testen öfters mal um zu sehen ob die geänderten Werte im Skript ankommen etc. -
@pittini Danke sehr für die schnelle Anwort.
Ich bin jetzt einen großen Schritt weiter: nachdem ich die Ländereinstellung in der Xiaomi App und im Skript von Deutschland auf Singapur geändert habe (China hat für mich nicht funktioniert, da ich den Ventilator über die App nicht finden konnte) und den Ventilator neu angelernt, klappt der Log-in nun ohne weiteres.
Der Ventilator wird auch in ioBroker unter Objekte / Javascript angelegt und unter Info finde ich viele Daten zu IP Adresse usw. Leider bleiben jedoch die Fan-Einstellungen leer und Eingaben meinerseits über die Dropdowns werden nicht angenommen.
Das Skipt crasht sofort nach dem Start mit dem folgenden Log (ich habe einige spezifische Daten durch XXX ersetzt, sie scheinen aber korrekt zu sein.
10:37:05.651 info javascript.0 (2053) Stop script script.js.AllMyMi 10:37:06.971 info javascript.0 (2053) Start javascript script.js.AllMyMi 10:37:07.027 info javascript.0 (2053) script.js.AllMyMi: Starting AllMyMi V.0.2.23 10:37:07.036 info javascript.0 (2053) script.js.AllMyMi: registered 0 subscriptions and 0 schedules 10:37:07.037 info javascript.0 (2053) script.js.AllMyMi: You are already logged in, login canceled 10:37:07.038 info javascript.0 (2053) script.js.AllMyMi: Retrieving your in sg registered MiHome Devices 10:37:07.846 info javascript.0 (2053) script.js.AllMyMi: Found 1 MiHome Devices, those are: 10:37:07.847 info javascript.0 (2053) script.js.AllMyMi: Mi Smart Standing Fan 2 10:37:07.848 info javascript.0 (2053) script.js.AllMyMi: Now searching for supported Devices... 10:37:07.849 info javascript.0 (2053) script.js.AllMyMi: Device Mi Smart Standing Fan 2 is supported, creating DataPoints 10:37:07.870 info javascript.0 (2053) script.js.AllMyMi: Now creating device for dmaker.fan.p18 / XXXXXXXXXXXXXX / XXXXXXXXX / XXXXXXXXXXXXX / 10000 10:37:07.872 info javascript.0 (2053) script.js.AllMyMi: Created device {"_events":{},"_eventsCount":0,"_maxListeners":100,"id":"XXXXX","address":"XXXX","token":"XXXXX","protocol":"local","refresh":10000,"_properties":{},"_propertiesToMonitor":["fan:on","fan:mode","fan:fan-level","fan:horizontal-swing","fan:horizontal-angle","fan:status","alarm:alarm","motor-controller:motor-control","physical-controls-locked:physical-controls-locked","off-delay-time:off-delay-time"],"_miotSpec":null,"_miotSpecType":"urn:miot-spec-v2:device:fan:0000A005:dmaker-p18:1","model":"dmaker.fan.p18","setter":{},"definition":{"info":[{"id":"localip","initial":"","forceCreation":false,"common":{"read":true,"write":true,"name":"Ip Adress","type":"string","role":"value","def":""}},{"id":"token","initial":"","forceCreation":false,"common":{"read":true,"write":true,"name":"Token","type":"string","role":"value","def":""}},{"id":"did","initial":"","forceCreation":false,"common":{"read":true,"write":true,"name":"Device Id","type":"string","role":"value","def":""}},{"id":"model","initial":"","forceCreation":false,"common":{"read":true,"write":true,"name":"Model","type":"string","role":"value","def":""}},{"id":"rssi","initial":0,"forceCreation":false,"common":{"read":true,"write":false,"name":"rssi","type":"number","role":"value.rssi","def":0}},{"id":"name","initial":"","forceCreation":false,"common":{"read":true,"write":true,"name":"Name","type":"string","role":"value","def":""}},{"id":"isOnline","initial":false,"forceCreation":false,"common":{"read":true,"write":true,"name":"Is online","type":"boolean","role":"value","def":false}}],"model":"dmaker.fan.p18","description":"Mi Smart Standing Fan 2","setter":{},"common":[{"name":"fan.on","type":"boolean","role":"switch","read":true,"write":true},{"name":"fan.mode","type":"number","role":"switch","read":true,"write":true,"min":0,"max":1,"states":{"0":"Straight Wind","1":"Natural Wind"}},{"name":"fan.fan-level","type":"number","role":"switch","read":true,"write":true,"min":1,"max":4,"states":{"1":"Slow","2":"Middle","3":"High","4":"Turbo"}},{"name":"fan.horizontal-swing","type":"boolean","role":"switch","read":true,"write":true},{"name":"fan.horizontal-angle","type":"number","role":"switch","read":true,"write":true,"min":30,"max":140,"unit":"°","states":{"30":"30°","60":"60°","90":"90°","120":"120°","140":"140°"}},{"name":"fan.status","type":"number","role":"indicator","read":true,"write":false,"min":1,"max":100},{"name":"alarm.alarm","type":"boolean","role":"switch","read":true,"write":true},{"name":"motor-controller.motor-control","type":"number","role":"switch","read":false,"write":true,"min":0,"max":2,"states":{"0":"None","1":"Left","2":"Right"}},{"name":"physical-controls-locked.physical-controls-locked","type":"boolean","role":"switch","read":true,"write":true,"min":false,"max":true},{"name":"off-delay-time.off-delay-time","type":"number","role":"switch","read":true,"write":true,"min":0,"max":480,"unit":"m"}]},"firstrun":true} now fetching data 10:37:08.240 error javascript.0 (2053) script.js.AllMyMi: TypeError: Cannot read property 'forEach' of undefined 10:37:08.242 error javascript.0 (2053) at CreateDevices (script.js.AllMyMi:845:17) 10:37:08.243 error javascript.0 (2053) at main (script.js.AllMyMi:765:5)
Der Raspi wurde ein Paar mal neu gestartet um dies als Fehlerquelle auszuschließen. Irgendeine Idee?