NEWS
[Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.
-
@haselchen eija klar. Es ging ja auch 3 Tage Aber dann hats einfach aufgehört. Neustart Script und sogar iobroker helfen nicht.
-
Einfach so hört nichts auf
Wirkung hat immer eine Ursache vorher.
Hast du was upgedatet oder das System eventuell automatisch?
Denk nochmal nach. -
@haselchen Ja, IoT Assistants und Telegramm. Ansonsten viele Änderungen an anderen Scripten, die nichts mit Purifier zu tun hatten.
Beim Purifier Script hab ich nur das Logging von true auf false gesetzt.
Habe nun auch alle Definitionfiles nochmal ersetzt. Hilft auch nicht.
Jetzt sehe ich das im Log
javascript.0 2021-05-27 21:59:56.453 warn (7374) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9) javascript.0 2021-05-27 21:59:56.453 warn (7374) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12) javascript.0 2021-05-27 21:59:56.453 warn (7374) at module.exports.EventEmitter.emit (domain.js:483:12) javascript.0 2021-05-27 21:59:56.453 warn (7374) at module.exports.emit (events.js:314:20) javascript.0 2021-05-27 21:59:56.452 warn (7374) at module.exports.<anonymous> (script.js.General.Purifier_2:746:21) javascript.0 2021-05-27 21:59:56.452 warn (7374) at RefreshDps (script.js.General.Purifier_2:793:45) javascript.0 2021-05-27 21:59:56.452 warn (7374) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-05-27 21:59:56.450 warn (7374) You are assigning a string to the state "javascript.0.MiHomeAll.130167928.ct" which expects a number. Please fix your code to use a number or change the state type to string. This warning might javascript.0 2021-05-27 21:59:56.450 warn (7374) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9) javascript.0 2021-05-27 21:59:56.450 warn (7374) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12) javascript.0 2021-05-27 21:59:56.450 warn (7374) at module.exports.EventEmitter.emit (domain.js:483:12) javascript.0 2021-05-27 21:59:56.449 warn (7374) at module.exports.emit (events.js:314:20) javascript.0 2021-05-27 21:59:56.449 warn (7374) at module.exports.<anonymous> (script.js.General.Purifier_2:746:21) javascript.0 2021-05-27 21:59:56.449 warn (7374) at RefreshDps (script.js.General.Purifier_2:793:45) javascript.0 2021-05-27 21:59:56.448 warn (7374) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-05-27 21:59:56.447 warn (7374) You are assigning a string to the state "javascript.0.MiHomeAll.130167928.color_mode" which expects a number. Please fix your code to use a number or change the state type to string. This warni javascript.0 2021-05-27 21:59:56.447 warn (7374) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9) javascript.0 2021-05-27 21:59:56.447 warn (7374) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12) javascript.0 2021-05-27 21:59:56.446 warn (7374) at module.exports.EventEmitter.emit (domain.js:483:12) javascript.0 2021-05-27 21:59:56.446 warn (7374) at module.exports.emit (events.js:314:20) javascript.0 2021-05-27 21:59:56.446 warn (7374) at module.exports.<anonymous> (script.js.General.Purifier_2:746:21) javascript.0 2021-05-27 21:59:56.445 warn (7374) at RefreshDps (script.js.General.Purifier_2:793:45) javascript.0 2021-05-27 21:59:56.445 warn (7374) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-05-27 21:59:56.444 warn (7374) You are assigning a string to the state "javascript.0.MiHomeAll.130167928.rgb" which expects a number. Please fix your code to use a number or change the state type to string. This warning migh javascript.0 2021-05-27 21:59:56.443 warn (7374) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:73:9) javascript.0 2021-05-27 21:59:56.443 warn (7374) at module.exports.loadProperties (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/device-miio.js:107:12) javascript.0 2021-05-27 21:59:56.443 warn (7374) at module.exports.EventEmitter.emit (domain.js:483:12) javascript.0 2021-05-27 21:59:56.443 warn (7374) at module.exports.emit (events.js:314:20) javascript.0 2021-05-27 21:59:56.442 warn (7374) at module.exports.<anonymous> (script.js.General.Purifier_2:746:21) javascript.0 2021-05-27 21:59:56.442 warn (7374) at RefreshDps (script.js.General.Purifier_2:793:45) javascript.0 2021-05-27 21:59:56.441 warn (7374) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:20) javascript.0 2021-05-27 21:59:56.428 warn (7374) You are assigning a string to the state "javascript.0.MiHomeAll.130167928.bright" which expects a number. Please fix your code to use a number or change the state type to string. This warning m
-
Das was Du machen musst steht doch da?
Klar und deutlich . -
@haselchen meinst du
You are assigning a string to the state "javascript.0.MiHomeAll.130167928.bright" which expects a number. Please fix your code to use a number or change the state type to string. This warning m
Dann erklärt sich mir aber nicht wo ich das mache. Ich steuer Yeelight über den dazugehörigen Adapter und nicht über MiHomeAll.
Ich kann mir vorstellen, dass das Script versucht den Wert von den Yeelights auszulesen, den ich über ein anderes Script schreibe. Da aber die Yeelight in dem Fall auch ein String versteht, sollte man dies im MiHomeAll nicht auf eine Number beschränkenhabe auch nochmal geguckt. Also die Brightness schreibe ich auch mit einer Zahl:
-
In dem Script sind doch die verschiedenen Geräte mit Datenpunkten. Musste einfach die Datenpunkte dem Gerät anpassen.
Du hast leider den ganzen Aufbau nicht verstanden
-
@haselchen Ich glaube eher wir reden aneinander vorbei.
Also ich nutze das Script nur für den Purifier. Leider lädt es noch die Datenpunkte von anderen fähigen Geräten aus meinem Account, welche ich allerdings schon früher mittels spezieller Adapter steuerte.
Diese Adapter steuern Ihre eigens angelegten Datenpunkte.
Ich kann mir vorstellen, dass das Script nun die Datenpunkte ja direkt am Gerät ausliest und dann die Werte nicht versteht die die Adapter vorher geschrieben hatten.
-
Hast du das Script so gekürzt das nur die Purifier angelegt werden?
-
@haselchen Nein, darf ich :)? Da steht ja //Ab hier nix mehr ändern!
Und da ich weiß, dass das Script sehr empfindlich ist und man sich exakt an die Readme halten muss..
-
So ist das auch sehr löblich
Die Geräte, die Du nicht brauchst kannst du auskommentieren mit // davor -
@pittini Zunächst mal herzlichen Dank für die Arbeit, das scheint ein großartiges Skript zu sein. Ich plane die Anschaffung eines Xiaomi Ventilators gerade wegen der Möglichkeit der Steuerung über ioBroker. Deshalb einige Fragen um einen Fehlkauf zu verhindern:
-
Der Xiaomi 2S steht auf der Kompatibilitätsliste. Ich benötige den Akku nicht und plane deshalb den Kauf des Xiaomi 2 (ohne S). Der 2 (ohne S) scheint bis auf den Akku baugleich zu sein, heißt das, dass dieser auch über das Skript bedient werden kann?
-
Kann ich mich, sobald ich den Token für ioBroker ausgelesen habe, von der Xiaomi Mi Home App wieder komplett abmelden um nicht ständig Daten nach China zu funken, oder muss ich dort irgendwie angemeldet bleiben?
-
Einige Benutzer scheinen Probleme mit dem Betrieb des Skripts zu haben, wenn ioBroker auf einem Raspi läuft (wie bei mir der Fall). Gibt es auch Raspi-Nutzer wo alles im Skript einwandfrei funktioniert?
-
Wenn ich richtig verstehe kann sowohl EIN/AUS alsauch Fan Speed ueber ioBroker gesteuert werden. Gibt es noch andere Steuerungsmöglichkeiten (z.B. Aufruf des Programms "natürlicher Wind", das der Ventilator ja hat oder EIN/AUS für die Steuerung der Drehung des Ventilators)?
-
Wenn ich es richtig verstehe, benötigt das Skript keine Xiaomi-Basistation für den Betrieb des Ventilators, da dieser direkt auf das WLAN zugreift?
-
-
@fd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
@pittini Zunächst mal herzlichen Dank für die Arbeit, das scheint ein großartiges Skript zu sein. Ich plane die Anschaffung eines Xiaomi Ventilators gerade wegen der Möglichkeit der Steuerung über ioBroker. Deshalb einige Fragen um einen Fehlkauf zu verhindern:
- Der Xiaomi 2S steht auf der Kompatibilitätsliste. Ich benötige den Akku nicht und plane deshalb den Kauf des Xiaomi 2 (ohne S). Der 2 (ohne S) scheint bis auf den Akku baugleich zu sein, heißt das, dass dieser auch über das Skript bedient werden kann?
Erstmal nein. Der wird ne andere Modellbezeichung haben und muß somit erst im Skript und der node-mihome angelegt werden, was aber aufgrund der Ähnlichkeit zum 2S kein Problem sein dürfte.
- Kann ich mich, sobald ich den Token für ioBroker ausgelesen habe, von der Xiaomi Mi Home App wieder komplett abmelden um nicht ständig Daten nach China zu funken, oder muss ich dort irgendwie angemeldet bleiben?
Tokens liest das Skript selber aus, aber die Geräte müssen in der App drinbleiben, Du mußt aber die nicht mehr nutzen. Letztendlich "simuliert" mein Skript die mihome-app, Geräte die dort nicht gelistet sind, können auch nicht gesteuert werden.
- Einige Benutzer scheinen Probleme mit dem Betrieb des Skripts zu haben, wenn ioBroker auf einem Raspi läuft (wie bei mir der Fall). Gibt es auch Raspi-Nutzer wo alles im Skript einwandfrei funktioniert?
Ja es gibt durchaus auch Raspi Nutzer wo es klappt, die Ursachen des Problems sind nach wie vor unbekannt.
- Wenn ich richtig verstehe kann sowohl EIN/AUS alsauch Fan Speed ueber ioBroker gesteuert werden. Gibt es noch andere Steuerungsmöglichkeiten (z.B. Aufruf des Programms "natürlicher Wind", das der Ventilator ja hat oder EIN/AUS für die Steuerung der Drehung des Ventilators)?
Kann ich nicht mit bestimmtheit sagen da ich das Gerät nicht besitze und somit auch nix testen kann. Angelegt sind folgende Datenpunkte:
[{ name: "power", type: "boolean", role: "switch", read: true, write: true }, { name: "angle", type: "number", read: true, write: true, min: 1, max: 120 }, { name: "angle_enable", type: "boolean", role: "switch", read: true, write: true }, { name: "fan_level", type: "number", read: true, write: true, min: 1, max: 4 }, { name: "buzzer", type: "boolean", role: "switch", read: true, write: true }, { name: "child_lock", type: "boolean", role: "switch", read: true, write: true }, { name: "led_b", type: "boolean", role: "switch", read: true, write: true }, { name: "speed_level", type: "number", read: true, write: true, min: 1, max: 4 }, { name: "poweroff_time", type: "number", read: true, write: true, min: 0, max: 540, unit: "m" }]
- Wenn ich es richtig verstehe, benötigt das Skript keine Xiaomi-Basistation für den Betrieb des Ventilators, da dieser direkt auf das WLAN zugreift?
Korrekt.
-
@fd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Gibt es auch Raspi-Nutzer wo alles im Skript einwandfrei funktioniert?
Hier!
-
Wäre bei den aktuellen Temperaturen "cool" wenn die anderen Xiaomi Ventilatoren irgendwann mit drin sind. Ich habe ausgerechnet einen Fan 1X und einen Fan 3, die leider auch noch nicht dabei sind.
-
Einfach auf Github ein Feature Request eröffnen.
@Pittini ist wirklich hilfsbereit und stets dabei User Wünsche zu erfüllen! -
@raspberry Läßt sich vermutlich schon machen, aber Du bist dann Betatester, weil ich ja die Geräte nicht hab, ergo auch nix testen kann. Als erstes brauch ich die genaue Modelbezeichnung, die kriegste wenn Du das Skript installierst und dann in die "Info" Channels guggst.
-
Ich frage bei meinem Purifier die Density ab und steuere demnach die Lüftergeschwindigkeit.
Aber die Density wird nur alle 10 bis 30 Minuten in iobroker upgedatet. In der App direkt.
Laut dem Script sollte eine Abfrage alle 10 Sekunden geschehen. oder? -
@maxpd sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:
Laut dem Script sollte eine Abfrage alle 10 Sekunden geschehen. oder?
Ja, und bei meinem Purifier und allen anderen Geräten Klappt das auch mit dem 10Sek Takt.
-
Moin, ich nutze den H3 und bisher ist auch alles super mit dem Skript. Doch ich wollte gerne den H3 als Hauptthermostat verwenden für das Wohnzimmer um über dessen Temp dann ggf 2 Ventilatoren automatisch zu starten oder zu stoppen.
Da ist mir aufgefallen das die Temp im Skript leider nicht aktualisiert wird bzw keinen realen Wert bekommt und immer auf 23,7 Grad stehen bleibt.
Habe dann auf die aktuellste Version des Skript geupdatet, leider ohne Besserung.
Kann das noch jemand bestätigen?
PS: ich habe testweise schreibrechte für die Tempanzeige gesetzt und den wert gelöscht. Nach kurzer zeit wurden wieder 23,7 Grad gefüllt. Obwohl ich zum testen die Raumthemperatur auf 26 Grad angehoben habe und es in der App und am H3 richtig angeziegt wird.
-
Abend,
verwende das Skripe in der aktuellen Version und möchte einen Xiaomi Air Purifier 3H und Mi Air Purifier Pro H bedienen.
Erhalte folgende Meldungen.
21:52:16.903 error javascript.0 (2434) script.js.common.iobroker-nodemihome: Error: Model zhimi.airpurifier.vb2 is not supported 21:52:16.904 error javascript.0 (2434) at CreateDevices (script.js.common.iobroker-nodemihome:833:36) 21:52:16.910 error javascript.0 (2434) at main (script.js.common.iobroker-nodemihome:765:5)