Home Assistant no tiene una respuesta significativa única para «¿cuántas tareas simultáneas puede manejar?». Diez tareas asíncronas cortas pueden ser menos costosas que una sola integración que bloquee el bucle de eventos, mientras que cincuenta automatizaciones en cola pueden seguir siendo inofensivas si la mayor parte del tiempo la pasan esperando E/S independientes.
El límite útil es el punto en el que el trabajo adicional genera un retraso repetible en la ruta de control importante: un evento tarda más en procesarse, una cola de automatizaciones crece, una llamada de servicio no alcanza su objetivo de tiempo o un recurso compartido de CPU, memoria, almacenamiento o red empieza a verse sometido a presión. Por tanto, la simultaneidad es primero un problema de latencia y colas, y solo después un problema de cantidad de tareas.
La simultaneidad de Home Assistant comienza con el bucle de eventos de Asyncio
Home Assistant Core está desarrollado sobre Python asyncio. Los componentes programan el trabajo como tareas, y el código asíncrono cooperativo cede el control mientras espera E/S, lo que permite que otro trabajo avance en lugar de dedicar un hilo del sistema operativo a cada integración.
La documentación actual para desarrolladores de Home Assistant explica que Core programa las tareas de los componentes mediante un bucle de eventos central y depende de que las tareas se suspendan correctamente mientras esperan. Por eso, «simultáneo» no significa que todas las tareas ejecuten instrucciones de CPU exactamente al mismo tiempo.
Un análisis práctico de la simultaneidad establece la misma distinción: las tareas asíncronas pueden solaparse en el tiempo transcurrido, mientras que la ejecución real del bucle de eventos sigue estando serializada entre los puntos await. La capacidad depende del tiempo que cada tarea ocupa el bucle y de aquello en lo que espera.
El trabajo bloqueante puede degradar muchas tareas a la vez
El fallo de simultaneidad más perjudicial a menudo no es «demasiadas automatizaciones», sino una operación que bloquea el bucle de eventos durante el tiempo suficiente para impedir que se ejecuten actualizaciones de estado y devoluciones de llamada no relacionadas.
Home Assistant advierte explícitamente que las operaciones bloqueantes en el bucle de eventos detienen todo el sistema durante la llamada. Esto incluye E/S de archivos mal gestionada, bibliotecas de red, esperas o trabajo síncrono pesado dentro de una integración.
Esto cambia la forma en que debe interpretarse una prueba de capacidad. Si la latencia del control local aumenta cuando una integración concreta está activa, aunque el uso general de CPU siga siendo bajo, el problema puede ser el bloqueo del bucle de eventos y no una capacidad insuficiente del procesador.
El modo de automatización controla cómo los activadores repetidos se convierten en trabajo
Las automatizaciones añaden otra capa de política de simultaneidad. Una regla puede rechazar un segundo activador, reiniciar la ejecución actual, poner el trabajo en cola o crear ejecuciones paralelas. Estas opciones modifican tanto la corrección como la demanda de recursos.
La documentación actual sobre los modos de automatización de Home Assistant define los modos single, restart, queued y parallel, con un máximo configurable de ejecuciones en cola o paralelas. El máximo predeterminado para los modos en cola y paralelo es 10, pero ese valor de configuración no es una clasificación de la capacidad de toda la plataforma.
Una automatización de un sensor de puerta que espera dos segundos antes de enviar una notificación y una automatización de iluminación que realiza cinco llamadas de red no son trabajos equivalentes. Configura el modo de automatización basándote primero en el orden y la corrección; después, observa si la cola o el solapamiento resultantes afectan a la latencia del control.
Mide el crecimiento de las colas y la latencia de cola, no solo el porcentaje de CPU
Utiliza una automatización local crítica como sonda de latencia. Registra la llegada del activador, el inicio de la automatización, la llamada de servicio y la respuesta del dispositivo físico mientras aumentas una sola variable de simultaneidad: activadores repetidos, clientes del panel, integraciones en segundo plano o servicios adicionales.
El artículo de ZimaSpace sobre el trabajo basado en eventos y la carga de un servidor inactivo proporciona la referencia adecuada: los sistemas basados en eventos son eficientes cuando el trabajo se activa solo cuando es necesario, pero los picos siguen necesitando suficiente margen de programación y recursos para vaciarse sin que las colas persistan.
Observa la latencia mediana y las ejecuciones normales más lentas. Un sistema puede promediar un 10 % de CPU y, aun así, generar pausas de un segundo durante picos breves. El límite de capacidad útil aparece cuando las colas siguen creciendo, las advertencias de máximo de ejecuciones aparecen repetidamente o la latencia de cola ya no vuelve a la línea base después de que termina el pico.
Separa la simultaneidad de Home Assistant de la competencia por recursos del equipo anfitrión
Home Assistant puede estar programando correctamente mientras otro contenedor satura la CPU, la memoria, el almacenamiento o la red. En ese caso, aumentar o reducir max en las automatizaciones puede no cambiar el fallo, porque el equipo anfitrión compartido ya ha perdido margen de recursos.
Repite la prueba de simultaneidad una vez con la carga de trabajo vecina pausada. Si los tiempos del bucle de eventos y la latencia del control local se recuperan de inmediato, considera que el límite es un problema de capacidad del equipo anfitrión compartido. Si no lo hacen, inspecciona las operaciones bloqueantes, el comportamiento de la integración o el diseño de la cola de automatizaciones dentro de Home Assistant.
Usa una condición de parada en lugar de publicar un número de tareas
| Señal observada | Qué significa | Siguiente prueba |
|---|---|---|
| Las ejecuciones paralelas o en cola alcanzan el máximo configurado | Límite de la cola a nivel de automatización | Comprueba el modo, el orden y la frecuencia de los activadores |
| Aparece una advertencia del bucle de eventos o una pausa generalizada de la interfaz y el control | Posible trabajo bloqueante | Identifica la integración o la llamada síncrona |
| La latencia aumenta solo cuando otro servicio está activo | Competencia por recursos del equipo anfitrión compartido | Mide la presión de CPU, memoria, E/S y red |
| Una ruta de dispositivo es lenta mientras las demás siguen rápidas | Límite específico de una dependencia | Inspecciona esa integración o ruta de red |
| Las colas se vacían y la latencia de cola se mantiene dentro del objetivo | Sigue existiendo un margen útil de simultaneidad | Deja de añadir carga al alcanzar el pico planificado |
Por tanto, la capacidad de Home Assistant debe expresarse como una carga de trabajo probada con un objetivo de latencia, no como un número universal de tareas simultáneas. La pregunta adecuada es cuánto trabajo solapado pueden absorber la combinación actual de integraciones y el equipo anfitrión antes de que la ruta crítica de control local deje de cumplir su plazo.
Centro de Tecnología e IA
Más para leer

Estado de ejecución frente a estado persistente en Home Assistant: ¿qué debe sobrevivir al reinicio?
Home Assistant no conserva todos los valores en tiempo real; la configuración, los registros, los estados restaurados seleccionados, el historial y los datos de...

¿Cómo autentica Home Assistant las sesiones locales y remotas?
Las sesiones locales y remotas de Home Assistant utilizan el mismo modelo de identidad del servidor; el acceso remoto cambia la ruta y el...

¿Por qué pueden volverse lentas las consultas del historial de Home Assistant a medida que crecen los datos del grabador?
El crecimiento del grabador puede aumentar el costo de las consultas del historial cuando el rango solicitado abarca más filas, aumentan los fallos de...

