Pack de voix française pour aspirateur Xiaomi Roborock V1

Si vous possédez un aspirateur Xiaomi Mi Vacuum V1 vous n’avez le choix qu’entre des langues asiatiques ou la langue anglaise pour les messages énoncés par le robot. Si la plupart d’entre vous ont choisi la langue anglaise, faute de mieux, sachez que ces messages ne sont que des fichiers audio au format wav enregistrés dans la mémoire flash de l’aspirateur. Je me suis donc lancé dans la création d’un pack de messages en français pour cet appareil.

Roborock V1
L’aspirateur Roborock V1 de Xiaomi

L’opération que je vous propose ici ne nécessite ni de modifier le firmware ni d’ouvrir l’aspirateur au risque de perdre la garantie (si toutefois il est possible de faire fonctionner la garantie en France, où cet appareil n’est pas officiellement commercialisé). Ce tutoriel est fourni ‘tel quel’ et c’est sous votre unique responsabilité que vous décidez de le suivre ou pas.

Pour y parvenir vous aurez besoin de 3 choses : un ordinateur avec connexion au même réseau que l’aspirateur robot, le language python installé sur cet ordinateur et le pack de langue en français que vous pouvez télécharger à la fin de cet article.

Je décrit la procédure à suivre sous windows mais la procédure sous mac ou sous linux est similaire (et peut-être même plus simple).

Installation de python et des outils pour dialoguer avec l’aspirateur

Téléchargez et installez la version 3 de python depuis son site officiel : https://www.python.org/downloads/

Sous windows lors de l’installation cochez la case « Add python to PATH » sur la première fenêtre de l’installateur. Sous windows 10 à la fin de l’installation, l’installateur va vous proposer d’augmenter la limite de la taille du PATH, acceptez.

Une fois installé, ouvrez un invite de commandes cmd et tapez les deux commandes suivantes et dans cet ordre (important!) :

pip3 install python-mirobo
pip3 install python-miio

Ces deux commandes vont télécharger et installer des librairies et packages additionnels de python qui vont vous permettre de communiquer en ligne de commande avec l’aspirateur. Attention, si vous ne respectez pas cet ordre d’installation, bizarrement, la commande mirobo ne fonctionnera pas.

Si vous êtes connecté au même réseau que votre aspirateur vous pouvez tester que l’installation fonctionne en tapant la commande suivante qui permet de trouver le robot sur le réseau (adresse et ID seront différents) :

C:\Users\myname> mirobo discover --handshake 1
INFO:miio.device:Sending discovery to with timeout of 5s..
INFO:miio.device: IP 192.168.0.146 (ID: 03c2b100) - token: b'ffffffffffffffffffffffffffffffff'
INFO:miio.device:Discovery done

Vous remarquerez le token composé de 32 caractères f, ce qui nous arrange pas. Pour dialoguer et commander le robot à distance il faudra récupérer le véritable token. C’est une suite de 32 caractères hexadécimaux qui est unique pour chaque aspirateur. Si vous connaissez déjà le token de votre robot sautez l’étape suivante.

Récupération du token

Il existe plusieurs méthodes pour récupérer le token. Je ne décrirai pas ces méthodes ici. Je vous renvoie à la partie « Récupérer le Token » du site domo-attitude pour le faire, c’est assez fastidieux. Sachez juste que le token change à chaque fois que vous réinitialisez le wifi de l’aspirateur.

Dans cet exemple le token sera 814e59653964f5374a347575b4684b49, notez le votre sans faire d’erreur et conservez le précieusement.

Installation du pack de voix françaises

Téléchargez le « french language pack » ici. J’ai créé les messages avec la fonction synthèse vocale de mon MacIntosh en utilisant le voix Audrey. Ce pack est compatible avec le firmware 3.3.9_003468 du robot aspirateur. Si vous l’installez sur une version de firmware plus récente il est possible que certains nouveaux messages ne soient pas traduits car absents du pack.

Lien: Télécharger “fr.pkg” fr.pkg – 9,41 Mo

Ouvrez un invite de commande cmd et placez vous dans le répertoire où vous avez enregistré le fichier pkg. Commencez par obtenir l’adresse IP du robot dans votre réseau :

C:\Users\myname> mirobo discover --handshake 1
INFO:miio.device:Sending discovery to with timeout of 5s..
INFO:miio.device: IP 192.168.0.146 (ID: 03c2b100) - token: b'ffffffffffffffffffffffffffffffff'
INFO:miio.device:Discovery done

En vous munissant de l’adresse IP et du token tapez la commande qui va envoyer le pack de langue au robot.

C:\Users\myname\Downloads>mirobo --ip 192.168.0.146 --token 814e59653964f5374a347575b4684b49 install-sound fr.pkg
Installing from fr.pkg (md5: None) for id 10000
INFO:miio.updater:Serving on 0.0.0.0:49424, timeout 10
INFO:miio.updater:Using local fr.pkg (md5: be02cc6faa1f4d8674202c6c58fe8cdd)
Hosting file at http://192.168.0.141:49424/fr.pkg

192.168.0.146 - - [27/Jan/2019 13:33:21] "GET /fr.pkg HTTP/1.1" 200 -
INFO:miio.updater:Got a request, should be downloading now.
Downloading (0 %)
Downloading (50 %)
Downloading (94 %)
Installing (100 %)
Installing (100 %)
Installed (100 %)
Installation of sid '10000' complete!

Si vous restez coincé à la ligne « Hosting file at… » c’est que votre token n’est pas le bon. Et voila, votre aspirateur robot parle français. Pour vous en assurer retirer le bac à poussière !

Le fichier pkg est chiffré. Il n’est pas possible de l’ouvrir simplement pour en extraire le contenu. En bonus voici une archive en clair avec son contenu pour écouter tous les messages sur votre ordinateur.

Lien: Télécharger “fr.tar.gz” fr.tar.gz – 9,41 Mo

La commande mirobo permet bien plus d’opérations. Pour un aperçu des commandes possibles, tapez la commande suivante :

mirobo --help

43 réflexions sur « Pack de voix française pour aspirateur Xiaomi Roborock V1 »

  1. Ça ne fonctionnera pas. La manip est spécifique à la v1. Les versions suivantes n’ont probablement pas le même système d’exploitation et un format de fichiers audio différent. Je n’ai pas de V7. Il est possible qu’au niveau configuration un pack de langue en français soit proposé par le constructeur si c’est un modèle en vente en Europe. S’il a été importé en passant par un site de vente chinois il y a peu de chances.

    • Je viens de faire un test et ça fonctionne. Après la confirmation il envoie un second mail à conserver pour retrouver facilement comment se désabonner. Ces mails ne sont pas envoyés par le site mais par WordPress.com qui centralise les abonnements.

  2. Salut, je voulais installer ton pack de langue (top!!) mais lors de l’exécution de la commande : « pip3 install python-miio » j’obtiens ca écrit en rouge !
    Peux tu m’aider à résoudre le problème ?

    Running setup.py install for netifaces … error
    ERROR: Command errored out with exit status 1:
    command: ‘C:\Program Files (x86)\Python\Python310\python.exe’ -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘ »‘ »‘C:\\Users\\rosam\\AppData\\Local\\Temp\\pip-install-tx0_7voz\\netifaces_69fb9c53a9aa466ba26505a4d228a54c\\setup.py' »‘ »‘; __file__=' »‘ »‘C:\\Users\\rosam\\AppData\\Local\\Temp\\pip-install-tx0_7voz\\netifaces_69fb9c53a9aa466ba26505a4d228a54c\\setup.py' »‘ »‘;f = getattr(tokenize, ‘ »‘ »‘open' »‘ »‘, open)(__file__) if os.path.exists(__file__) else io.StringIO(‘ »‘ »‘from setuptools import setup; setup()' »‘ »‘);code = f.read().replace(‘ »‘ »‘\r\n' »‘ »‘, ‘ »‘ »‘\n' »‘ »‘);f.close();exec(compile(code, __file__, ‘ »‘ »‘exec' »‘ »‘))’ install –record ‘C:\Users\rosam\AppData\Local\Temp\pip-record-wm0i0w0r\install-record.txt’ –single-version-externally-managed –user –prefix= –compile –install-headers ‘C:\Users\rosam\AppData\Roaming\Python\Python310\Include\netifaces’
    cwd: C:\Users\rosam\AppData\Local\Temp\pip-install-tx0_7voz\netifaces_69fb9c53a9aa466ba26505a4d228a54c\
    Complete output (5 lines):
    running install
    running build
    running build_ext
    building ‘netifaces’ extension
    error: Microsoft Visual C++ 14.0 or greater is required. Get it with « Microsoft C++ Build Tools »: https://visualstudio.microsoft.com/visual-cpp-build-tools/
    —————————————-
    ERROR: Command errored out with exit status 1: ‘C:\Program Files (x86)\Python\Python310\python.exe’ -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘ »‘ »‘C:\\Users\\rosam\\AppData\\Local\\Temp\\pip-install-tx0_7voz\\netifaces_69fb9c53a9aa466ba26505a4d228a54c\\setup.py' »‘ »‘; __file__=' »‘ »‘C:\\Users\\rosam\\AppData\\Local\\Temp\\pip-install-tx0_7voz\\netifaces_69fb9c53a9aa466ba26505a4d228a54c\\setup.py' »‘ »‘;f = getattr(tokenize, ‘ »‘ »‘open' »‘ »‘, open)(__file__) if os.path.exists(__file__) else io.StringIO(‘ »‘ »‘from setuptools import setup; setup()' »‘ »‘);code = f.read().replace(‘ »‘ »‘\r\n' »‘ »‘, ‘ »‘ »‘\n' »‘ »‘);f.close();exec(compile(code, __file__, ‘ »‘ »‘exec' »‘ »‘))’ install –record ‘C:\Users\rosam\AppData\Local\Temp\pip-record-wm0i0w0r\install-record.txt’ –single-version-externally-managed –user –prefix= –compile –install-headers ‘C:\Users\rosam\AppData\Roaming\Python\Python310\Include\netifaces’ Check the logs for full command output.
    WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
    You should consider upgrading via the ‘C:\Program Files (x86)\Python\Python310\python.exe -m pip install –upgrade pip’ command.

    • Bonjour Arnaud.
      Je ne vais pas trop pouvoir t’aider sur ce point. Je vois que tu utilises windows et en ce qui me concerne j’ai abandonné ce système depuis déjà 10 ans. En interprétant les messages d’erreur je vois qu’il se plaint d’une librairie manquante « Microsoft Visual C++ 14.0 » il te donne le lien pour la télécharger et l’installer. Tu peux ignorer le warning sur PIP.

  3. Salut ! J’ai, après avoir galéré avec C++, réussi a passer l’etape 2.
    Par contre j’ai ce message :

    WARNING: The scripts miio-extract-tokens.exe, miiocli.exe and mirobo.exe are installed in ‘C:\Users\rosam\AppData\Roaming\Python\Python310\Scripts’ which is not on PATH.
    Consider adding this directory to PATH or, if you prefer to suppress this warning, use –no-warn-script-location.

    et du coup ca ne fonctionne pas. Si je comprends bien il faut que j’ajoute ces exe au path (mon dossier d’installation de python n’est pas celui par defaut) mais comment je fais ca ??

    • Il semble que tu as besoin d’ajouter le répertoire ‘C:\Users\rosam\AppData\Roaming\Python\Python310\Scripts’ à la liste des répertoires du PATH pour qu’il soit capable de trouver les exécutables en question même quand tu n’est pas dans ce répertoire.
      En ligne de commande tu dois pouvoir taper
      set PATH="%PATH;C:\Users\rosam\AppData\Roaming\Python\Python310\Scripts"
      Ca ne sera pas enregistré et valable uniquement dans la session de ligne de commande en cours. Pour le conserver entre deux sessions utilise
      setx PATH "%PATH;C:\Users\rosam\AppData\Roaming\Python\Python310\Scripts"

      • Merci pour ton aide et ta réactivité.
        Bon effectué la commande mais malheureusement il me dit que « mirobo » n’est pas reconnu en tant que commande interne donc en gros ca n’a rien changé, c blasant !!

        Y’a t’il un commande pour vérifier ce que contient le PATH ? Y’a t’il une priorité dans celui ci ? (Désolé j’y connais rien mais j’aime pas abandonner!)

        • Pour container le contenu de la variable PATH, juste taper echo %PATH%
          Le séparateur de chemins est le point virgule.
          Les chemins sont évalués dans l’ordre d’apparition. Si deux exécutables avec le même nom existent dans deux chemins du PATH, c’est le premier qui sera choisi.

          • Le dossier est bien présent dans le PATH… Dans le début de ton tuto tu parles d’un problème de communication lorsque tu fais pas les commande dans le bon ordre.
            Tu penses que mon problème peut être similaire à ca ? J’ai vérifié l’appli est Mirobo est bien présente dans le dossier… 🙁

          • Mon erreur dans cet article a été de décrire une procédure Windows, que j’ai testé à l’époque, mais pour laquelle je ne suis plus en mesure d’apporter de réponses car ce n’est pas celle que j’utilise. Pour résumer, si tu as installé les packages nécessaires, tu devrais avoir la commande mirobo installée dans un répertoire et c’est ce répertoire qui doit se trouver dans le PATH. En choisissant de ne pas installer python dans le répertoire par défaut tu as choisi la procédure la plus compliquée et c’est un choix qui a des conséquences sur les chemins puisqu’ils ne sont pas standard. Je ne fait que mettre à disposition le pack de langue que j’ai créé. La procédure d’installation n’est pas de moi. Il faut peut-être chercher du support du côté de la communauté qui a écrit mirobo. Une fois que cette commande fonctionne, l’installation du pack de langues est très simple (à condition d’avoir récupéré le tocken, unique à chaque aspirateur et qui change à chaque reconfiguration du wifi).

          • Edit : Ah je retenté et il lance bien la découverte de réseau, bon il ne le trouve pas ( c bizarre pq mon anti virus, ma box et mon home assistant le trouve bien) mais ca doit venir de chez moi j’imagine. Si t’as une idée je veux bien mais sinon merci pour ton aide !

          • On parle bien de la commande mirobo discover ? C’est bien le bon modèle de robot aspirateur ? Il est déjà plutôt ancien, on peut encore en acheter mais les site marchands mettent en avant des modèles plus récents (et plus chers). Ce modèle est vraiment costaud par rapport aux plus récents mais il est plus lent et légèrement moins efficace. Pour le prix ça reste une excellente affaire. Tu peux regarder au niveau de la configuration réseau windows. Si ton réseau est déclaré public il est possible qu’il active des règles de firewall au niveau Windows qui empêcheront de communiquer avec l’aspirateur.

  4. Hello,
    Bon j’ai tout suivi à la lettre et je suis malheureusement bloqué à la dernière commande d’injection
    J’ai récupéré le token via l’app modifiée comme indiqué dans cet article mais la suite de la procédure ne marche pas non plus 🙁

    C:\Users\loic\Desktop\Firefox Download>mirobo –ip 192.168.1.42 –token 63546963385079584e654358366d4171 install-sound fr.pkg
    Installing from fr.pkg (md5: None) for id 10000
    INFO:miio.updater:Serving on 0.0.0.0:63589, timeout 10
    INFO:miio.updater:Using local fr.pkg (md5: be02cc6faa1f4d8674202c6c58fe8cdd)
    Hosting file at http://192.168.1.18:63589/fr.pkg

    Installation of sid ‘10000’ complete!
    ERROR:miio.updater:No request was made..

      • Il semble bien répondre :
        C:\Users\loic\Desktop\Firefox Download>mirobo –ip 192.168.1.42 –token 63546963385079584e654358366d4171 info
        rockrobo.vacuum.v1 v3.5.8_004028 (78:11:DC:7E:2F:E7) @ 192.168.1.42 – token: 63546963385079584e654358366d4171

        Je précise que j’ai bien un V1 que j’ai acheté il y 5 ans

        • L’IP de l’aspirateur est bien 192.168.1.42 et il répond à la commande info.
          La commande install-sound devrait fonctionner à moins d’avoir un service de firewall sur le PC ou que le réseau auquel il est connecté est déclaré « public » et non « privé », windows applique alors un pare-feu et peut empêcher la connexion de l’aspirateur au PC. Car voici comment la commande fonctionne :
          1 – La commande mirobot crée un mini serveur web (ici sur le port 63783 du PC) avec 2 fichiers : le pack de langues et son checksum.
          2 – Il envoie au robot l’ordre de télécharger le pack de langue à l’URL de ce serveur web indiquée dans l’ordre.
          3 – Il attend la connexion du robot qui va télécharger le pack de langues et son checksum
          4 – Une fois la connexion établie, il affiche la progression du téléchargement.

          C’est la 4ème étape qui ne se produit pas, il ne reçoit pas la connexion de l’aspirateur et tombe en timeout. Il abandonne et ferme le serveur web.

          • Okay, merci beaucoup pour la piste c’est vraiment gentil votre aide
            Je pense qu’en effet comme c’est mon ordinateur professionnel cela bloque via McAffee ou le pare feu de Windows…
            Je vais tenter en mode sans échec avec prise en charge réseau ou alors via un autre ordinateur, je n’ai pas beaucoup la main dessus et je n’ai qu’un Mac à ma disposition sinon…

          • Personnellement j’utilise un raspberry pi sous linux pour injecter le firmware ou le pack de langues. L’article décrit des lignes de commande sous windows mais c’est du python et ça fonctionne sur tout OS avec python. Il est fort probable que le firewall entreprise bloque la connexion entrante de l’aspirateur.

    • Autant pour moi la commande que j’ai copié collé à fail
      J’ai donc retenté, j’ai maintenant l’erreur

      C:\Users\loic\Desktop\Firefox Download>mirobo –ip 192.168.0.42 –token 63546963385079584e654358366d4171 install-sound fr.pkg
      Installing from fr.pkg (md5: None) for id 10000
      INFO:miio.updater:Serving on 0.0.0.0:63733, timeout 10
      INFO:miio.updater:Using local fr.pkg (md5: be02cc6faa1f4d8674202c6c58fe8cdd)
      Hosting file at http://192.168.1.18:63733/fr.pkg
      Error: Unable to discover the device 192.168.0.42
      ERROR:miio.updater:No request was made..

        • Bon je confirme cependant que j’ai le même résultat 🙁

          C:\Users\loic\Desktop\Firefox Download>mirobo –ip 192.168.1.42 –token 63546963385079584e654358366d4171 install-sound fr.pkg
          Installing from fr.pkg (md5: None) for id 10000
          INFO:miio.updater:Serving on 0.0.0.0:63783, timeout 10
          INFO:miio.updater:Using local fr.pkg (md5: be02cc6faa1f4d8674202c6c58fe8cdd)
          Hosting file at http://192.168.1.18:63783/fr.pkg

          Installation of sid ‘10000’ complete!
          ERROR:miio.updater:No request was made..

          • Il y a bien eu une évolution firmware qui empêche désormais le téléchargement d’un firmware depuis une adresse locale. Une protection sommaire du fabricant pour compliquer la tâche de ceux qui veulent modifier le firmware pour activer le service ssh par exemple, après tout c’est un linux ubuntu dans l’aspirateur. Mais cette restriction ne s’applique pas au téléchargement des packs de langue.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *