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.
    • haselchen
      haselchen Most Active @Pittini last edited by

      @pittini

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

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

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

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

          @pittini

          Frauen unterhalten sich halt gerne und viel,
          also musste ich meiner Frau eine Gesprächspartnerin besorgen 😬 😬

          Bin ja heilfroh, dass du den Ventilator integriert hast, so muss ich nachts nicht mehr aufstehen und das Teil ausschalten oder den Timer verlängern.

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

            @Pittini

            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?!

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

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

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

                @pittini

                Müsste dann das Skript nicht erkennen das er offline ist?

                Hast du ne Idee wie wir den Akku Stand auslesen könnten?

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

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

                  @pittini

                  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.

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

                    @pittini

                    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.

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

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

                      Hat hier jemand eine Idee wo mein Fehler liegt?

                      PS sorry für das Cross-Posting, bin mit den Forumsfunktionen noch nicht so vertraut.

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

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

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

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

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

                            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?

                            crunchip 1 Reply Last reply Reply Quote 0
                            • crunchip
                              crunchip Forum Testing Most Active @Pittini last edited by crunchip

                              @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
                              
                              P 1 Reply Last reply Reply Quote 0
                              • P
                                Pittini Developer @crunchip last edited by

                                @crunchip Ok, dankeschön. Es gibt bereits nen Fix (ohne neue Version), damit sollte es weg sein, pls mal testen.

                                haselchen crunchip 3 Replies Last reply Reply Quote 3
                                • haselchen
                                  haselchen Most Active @Pittini last edited by

                                  @pittini

                                  Neue Version getestet, läuft bisher.
                                  Keine Fehler im Log.

                                  Wirklich klasse wie Du das hier supportest und auf Github!
                                  Alle Daumen hoch.

                                  1 Reply Last reply Reply Quote 1
                                  • crunchip
                                    crunchip Forum Testing Most Active @Pittini last edited by

                                    @pittini kam gerade erst dazu, super, läuft 👍

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      Kueppert last edited by Kueppert

                                      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 👍

                                      1 Reply Last reply Reply Quote 0
                                      • crunchip
                                        crunchip Forum Testing Most Active @Pittini last edited by

                                        @pittini weiss nicht ob das schon mal gefragt/gemeldet wurde, bzw ob das nur hin und wieder vorkommt

                                        javascript.0
                                        2021-08-13 10:24:13.351	error	FetchError: request to https://de.api.io.mi.com/app/home/device_list failed, reason: getaddrinfo ENOTFOUND de.api.io.mi.com at ClientRequest.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/lib/index.js:1461:11) at ClientRequest.emit (events.js:412:35) at ClientRequest.emit (domain.js:470:12) at TLSSocket.socketErrorListener (_http_client.js:475:9) at TLSSocket.emit (events.js:400:28) at TLSSocket.emit (domain.js:470:12) at emitErrorNT (internal/streams/destroy.js:106:8) at emitErrorCloseNT (internal/streams/destroy.js:74:3) at processTicksAndRejections (internal/process/task_queues.js:82:21)
                                        
                                        javascript.0
                                        2021-08-13 10:24:13.350	error	Error: request to https://de.api.io.mi.com/app/home/device_list failed, reason: getaddrinfo ENOTFOUND de.api.io.mi.com
                                        
                                        javascript.0
                                        2021-08-13 10:24:13.348	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
                                        
                                        K P 2 Replies Last reply Reply Quote 1
                                        • K
                                          Kueppert @crunchip last edited by

                                          @crunchip diese Fehlermeldung meinte ich ^^

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

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

                                            @pittini weiss nicht ob das schon mal gefragt/gemeldet wurde, bzw ob das nur hin und wieder vorkommt

                                            javascript.0
                                            2021-08-13 10:24:13.351	error	FetchError: request to https://de.api.io.mi.com/app/home/device_list failed, reason: getaddrinfo ENOTFOUND de.api.io.mi.com at ClientRequest.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-fetch/lib/index.js:1461:11) at ClientRequest.emit (events.js:412:35) at ClientRequest.emit (domain.js:470:12) at TLSSocket.socketErrorListener (_http_client.js:475:9) at TLSSocket.emit (events.js:400:28) at TLSSocket.emit (domain.js:470:12) at emitErrorNT (internal/streams/destroy.js:106:8) at emitErrorCloseNT (internal/streams/destroy.js:74:3) at processTicksAndRejections (internal/process/task_queues.js:82:21)
                                            
                                            javascript.0
                                            2021-08-13 10:24:13.350	error	Error: request to https://de.api.io.mi.com/app/home/device_list failed, reason: getaddrinfo ENOTFOUND de.api.io.mi.com
                                            
                                            javascript.0
                                            2021-08-13 10:24:13.348	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
                                            

                                            Sollte nur gelegentlich vorkommen, die devicelist wurde in den alten Versionen nur bei Skriptstart abgefragt, dadurch fiel das nich auf, wird jetzt aber alle 10 Sekunden abgefragt um rssi und isOnline aktuell zu halten und deswegen kann das eher mal auftreten. Mal beobachten, wenn da zu viele Fehler kommen muß ich mir was einfallen lassen.

                                            haselchen 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            911
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            48
                                            439
                                            64529
                                            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