NEWS
[Frage] Xiaomi Vacuum cleaner
-
Also, ich würde die ersten Blöcke so interpretieren:
213100 5000000000 02f20d8f 5885a20f
Modell Modus Seriennr Timestamp(Epoch) `
5894af88 => new Date(0x5894af88 * 1000) => Fri Feb 03 2017 17:27:52 GMT+0100 (W. Europe Standard Time)Cool :)
Wenn man aber Modus erkennen kann, dass ist schon was: 2000000000 => Idle, 5000000000 => Running ?
Im Antwort vom Roboter, sollte noch Update für die Karte sein.
-
Guten Abend,
das mit der 50 erscheint logisch. :)
Ich habe leider keinen solchen Sauger. Sendet der Xiaomi eigentlich auch Daten? Für eine Analyse fehlen mir noch die MAC Adresse, Seriennummer von solchen Teilen. In Handys von Xiaomi sind die Seriennummern z.B. auch Hexadezimal.
Gruß Marco
-
Hallo Bluefox,
leider ist es nicht so einfach. Die Nachrichten sind verschlüsselt. Einfaches ändern von Bits führt nur zu ungültigen Paketen. Hierauf reagiert das Gerät nicht. Wenn ich genau weiß, wie die Verschlüsselung funktioniert melde ich mich. Kämpfe gerade damit, dass der Air Purifier ein Softwareupdate bekommen hat und die Kombination mit Bluesrocks/Wireshark nicht mehr funktioniert.
-
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-)
-
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
-
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.. :D:lol:
Das wäre toll.
-
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
-
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.
-
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!
-
> …Dummerweise sind jetzt auch bei mir in der HELO-Antwort keine Zeichen mehr vorhandenGut 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.