Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Frage] Xiaomi Vacuum cleaner

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Frage] Xiaomi Vacuum cleaner

    This topic has been deleted. Only users with topic management privileges can see it.
    • Meistertr
      Meistertr Developer last edited by

      Offtopic: http://www.roboter-forum.com/showthread.php?t=23799

      Das lässt hoffen

      Gesendet von meinem Handy

      1 Reply Last reply Reply Quote 0
      • N
        NetFritz last edited by

        Hallo
        ` > Um de Tocken auszulesen habe ich auf meinem OnePlus5 den Expertenmodus und das USB-Debugging aktiviert.

        Auf dem Win 8.1 und auch auf den Win 10 Rechner habe ich MiToolkit gezogen und gestartet.

        Gehe ich auf Verbindung prüfen kommt bei beiden "Es konnte kein Gerät gefunden werden".

        Auch ein Tausch der USB Ports brachte nichts.

        Das Handy wird von beiden Rechnern erkannt wenn ich den USB einstecke. `
        Habe Android 7.1.1 auf meinen OnePlus5.

        Habe es mit der Vorgängerversion von MiToolkit 1.3.3 versucht, aber das gleiche Ergebnis.

        Was kann ich machen?

        Gruß NetFritz

        1 Reply Last reply Reply Quote 0
        • M
          markus- 0 last edited by

          @Meistertr:

          Offtopic: http://www.roboter-forum.com/showthread.php?t=23799

          Das lässt hoffen `

          Nice!

          Ich wette übrigens dass das ein Update wird, kein neues Modell.

          1 Reply Last reply Reply Quote 0
          • Meistertr
            Meistertr Developer last edited by

            Ich hätte gerne beides.

            Gesendet von meinem Handy

            1 Reply Last reply Reply Quote 0
            • Meistertr
              Meistertr Developer last edited by

              @NetFritz:

              Hallo
              ` > Um de Tocken auszulesen habe ich auf meinem OnePlus5 den Expertenmodus und das USB-Debugging aktiviert.

              Auf dem Win 8.1 und auch auf den Win 10 Rechner habe ich MiToolkit gezogen und gestartet.

              Gehe ich auf Verbindung prüfen kommt bei beiden "Es konnte kein Gerät gefunden werden".

              Auch ein Tausch der USB Ports brachte nichts.

              Das Handy wird von beiden Rechnern erkannt wenn ich den USB einstecke. `
              Habe Android 7.1.1 auf meinen OnePlus5.

              Habe es mit der Vorgängerversion von MiToolkit 1.3.3 versucht, aber das gleiche Ergebnis.

              Was kann ich machen?

              Gruß NetFritz ` Hast du es mal mit einem anderen Handy versucht? Bei manchen will es einfach nicht funktionieren. Debug Modus an und Java installiert? Die test im mihome toolkit sind alle positiv? Wo genau bricht er ab. Was für ein Fehler kommt? Öffnet sich die app auf dem Handy? Sollst du ein PW eingeben?

              Nur mir geht nicht, lässt sich der Fehler schlecht bis garnicht eingrenzen. Soweit ich weiß wurde es auf einem one vom Entwickler getestet.

              Edit. Welche mihome Version? Ggf mal eine ältere von Anfang Mai oder so installieren

              Gesendet von meinem Handy

              Edit2 hatte das erste nicht gelesen [emoji1]

              1 Reply Last reply Reply Quote 0
              • N
                NetFritz last edited by

                Hallo

                danke für die Antwort.
                ` > Hast du es mal mit einem anderen Handy versucht? Bei manchen will es einfach nicht funktionieren. Debug Modus an und Java installiert? Die test im mihome toolkit sind alle positiv? Wo genau bricht er ab. Was für ein Fehler kommt? Öffnet sich die app auf dem Handy? Sollst du ein PW eingeben?

                Nur mir geht nicht, lässt sich der Fehler schlecht bis garnicht eingrenzen. Soweit ich weiß wurde es auf einem one vom Entwickler getestet.

                Edit. Welche mihome Version? Ggf mal eine ältere von Anfang Mai oder so installieren `
                Werde das mal mit dem Debug An/Aus versuchen und ein anderes Gerät ausprobieren.

                Java ist installiert.

                Wenn ich auf Verbindung in MiToolkit drücke kommt ; "Es konnte kein Gerät gefunden werden"

                Getestet mit MiToolkit 1.4 und 1.3.3

                Hatte ich aber alles vorher schon geschrieben.

                Gruß NetFritz

                1 Reply Last reply Reply Quote 0
                • Meistertr
                  Meistertr Developer last edited by

                  Der Debug Modus muss auf dem Handy zwingend eingeschaltet sein, damit das programm den Zugriff erhält

                  Gesendet von meinem Handy

                  1 Reply Last reply Reply Quote 0
                  • N
                    NetFritz last edited by

                    Hallo

                    USB Debugging ist eingeschaltet.

                    Hatte ich doch schon geschrieben.

                    Gruß NetFritz

                    1 Reply Last reply Reply Quote 0
                    • D
                      darkbrain85 last edited by

                      Kann uns das hier irgendwie weiterhelfen? Habe den link gerade spontan gefunden und noch nicht genau die ganzen Kommentare gelesen in denen es um diese Lösung geht.

                      https://forum.smartapfel.de/forum/threa … /?pageNo=1

                      1 Reply Last reply Reply Quote 0
                      • M
                        markus- 0 last edited by

                        @darkbrain85:

                        Kann uns das hier irgendwie weiterhelfen? Habe den link gerade spontan gefunden und noch nicht genau die ganzen Kommentare gelesen in denen es um diese Lösung geht.

                        https://forum.smartapfel.de/forum/threa … /?pageNo=1 `
                        Leider nicht. Das ist im Prinzip die ganz alte Version wie mit der Flole App.

                        Das funktioniert noch wenn man eine alte Firmware drauf hat, bei den neueren wird der Token bei Einrichtung aber ja neu generiert.

                        Wir haben zumindest bei iOS aktuell keine zukunftssichere Möglichkeit an den Token zu kommen. Nur über alte Versionen der App oder alte Firmware. Bis der Token bei Android auch in der DB verschlüsselt wird ist es nur noch eine Frage der Zeit.

                        1 Reply Last reply Reply Quote 0
                        • A
                          Alexh last edited by

                          Hallo zusammen,

                          es gibt anscheinend Licht am Ende des Tunnels:

                          https://github.com/rytilahti/python-mirobo/issues/75

                          https://www.loxforum.com/forum/german/s … wlan/page6

                          Ich hoffe damit kann einer von euch etwas anfangen. Werde heute auf jeden Fall mal probieren den Token mit Python umzuwandeln.

                          Gruß

                          Alex

                          syssi created this issue in rytilahti/python-mirobo

                          closed Column ZToken of the iOS app contains a 96 character token #75

                          1 Reply Last reply Reply Quote 0
                          • Meistertr
                            Meistertr Developer last edited by

                            @Alexh:

                            Hallo zusammen,

                            es gibt anscheinend Licht am Ende des Tunnels:

                            https://github.com/rytilahti/python-mirobo/issues/75

                            https://www.loxforum.com/forum/german/s … wlan/page6

                            Ich hoffe damit kann einer von euch etwas anfangen. Werde heute auf jeden Fall mal probieren den Token mit Python umzuwandeln.

                            Gruß

                            Alex ` Werde es heute Abend in den Adapter einpflegen. Sollte ja schnell gemacht sein…

                            Gesendet von meinem Handy

                            1 Reply Last reply Reply Quote 0
                            • S
                              skorpil last edited by

                              Und dann?

                              Beschreibst Du dann dort das Vorgehen?

                              1 Reply Last reply Reply Quote 0
                              • ldittmar
                                ldittmar Developer last edited by

                                Hallo Leute,

                                bei mir funktioniert alles prima. Bis auf die Tatsache, dass manchmal vergessen wird den Staubbehälter zu leeren. Kann man vom Sauger nicht auslesen, dass der Behälter entnommen wurde? Dann könnte ich ja darauf reagieren 🙂

                                Grüße,

                                ldittmar

                                1 Reply Last reply Reply Quote 0
                                • Meistertr
                                  Meistertr Developer last edited by

                                  So hab mich die letzten morgende mit der Verschlüsselung herumgeschlagen. wenn jemand mit ios dieses mal testen könnte ob die Tokenberechnung so korrekt ist wäre das super. ist jetzt erst mal ein normales Js-script und der token wird im log aussgegeben. Da mit das so noch nicht gefällt, ich aber noch nciht weiß wie ich es schöner realisieren kann baue ich es im Adapter wenn ich es eleganter gelößt habe und Rückmeldung bekommen habe, ob die Berechnung so korrekt ist.

                                  var crypto = require('crypto');
                                  
                                  var iostoken = '16a935db276e19b1c7bef0739f2deb7d3aca43c5e26a3c6445351cb2fb8495ea0143db63ee66b0cdff9f69917680151e';
                                  
                                  function  convertIos   (iot){
                                          var key = new Buffer('00000000000000000000000000000000', 'hex');
                                          log("key= " + key.toString('hex'));
                                          var keystring = '00000000000000000000000000000000';
                                  
                                          var ioto = new Buffer(iostoken.substr(0,64), 'hex');
                                          var iot2 = new Buffer(iostoken.substr(32,96), 'hex');
                                          log("ioto= " + ioto.toString('hex'));
                                          //return ioto;
                                          var decipher = crypto.createDecipheriv('aes-128-cbc', key,key);
                                          var decipher1 = crypto.createDecipheriv('aes-128-cbc', key,key);
                                          var dec =  decipher.update(ioto, 'binary', 'utf8') ;
                                          var dec2 =  decipher1.update(iot2, 'binary', 'utf8') ;
                                          log("dec2= " + (dec2)); 
                                          var test =""+ dec +dec2;
                                          log("Das Sollte der token sein= " + (test)); 
                                  
                                          //dec += decipher.final('utf8');
                                  
                                          //dec = dec.substring(0, dec.le ngth - 1);
                                          //return dec;
                                      }
                                  
                                      convertIos("s");
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • W
                                    weimaraner last edited by

                                    Habe zwar kein ios und (leider noch) keinen Xiaomi, lese hier aber schon lange mit und bin immer wieder baff über Euer know-how und Engagement.

                                    Grüße Andreas

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      skorpil last edited by

                                      @Meistertr:

                                      So hab mich die letzten morgende mit der Verschlüsselung herumgeschlagen. wenn jemand mit ios dieses mal testen könnte ob die Tokenberechnung so korrekt ist wäre das super. ist jetzt erst mal ein normales Js-script und der token wird im log aussgegeben. Da mit das so noch nicht gefällt, ich aber noch nciht weiß wie ich es schöner realisieren kann baue ich es im Adapter wenn ich es eleganter gelößt habe und Rückmeldung bekommen habe, ob die Berechnung so korrekt ist.

                                      var crypto = require('crypto');
                                       
                                      var iostoken = '16a935db276e19b1c7bef0739f2deb7d3aca43c5e26a3c6445351cb2fb8495ea0143db63ee66b0cdff9f69917680151e';
                                       
                                        
                                      function  convertIos   (iot){
                                              var key = new Buffer('00000000000000000000000000000000', 'hex');
                                              log("key= " + key.toString('hex'));
                                              var keystring = '00000000000000000000000000000000';
                                      
                                              var ioto = new Buffer(iostoken.substr(0,64), 'hex');
                                              var iot2 = new Buffer(iostoken.substr(32,96), 'hex');
                                              log("ioto= " + ioto.toString('hex'));
                                              //return ioto;
                                              var decipher = crypto.createDecipheriv('aes-128-cbc', key,key);
                                              var decipher1 = crypto.createDecipheriv('aes-128-cbc', key,key);
                                              var dec =  decipher.update(ioto, 'binary', 'utf8') ;
                                              var dec2 =  decipher1.update(iot2, 'binary', 'utf8') ;
                                              log("dec2= " + (dec2)); 
                                              var test =""+ dec +dec2;
                                              log("Das Sollte der token sein= " + (test)); 
                                          
                                              //dec += decipher.final('utf8');
                                      
                                              //dec = dec.substring(0, dec.le ngth - 1);
                                              //return dec;
                                          }
                                          
                                          
                                          convertIos("s");
                                      ```` `  
                                      

                                      Kann leider nicht testen, da ich nicht zu Hause bin

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        Alexh last edited by

                                        Dumme Frage aber wo und wie muss ich den Code einfügen? Dann probiere ich mal mein Glück.

                                        1 Reply Last reply Reply Quote 0
                                        • AlCalzone
                                          AlCalzone Developer last edited by

                                          @Meistertr:

                                          So hab mich die letzten morgende mit der Verschlüsselung herumgeschlagen. wenn jemand mit ios dieses mal testen könnte ob die Tokenberechnung so korrekt ist wäre das super. ist jetzt erst mal ein normales Js-script und der token wird im log aussgegeben. Da mit das so noch nicht gefällt, ich aber noch nciht weiß wie ich es schöner realisieren kann baue ich es im Adapter wenn ich es eleganter gelößt habe und Rückmeldung bekommen habe, ob die Berechnung so korrekt ist. `
                                          Hat funktioniert! Was mir aufgefallen ist: Die letzten 32 Hex-Zeichen (0143db63ee66b0cdff9f69917680151e) sind bei meinem verschlüsselten Token identisch, das scheint Padding zu sein. Vielleicht lässt sich so die Entschlüsselung noch vereinfachen.

                                          Edit: Der Code lässt sich vereinfachen. Der Knackpunkt ist aes-128-ecb mit leerem IV ("") und AutoPadding=false:

                                          var crypto = require('crypto');
                                          
                                          var iostoken = '3a8e3ba61b7ad24a4132d9b55fd6b9cc4c952fbe34fc0bb298d3811d07a4c3310143db63ee66b0cdff9f69917680151e';
                                          var expected = '6a66717767744f594f38714f52677a69'; // für Debug-Zwecke
                                          
                                          const key = Buffer.alloc(16, 0); // Oder new Buffer("0.....0", "hex") für alte NodeJS
                                          const iv = "";
                                          const encrypted = Buffer.from(iostoken.substr(0,64), "hex");
                                          const decipher = crypto.createDecipheriv("aes-128-ecb", key, "");
                                          decipher.setAutoPadding(false);
                                          const decrypted = decipher.update(encrypted, "binary", "ascii") /*+ decipher.final("ascii")*/;
                                          
                                          log(`decrypted = ${decrypted} | expected = ${expected} | match = ${expected===decrypted}`);
                                          

                                          Gibt bei mir aus:

                                          decrypted = 6a66717767744f594f38714f52677a69 | expected = 6a66717767744f594f38714f52677a69 | match = true
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • AlCalzone
                                            AlCalzone Developer last edited by

                                            @Alexh:

                                            Dumme Frage aber wo und wie muss ich den Code einfügen? Dann probiere ich mal mein Glück. `
                                            Als neues Skript im JavaScript-Adapter. Ist nur testweise und kann später gelöscht werden.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            728
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            204
                                            2196
                                            802459
                                            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