Xiaomi Mi Robot Vacuum

Aujourd’hui le Xiaomi Mi Robot Vacuum n’est pas compatible avec le plugin Xiaomi Home.

Xiaomi Mi Robot Vacuum

Une technique existe cependant pour le piloter par script.Ce que je vous propose ici c’est de la mettre à disposition et que les téméraires puissent indiquer en commentaire (ou par la page de contact si vous craignez que les infos soient publiques) sur cette page les informations suivantes :

  • les trames qu’ils ont identifiées avec la technique (lancement, pause, retour, où es-tu ?)
  • la MAC de leur robot
  • le serial de leur robot

Ces informations nous serviront (enfin surtout à Dr Sarakha qui rêve de manger du robot décodé car les trames BLE sont trop faciles) pour identifier le plus rapidement possible si quelque chose est faisable dans le plugin sans avoir à sniffer les trames.

Voici la technique, elle vient de @domoba du forum.

La technique de pilotage du Xiaomi Mi Robot Vacuum

1-/ La méthode que j’ai utilisé est toute bête, je prend mon téléphone, je vais sur le play Store et je télécharge « tpacketCapture » il va simuler un VPN (en gros une interface tun/tap pour faire passer le trafic dans un segment virtuel et pouvoir le ‘dumper), nous acceptons la pop-up. C’est bon le programme est en train de capturer notre trafic.
2-/ Maintenant que l’écoute est en route, nous courrons démarrer Mi Home, puis nous allons sur le robot et nous cliquons sur démarrer le robot. Une fois lancé nous pouvons stopper la capture, afin d’éviter d’avoir trop de choses à tester/filtrer.
3-/ Une fois la capture terminée nous pouvons récupérer le fichier .pcap et l’exporter vers notre bon vieux Pc/Mac pour pouvoir travailler sur Wireshark facilement. La première étape est de faire un filtre pour ne conserver que le trafic à destination de l’aspirateur robot (dans mon cas : 192.168.2.80, bail dhcp statique). Pour plus de détail sur cette partie, le lien suivant est top : https://github.com/jghaanstra/com.robot.xiaomi-mi
4-/ Une fois que vous avez trouvé le bon paquet en utilisant PacketSender, garder celui-ci dans un fichier pour éviter de recommander.
Dans mon cas, j’ai simplement terminé mon intégration avec un script python que je vais pouvoir appeler avec Jeedom ou autre ( Cette partie est à peaufiner) :)
Pour les curieux, je vous partage mon script, il suffit de modifier l’IP dest, le port (même si celui-ci est toujours le même pour le Mi Robot) et le stream HEX. (qui doit être variable, il faut d’autre retour utilisateur pour comparer, probablement un lien avec le serial number de l’aspi)

Le script

import socket
# addressing information of target
IPADDR = '192.168.2.80'
PORTNUM = 54321

# enter the data content of the UDP packet as hex
PACKETDATA = '213100500000000002f2a07258c5ee91e75cc50fea15f483bc3fc36f9e814d08ff60061b1b4578ca895c25a62d706831e787d70a14a3297fec44859e38bfabdd39066f702155c05941c610897d3846d2'.decode('hex')

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)

# connect the socket
s.connect((IPADDR, PORTNUM))

# send the command
s.send(PACKETDATA)

# close the socket
s.close()

Un robot merveilleux

Ce Xiaomi Mi Robot Vacuum est juste top, j’ai pas eu à comparer à d’autres mais j’en suis ultra content. Alors si en plus on peut le faire rentrer dans le plugin Xiaomi Hom, go !

Pour en savoir plus, vous avez l’article de Cédric sur Maison et Domotique. Et puis mon petit doigt m’a dit qu’il y aura surement une vidéo déballage de Dr Sarakha, mais ca vous le savez déjà car vous avez vu la boite sur sa dernière vidéo Youtube

9 réflexions au sujet de “Xiaomi Mi Robot Vacuum

  1. J’ai ce robot depuis un mois et il est super.
    Par contre je n’ai pas réussi à identifier la trame pour le démarrer via un script.
    Est-ce que tu as un exemple des trames capturées avec celle á utiliser dans le script ?

  2. Bonjour à tous,
    Pouvez vous me dire si une fois paramétrer en wifi ( planning horaire), le robot est-il toujours autonome en cas de perte du wifi.
    Démarrera-t-il automatiquement?
    Se reconnecte-t-il au wifi automatiquement lors du retour de celui-ci​?
    Nico

Laisser un commentaire