DomotiqueHome Assistant & AlexaTutoriels domotiqueXiaomi Mijia

[TUTORIEL] Home Assistant : intégrer son aspirateur robot Xiaomi

Contrôlez l'état de votre aspirateur Xiaomi Roborock

Home Assistant aspirateur robot roborock xiaomiPrécédemment, nous avons intégrés 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.

Crédits : PiotrMachowski

 

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

 

Aurélien Buret

Passionné de high tech et de domotique, j'ai récemment rejoint la rédaction du site pour partager avec vous ma passion pour la domotique et en particulier mes découvertes sur Home Assistant.

15 commentaires

    1. Bonjour, il sera disponible prochainement 😉
      (La procédure reste quasiment la même, il faut juste ajouter manuellement les fichiers dans custom_components 🙂 )

    1. Bonjour, effectivement c’est une solution intéressante qui fonctionne également 🙂 Merci pour votre retour

    1. 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

  1. 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 !

    1. Récupérer mi home vevs il fournit les token et vous permet de mettre n’importe quel devices sur n’importe quel serveurs.

  2. 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.

  3. 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.

    1. C’est avec Xiaomi Home et le S6 MaxV n’est actuellement disponible que sur l’application Roborock, me semble-t-il.

Laisser un commentaire

Bouton retour en haut de la page