Evita trabajos duplicados de Home Assistant haciendo que una operación lógica sea identificable y segura para reintentar. Primero demuestra dónde comienza la segunda ejecución; después controla la superposición, la entrega duplicada, los reintentos y la ejecución en varias instancias en la capa más específica.
Una notificación repetida es molesta, pero las acciones duplicadas de puertas, facturación, riego, copias de seguridad o importación pueden ser perjudiciales. Captura los registros de automatización, los ID de activación, las marcas de tiempo, las entradas de la operación y la identidad del servidor antes de añadir retrasos. El diseño de prevención debe rechazar la misma clave de operación, permitir eventos realmente nuevos y recuperarse correctamente si el primer intento falla a mitad de camino.
Encuentra el punto exacto donde comienza el duplicado
Compara los rastreos de automatización o los registros de trabajos de ambas ejecuciones. Registra la plataforma de activación, el ID de activación, el contexto, la marca de tiempo, la carga útil de entrada, el modo de ejecución, el número de reintentos y la identidad del servidor. Si los dos rastreos tienen activadores diferentes, corrige la superposición de activadores; si un rastreo realiza dos veces el efecto secundario, corrige la acción o el bucle de importación.
La resolución de problemas en la comunidad de Home Assistant muestra que las ejecuciones duplicadas pueden limitarse con el modo de automatización y la temporización, pero también advierte que se debe comprender el activador subyacente. Usa el patrón de rastreo de ejecuciones duplicadas como orientación diagnóstica, no como una receta universal basada en retrasos.
Confirma que solo una instancia de Home Assistant, un programador, un contenedor de importación o un consumidor de webhooks sea responsable del trabajo. Si dos servidores comparten credenciales o una cola, el modo de automatización dentro de una sola instancia no puede evitar duplicados entre instancias.
Elige el límite de prevención que corresponda a la causa
Para las ejecuciones superpuestas dentro de una automatización, elige un modo de ejecución que corresponda a la tarea: rechaza la superposición para trabajos exclusivos, pon en cola los trabajos que realmente deban ser secuenciales o reinicia solo cuando sea seguro sustituir la ejecución anterior. No uses un cambio de modo para combinar eventos distintos que deban procesarse todos.
Para la entrega duplicada de eventos o los reintentos, crea una clave de operación a partir de un ID de evento estable o de una combinación cuidadosamente elegida, como origen, dispositivo, acción y periodo de tiempo. Almacena las últimas claves completadas en un auxiliar, una tabla de base de datos o un manifiesto de importación, con una caducidad adecuada para el flujo de trabajo.
En las importaciones, impón la unicidad en el destino cuando sea posible. Comprueba y registra el ID del elemento de origen antes de escribir, escribe de forma atómica y marca la finalización solo después de que todas las acciones secundarias necesarias se hayan completado correctamente. El nombre de archivo por sí solo es poco fiable si los mismos datos pueden llegar con otro nombre.
Haz que los reintentos sean seguros en lugar de desactivarlos
Un tiempo de espera agotado no demuestra que el primer intento haya fallado; el dispositivo remoto o la API pueden haber completado la acción antes de que se perdiera la respuesta. Antes de reintentar, lee el estado resultante o consulta el destino usando la clave de operación. Reintenta solo cuando falte el estado deseado.
Separa el paso de reclamación del paso de trabajo. Un trabajador reclama la clave de operación, realiza la acción, registra el éxito y libera o deja caducar la reclamación fallida conforme a una regla documentada. Esto evita que dos contenedores simultáneos procesen el mismo elemento y, al mismo tiempo, permite recuperarse después de un fallo.
La explicación de ZimaSpace sobre el trabajo en segundo plano de Home Assistant después de los cambios ayuda a identificar recargas, reprocesamientos y trabajos posteriores que pueden parecer duplicados, aunque en realidad comiencen en etapas diferentes.
Prueba la prevención de duplicados antes de depender de ella
Reproduce el mismo evento dos veces, envía dos eventos muy seguidos, reinicia durante el trabajo, simula un tiempo de espera agotado después de que el destino confirme la operación e inicia brevemente un segundo trabajador en una prueba aislada. Cada caso debe producir un solo efecto secundario completado o un segundo evento claramente puesto en cola cuando ambos sean legítimos.
Comprueba también el límite opuesto: dos eventos realmente diferentes no deben colapsarse en una sola clave de operación. Revisa los rastreos, los registros del destino, el estado del dispositivo y el almacén de idempotencia para asegurarte de que la regla de prevención no descarte silenciosamente trabajo válido.
Si ya se produjo un duplicado, pausa el productor, conserva los rastreos y los identificadores del destino, revierte solo los efectos secundarios que sea seguro deshacer y corrige la causa antes de reproducir el proceso. Escala las integraciones que emitan ID de eventos duplicados o ignoren la semántica de ejecución documentada con una reproducción mínima.
Soporte y Consejos
Más para leer

Cómo optimizar las conexiones de la base de datos de Home Assistant para contenedores simultáneos
Ajusta una base de datos externa de Recorder a partir de las conexiones activas y la latencia medidas, no aumentando el máximo de conexiones...

Cómo reparar Home Assistant después de que se llene el volumen de su base de datos
Recupera un volumen de Recorder completamente lleno sin eliminar primero las evidencias, luego reduce el crecimiento y demuestra que el historial y las automatizaciones...

¿Por qué Home Assistant recrea los archivos faltantes con el propietario incorrecto?
Haz coincidir el UID y el GID de ejecución con la ruta del host, repara únicamente los archivos afectados mientras esté detenido y verifica...

