Cómo Automatizar la Actualización de Dispositivos ESPHome en Home Assistant
Si gestionas múltiples dispositivos basados en ESPHome dentro de tu instalación de Home Assistant, seguramente te has enfrentado a la tediosa tarea de actualizar cada dispositivo manualmente después de actualizar el add-on de ESPHome. Este proceso puede volverse especialmente engorroso cuando tienes decenas de dispositivos distribuidos por toda tu casa.
En este artículo te explicaremos cómo implementar una solución automatizada que actualiza todos tus dispositivos ESPHome de forma secuencial y sin intervención manual, simplemente al actualizar el add-on principal.
El Problema de las Actualizaciones Manuales
Cuando trabajas con ESPHome en Home Assistant, el flujo de actualización tradicional implica dos pasos:
- Actualizar el add-on de ESPHome desde el supervisor de Home Assistant
- Acceder a cada dispositivo individualmente y ejecutar la actualización uno por uno
Este proceso manual no solo consume tiempo valioso, sino que también aumenta la probabilidad de olvidar actualizar algún dispositivo, lo que puede generar inconsistencias en tu sistema o dejar dispositivos con versiones antiguas que podrían contener vulnerabilidades de seguridad.
La Solución: Automatización con YAML
La solución a este problema consiste en crear una automatización que se active automáticamente cada vez que se actualiza el add-on de ESPHome. Esta automatización recorrerá todos los dispositivos ESPHome registrados en tu sistema y los actualizará de forma secuencial, uno tras otro, hasta completar el proceso con todos ellos.
Créditos y Reconocimientos
Es importante mencionar que esta solución fue desarrollada originalmente por Ed del canal Smart Home Junkie, un reconocido creador de contenido en inglés especializado en tutoriales y guías de Home Assistant. La implementación que presentamos aquí es una versión traducida y simplificada de su trabajo original, adaptada para la comunidad hispanohablante.
Implementación Paso a Paso
El proceso de implementación es sorprendentemente sencillo y no requiere conocimientos avanzados de programación. A continuación, te guiamos a través de cada paso necesario para configurar esta automatización.
Paso 1: Acceder a la Sección de Automatizaciones
Lo primero que debes hacer es navegar hasta la sección de automatizaciones de Home Assistant. Para ello:
- Accede al menú de Ajustes en tu instalación de Home Assistant
- Selecciona Automatizaciones y Escenas
- Haz clic en el botón para crear una nueva automatización
Paso 2: Crear la Automatización en Modo YAML
En lugar de utilizar el editor gráfico de automatizaciones, utilizaremos el editor YAML para tener un control más preciso sobre la configuración:
- Una vez en la pantalla de creación de automatización, haz clic en Crear nueva automatización
- Busca los tres puntos verticales en la esquina superior derecha
- Selecciona la opción Editar en YAML
Esto abrirá un editor de texto donde podrás introducir directamente el código de configuración.
Paso 3: Introducir el Código de Automatización
En el editor YAML que se ha abierto:
- Borra todo el contenido predeterminado que aparece en el editor
- Pega el código de automatización proporcionado: https://nativodigital.org/codigo-actualizacion-automatica-de-esphome/https://github.com/blancofran/AutoUpdateEspHome/blob/main/code.yaml
Paso 4: Guardar y Nombrar la Automatización
Una vez que hayas pegado el código:
- Haz clic en el botón Guardar
- Asigna un nombre descriptivo a la automatización, por ejemplo: “Actualización automática ESPHome”
- Confirma haciendo clic en Renombrar
Con esto, tu automatización quedará activa y lista para ejecutarse.
Cómo Funciona la Automatización
Entender el funcionamiento interno de esta automatización te ayudará a apreciar su utilidad y a solucionar posibles problemas en el futuro.
Trigger o Disparador
La automatización se configura para escuchar un evento específico: la actualización del add-on de ESPHome. Cada vez que Home Assistant detecta que este add-on ha sido actualizado, se activa el proceso automático.
Proceso de Actualización Secuencial
Una vez activada, la automatización realiza las siguientes acciones:
- Identifica todos los dispositivos que utilizan ESPHome en tu instalación
- Crea una lista ordenada de estos dispositivos
- Recorre la lista de forma secuencial, actualizando un dispositivo a la vez
- Espera a que cada actualización se complete antes de pasar al siguiente dispositivo
- Continúa hasta que todos los dispositivos hayan sido actualizados
Ventajas del Enfoque Secuencial
La actualización secuencial (uno tras otro) en lugar de simultánea tiene varias ventajas importantes:
- Menor carga en la red: Evita saturar tu red WiFi con múltiples actualizaciones simultáneas
- Estabilidad del sistema: Reduce el riesgo de que Home Assistant se sobrecargue procesando múltiples actualizaciones a la vez
- Facilidad de diagnóstico: Si algo falla, es más fácil identificar qué dispositivo causó el problema
- Mayor tasa de éxito: Las actualizaciones individuales tienen menos probabilidad de fallar que las masivas
Uso Práctico de la Automatización
Una vez configurada la automatización, el flujo de trabajo se simplifica enormemente:
- Accede al Supervisor de Home Assistant
- Localiza el add-on de ESPHome en la lista de add-ons instalados
- Ejecuta la actualización del add-on cuando esté disponible una nueva versión
- La automatización se activará automáticamente y comenzará a actualizar todos tus dispositivos
- Puedes monitorear el progreso desde la interfaz de ESPHome o desde los logs del sistema
No necesitas hacer nada más. El sistema se encargará de todo el proceso de actualización de forma completamente autónoma.
Consideraciones Importantes
Tiempo de Ejecución
Ten en cuenta que el tiempo total de actualización dependerá de varios factores:
- Número total de dispositivos ESPHome en tu instalación
- Velocidad de tu red WiFi
- Complejidad de la configuración de cada dispositivo
- Potencia de procesamiento de cada ESP (ESP8266 vs ESP32)
Para una instalación con 10-15 dispositivos, el proceso completo podría tomar entre 15 y 30 minutos.
Disponibilidad de Dispositivos
Durante el proceso de actualización, cada dispositivo estará temporalmente fuera de línea mientras se reinicia con el nuevo firmware. Esto es normal y no debe causar preocupación. Sin embargo, es recomendable:
- Ejecutar las actualizaciones en momentos de bajo uso del sistema
- Evitar actualizar durante la noche si tienes automatizaciones críticas basadas en sensores ESPHome
- Informar a otros usuarios de tu hogar sobre el proceso de actualización
Monitoreo del Proceso
Aunque el proceso es automático, es buena práctica supervisar la primera ejecución para asegurarte de que todo funciona correctamente. Puedes hacerlo:
- Accediendo a la interfaz web de ESPHome y observando el estado de cada dispositivo
- Revisando los logs de Home Assistant para detectar posibles errores
- Verificando que los dispositivos vuelven a estar en línea después de cada actualización
Beneficios de Esta Solución
Implementar esta automatización aporta múltiples beneficios a la gestión de tu smart home:
Ahorro de Tiempo Significativo
El beneficio más evidente es el ahorro de tiempo. Lo que antes podía tomar 30-60 minutos de trabajo manual ahora se realiza automáticamente mientras te dedicas a otras tareas.
Consistencia en las Versiones
Todos tus dispositivos ESPHome estarán siempre en la misma versión de firmware, lo que elimina problemas de compatibilidad y comportamientos inconsistentes.
Reducción de Errores Humanos
Al automatizar el proceso, eliminas la posibilidad de olvidar actualizar algún dispositivo o de cometer errores durante el proceso manual.
Mantenimiento Proactivo
Con la barrera de tiempo eliminada, es más probable que mantengas tus dispositivos actualizados regularmente, beneficiándote de las últimas mejoras y correcciones de seguridad.
Solución de Problemas Comunes
La Automatización No Se Activa
Si después de actualizar el add-on la automatización no se ejecuta:
- Verifica que la automatización esté habilitada en la interfaz de automatizaciones
- Revisa los logs de Home Assistant para detectar posibles errores en el código YAML
- Asegúrate de haber pegado el código completo sin modificaciones
Algunos Dispositivos No Se Actualizan
Si algunos dispositivos quedan sin actualizar:
- Verifica que los dispositivos estén en línea y accesibles desde Home Assistant
- Comprueba la conectividad WiFi de los dispositivos problemáticos
- Revisa si hay suficiente espacio de almacenamiento en el ESP para la actualización
Errores Durante la Actualización
Si un dispositivo falla durante la actualización:
- La automatización debería continuar con los siguientes dispositivos
- Puedes actualizar manualmente el dispositivo problemático después
- Revisa los logs específicos de ese dispositivo para identificar la causa del fallo
Recomendaciones Adicionales
Realiza Copias de Seguridad
Antes de implementar esta automatización o cualquier cambio significativo en tu sistema:
- Crea una copia de seguridad completa de Home Assistant
- Guarda las configuraciones individuales de tus dispositivos ESPHome
- Documenta cualquier personalización importante
Prueba en Entorno Controlado
Si tienes muchos dispositivos críticos, considera:
- Probar primero la automatización con un subconjunto pequeño de dispositivos
- Ejecutar la primera actualización automática durante un fin de semana
- Tener un plan de contingencia para revertir cambios si es necesario
Mantén la Documentación
Documenta esta automatización en tu sistema:
- Anota la fecha de implementación
- Registra cualquier modificación que hagas al código
- Mantén un log de las actualizaciones automáticas exitosas
Adaptaciones y Personalizaciones
Aunque la automatización funciona perfectamente tal como se presenta, usuarios avanzados pueden considerar algunas personalizaciones:
Notificaciones de Progreso
Puedes agregar acciones de notificación para recibir alertas cuando:
- La automatización comienza a ejecutarse
- Cada dispositivo se actualiza exitosamente
- El proceso completo finaliza
- Ocurre algún error durante la actualización
Programación Horaria
Podrías modificar la automatización para que, además de activarse con la actualización del add-on, también incluya condiciones de tiempo para ejecutarse solo en horarios específicos.
Exclusión de Dispositivos Específicos
Si tienes dispositivos críticos que prefieres actualizar manualmente, puedes modificar el código para excluirlos del proceso automático.