Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.0k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

[Frage] Xiaomi Vacuum cleaner

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
2.2k Beiträge 204 Kommentatoren 980.6k Aufrufe 39 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • MeistertrM Offline
    MeistertrM Offline
    Meistertr
    Developer
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • W Offline
      W Offline
      weimaraner
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        skorpil
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          Alexh
          schrieb am zuletzt editiert von
          #1182

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

          1 Antwort Letzte Antwort
          0
          • AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                Alexh
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • MeistertrM Offline
                    MeistertrM Offline
                    Meistertr
                    Developer
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      Alexh
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        Alexh
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          skorpil
                          schrieb am zuletzt editiert von
                          #1190

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

                          1 Antwort Letzte Antwort
                          0
                          • MeistertrM Offline
                            MeistertrM Offline
                            Meistertr
                            Developer
                            schrieb am zuletzt editiert von
                            #1191

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

                            Gesendet von meinem Handy

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              Alexh
                              schrieb am zuletzt editiert von
                              #1192

                              Sorry, jetzt wo du es geschrieben hast, habe ich es auch gesehen.

                              1 Antwort Letzte Antwort
                              0
                              • N Offline
                                N Offline
                                neo4a
                                schrieb am zuletzt editiert von
                                #1193

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

                                Mit 2 Vacuum Cleaner getestet und funktioniert. Vielen Dank dafür!

                                1 Antwort Letzte Antwort
                                0
                                • MeistertrM Offline
                                  MeistertrM Offline
                                  Meistertr
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #1194

                                  die 0.5.8 ist nun offiziell online, hier kann der 96 stellige code vom ios und wie gewohnt auch der 32 stelligen eingegeben werden

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    skorpil
                                    schrieb am zuletzt editiert von
                                    #1195

                                    MeisterTr, einfach mal wieder ein schnelles Dankeschön

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      darkbrain85
                                      schrieb am zuletzt editiert von
                                      #1196

                                      @Meistertr:

                                      die 0.5.8 ist nun offiziell online, hier kann der 96 stellige code vom ios und wie gewohnt auch der 32 stelligen eingegeben werden `

                                      Danke! Krasser Typ ;-)

                                      Gesendet von iPad mit Tapatalk

                                      1 Antwort Letzte Antwort
                                      0
                                      • BluefoxB Offline
                                        BluefoxB Offline
                                        Bluefox
                                        schrieb am zuletzt editiert von
                                        #1197

                                        Bitte berichten ob es geht, dann werden wir die Version ins "stable" verschieben.

                                        1 Antwort Letzte Antwort
                                        0
                                        • MeistertrM Offline
                                          MeistertrM Offline
                                          Meistertr
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #1198

                                          für alle die es noch nciht mitbekommen haben, soeben wurde der Xiaomi vacuum2 vorgestellt er hat nun eine Bereichsauswahl/Ausgrenzung und Wischfunktion
                                          1768_20170919_041437.jpg
                                          1768_screenshot_20170919-042224.jpg
                                          1768_screenshot_20170919-042444.jpg

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          617

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe