Tutoriel Home Assistant : intégrer son aspirateur robot Xiaomi

Home Assistant aspirateur robot roborock xiaomi Précédemment, nous avons intégré les aspirateurs robot Ecovacs, les caméras Blink ainsi que la gamme d’objets Smart Life Tuya dans notre instance Hass.io. Aujourd’hui nous poursuivons sur notre lancée en intégrant à notre box domotique Home Assistant les aspirateurs Xiaomi et Roborock dont la réputation n’est plus à faire.

Vous pouvez d’ailleurs retrouver les tests de Roborock S4, S5 Max et S6 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

Le robot aspirateur Xiaomi Mijia Mop P (ref: STYJ02YM) est actuellement incompatible avec ce tutoriel. Un tutoriel lui sera dédié.

Configuration de notre aspirateur 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.

Baux DHCP statiques Aspirateur Roborock S6
Baux DHCP statiques Aspirateur Roborock S6

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ération du jeton d’accès Xiaomi

Nous allons récupérer le token de l’aspirateur robot Xiaomi ou Roborock depuis l’application Xiaomi Home. Cette étape est différente pour un appareil iOS et un appareil Android.

Récupérer le jeton depuis un appareil Android

  1. Ajoutez (si ce n’est pas déjà fait) votre aspirateur sur l’application Xiaomi Home
  2. Désinstallez l’application Xiaomi Home (oui oui..)
  3. Depuis votre téléphone, téléchargez Aptoide
  4. Depuis Aptoide, téléchargez l’application Mi Home 5.4.54 (Sécurisée, ancienne version officielle de Xiaomi Home)
  5. Ouvrez l’application Mi Home fraîchement installée puis attendez quelques petites secondes que vos appareils apparaissent
  6. Une fois la plupart de vos appareils apparus vous pouvez fermer l’application
  7. Ouvrez l’application « Gestionnaire de fichier » et cherchez le dossier « SmartHome »
  8. 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)
  9. Cherchez le nom de votre aspirateur, une fois trouvé, il y aura un peu avant une ligne qui ressemblera à : {token: XXXXXXXXXXXXXXX} 
  10. Copiez ce token, nous avons besoin de lui pour la suite du tutoriel 

Ce token change quand vous déconnectez ou supprimez l’aspirateur de votre réseau Wi-Fi.

Récupérer le jeton depuis un appareil iOS

  1. Ajoutez (si ce n’est pas déjà fait) votre aspirateur sur l’application Xiaomi Home
  2. Sur un PC ou un Mac avec iTunes installé, vous devez sauvegarder l’iPhone.
  3. Installez iBackup Viewer, ouvrez le et ouvrez votre sauvegarde
  4. Ouvrez le module « données brutes » (logo en forme d’arborescence)
  5. Accédez à com.xiaomi.mihome
  6. Recherchez un fichier qui ressemble à XXXXXXXX_mihome.sqlite dans le dossier Documents
  7. Enregistrez ce fichier sur votre ordinateur
  8. Installez DB Browser for SQLite  (La version portable est suffisante)
  9. 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)
  10. Dans l’onglet « Parcourir les données » faites défiler les colonnes jusqu’à la dernière colonne (ZTOKEN)
  11. Cliquez dessus, vous devriez voir apparaitre le token que nous souhaitons utiliser
  12. Votre token est crypté, nous allons le décrypter depuis un site gratuit
  13. La colonne de droite doit ressembler à ceci :

Key (obligatoire) : 00000000000000000000000000000000

Ce token change quand vous déconnectez ou supprimez l’aspirateur de votre réseau Wi-Fi !

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 🙂 )

Félicitations! Votre aspirateur robot Xiaomi ou Roborock est maintenant intégré !

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

Tous les attributs peuvent être utilisés dans un scénario et vous pouvez tout simplement les afficher dans une carte. 🙂

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.

script home assistant
script home assistant

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

Disponible uniquement pour les appareils Android
  1. Téléchargez Flolevac
  2. Connectez-vous avec vos informations d’identification Xiaomi (Testé par Google Play Protect)
  3. Ouvrir la carte (Assurez-vous d’être sur votre réseau domestique)
  4. Sélectionnez « Nettoyage de zone » et tracez un carré autour de la zone que vous souhaitez nettoyer
  5. 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.

Carte Lovelace du Roborock S6 sur Home Assistant

N’hésitez pas à partager en commentaire ou via le groupe facebook vos scénarios qui vous aident au quotidien. 🙂

 

Plusieurs plumes de passionnés d'Alexa pour vous concocter des articles à 4 mains ou plus... Une écriture collaborative pour aborder les sujets les plus pointus ou transversaux, les meilleurs bons plans domotique et maison connectée du web, et bien plus encore...