Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Marc12345 @Thomas Braun last edited by

      @thomas-braun Es werden weiterhin keine Daten geladen.
      Ich vermute, dass mein System irgendwie stark vermurkst ist. Evtl. auch durch OMV5, das ja eine eigene Rechtevergabe vornimmt.
      Ich werde den Pi demnächst neu aufsetzen und OMV weg lassen.
      So habe ich jetzt aber zumindest etwas mehr über Rechte und Benutzer gelernt. 👍
      @Pittini Auch wenn schonmal hier im Verlauf geschrieben: Sowas als Adapter für iobroker wäre weltklasse.

      P 1 Reply Last reply Reply Quote 0
      • P
        Pittini Developer @Marc12345 last edited by

        @marc12345 sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

        Auch wenn schonmal hier im Verlauf geschrieben: Sowas als Adapter für iobroker wäre weltklasse.

        Und wie auch schon mal erwähnt, es liegt ja nicht am Willen, sondern ich kanns einfach nicht. Darf gern wer den Code dafür nutzen nenn Adapter draus zu machen ders kann.

        M 1 Reply Last reply Reply Quote 1
        • M
          Marc12345 @Pittini last edited by

          @pittini Leider eine abschliessende Misserfolgsmeldung:
          Habe jetzt ohne irgendwelche Spielereien auf einem Raspi 3b iobroker neu installiert. Die Rechte sind genauso wie bei @thomas-braun. Nichts mit ACL. Ergebnis: Es werden weiterhin keine Daten geladen.

          1 Reply Last reply Reply Quote 0
          • M
            maxpd last edited by maxpd

            Er lief bei mir 3 Tage, aber auch trotz restart des Scripts bekomm ich keine Daten mehr von meinen Devices:
            Das hier ist der Log nach Script neustart.

            
            javascript.0	2021-05-27 14:23:04.166	error	at processTimers (internal/timers.js:497:7)
            javascript.0	2021-05-27 14:23:04.166	error	at listOnTimeout (internal/timers.js:554:17)
            javascript.0	2021-05-27 14:23:04.166	error	at Timeout.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/lib/index.js:1454:13)
            javascript.0	2021-05-27 14:23:04.166	error	(10268) FetchError: network timeout at: https://de.api.io.mi.com/app/home/device_list
            javascript.0	2021-05-27 14:23:04.166	error	(10268) Error: network timeout at: https://de.api.io.mi.com/app/home/device_list
            javascript.0	2021-05-27 14:23:04.164	error	(10268) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
            
            haselchen 1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active last edited by

              @marc12345 sagte in [Vorlage] Xiaomi Airpurifier 3H u.a. inkl. Token auslesen.:

              Die Rechte sind genauso wie bei @thomas-braun. Nichts mit ACL.

              Meine Dateien sind doch mit ACLs versehen.

              1 Reply Last reply Reply Quote 0
              • haselchen
                haselchen Most Active @maxpd last edited by

                @maxpd

                Dein Problem scheint eher am Netzwerk zu liegen als am Script.
                Firewall?
                Pihole?

                M 1 Reply Last reply Reply Quote 0
                • M
                  maxpd @haselchen last edited by

                  @haselchen gell, liest sich so. Hab ich mich auch gewundert. Aber tatsächlich hab ich weder was am Netzwerk gemacht, noch wüsste ich wie ich iobroker Firewall aktiviere/ändere.

                  Wenn ich die URL von Hand öffne bekomme ich nur einen Authentication Error:

                  {"code":0,"message":"auth err"}

                  haselchen 1 Reply Last reply Reply Quote 0
                  • S
                    SaiBot1981 last edited by

                    Moin, also das Skript läuft soweit ja immer stabil und gut. Aber wie rechne ich die Nutzungszeit vernünftig um das ich Tage und dir übrigen Stunden habe und nicht nur die Stundenanzahl?

                    1 Reply Last reply Reply Quote 0
                    • haselchen
                      haselchen Most Active @maxpd last edited by haselchen

                      @maxpd

                      Aber das ganze ist tatsächlich kein Hexenwerk.
                      In dem Script die Anmeldedaten der Mi Home App eingeben. Die .js Dateien in den Ordner kopieren. node-mihone eintragen im Java Script Adapter. Mindestens Nodejs12 und los geht's.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        maxpd @haselchen last edited by

                        @haselchen eija klar. Es ging ja auch 3 Tage 🙂 Aber dann hats einfach aufgehört. Neustart Script und sogar iobroker helfen nicht.

                        haselchen 1 Reply Last reply Reply Quote 0
                        • haselchen
                          haselchen Most Active @maxpd last edited by

                          @maxpd

                          Einfach so hört nichts auf 😉
                          Wirkung hat immer eine Ursache vorher.
                          Hast du was upgedatet oder das System eventuell automatisch?
                          Denk nochmal nach.

                          1 Reply Last reply Reply Quote 0
                          • M
                            maxpd last edited by maxpd

                            @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
                            
                            
                            haselchen 1 Reply Last reply Reply Quote 0
                            • haselchen
                              haselchen Most Active @maxpd last edited by

                              @maxpd

                              Das was Du machen musst steht doch da?
                              Klar und deutlich .

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                maxpd @haselchen last edited by maxpd

                                @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änken 🙂

                                habe auch nochmal geguckt. Also die Brightness schreibe ich auch mit einer Zahl:

                                a04d3ba6-6173-4315-82eb-ebebaa107719-image.png

                                1 Reply Last reply Reply Quote 0
                                • haselchen
                                  haselchen Most Active last edited by haselchen

                                  @maxpd

                                  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 😕

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    maxpd @haselchen last edited by

                                    @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.

                                    haselchen 1 Reply Last reply Reply Quote 0
                                    • haselchen
                                      haselchen Most Active @maxpd last edited by

                                      @maxpd

                                      Hast du das Script so gekürzt das nur die Purifier angelegt werden?

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        maxpd @haselchen last edited by

                                        @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.. 🙂

                                        haselchen 1 Reply Last reply Reply Quote 0
                                        • haselchen
                                          haselchen Most Active @maxpd last edited by

                                          @maxpd

                                          So ist das auch sehr löblich 😁
                                          Die Geräte, die Du nicht brauchst kannst du auskommentieren mit // davor

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            fd last edited by

                                            @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:

                                            1. 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?

                                            2. 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?

                                            3. 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?

                                            4. 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)?

                                            5. 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?

                                            P Thomas Braun 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            446
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            49
                                            447
                                            65080
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo