Cómo automatizar un robot aspirador en Home Assistant


¿Quiere llevar su robot aspirador inteligente al siguiente nivel? En esta entrada del blog voy a compartir con vosotros cómo he automatizado un robot aspirador con WiFi (Eufy Robovac 30c) dentro de Home Assistant.

 

El asistente doméstico ofrece integraciones estándar para varias marcas como Xiaomi Miio y el iRobot Roomba, pero también permite que otros robots aspiradores con WiFi se conecten al asistente doméstico. Esto le permitirá realizar varias automatizaciones, como un recordatorio para vaciar la papelera o una notificación de las rutinas de limpieza.

 

¿Qué es el asistente doméstico?

Home assistant es un software de automatización del hogar basado en la nube y abierto, que puede instalarse en su propio hardware que usted suministra e instala. Para más información, consulte mis otros entradas de blog donde lo explico con detalle.

Categoría de vacío

El asistente doméstico tiene varias categorías de integración y en este post vamos a explorar la categoría Vacío.

La categoría de aspiradoras permite controlar los robots de limpieza del hogar dentro del asistente doméstico.

Tendrás que añadir tu propio robot aspirador: configuración. yaml

 

Este es un ejemplo de cómo podía ser:

vacuum: - platform: xiaomi_miio name: Living room host: 192.168.1.2

El asistente doméstico Out of the box funciona con las siguientes marcas de aspiradoras:

  • Dyson
  • Ecovacs
  • IRobot
  • Cualquier vacío habilitado para MQTT
  • Neato Botvac
  • Xiaomi Miio

 

Una vez configurado, cada marca tiene una configuración ligeramente diferente tendrá los mismos servicios que puede utilizar en su tablero o en sus automatizaciones.

Para utilizar el robot aspirador puedes llamar al servicio al vacío. turn_on o vacío. iniciar (dependiendo de su marca).

Deberá especificar el id de la entidad en todos los casos.

 

Para detener la limpieza y volver al muelle puede utilizar el vacío. parada o vacío. desactivar

 

Otros servicios útiles son el vacío. return_to_base en caso de que tu aspiradora se quede atascada y no consiga volver a la base o quizás la hayas detenido.

En el peor de los casos, si realmente no puede encontrar su robot, puede enviar un al vacío. localizar para que el vacío emita un sonido.

 

Eufy Robovac Caso práctico

Parece bastante fácil simplemente coger un Dyson o un IRoobot que fuera de la caja son compatibles y se integran con el asistente del hogar tan fácilmente. Sin embargo, tuve un Eufy Robovac el modelo 30c comprobar el precio actual de Amazon US o ESPAÑA La consideraría una opción económica en comparación con las otras aspiradoras.

 

Así es como mi configuración. yaml parece:

eufy_vacuum:
devices:
- name: Robovac
address: 192.168.X.XX
access_token: XXXXXXXXXX
id: XXXXXXXXXXXXXXXXXXXX
type: T2118

 

Si decides comprar un Eufy Robovac 30c que he estado usando durante años sin problemas te mostraré cómo configuro mi versión.

Tenga en cuenta que estas instrucciones sólo sirven para el 30c.

 

Paso 1

Ve a tu carpeta config/ en el asistente de inicio, yo uso el complemento del editor de archivos para hacer esto en la UI.

Cree una carpeta llamada custom_components a menos que ya la tenga.

Entra en la carpeta

Cargue la siguiente carpeta eufy_robovac de este repo de github en una carpeta llamada eufy_vacuum (nótese los diferentes nombres).

 

Paso 2

Añada el código mencionado anteriormente en su propia configuración. archivo yaml.

Ahora tenemos que encontrar estos tres componentes:

  • Dirección
  • Ficha de acceso
  • id

 

La dirección será la dirección IP de su red que su router le ha asignado a través de su servidor DNS. Te recomiendo que asignes una dirección IP estática. Si necesitas ayuda, ponte en contacto con nosotros y te apoyaremos.

El Token de acceso y el Id se pueden obtener con lo siguiente:

En primer lugar, felicitaciones a Josh Strange que ha construido una serie de pasos con el fin de "oler" los datos necesarios. https://github.com/joshstrange/eufy-robovac

Para ello necesitarás un dispositivo Android o un simulador como BlueStacks.

  1. Cierre la aplicación en su dispositivo móvil
  2. Conecta el dispositivo a tu portátil y activa la depuración USB
  3. Ejecuta adb logcat -e 'tuya. m. mi. grupo. dispositivo. lista' (se supone que ya has instalado las herramientas de depuración de Android)
  4. Inicie la aplicación Eufy Home
  5. Las líneas de salida contienen JSON, estás buscando los valores de localKey (cadena hexadecimal de 16 caracteres) y devId (cadena hexadecimal de 20 caracteres).

Automatizaciones

Esta es la parte interesante en la que el límite es lo que puedas imaginar, ¡puedes crearlos tan simples como quieras y tan complejos como desees!

Cada aplicación de robot aspirador tendrá sus propias características y automatizaciones, pero con el asistente doméstico podrá utilizar sus otros sensores y gadgets para interactuar entre ellos y crear combinaciones únicas.

En esta entrada del blog exploraremos tres automatizaciones:

  • Notificaciones de voz cuando el robot aspirador se pone en marcha
  • Notificaciones de contenedores vacíos
  • Volver a la automatización de la base

 

Notificación de voz cuando el robot aspirador se pone en marcha

En esta primera automatización vamos a empezar a familiarizarnos con la creación de automatizaciones en home assistant. Esta automatización enviará a un google mini para que me envíe un mensaje que nos diga que el robot ha empezado a limpiar.

 

El identificador de entidad para nuestro robot aspirador es la aspiradora. robovac y buscamos un cambio de estado de 'off' a 'on', esto activará el servicio de texto a voz (tts) para reproducir un mensaje.

Este es el código:

- id: robovac_bin alias: Robovac Bin trigger: platform: state entity_id: vacuum.robovac from: 'off' to: 'on' action: - service: tts.google_say data: entity_id: media_player.kitchen_speaker message: Robovac has started cleaning the kitchen.

Puedes usar cualquier mensaje que desees, tu entity_id puede ser diferente al mío, para el resto deberías poder copiar y pegar.

Notificaciones de contenedores vacíos

En esta automatización vamos a recibir una notificación cuando el contenedor de la aspiradora necesite ser vaciado. Ahora no tenemos una forma científica precisa de hacerlo. La situación de cada uno puede ser diferente, pero voy a explicar la mía.

 

Calculo que después de 3 ciclos de limpieza tendría que vaciar la papelera, quiero que google me avise cuando haya que hacerlo.

 

Primer paso, necesitamos crear un contador, un contador almacenará el número de veces que el vacío se ha disparado desde la última vez que vaciamos la papelera.

 

En la configuración. yaml añada el siguiente código:

# Create a Vacuum Bin Counter
counter: vacuum_bin_counter: initial: 0 step: 1

Ahora tome la precaución de llamar a su contador de cualquier manera, el mío se llama vacuum_bin_counter.

 

Después de reiniciar HASS tenemos que añadir un paso a la automatización anterior, cada vez que el robot se pone en marcha queremos ser notificados y aumentar el contador, añadir este código en:

 - entity_id: counter.vacuum_bin_counter service: counter.increment

Recarga de automatismos.

Ahora, cada vez que ponga en marcha la aspiradora, con el asistente doméstico o no, el valor del contador aumentará. Puedes restablecer el contador desde el panel de control.

 

Segundo paso, necesitamos que se nos notifique cuando el valor del contador suba por encima de 3 (¡vuelve a cambiar este valor a lo que te funcione!)

#Robovac is full Notification
- id: robovac_full_notification alias: Robovac is full trigger: - platform: numeric_state above: '3' entity_id: counter.vacuum_bin_counter action: - service: tts.google_say data: entity_id: media_player.kitchen_speaker message: Robovac is full, please empty the bin.

Fíjate que he utilizado un estado numérico como disparador de la plataforma y el id de la entidad es el nombre que has especificado en el paso anterior.

La acción es similar solo que con un mensaje diferente, puedes añadir más de una notificación para una experiencia completa.

 

Esto completa la automatización.

Volver a la automatización de la base

La última automatización que quiero cubrir en esta entrada del blog es el retorno a la base, ahora mi robot aspirador vuelve automáticamente a la base después de cada ciclo de limpieza.

Pero la mayoría de las veces se detiene manualmente o se pausa o se atasca.

La siguiente automatización comprobará si no se está limpiando ni acoplando y entonces activará una automatización, este es el código:

 

#Return to charging base
- id: robovac_return_to_base alias: Robovac go back to base when Idle trigger: - platform: template value_template: "{{ is_state_attr('vacuum.robovac', 'status', 'idle') }}" action: - service: vacuum.return_to_base data: entity_id: vacuum.robovac

La plantilla de la plataforma permite comprobar un estado (atributo) de una entidad y comprobar un valor. En mi caso estoy comprobando el estado de los atributos del vacío. el robovac está inactivo, entonces acciono el servicio de retorno a la base.

 

 

Por favor, suscríbase a mi blog y a mi canal de YouTube para recibir notificaciones cuando se publiquen nuevos contenidos.

Descargo de responsabilidad :

Este post contiene enlaces afiliados a Amazon UK y Amazon US, me llevaré una pequeña comisión por cada venta, pero no te costará nada. Esto permite mantener este blog de forma sostenible.

Manténgalo digital.

 

giordano

Entradas recientes