Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [Frage] Xiaomi Vacuum cleaner

NEWS

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    7
    1
    98

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    845

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.4k

[Frage] Xiaomi Vacuum cleaner

Scheduled Pinned Locked Moved ioBroker Allgemein
2.2k Posts 204 Posters 1.0m Views 39 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    NetFritz
    wrote on last edited by
    #1172

    Hallo

    USB Debugging ist eingeschaltet.

    Hatte ich doch schon geschrieben.

    Gruß NetFritz

    1 Reply Last reply
    0
    • D Offline
      D Offline
      darkbrain85
      wrote on last edited by
      #1173

      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
      0
      • M Offline
        M Offline
        markus- 0
        wrote on last edited by
        #1174

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

        <size size="85">https://forum.fhem.de/index.php?topic=73052</size>

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Alexh
          wrote on last edited by
          #1175

          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

          1 Reply Last reply
          0
          • MeistertrM Offline
            MeistertrM Offline
            Meistertr
            Developer
            wrote on last edited by
            #1176

            @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
            0
            • S Offline
              S Offline
              skorpil
              wrote on last edited by
              #1177

              Und dann?

              Beschreibst Du dann dort das Vorgehen?

              1 Reply Last reply
              0
              • ldittmarL Offline
                ldittmarL Offline
                ldittmar
                Developer
                wrote on last edited by
                #1178

                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
                0
                • MeistertrM Offline
                  MeistertrM Offline
                  Meistertr
                  Developer
                  wrote on last edited by
                  #1179

                  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
                  0
                  • W Offline
                    W Offline
                    weimaraner
                    wrote on last edited by
                    #1180

                    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
                    0
                    • S Offline
                      S Offline
                      skorpil
                      wrote on last edited by
                      #1181

                      @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
                      0
                      • A Offline
                        A Offline
                        Alexh
                        wrote on last edited by
                        #1182

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

                        1 Reply Last reply
                        0
                        • AlCalzoneA Offline
                          AlCalzoneA Offline
                          AlCalzone
                          Developer
                          wrote on last edited by
                          #1183

                          @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
                          

                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                          1 Reply Last reply
                          0
                          • AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            wrote on last edited by
                            #1184

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

                            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              Alexh
                              wrote on last edited by
                              #1185

                              @AlCalzone:

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

                              Dann muss ich aber von Blockly auf JavaScript umschalten oder? Aber auf Blockly komme ich dann ja nicht mehr zurück. Mit JavaScript habe ich es nämlich nicht so.

                              Danke für die Hilfe.

                              1 Reply Last reply
                              0
                              • AlCalzoneA Offline
                                AlCalzoneA Offline
                                AlCalzone
                                Developer
                                wrote on last edited by
                                #1186

                                @Alexh:

                                Dann muss ich aber von Blockly auf JavaScript umschalten oder? Aber auf Blockly komme ich dann ja nicht mehr zurück. Mit JavaScript habe ich es nämlich nicht so. `
                                Ja, du erstellst einfach ein neues Skript, wählst dort JavaScript aus und fügst den Code ein. Brauchst du ja nicht mehr ändern (außer den 96-Zeichen Token). Wenn alles läuft, löschst du es einfach wieder, nachdem du den Token aus dem Log kopiert hast.

                                Deine anderen Skripte bleiben davon unberührt.

                                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                1 Reply Last reply
                                0
                                • MeistertrM Offline
                                  MeistertrM Offline
                                  Meistertr
                                  Developer
                                  wrote on last edited by
                                  #1187

                                  @AlCalzone:

                                  @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
                                  ```` `  Super danke. Darauf hatte ich gehofft, dass jemand mit Ahnung von Verschlüsselung mir sagen kann wie man es vereinfacht. Ich wusste das es geht aber nur nicht wiem danke. Dann kann ich es morgen in den Adapter übernehmen.
                                  

                                  Gesendet von meinem Handy

                                  1 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    Alexh
                                    wrote on last edited by
                                    #1188

                                    Ah ich hatte gedacht, die Einstellung bezieht sich dann auf alle Script deshalb habe ich es bis jetzt nicht gemacht.

                                    Gesendet von iPhone mit Tapatalk

                                    1 Reply Last reply
                                    0
                                    • A Offline
                                      A Offline
                                      Alexh
                                      wrote on last edited by
                                      #1189

                                      Eine zweite Instanz von dem Adapter laufen zu lassen ist aber nicht möglich oder? Ich bekomme hier im Log immer folgende Fehlermeldung: error instance system.adapter.mihome-vacuum.1 terminated with code 0 (OK)

                                      Ich bräuchte eine zweite Instanz, da ich zwei von den teilen habe. Oder wie kann ich sonst den zweiten auch noch über ioBroker steuern?

                                      Danke.

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        skorpil
                                        wrote on last edited by
                                        #1190

                                        Das geht, Du musst den Port für den zweiten ändern.

                                        1 Reply Last reply
                                        0
                                        • MeistertrM Offline
                                          MeistertrM Offline
                                          Meistertr
                                          Developer
                                          wrote on last edited by
                                          #1191

                                          Manchmal frag ich mich wofür ich mir die Mühe für die readme mache :(

                                          Gesendet von meinem Handy

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          504

                                          Online

                                          32.8k

                                          Users

                                          82.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe