NEWS
[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
-
@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?
-
Hi allerseits,
wer alles hat die 0.2.24 laufen und KEINE Probleme? Und wer hat Probleme in denen die Meldung "Cannot read property 'rssi' of undefined" vorkommt? -
@pittini hab gerade mal die version drauf gemacht, erhalte jedoch
14:06:45.546 info javascript.0 (4954) Stop script script.js.MiHome 14:06:45.614 info javascript.0 (4954) Start javascript script.js.MiHome 14:06:45.619 info javascript.0 (4954) script.js.MiHome: Starting AllMyMi V.0.2.24 14:06:45.622 info javascript.0 (4954) script.js.MiHome: registered 0 subscriptions and 0 schedules 14:06:45.622 info javascript.0 (4954) script.js.MiHome: You are already logged in, login canceled 14:06:45.623 info javascript.0 (4954) script.js.MiHome: Retrieving your in de registered MiHome Devices 14:06:45.730 info javascript.0 (4954) script.js.MiHome: Found 3 MiHome Devices, those are: 14:06:45.731 info javascript.0 (4954) script.js.MiHome: Mi Air Purifier 3/3H 14:06:45.732 error javascript.0 (4954) script.js.MiHome: ReferenceError: praefix0 is not defined 14:06:45.734 error javascript.0 (4954) at PrepareGenericDps (script.js.MiHome:704:33) 14:06:45.734 error javascript.0 (4954) at Init (script.js.MiHome:770:15)
edit selber gefunden kommt davon wenn man immer nur halbe sachen hin und her kopiert
ja die Meldung kommt bei mir
javascript.0 (4954) script.js.MiHome: TypeError: Cannot read property 'rssi' of undefined 14:10:06.631 error javascript.0 (4954) at RefreshGenericDpsTicker (script.js.MiHome:860:37)
javascript.0 2021-08-12 14:10:06.632 error at processTicksAndRejections (internal/process/task_queues.js:95:5) javascript.0 2021-08-12 14:10:06.632 error at runMicrotasks (<anonymous>) javascript.0 2021-08-12 14:10:06.631 error at RefreshGenericDpsTicker (script.js.MiHome:860:37) javascript.0 2021-08-12 14:10:06.629 error script.js.MiHome: TypeError: Cannot read property 'rssi' of undefined
-
@crunchip Ok, dankeschön. Es gibt bereits nen Fix (ohne neue Version), damit sollte es weg sein, pls mal testen.
-
Neue Version getestet, läuft bisher.
Keine Fehler im Log.Wirklich klasse wie Du das hier supportest und auf Github!
Alle Daumen hoch. -
@pittini kam gerade erst dazu, super, läuft
-
bei mir auch. Hab den 3C und die js-Datei selbst in den entsprechenden Ordner kopiert ( zhimi.airpurifier.mb4 ). Die hatte gefehlt. Mal schauen ob ich weiterhin Fehlermessages erhalte. Wenn ja, poste ich die hier mal
Danke für das tolle Skript