Home Assistant no integra de forma nativa este modelo tal como hacia con el modelo Vacuum 2 , para ello copiaremos en custom_components/miio2 los cuatro ficheros que encontraremos en este enlace.
Añadiremos en configuration.yaml la configuración del robot
vacuum: - platform: miio2 # https://github.com/nqkdev/home-assistant-vacuum-styj02ym host: 192.168.1.204 token: !secret vacuum_token name: Robot Mop Pro
El token lo podemos sacar de varias maneras , pero la mas cómoda es con la aplicación mi Home vevs que nos lo da directamente.
Una vez lo vemos ya en nuestro Home Assistant podemos empezar a crear los sensores para nuestras tarjetas y automatizaciones.
Lo primero un sensor que nos guarde el valor de la bateria para poder controlar su estado.
mayordomo_battery_level: friendly_name: Robot Chu-Li value_template: "{{ states.vacuum.robot_mop_pro.attributes.battery_level|default(-1)| int(0) if states.vacuum.robot_mop_pro is not none }}" unit_of_measurement: '%' icon_template: '{% if states.vacuum.robot_mop_pro.attributes.battery_level == 100 %} mdi:battery {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 90 %} mdi:battery-90 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 80 %} mdi:battery-80 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 70 %} mdi:battery-70 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 60 %} mdi:battery-60 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 50 %} mdi:battery-50 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 40 %} mdi:battery-40 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 30 %} mdi:battery-30 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 20 %} mdi:battery-20 {% elif states.vacuum.robot_mop_pro.attributes.battery_level >= 10 %} mdi:battery-10 {% else %} mdi:battery-outline {% endif %}'
Esto nos permitirá ver por ejemplo que cuando estaba al 6% ha vuelto ,se ha recargado hasta el 60% y entonces ha acabado el ciclo de limpieza volviendo al dock a cargarse completamente
Crearemos unos sensores extras para poder ver los valores en nuestra tarjeta del robot.
# Estado de la aspiradora - platform: template sensors: vacuum_status: value_template: '{{states.vacuum.robot_mop_pro.state}}' friendly_name: Estado de la aspiradora icon_template: mdi:information-variant # Nivel de batería de la aspiradora - platform: template sensors: vacuum_battery_level: value_template: '{{ states.vacuum.robot_mop_pro.attributes.battery_level | int(0) }}' unit_of_measurement: '%' friendly_name: Batería restante icon_template: mdi:battery # Velocidad de Aspiración - platform: template sensors: vacuum_fan_speed: friendly_name: Velocidad Aspiración value_template: 'Modo Aspiración: {{ states.vacuum.robot_mop_pro.attributes.fan_speed }}' icon_template: 'mdi:speedometer'
Quedaria algo asi
Y a partir de ahí ya podemos empezar a programar nuestras automatizaciones , esta por ejemplo es parte del bot de Telegram que nos da información del robot y nos permite interactuar con el desde Telegram.
telegram_estado_robot_aspirador: alias: telegram_estado_robot_aspirador sequence: - service: notify.notif_telegram_bot data: message: "*Pulsado estado robot*" - service: notify.notif_telegram_bot data_template: # title: 'Menú' message: | {{"\U0001F300"}} *Estado robot aspirador* {{"\U0001F300"}} {{"\U0001f50b"}} *Bateria:* {{ states.vacuum.robot_mop_pro.attributes.battery_level }}% {{"\U0001F300"}} *Velocidad aspirado:* {{states.vacuum.robot_mop_pro.attributes.fan_speed}} {{"\U0001f4ab"}} *Estado actual:* {{states.vacuum.robot_mop_pro.state}} data: inline_keyboard: - 'Aspirador ON:/estado_robot_on, Aspirador OFF:/estado_robot_off' - 'Aspirador Pausa:/estado_robot_pause, Aspirador BASE:/estado_robot_base' - 'Principal:/cancel'
Y esta por ejemplo para que nos avise por Telegram , y también nos de un mensaje via TTS a traves de los altavoces de los dos Google Home.
- alias: Empezando a limpiar initial_state: 'on' trigger: - entity_id: vacuum.robot_mop_pro platform: state to: cleaning condition: condition: state entity_id: input_boolean.int_menos_notificaciones state: 'off' action: - service: notify.notif_telegram_bot data: message: "Robot Xiaomi *comenzando* limpieza" - alias: Limpieza Acabada initial_state: 'on' trigger: - entity_id: vacuum.robot_mop_pro platform: state from: cleaning to: idle condition: condition: state entity_id: input_boolean.int_menos_notificaciones state: 'off' action: - service: notify.notif_telegram_bot data: message: "Robot Xiaomi *limpieza acabada*" - service: tts.google_cloud entity_id: media_player.lenovocd_24502f2519 data: message: 'Robot Xiaomi limpieza acabada' - service: tts.google_cloud entity_id: media_player.googlehome2670 data: message: 'Robot Xiaomi limpieza acabada'
Y con esto y un bizcocho ….