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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Frage] Xiaomi Vacuum cleaner

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

      Kurzer Zwischenstand:

      Habe das Protokoll inzwischen entziffern können. Wie wir schon vermutet haben gibt es einen Head und verschlüsselte Daten. Die Daten sind mit AES verschlüsselt und mit einer MD5 Checksummp versehen. Nach dem entschlüsseln werden JSON-Daten sichtbar.

      Alle MI Home Produkte, die Wifi verwenden, scheinen das Protokoll zu nutzen. Meinen Air Purifier kann ich jetzt ansprechen.

      Um dasselbe für den vaccum zu machen (habe keinen) brauche ich folgende Pakete:

      HELO + Antwort,

      Saugen Starten,

      Home und Pause.

      Am liebsten wäre mir ein pcapng-File per PM.

      Ich baue dann daraus ein Python-Skript. Dann kann sich jemand daran austoben und den Javascript-Adapter anpassen.

      Gruß Gerhard 8-)

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

        gst666,

        Großartige Arbeit. Leider habe ich meinen noch nicht, sonst würde ich Dir die Infos senden

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

          @gst666:

          Kurzer Zwischenstand:

          Habe das Protokoll inzwischen entziffern können. Wie wir schon vermutet haben gibt es einen Head und verschlüsselte Daten. Die Daten sind mit AES verschlüsselt und mit einer MD5 Checksummp versehen. Nach dem entschlüsseln werden JSON-Daten sichtbar.

          Alle MI Home Produkte, die Wifi verwenden, scheinen das Protokoll zu nutzen. Meinen Air Purifier kann ich jetzt ansprechen.

          Um dasselbe für den vaccum zu machen (habe keinen) brauche ich folgende Pakete:

          HELO + Antwort,

          Saugen Starten,

          Home und Pause.

          Am liebsten wäre mir ein pcapng-File per PM.

          Ich baue dann daraus ein Python-Skript. Dann kann sich jemand daran austoben und den Javascript-Adapter anpassen.

          Gruß Gerhard 8-) `

          Wie geht man den bei solch einen entschlüsseln vor!? Würde mich sehr interessieren

          Gruß

          Adrian

          Gesendet von iPhone mit Tapatalk Pro

          1 Reply Last reply Reply Quote 0
          • L
            looxer01 last edited by

            @simpixo:

            HELO + Antwort,

            Saugen Starten,

            Home und Pause.

            Am liebsten wäre mir ein pcapng-File per PM. `

            Hi,

            haette ich nicht gedacht, dass das zu entschluesseln ist - Respekt.

            hab dir ne PN geschickt.

            vG Looxer

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

              Brauchst du mehrere? Dann schicke ich dir meine nachher auch noch. Mich würde auch interessieren wie du das hinbekommen hast..

              Gesendet von meinem E5823 mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                @gst666:

                Kurzer Zwischenstand:

                Habe das Protokoll inzwischen entziffern können. Wie wir schon vermutet haben gibt es einen Head und verschlüsselte Daten. Die Daten sind mit AES verschlüsselt und mit einer MD5 Checksummp versehen. Nach dem entschlüsseln werden JSON-Daten sichtbar.

                Alle MI Home Produkte, die Wifi verwenden, scheinen das Protokoll zu nutzen. Meinen Air Purifier kann ich jetzt ansprechen.

                Um dasselbe für den vaccum zu machen (habe keinen) brauche ich folgende Pakete:

                HELO + Antwort,

                Saugen Starten,

                Home und Pause.

                Am liebsten wäre mir ein pcapng-File per PM.

                Ich baue dann daraus ein Python-Skript. Dann kann sich jemand daran austoben und den Javascript-Adapter anpassen.

                Gruß Gerhard 8-) `
                Das glaube einfach nicht.. 😄

                :lol:

                Das wäre toll.

                1 Reply Last reply Reply Quote 0
                • G
                  gst666 last edited by

                  Für weitere PCAPs wäre ich dankbar. Anscheinend gibt es einen Unterschied: Offensichtlich wird bei dem vacuum der TOKEN zum entschlüsseln anders übermittelt. Bis zum Wochenende werde ich das Programm für den AirPurifier so weit haben und auch dokumentieren, dass ihr dann auch selber suchen könnt. Es wäre möglich, dass der Schlüssel über die Cloud abgefragt wird.

                  Gruß Gerhard

                  1 Reply Last reply Reply Quote 0
                  • E
                    eastcoast last edited by

                    @gst666:

                    … Offensichtlich wird bei dem vacuum der TOKEN zum entschlüsseln anders übermittelt... `
                    Wie wird der Schlüssel denn bei Deinem Gerät übermittelt, welche Form hat dieser, wie viel Zeichen, Codierung, etc…?

                    1 Reply Last reply Reply Quote 0
                    • G
                      gst666 last edited by

                      Beim Air Purifier sind die letzten 16 Byte der Antwort auf HELO der Token. Bei dem Vaccum sind diese 16 Byte alle auf 0xFF gesetzt.

                      1 Reply Last reply Reply Quote 0
                      • E
                        eastcoast last edited by

                        @gst666:

                        Beim Air Purifier sind die letzten 16 Byte der Antwort auf HELO der Token. Bei dem Vaccum sind diese 16 Byte alle auf 0xFF gesetzt. `
                        Beim Vacuum auch, nur im Ping-Request (oder HELO, oder wie man es nennen will) sind die letzten 16 Byte 0xff,

                        aber im Ping-Response vom Vacuum sind Zeichen vorhanden.

                        Dann scheint meine Vermutung zu diesen Daten doch zu stimmen, siehe hier http://forum.iobroker.net/viewtopic.php … =60#p53764

                        …in diesem Post habe ich jedoch den Schlüssel vorsorglich manipuliert 😉

                        Ich sende Dir heute Abend mal einen Wireshark dump.

                        1 Reply Last reply Reply Quote 0
                        • E
                          eastcoast last edited by

                          @eastcoast:

                          @gst666:

                          Beim Air Purifier sind die letzten 16 Byte der Antwort auf HELO der Token. Bei dem Vaccum sind diese 16 Byte alle auf 0xFF gesetzt. `
                          Beim Vacuum auch, nur im Ping-Request (oder HELO, oder wie man es nennen will) sind die letzten 16 Byte 0xff,

                          aber im Ping-Response vom Vacuum sind Zeichen vorhanden. `
                          Ich glaub ich spinne…

                          ...Dummerweise sind jetzt auch bei mir in der HELO-Antwort keine Zeichen mehr vorhanden :shock:

                          Da ich zwischenzeitlich Firmwareupdates (mittlerweile auf 3.3.6_003032) durchgeführt habe vermute ich, dass dies evtl. damit abgedreht wurde.

                          Ich habe mir aber die damalige Antwort kopiert, vielleicht kannst Du damit etwas anfangen...

                          Diese und den Wireshark Dump habe ich Dir als PN gesendet.

                          Nochmals vielen Dank für Deine Arbeit!

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

                            eastcoast und gst666,

                            Ich verstehe zwar kein Wort von dem, was ihr hier schreibt. Aber dafür bewundere ich Euch! 😄 😄 😄

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

                              Ich habe noch Nachrichten logs von vor ein paar Wochen schaue morgen ob was brauchbares dabei ist und das schicke es dir auch

                              Gesendet von meinem E5823 mit Tapatalk

                              1 Reply Last reply Reply Quote 0
                              • G
                                gst666 last edited by

                                > …Dummerweise sind jetzt auch bei mir in der HELO-Antwort keine Zeichen mehr vorhanden

                                Gut das Du noch eine alte Nachricht hast. Dann haben wir immerhin den Token. Ich werde dann mal schauen, ob der noch funktioniert.

                                Immerhin scheint es so zu sein, dass Bytes 8 und 9 (1. Byte wird als 0 gezählt) bei dem Vacuum immer 0x03 0x4c lautet. Das schein die Gerätekennung zu sein. Ich wäre dankbar, wenn andere das auch noch prüfen können.

                                Ich hoffe, das möglichst viele noch alte Logs haben, so dass die Schlüssel entschlüsselt werden können. Ich bin gespannt, ob die Schlüssel möglicherweise immer identisch sind. Wenn nicht müssen diese irgendwann mal gespeichert werden. Entweder beim ersten Einrichten oder sie werden aus der Cloud geladen. Vermutlich kommen sie dann aus der Cloud, da man sonst ja nicht nachträglich ein weiteres gerät einrichten könnte.

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

                                  @gst666:

                                  Ich hoffe, das möglichst viele noch alte Logs haben, so dass die Schlüssel entschlüsselt werden können. Ich bin gespannt, ob die Schlüssel möglicherweise immer identisch sind. Wenn nicht müssen diese irgendwann mal gespeichert werden. Entweder beim ersten Einrichten oder sie werden aus der Cloud geladen. Vermutlich kommen sie dann aus der Cloud, da man sonst ja nicht nachträglich ein weiteres gerät einrichten könnte. `

                                  Leider keinen Erfolg, alle Nachrichten haben FF in den 16 Byte

                                  1 Reply Last reply Reply Quote 0
                                  • G
                                    gst666 last edited by

                                    Für alle die noch eine alte Firmware haben, lasst sie im Moment dringend drauf.

                                    Jetzt die guten Nachrichten:

                                    Wer einen alten Mitschnitt mit HELO-Nachrichten noch hat (oder noch besser alte Firmware) kann den dort eimittelbaren Token weiter verwenden.

                                    Hier die entschlüsselte Nachricht, um den Roboter zu starten:

                                    {"id":6430,"method":"app_start"}
                                    

                                    Die ID ist frei vererbbar und dient dazu, die Antworten einer Anfrage zuordnen zu können.

                                    Der eigentliche Befehl heißt app_start. Ohne viel Fantasie aufwenden zu müssen wird der Befehl zum Stoppen app_stop heißen.

                                    Spannend ist, ob wir einen Weg finden, an den Token bei der neuen Software zu kommen.

                                    Das Skript, an dem ich bastle wird auch so langsam fertig. Spätestens am Wochenende wird es wohl soweit sein.

                                    1 Reply Last reply Reply Quote 0
                                    • Bluefox
                                      Bluefox last edited by

                                      @gst666:

                                      Für alle die noch eine alte Firmware haben, lasst sie im Moment dringend drauf.

                                      Jetzt die guten Nachrichten:

                                      Wer einen alten Mitschnitt mit HELO-Nachrichten noch hat (oder noch besser alte Firmware) kann den dort eimittelbaren Token weiter verwenden.

                                      Hier die entschlüsselte Nachricht, um den Roboter zu starten:

                                      {"id":6430,"method":"app_start"}
                                      

                                      Die ID ist frei vererbbar und dient dazu, die Antworten einer Anfrage zuordnen zu können.

                                      Der eigentliche Befehl heißt app_start. Ohne viel Fantasie aufwenden zu müssen wird der Befehl zum Stoppen app_stop heißen.

                                      Spannend ist, ob wir einen Weg finden, an den Token bei der neuen Software zu kommen.

                                      Das Skript, an dem ich bastle wird auch so langsam fertig. Spätestens am Wochenende wird es wohl soweit sein. `
                                      Kann man auch sehen, was wird geantwortet?

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        gst666 last edited by

                                        Ja, kann man:

                                        { "result": 0, "id": 6430 }

                                        Die ID ist dieselbe, da es ja die Antwort auf die Frage ist. Der Fehlercode ist null.

                                        Das Progrämmchen, an dem ich bastele, kann die Nachrichten codieren/decodieren und an das Gerät senden und empfangen.

                                        Der Befehl für Pause lautet:

                                        {"id":8243,"method":"app_pause"}
                                        

                                        Dann gibt es noch einen Befehl, damit die Kiste wieder zur Ladestation zurückbeordert wird:

                                        {"id":8093,"method":"app_charge"}
                                        

                                        Ich werde eastcost das Programm dann mal zum Testen schicken, damit evt. Fehler noch beseitigt werden, bevor ich es in die freie Wildbahn entlasse.

                                        1 Reply Last reply Reply Quote 0
                                        • G
                                          gst666 last edited by

                                          Hier die Befehle für den Airpurifier:

                                          "method":"get_prop","params":["aqi","led","mode","filter1_life","buzzer","favorite_level","temp_dec","humidity","motor1_speed","led_b","child_lock","use$
                                          
                                          "method":"set_power","params":["on"]
                                          "method":"set_power","params":["off"]
                                          
                                          "method":"set_mode","params":["auto"]
                                          "method":"set_mode","params":["silent"]
                                          "method":"set_mode","params":["favorite"]
                                          
                                          "method":"set_level_favorite","params":[10]   // Für Favoriten
                                          
                                          "method":"set_buzzer","params":["on"]
                                          "method":"set_buzzer","params":["off"]
                                          
                                          "method":"set_led_b","params":[0]
                                          "method":"set_led_b","params":[1]
                                          "method":"set_led_b","params":[2]
                                          
                                          set_app_extra","params":[0]  //Turbo mode off
                                          set_app_extra","params":[1]  //Turbo mode on
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Meistertr
                                            Meistertr Developer last edited by

                                            Ich kenne mich mit der Verschlüsselung nicht so gut aus. Kann man nicht wen man weiß was drin steht und die verschlüsselte nachricht hat einen Token generieren?

                                            Gesendet von meinem E5823 mit Tapatalk

                                            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

                                            633
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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