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.
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. 🙂
31 Commentaires