NEWS
[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
-
@Pittini Der Ventilator ist drin, kann ihn auch schon mit ein paar Fehlern steuern!
-
@hilde0407 sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@Pittini Der Ventilator ist drin, kann ihn auch schon mit ein paar Fehlern steuern!
Sehr fein! Sobald Du das soweit fertig hast, würds mich freuen wenn Du die Daten zur Verfügung stellst, dann bau ich das gleich noch als zweites Device rein. Der Plan ist, nach und nach, alle unterstützen Xiaomi Geräte da rein zu bauen sodass man nicht drölfzig Adapter für die Xiaomi Geräte braucht.
PS: Wir können auch gern mal via discord reden falls es unklarheiten oder Fragen gibt. Benutzername is der gleiche wie hier.
-
@Pittini Ich habe Dir das geänderte Skript über Discord gesendet!
-
@Pittini da freu ich mich aber, hattest ja im Discord schon angekündigt ThumpsUp
-
Moin, dein Skript ist soweit ganz gut, nur mit dem Luftreiniger H3 leider noch nicht so gang am Datenpunkte befüllen.
Aber ich teste gerne weiter wenn du jemanden zum testen suchst
-
@SaiBot1981 sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Moin, dein Skript ist soweit ganz gut, nur mit dem Luftreiniger H3 leider noch nicht so gang am Datenpunkte befüllen.
Aber ich teste gerne weiter wenn du jemanden zum testen suchst
Ja, ich weis, es hat sich leider rausgestellt dass ich in einem Punkt von einer falschen Grundannahme ausgegangen bin.
Edit: Behoben mit 0.1.6. -
@Pittini said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
npm Modul
Funktioniert dein Skript auch mit Staubsaugern? Ich versuche gerade dein Skript als Alternative zum mihome-vacuum Adapter zu verwenden, da ich keinen Zugriff auf die Cloud bekomme.
Es wird aber kein Objekt unter javascript.0 angelegt. Woran kann das liegen? Ich verwende dein Skript wie bei Github beschrieben. Also node-mihome als Modul in Instanz javascript.0 hinterlegt und den Code aus "AllMyMi-V0.1.8.js" kopiert und im Skript kopiert. Natürlich habe ich auch meine Anmeldedaten hinterlegt.
Grüße und frohe Festtage,
Timo -
@Spampunk sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@Pittini said in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
npm Modul
Funktioniert dein Skript auch mit Staubsaugern? Ich versuche gerade dein Skript als Alternative zum mihome-vacuum Adapter zu verwenden, da ich keinen Zugriff auf die Cloud bekomme.
AllmyMi is Alphastatus nimm das Purifier Skript zum testen. Und ohne Cloudzugriff wird auch mein Skript nicht laufen, das erste wasses macht is Cloudlogin
Es wird aber kein Objekt unter javascript.0 angelegt. Woran kann das liegen? Ich verwende dein Skript wie bei Github beschrieben. Also node-mihome als Modul in Instanz javascript.0 hinterlegt und den Code aus "AllMyMi-V0.1.8.js" kopiert und im Skript kopiert. Natürlich habe ich auch meine Anmeldedaten hinterlegt.
Ohne Log, Glaskugelraten.
-
@Pittini hab nun auch mal den PurifierH3 in Betrieb genommen. Zuerst hatte ich den Token über "miio discover" ausgelesen und im miio Adapter eingetragen, der zeigte jedoch "falscher Token" im log und hat dementsprechend kein Gerät angelegt.
Anschliessend hab ich die neuste Version von AllmyMi installiert zum Test, dort wurde wurde allerdings "ein anderer token" ausgelesen und das Gerät wurde angelegt. Testhalber "den Token" was per script ausgelesen wurde, im miio Adapter hinterlegt, somit wurde auch dort das Gerät angelegt.
Bei beiden jedoch keine vollständigen Datenpunkte bzw keine Steuerung möglich.also letzte Version vom Purifier Script installiert, Gerät und Datenpunkte vorhanden. Jedoch stimmt der Wert z.b. bei
javascript.0.MiHome.xvz.FilterRemaining nicht überein mit dem, was in der App selbst angezeigt wird.Laut Script liegt der Wert bei 68,68686868686868 days
App zeigt
Filter verbleibend 99%
geschätzte Lebensdauer 145 TageEdit: sorry für die blöde Frage, wie kann ich das log abschalten?
avascript.0 2020-12-25 14:13:13.500 info (22220) script.js.purifier3H: Reaching RefreshDps javascript.0 2020-12-25 14:13:03.635 info (22220) script.js.purifier3H: [true,'auto',1,true,1,20.9,54,1,68.68686868686868]
-
@crunchip Das letzt Purifier Skript sollte komplett funktionieren, mit Ausnahme der in der readme aufgeführten Known Issues. Die ankommenden Daten werden von mir in keiner Weise verändert, wenn ein Wert nicht stimmt, dann kommt der schon falsch an, aber ich gugg mal ob ich rausfind woher das kommt.
Da ich nicht weis wann der node-mihome Entwickler meinen pr merged, kannste Dir evtl auch selber helfen, siehe Erklärung (vorletzter post) hier: https://github.com/Pittini/iobroker-nodemihome/issues/1Zum Thema Log....Zeile 12 (logging) auf false
-
@Pittini
Purifier-Script 0.1.6
AllMyMi-V0.1.8Steffen
miio Adapter
ok, ich hatte Zeile 172 und 214 auskommentiert
@Pittini sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Da ich nicht weis wann der node-mihome Entwickler
danke, seh ich mir an
Edit:
Firmeware Version ist 2.0.7.0017, falls das noch interessant ist -
@crunchip Jo, die AllmyMi is eigentlich noch nicht zum verwenden gedacht, die ändert sich teilw. mehrmals täglich.
Aber das Purifier Skript schaut für mich soweit gut aus, wenn das schalten auch klappt is doch alles gut. Ich selber hab das ja auch laufen hier und da haut alles soweit hin. -
@Pittini ok, ich hatte nun mal die zhimi.airpurifier.mb3.js getauscht und neugestartet, allerdings habe ich nun in beiden scripten den Fehler dass das Modul nicht gefunden wird
15:18:28.521 info javascript.0 (26884) Stop script script.js.MiHome 15:18:28.532 info javascript.0 (26884) Start javascript script.js.MiHome 15:18:28.555 error javascript.0 (26884) script.js.MiHome: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome' 15:18:28.555 error javascript.0 (26884) at script.js.MiHome:3:16 15:18:28.556 error javascript.0 (26884) at script.js.MiHome:444:3 15:18:28.556 info javascript.0 (26884) script.js.MiHome: Starting AllMyMi V.0.1.7 15:18:28.557 info javascript.0 (26884) script.js.MiHome: Reaching init 15:18:28.558 info javascript.0 (26884) script.js.MiHome: registered 0 subscriptions and 0 schedules 15:18:28.559 error javascript.0 (26884) script.js.MiHome: TypeError: Cannot read property 'miioProtocol' of undefined 15:18:28.559 error javascript.0 (26884) at Init (script.js.MiHome:201:12) 15:18:28.559 error javascript.0 (26884) at script.js.MiHome:65:1 15:18:28.559 error javascript.0 (26884) at script.js.MiHome:444:3
15:24:55.022 info javascript.0 (26884) Stop script script.js.purifier3H 15:24:55.036 info javascript.0 (26884) Start javascript script.js.purifier3H 15:24:55.059 error javascript.0 (26884) script.js.purifier3H: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../node-mihome' 15:24:55.063 error javascript.0 (26884) at script.js.purifier3H:3:16 15:24:55.063 error javascript.0 (26884) at script.js.purifier3H:272:3 15:24:55.064 info javascript.0 (26884) script.js.purifier3H: Starting MiHome-Airpurifier3H-V0.1.6 15:24:55.064 info javascript.0 (26884) script.js.purifier3H: Reaching init 15:24:55.064 info javascript.0 (26884) script.js.purifier3H: registered 0 subscriptions and 0 schedules 15:24:55.065 error javascript.0 (26884) script.js.purifier3H: TypeError: Cannot read property 'miioProtocol' of undefined 15:24:55.066 error javascript.0 (26884) at Init (script.js.purifier3H:114:12) 15:24:55.066 error javascript.0 (26884) at script.js.purifier3H:29:1 15:24:55.066 error javascript.0 (26884) at script.js.purifier3H:272:3
-
@crunchip sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@Pittini ok, ich hatte nun mal die zhimi.airpurifier.mb3.js getauscht und neugestartet, allerdings habe ich nun in beiden scripten den Fehler dass das Modul nicht gefunden wird
Na dann hast beim ändern iwas falsch gemacht. Isses denn im JS Adapter noch drin?
-
@Pittini wüsste nicht was ich da falsch machen kann.
Hab die .js aufgerufen und mit der aus deinem Link ersetzt.
edit: jetzt weiss ich den Fehler, Browser hatte übersetzt englisch/deutsch, hatte ich nicht drauf geachtetEdit1:Purifier Script stimmen nun die Datenpunkte
AllmyMi aber unverändert-keine Werte -
@crunchip sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@Pittini wüsste nicht was ich da falsch machen kann.
Hab die .js aufgerufen und mit der aus deinem Link ersetzt.
edit: jetzt weiss ich den Fehler, Browser hatte übersetzt englisch/deutsch, hatte ich nicht drauf geachtetEdit1:Purifier Script stimmen nun die Datenpunkte
AllmyMi aber unverändert-keine WerteNochmal, Allmymi is noch nicht zum Gebrauch, das ne Dev Version, Werte anzeigen is da noch gar nich implementiert in Deiner Version, das hab ich erst gestern Nacht gemacht. Sei einfach mit der Purifier Variante glücklich, soweit ich das verstanden hab läuft die ja jetzt. Nicht falsch verstehen, bin froh wenn ich Tester hab, aber halt erst wenns Sinn macht.
-
@Pittini kein Problem, hatte ja geschrieben, installiert zum Test....alles gut
zum Thema Purifier Script,
ist mir aufgefallen, das der DP Filter remaining scheinbar hin und wieder seinen Wert verändert( total abweichend).
Wie gesagt, Gerät ist neu, laut App verbleibend 144 Tage. Hatte ja anfangs geschrieben das der Wert nicht übereinstimmt(68.6868686). Nachdem ich die .js geändert hatte, wurden anschliessend die verbleibende Tage richtig angezeigt. Abends hatte ich dann nochmal nachgesehen, wieder ein total falscher Wert.
jetzt gerade werden 108.208333333333 angezeigt.
Das nur als Hinweis, da ich nicht weiß, wie dieser zu Stande kommt (Berechnung/Daten holen/senden) und es eventuell nennenswert ist.@Pittini sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Sei einfach mit der Purifier Variante glücklich
bin ich
-
@crunchip sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Das nur als Hinweis, da ich nicht weiß, wie dieser zu Stande kommt (Berechnung/Daten holen/senden) und es eventuell nennenswert ist.
In der Datei die Du ändern musstest, findest direkt die Berechnung:
getFilterRemaining() { const filterTotal = this.properties['filter:filter-life-level']; const filterUsed = this.properties['filter:filter-used-time']; if (filterTotal > 0 && filterUsed >= 0) { //return Math.max((1 - filterUsed / filterTotal) * 100, 0); return Math.max(filterUsed / (100 - filterTotal) * filterTotal/24, 0); } return undefined; }
Mehr is da nicht, die Daten kommen direkt aus der Cloud
-
@Pittini
Ich habe mal das Skript neu gestartet, aber das Log hat wohl nicht viel Aussagekraft:javascript.0 2020-12-26 12:48:45.813 info (28063) script.js.common.Mihome: registered 0 subscriptions and 0 schedules javascript.0 2020-12-26 12:48:45.785 info (28063) script.js.common.Mihome: Reaching init javascript.0 2020-12-26 12:48:45.784 info (28063) script.js.common.Mihome: Starting AllMyMi V.0.1.8 javascript.0 2020-12-26 12:48:45.741 info (28063) Start javascript script.js.common.Mihome javascript.0 2020-12-26 12:48:34.299 info (28063) Stop script script.js.common.Mihome
Unter https://i.mi.com/ kann ich mich mit meinen Anmeldedaten einloggen, aber ich habe den Eindruck, dass dies aus ioBroker heraus nicht funktioniert. Hast Du eventuell eine Ahnung, woran das liegen kann, oder wie ich das beseitigen kann? Alle Adapter & Node,js sind aktuell, läuft auf Debian Buster.
Viele Grüße,
Timo -
@Spampunk AllMyMi is dev die kann gar nicht gehen bei Dir weil da Axios noch verwendet wird. Nimm doch bitte einfach die Purifier Version um zu sehen ob Daten kommen.