Précédemment, nous avons intégré les aspirateurs robot Ecovacs, les caméras Blink ainsi que des objets connectés Smart Life / Tuya dans Home Assistant. Aujourd’hui, nous poursuivons sur notre lancée en intégrant les aspirateurs Xiaomi et Roborock dans Home Assistant. Des marques très largement utilisés par les fans de domotique et dont la réputation n’est plus à faire.
Vous pouvez d’ailleurs retrouver les tests de Roborock S4, S5 Max, S6 et S7+ dans notre lab’. Des robots convaincants et plébiscités par leurs utilisateurs que nous apprécions tout particulièrement et que nous classons parmi les meilleurs robots aspirateurs du marché !
« Alexa, demande à Nestor de nettoyer la cuisine. »
Actuellement les services suivants sont pris en charge :
- start : Démarrer le robot aspirateur
- pause : Mettre en pause le robot aspirateur
- stop : Arrêter le robot aspirateur
- return_to_base : L’aspirateur robot retourne sur sa base de chargement
- locate : Permet de localiser l’aspirateur
- clean_spot : Envoyer le robot aspirateur nettoyer un coin précis du logement
- set_fan_speed : Permet de contrôler la vitesse d’aspiration (Silent, Standard, Medium, Turbo)
- remote_control_* : Piloter l’aspirateur avec les touches virtuels
- xiaomi_clean_zone : Permet d’envoyer l’aspirateur robot nettoyer une pièce précise
Configurer un robot Xiaomi Roborock dans Home Assistant
Pour le bon fonctionnement de l’intégration il faudra récupérer le token (jeton) qui permettra de faire dialoguer votre aspirateur avec l’API ainsi que fixer son adresse IP depuis votre box FAI ou routeur.
IP statique pour l’aspirateur robot Xiaomi
Pour fixer l’IP de votre appareil, il vous suffit de vous rendre sur l’interface de votre box internet ou routeur. Pour ma part, ce sera depuis livebox/ pour accéder à ma box internet Orange.
Voilà, votre aspirateur a une adresse IP fixe. Si vous venez à redémarrer votre box internet, Home Assistant sera en capacité de retrouver votre robot aspirateur facilement.
Récupérer facilement un token Xiaomi Mi Home
Téléchargez la dernière version de l'application « Get Mi Home Devices Token App » sur Github pour Windows ou macOS.
Installez l'application : sur Windows comme sur MacOS, une autorisation est nécessaire. N'ayez crainte, le code est public et disponible sur Github, il a été validé par la communauté.
Entrez les identifiants de votre compte : nom d'utilisateur (login) et mot de passe (password).
Sélectionnez le token que vous souhaitez récupérer.
Vous pouvez désormais utiliser votre token Xiaomi Home dans une intégration ou une application tierce. Notez, cependant, que votre appareil reste lié au cloud et ne fonctionnera pas pour autant en local.
Ingrédients
Instructions
Téléchargez la dernière version de l'application « Get Mi Home Devices Token App » sur Github pour Windows ou macOS.
Installez l'application : sur Windows comme sur MacOS, une autorisation est nécessaire. N'ayez crainte, le code est public et disponible sur Github, il a été validé par la communauté.
Entrez les identifiants de votre compte : nom d'utilisateur (login) et mot de passe (password).
Sélectionnez le token que vous souhaitez récupérer.
Vous pouvez désormais utiliser votre token Xiaomi Home dans une intégration ou une application tierce. Notez, cependant, que votre appareil reste lié au cloud et ne fonctionnera pas pour autant en local.
Notes
Anciennes méthodes
Si vous préférez des méthodes alternatives, il vous est toujours possible de récupérer le token d’un robot aspirateur Xiaomi ou Roborock depuis l’application Xiaomi Home. La procédure est différente pour un appareil iOS et un appareil Android.
Récupérer le jeton depuis un appareil Android :
- Ajoutez (si ce n’est pas déjà fait) votre aspirateur sur l’application Xiaomi Home
- Désinstallez l’application Xiaomi Home (oui oui..)
- Depuis votre téléphone, téléchargez Aptoide
- Depuis Aptoide, téléchargez l’application Mi Home 5.4.54 (Sécurisée, ancienne version officielle de Xiaomi Home)
- Ouvrez l’application Mi Home fraîchement installée puis attendez quelques petites secondes que vos appareils apparaissent
- Une fois la plupart de vos appareils apparus vous pouvez fermer l’application
- Ouvrez l’application « Gestionnaire de fichier » et cherchez le dossier « SmartHome »
- Ce dossier contiendra des fichiers logs, ouvrez le fichier le plus récent (l’ouvrir depuis un ordinateur sera bien plus simple pour chercher le jeton de votre ordinateur)
- Cherchez le nom de votre aspirateur, une fois trouvé, il y aura un peu avant une ligne qui ressemblera à : {token: XXXXXXXXXXXXXXX}
- Copiez ce token, nous avons besoin de lui pour la suite du tutoriel
Récupérer le jeton depuis un appareil iOS :
- Ajoutez (si ce n’est pas déjà fait) votre aspirateur sur l’application Xiaomi Home
- Sur un PC ou un Mac avec iTunes installé, vous devez sauvegarder l’iPhone.
- Installez iBackup Viewer, ouvrez le et ouvrez votre sauvegarde
- Ouvrez le module « données brutes » (logo en forme d’arborescence)
- Accédez à com.xiaomi.mihome
- Recherchez un fichier qui ressemble à XXXXXXXX_mihome.sqlite dans le dossier Documents
- Enregistrez ce fichier sur votre ordinateur
- Installez DB Browser for SQLite (La version portable est suffisante)
- Ouvrez DB Browser for SQLite, cliquez sur « Ouvrir une base de données » puis allez sélectionner le fichier précédemment téléchargé (XXXXXXXX_mihome.sqlite)
- Dans l’onglet « Parcourir les données » faites défiler les colonnes jusqu’à la dernière colonne (ZTOKEN)
- Cliquez dessus, vous devriez voir apparaitre le token que nous souhaitons utiliser
- Votre token est crypté, nous allons le décrypter depuis un site gratuit
- La colonne de droite doit ressembler à ceci :
Key (obligatoire) : 00000000000000000000000000000000
Configuration dans Home Assistant
Le plus compliqué est terminé, vous pouvez maintenant intégrer votre aspirateur à Home Assistant.
Pour intégrer votre aspirateur dans Home Assistant, ajoutez ceci dans votre fichier configuration.yaml :
vacuum:
- platform: xiaomi_miio
host: 192.168.X.X
token: Votre_jeton
name: Nestor
Une fois le fichier enregistré, redémarrez votre serveur Home Assistant.
Les variables de l’intégration xiaomi_miio
- host : L’adresse IP de votre aspirateur
- token : Le jeton d’API que nous avons récupéré précédemment
- name : Le nom que vous souhaitez attribuer à votre robot aspirateur (Ici, Nestor 🙂 )
Les attributs disponible pour les aspirateurs robots Xiaomi et Roborock
Votre aspirateur nous informe sur de nombreux points :
- battery_icon : Le % de batterie de votre aspirateur
- cleaned_area : Le nombre de m² nettoyés
- fan_speed : La vitesse d’aspiration de l’aspirateur
- fan_speed_list : La liste des vitesses d’aspiration disponible pour votre aspirateur
Mais l’intégration xiaomi_miio de Home Assitant nous permet d’en savoir plus :
- cleaning_time : Le temps mis par l’aspirateur pour nettoyer
- main_brush_left : Heures restantes jusqu’à ce qu’un changement de la brosse principale soit nécessaire
- side_brush_left : Heures restantes jusqu’à ce qu’un changement de la brosse latérale soit nécessaire
- filter_left : Heures restantes jusqu’à ce qu’un changement de filtre soit nécessaire
- sensor_dirty_left : Heures restantes avant le nettoyage des capteurs
- cleaning_count : Nombre total de cycles de nettoyage
- total_cleaned_area : Surface totale nettoyée en m²
- total_cleaning_time : Temps de nettoyage total en minutes
- do_not_disturb : Activation/Désactivation du mode Ne Pas Déranger
- clean_start : La dernière date / heure à laquelle l’aspirateur a commencé le nettoyage
- clean_end : La dernière date / heure à laquelle l’aspirateur a terminé le nettoyage
Script possible pour les filtres et brosses de votre aspirateur robot Xiaomi
L’aspirateur stocke des attributs comme main_brush_left ou filter_left qui permettent de connaitre le nombre d’heures restantes avant le changement du composant en question. Cependant, une fois le changement effectué l’attribut ne se réinitialise pas automatiquement. Je vous propose donc un scénario permettant de réinitialisé la valeur une fois le changement effectué :
reinitialiser_brosse_principal_nestor:
alias: "Reinitialise l'heure de la brosse principale de Nestor"
sequence:
- service: vacuum.send_Command
data:
entity_id: vacuum.nestor
command: reset_consumable
params: ['main_brush_work_time']
Paramètres disponibles :
- [‘main_brush_work_time’]
- [‘side_brush_work_time’]
- [‘filter_work_time’]
- [‘sensor_dirty_time’]
Ceci est un script et non une automatisation.
Vous pouvez appeler votre script depuis un bouton virtuel sur le dashboard ou l’ajouter à une automatisation.
Récupération des coordonnées de nettoyage
Afin de cibler une pièce ou une zone ciblé nous avons besoin de coordonnées.
Utilisation de l’application FLOLEVAC
- Téléchargez Flolevac
- Connectez-vous avec vos informations d’identification Xiaomi (Testé par Google Play Protect)
- Ouvrir la carte (Assurez-vous d’être sur votre réseau domestique)
- Sélectionnez « Nettoyage de zone » et tracez un carré autour de la zone que vous souhaitez nettoyer
- Appuyez longuement sur « Nettoyage » et les coordonnées de la zone seront copiées dans votre presse-papiers
Automatisation avec coordonnées
Je vous propose une automatisation qui permet de lancer un nettoyage d’une zone précise
- alias: Nettoyage de la cuisine
trigger:
- event: start
platform: homeassistant
condition: [] action:
- service: xiaomi_miio.vacuum_clean_zone
data_template:
entity_id: vacuum.nestor
repeats: 1
zone: [[XXXXX,XXXXX,XXXXX,XXXXX]
- entity_id : remplacez le par le nom de votre aspirateur
- repeats : ici il nettoyera une fois cette zone (vous pouvez mettre le nombre de répétition que vous souhaitez)
- zone : la ou les zones à nettoyer
Exemple avec deux zones :
zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]]
Carte lovelace pour votre aspirateur Xiaomi ou Roborock
Je vous partage également une intégration supplémentaire intéressante qui vous permet de démarrer le nettoyage d’une pièce précise à l’aide d’une carte statique, comme dans l’application Mi Home. De plus, vous pouvez définir une liste de zones et choisir celles à nettoyer.
N’hésitez pas à partager en commentaire ou via le groupe facebook vos scénarios qui vous aident au quotidien. 🙂
Bonjour,
Pouvons nous transformer en skill alexa ? je nai pas de smart home, y a til une alternative ?
merci d avance.
Bonsoir,
Ce tutoriel est pour Home Assistant, un logiciel domotique fonctionnant en local sur votre propre système… Si vous recherchez simplement une skill Alexa, plusieurs sont disponibles selon la marque de votre robot : Xiaomi Home, Roborock aussi, Dreame ou Roidmi également…
Bonne soirée 🙂
Bonjour,
J’ai intégré mon aspirateur Roborock S5 directement avec l’intégration « Xiaomi Miio » proposée via l’interface de Home Assistant, en me connectant au cloud Xiaomi via mon identifiant / mot de passe.
Quelle différence avec la méthode décrite dans ce tuto ? Est-ce qu’avec votre méthode on se passe du cloud Xiaomi et on interagit directement en local avec l’aspirateur ?
Merci d’avance,
Yann
Bonjour Yann,
C’est simplement un tuto qui date de l’époque où l’intégration n’existait pas… Celle-ci fait également appel au cloud donc on peut dire qu’il est obsolète. 😉
Bonne soirée 🙂
Bonjour
J’utilise l’application Roborock car l’appli Mi ne me convient pas. Est-ce que le tuto pour HA fonctionne si je sniff les données du réseau pour trouver le token dans les entête Http ?
Bonjour,
Je n’ai pas retesté récemment, mais ça ne fonctionnait pas avec l’app Roborock lors du tuto… 😉
Bonjour. J’ai envi d’essayer mais j’ai le d9. Dois je faire autre chose sachant que c’est un multicarte ?
Pour ma part, il devrait s’installer seul sur Google home d’après les autres forums mais après connexion sur le site xiaomi, il revient sur l’appli Google home et me dit :couldnbt reach.. Mi home… »
Merci à toi si tu as la réponse
Hello,
Tu parles seulement de Google Home ou aussi de Home Assistant?
Pour Google, il y a quelques soucis à ce que je sais… Vérifie que tu es bien sur un serveur Xiaomi Home européen, ça peut venir de là. 🙂
Bon courage 😉
Hello, je teste avec le roborock S7, impossible de l’ajouter à HomeAssistant
Il n’apparait pas dans mon board, pourtant j’ai bien fait toutes les étapes 🙁 Help ! Merci 🙂
Hello,
Il vient juste de sortir, il faut généralement un peu de temps avant que Xiaomi Home ne les prenne en charge… 🙂
Bonjour,
Pour information il existe un outil pour récupérer le token directement depuis l’ordi sans toutes les manips :
https://github.com/Maxmudjon/Get_MiHome_devices_token/releases/tag/1.0.2m
ça a fonctionné pour moi
Bonjour,
C’est top ! Merci pour l’info ! 🙂
Bonne journée
Bonjour, le Roborock S6 maxV est supporté sous Mi Home désormais (mais pas la transmission de sa caméra).
Et pour récupérer les tokens de tous vos produits Xiaomi (quelque soit le serveur sur lequel vous les avez enregistrés), ce script python est juste impeccable:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor
Fonctionne toujours en Décembre 2020 ! Parfait, merci beaucoup !
Merci pour le retour ! 🙂
J’ai réussi à récupérer le tocken.
Cependant, j’ai une erreur dans HA. Je me suis dis que cela était du au fait que je n’avais pas xiaomi_miio d’installé.
J’ai donc été le rajouter dans l’intégration mais on me demande d’entrer l’ip et le token d’une Xiaomi Gateway… que je n’ai pas :/
Une petite idée de ce que je dois faire svp ?
Bonjour,
Est-ce que cette procédure de récupération du token s’applique également au nouveau Roborock S6 MaxV via un équipement iOS ou iMac ?
J’ai cru comprendre qu’il y avait une différence entre l’application Mi Home et Roborock. Laquelle utilisée pour une intégration optimale sous Home Assistant ?
Merci pour votre aide.
C’est avec Xiaomi Home et le S6 MaxV n’est actuellement disponible que sur l’application Roborock, me semble-t-il.
Désolé, petite erreur dans le lien, voici le bon lien : https://github.com/nqkdev/home-assistant-vacuum-styj02ym
Et très bonne nouvelle, ça marche avec ceux qui ont la version Europe viomi.vacuum.v8 (v.3.5.3_0017)
Bien à vous
Patrick
Bonjour, j’ai utilisé ce lien pour mon Xiaomi Mijia Mop P (viomi.vacuum.v8) : https://github.com/rytilahti/python-miio/blob/master/miio/vacuum_cli.py#L58
Mais je n’ai pas réussi à l’intégrer (suis un bleu/newbie).
Peut-être faire attention à la version v7 ou v8 car v8 serait un modèle Europe ?
Bien à vous et bravo pour votre site et vidéos
Patrick
Super tutoriel ! Nouveau dans Home Assistant je me régale de sa beauté, de sa logique et de sa puissance.
Pour ceux qui cherchent dans les commentaires à récupérer le token de leur appareil le plus simplement possible, voici le plus simple que j’ai trouvé :
Pour récupérer mon token du roborock, j’ai installé la version 5.4.49 de mihome (dispo sur apk mirror), puis après avoir configuré mon compte sur « Europe », je suis allé voir dans le fichier de log dans /sdcard/SmartHome/logs/plug_DeviceManager/.log. Vers la fin du fichier, on a une ligne comme ça :
« did »: »DEVICE_ID », »token »: »MONTOKEN », »longitude »: »0.00000000″, »latitude »: »0.00000000″, »name »: »Robot aspirateur »
Et là magique, on a le token en clair!
Ensuite, il n’y a plus qu’à remettre à jour mihome.
Super ! 🙂 Merci pour ce retour…
Hello les alexiens !
Êtes vous sur que Mi Home est encore dispo sur le store Aptoid ? Impossible de tomber dessus via la recherche ^^
Super article, hâte de pouvoir continuer une fois le token récupéré 🙂
Merci !
Récupérer mi home vevs il fournit les token et vous permet de mettre n’importe quel devices sur n’importe quel serveurs.
integration super simple
parcontre la carte ne s’affiche pas dans FloleVac
Merci pour le retour, je vais regarder pour une seconde solution car effectivement floleVac rencontre des soucis pour la création des cartes avec les aspirateurs à multi cartes
bonsoir, malheureusement le site pour décrypter le token est payant … une autre solution ? D’avance merci 😉
je suis sur ios , donc j’ai utiliser un emulateur Android sous mon mac
Bonjour, effectivement c’est une solution intéressante qui fonctionne également 🙂 Merci pour votre retour
Très intéressant, merci… mais allez-vous bientôt publier le guide pour le « Xiaomi Mijia Mop P »?
Bonjour, il sera disponible prochainement 😉
(La procédure reste quasiment la même, il faut juste ajouter manuellement les fichiers dans custom_components 🙂 )