Mise à jour : depuis quelques mois, je suis passé sur Valetudo RE qui propose plus de fonctionnalités et des mises à jour plus régulières.

Ca faisait un moment que je m'intéressais aux robots aspirateurs.
Pour moi, dans quelques années, un robot aspirateur aura autant sa place dans un logement qu'un lave-vaisselle ou un sèche-linge.
C'est une évolution logique d'un produit qui existe depuis longtemps mais qui n'avait pas vraiment évolué (à part devenir "sans-fil" et moins bruyant).

Ce qui m'embêtait par contre, c'est que tout le contrôle de l'aspirateur passe par un Cloud chinois ! Je ne souhaite pas être dépendant d'un Cloud pour pouvoir démarrer ou programmer mon aspirateur, surtout quand celui-ci se trouve à 5 mètres de moi.

Valetudo, c'est la promesse d'un robot aspirateur enfin libéré du Cloud.

Valetudo, c'est un firmware modifié utilisable sur les robots aspirateurs Xiaomi : pour l'instant, uniquement les Xiaomi Mi Robot Vacum ou les Roborock S5 (S50 & S55).

Valetudo fait office de Cloud pour votre robot. Aucune donnée n'est ainsi envoyée sur le Cloud, et quand vous souhaitez commander votre robot, c'est via Valetudo que ça se passe.

Avec le déménagement qui arrive, ma surface habitable va augmenter. J'en ai profité pour investir dans un Roborock S50. Aussitôt reçu, aussitôt flashé.

Une installation super simple

La doc officielle est très complète mais peut sembler un peu complexe au premier abord.

En réalité, vous n'avez pas besoin de grand chose. Un PC sous Windows/Linux ou un Mac sera suffisant.

Le plus simple est tout d'abord de générer le firmware via le service DustBuilder. Rentrez le voucher (rockrobo), une adresse e-mail, une clé publique SSH (si vous n'en avez pas, DustBuilder peut vous l'envoyer), et choisissez ce qui vous intéresse.
Dans mon cas j'ai coché :

  • Replace Xiaomi adbd with generic adbd (enables shell access via USB)
  • Preinstall valetudo 0.4.x (is not possible with valetudo 0.3)
  • Preinstall Nano texteditor, wget, htop, hexdump
    Et j'ai choisi la version recommandée pour mon robot (Gen2 (ver 1720)).

En attendant la réception du firmware par mail, profitez en pour installer python3, python3-pip (si ce n'est pas déjà fait) et les paquets Python wheel et python-miio sur votre machine :

pip3 install wheel
pip3 install python-miio

La documentation Valetudo vous recommande de faire ça dans un virtualenv Python (une sorte de machine virtuelle dédiée à Python). A vous de voir.

Vous avez du recevoir un mail avec le lien pour télécharger le firmware. Il est temps de vous connecter sur le WiFi de votre robot.

Si vous n'avez pas encore configuré votre robot, il est automatiquement en mode hotspot WiFi, il faut donc vous y connecter. Si votre robot est déjà configuré et connecté à votre WiFi, vous n'avez rien à faire.

Lancez ensuite une recherche afin de récupérer le token et l'adresse IP du Robot. Ces informations vous serviront à installer le firmware :

$ mirobo --debug discover --handshake true
INFO:miio.vacuum_cli:Debug mode active
INFO:miio.device:Sending discovery to <broadcast> with timeout of 5s..
DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
DEBUG:miio.device:Got a response: Container: 
...
INFO:miio.device:  IP 192.168.8.1 (ID: 00000000) - token: b'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
INFO:miio.device:Discovery done

Procéder à l'installation du firmware :

$ mirobo --ip 192.168.8.1 --token <TOKEN> update-firmware <CHEMIN_VERS_VOTRE_FIRMWARE.pkg>

L'IP 192.168.8.1 est l'IP du robot quand il est dans sa configuration d'usine en mode hotspot WiFi. A remplacer par l'IP que vous avez obtenu lors de la recherche si votre robot n'est pas en configuration d'usine.

L'installation prend une petite quinzaine de minutes. Le robot se manifestera à la fin de l'installation.

Découverte de l'interface web

Une fois redémarré, votre robot sera accessible en Web sur http://192.168.8.1 (ou sur son IP interne si votre robot était déjà connecté à votre WiFi). Vous pouvez maintenant associer votre robot a votre réseau WiFi depuis les paramètres.

Votre robot est aussi acessible en SSH avec votre clé privée. Surprise, le robot tourne sous Ubuntu 14.04 ! J'ai hésité, mais je n'ai pas voulu tenter un apt-get dist-upgrade :-D

C'est le moment de lancer un nettoyage. Passez sur l'onglet Map et admirez votre robot cartographier votre logement.
Si besoin, vous pouvez rajouter des murs virtuels et des No-Go Zones. Par exemple j'ai ajouté des murs virtuels là ou il y a généralement plusieurs câbles et chargeurs qui trainent. Ca lui permet de nettoyer quand même la zone sans trop s'aventurer.

Cartographie effectuée par le robot. En rouge les murs virtuels que j'ai défini

Customisation

Si vous voulez customisez un peu les sons de votre robot, c'est très simple. Il s'agit uniquement de fichiers wav qui peuvent être remplacés directement sur votre robot.

Moi, j'ai voulu modifier le son de démarrage de mon robot. J'ai récupéré le son que fait WALL-E, j'ai compressé et renommé le fichier en start.wav et envoyé sur le robot en scp :

$ scp start.wav root@<IP_ROBOT>:/mnt/data/rockrobo/sounds/

Le résultat :


Dans la prochaine partie, on verra comment intégrer le robot à Domoticz.