¿Por qué Home Assistant reconstruye un estado diferente después de reiniciar un contenedor?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

Un reinicio del contenedor de Home Assistant puede hacer que el sistema parezca brevemente diferente, incluso cuando la configuración persistente permanece perfectamente intacta. La razón es que una instancia en ejecución contiene tanto estado duradero en el disco como estado transitorio en la memoria. Al reiniciar el contenedor, este último se destruye y las integraciones deben reconstruirlo.

Por eso una entidad puede pasar por los estados unknown o unavailable, un dispositivo MQTT puede reaparecer en cuanto llegan los mensajes retenidos y un servicio externo puede seguir sin aparecer hasta que un reintento tenga éxito. El reinicio es un evento de reconstrucción del estado, no simplemente una pausa y reanudación del mismo proceso en memoria.

El entorno de ejecución del contenedor se puede reemplazar; /config es el límite duradero

Normalmente, Home Assistant Container se administra recreando el contenedor a partir de la imagen, mientras se mantiene el montaje de configuración. Actualizar la imagen, cambiar el entorno de ejecución o reiniciar el proceso no debería exigir reconstruir el sistema doméstico desde cero si la ruta persistente sigue conectada correctamente.

El flujo de trabajo actual de Home Assistant Container recrea explícitamente el contenedor al cambiar de versión. Este modelo funciona porque se espera que el estado de la aplicación sobreviva fuera del entorno de ejecución desechable.

Todo lo que existe únicamente en la memoria del proceso desaparece al reiniciar. El siguiente proceso debe volver a leer la configuración, los registros, las bases de datos y las entradas de las integraciones antes de poder recrear la misma vista activa.

Core inicia una nueva máquina de estados de ejecución

En cada inicio, Home Assistant crea un proceso Core nuevo, con un bucle de eventos, una máquina de estados, servicios, temporizadores y objetos de ejecución de las integraciones nuevos. El registro de entidades puede identificar las entidades conocidas, pero el valor actual de un dispositivo físico aún debe restaurarse, obtenerse o notificarse.

Recorder también crea una nueva ejecución del grabador cada vez que Home Assistant se inicia. Las filas históricas de la base de datos persisten, pero el proceso actual representa un nuevo intervalo de ejecución, no la continuación del anterior.

Esta distinción es importante al comparar registros o marcas de tiempo de la base de datos alrededor de un reinicio. Un registro histórico demuestra lo que Home Assistant observó anteriormente; no demuestra automáticamente que el proceso nuevo ya haya restablecido la conexión activa con el dispositivo.

Las integraciones vuelven a poblar el estado de ejecución a distintas velocidades

Algunas integraciones se reconectan de inmediato a un dispositivo local. Otras esperan al DNS, a un bróker, a una API en la nube, a un puente de radio o a otro contenedor. Por eso sus entidades pasan a estar disponibles en momentos distintos, aunque Home Assistant Core ya esté en ejecución.

El modelo actual de Home Assistant para los fallos de configuración exige que las integraciones temporalmente no disponibles entren en una ruta de reintento para poder recuperarse cuando el dispositivo o servicio vuelva a estar accesible. Esto significa que el estado visible después de un reinicio puede evolucionar durante varios minutos sin indicar que los datos persistentes hayan cambiado.

Un segundo reinicio, después de que todas las dependencias ya estén activas, puede parecer mucho más rápido que un reinicio de toda la pila porque la red, el bróker, la base de datos y los dispositivos ya no tienen que converger al mismo tiempo.

MQTT hace especialmente visible la reconstrucción del estado

MQTT es un ejemplo útil porque el bróker puede conservar los mensajes de descubrimiento o de estado de forma independiente del proceso de Home Assistant. Cuando Home Assistant se vuelve a conectar, los datos retenidos pueden reproducirse y las entidades pueden recuperar rápidamente su último valor informado.

La integración MQTT documenta que las entidades descubiertas no están disponibles después de un reinicio hasta que se procesa el descubrimiento, mientras que los mensajes retenidos de descubrimiento y de estado pueden reproducirse a medida que se reconstruyen las suscripciones. Home Assistant también emite un mensaje de nacimiento que los dispositivos pueden utilizar para volver a publicar el descubrimiento y el estado actualizado.

Un valor retenido sigue siendo el último informe conocido, no una prueba de que el dispositivo físico esté accesible en ese momento. Los temas de disponibilidad y la telemetría actualizada deben evaluarse por separado.

El comportamiento del reinicio depende de dónde se encuentre la fuente de verdad

  • Configuración persistente y registros: se vuelven a leer desde el almacenamiento duradero de Home Assistant.
  • Estado actual del dispositivo: normalmente una integración lo obtiene o lo informa de nuevo.
  • Estado de MQTT: puede reconstruirse a partir de mensajes retenidos o de nuevas publicaciones.
  • Estado respaldado por la nube: depende de la conectividad con la API remota y de las credenciales.
  • Estado histórico: permanece en Recorder, pero no es lo mismo que el estado activo.
  • Objetos puramente de ejecución: los recrea el nuevo proceso de Home Assistant.

La explicación de ZimaSpace sobre el estado de MQTT después de un reinicio muestra una ruta de reconstrucción específica. La regla general es que el comportamiento del reinicio depende de dónde se encuentre la fuente de verdad de cada componente.

Preguntas frecuentes

¿Reiniciar el contenedor de Home Assistant elimina el historial?

No, siempre que la configuración persistente y la base de datos de Recorder estén montadas correctamente. El reinicio reemplaza el proceso de ejecución; los datos históricos permanecen en la base de datos persistente.

¿Por qué una entidad puede mostrar su valor anterior inmediatamente después de reiniciar?

El valor puede proceder de un mecanismo de restauración de Home Assistant, de la caché de una integración, de un estado MQTT retenido o de una consulta inmediata al dispositivo. Comprueba la integración y la ruta de disponibilidad antes de considerar que el valor mostrado es una lectura física reciente.

Centro de Tecnología e IA

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.