/ tech

Xiaomi Vacuum Cleaner edition 2

Présentation du produit

Xiaomi commercialise depuis près de deux ans un robot aspirateur. Cette année une nouvelle version est sortie apportant quelques amèliorations :

  • Une serpillière pour laver le sol
  • Une meilleure aspiration
  • Une batterie un peu plus conséquente
  • un poids allégé

On doit passer par l'application mi Home pour contrôler l'aspirateur, pas très pratique surtout que certaines parties de l'application n'ont même pas été traduites (ne serait-ce qu'en anglais...).




Intégration avec Home Assistant

Pour ce faire, nous avons besoin de l'api key bien cachée dans l'application Mi Home.
Impossible de le récupérer telle quelle, il nous faut donc ruser.

Je vous renvoi à la marche à suivre décrite pour le composant sur la page de home assistant :
https://home-assistant.io/components/vacuum.xiaomi_miio/

Possèdant un One Plus 3, il m'était impossible de suivre le tutoriel fourni, en effet le OP3 est crypté par défaut et nous oblige à fournir un mot de passe au backup, que le soft miToolkit ne peut pas gérer.

J'ai donc récupéré mon vieil Ipad2, installé mi Home avec mon compte mi et suivi la procédure pour les appareils iOS.

Une fois le code récupéré on va sur la configuration Home Assistant

== Attention depuis quelques versions il n'est plus possible de détecter l'appareil via Home Assistant
Pour corriger le problème (temporairement), on doit modifier le fichier miio/protocol.py et remplacer la section
"devtype" / Enum(Default(Int16ub, 0x02f2), default=Pass, **xiaomi_devices),
par
"devtype" / Int16ub, ==

Dans le fichier configuration.yaml :

vacuum:
    - platform: xiaomi_miio
      host: 192.168.10.45
      token: API_TOKEN
      name: Xiaomi vacuum

Dans le fichier sensor.yaml :

- platform: template
  sensors:
    xiaomibat:
      friendly_name: 'batterie en %'
      value_template: '{{ states.vacuum.xiaomi_vacuum.attributes.battery_level }}'

- platform: template
  sensors:
    xiaomistat:
      friendly_name: 'status'
      value_template: '{{ states.vacuum.xiaomi_vacuum.attributes.status }}'

- platform: template
  sensors:
    xiaomicleantime:
      friendly_name: 'temps passé'
      value_template: '{{ states.vacuum.xiaomi_vacuum.attributes.cleaning_time }}'

- platform: template
  sensors:
    xiaomicleantimet:
      friendly_name: 'temps total passé'
      value_template: '{{ states.vacuum.xiaomi_vacuum.attributes.total_cleaning_time }}'

Plus qu'à faire les automations que l'on souhaite, démarrage tous les jours, selon un calendrier, ou sur des événements précis (une fois parti de la maison par exemple).

Script pour le lancement manuel via l'IHM de Home Assistant :

  vacuumon:
    alias: Menage On
    sequence:
     - alias: menageon
       service: vacuum.turn_on
       data:
        entity_id: vacuum.xiaomi_vacuum
  vacuumoff:
    alias: Menage Off
    sequence:
     - alias: menageoff
       service: vacuum.turn_off
       data:
        entity_id: vacuum.xiaomi_vacuum    

Le script Menage On lancera l'aspirateur (et retournera à sa base une fois fini).
Le script Menage Off arrêtera l'aspirateur et lui ordonne de retourner à sa base.

Xiaomi Vacuum Cleaner edition 2
Share this