Evite tarefas duplicadas no Home Assistant, tornando uma única operação lógica identificável e segura para repetir. Primeiro, confirme onde começa a segunda execução; depois, controle a sobreposição, a entrega duplicada, as tentativas e a execução em várias instâncias na camada mais restrita possível.
Uma notificação repetida é incómoda, mas ações duplicadas de portas, faturação, rega, cópias de segurança ou importação podem ser prejudiciais. Registe os rastreios das automações, os IDs dos acionadores, os carimbos de data e hora, as entradas da operação e a identidade do servidor antes de adicionar atrasos. O mecanismo de prevenção deve rejeitar a mesma chave de operação, permitir eventos genuinamente novos e recuperar corretamente se a primeira tentativa falhar a meio.
Encontre o Ponto Exato Onde Começa a Duplicação
Compare os rastreios da automação ou os registos das tarefas relativos às duas execuções. Registe a plataforma do acionador, o ID do acionador, o contexto, o carimbo de data e hora, a carga de entrada, o modo de execução, o número de tentativas e a identidade do servidor. Se os dois rastreios tiverem acionadores diferentes, corrija a sobreposição dos acionadores; se um rastreio executar o efeito secundário duas vezes, corrija a ação ou o ciclo de importação.
A resolução de problemas na comunidade do Home Assistant mostra que as execuções duplicadas podem ser limitadas com o modo de automação e o controlo do tempo, mas também alerta para a necessidade de compreender o acionador subjacente. Use o padrão de rastreio de execuções duplicadas como orientação de diagnóstico, não como uma receita universal baseada em atrasos.
Confirme que apenas uma instância do Home Assistant, um agendador, um contentor de importação ou um consumidor de webhooks é responsável pela tarefa. Se dois servidores partilharem credenciais ou uma fila, o modo de automação dentro de uma única instância não poderá impedir duplicações entre instâncias.
Escolha o Limite de Prevenção Adequado à Causa
Para execuções sobrepostas dentro de uma automação, escolha um modo de execução adequado à tarefa: rejeite a sobreposição para trabalho exclusivo, coloque em fila o trabalho que deve ser verdadeiramente sequencial ou reinicie apenas quando for seguro substituir a execução anterior. Não use uma alteração de modo para combinar eventos distintos que tenham de ser todos processados.
Para entregas duplicadas de eventos ou novas tentativas, crie uma chave de operação a partir de um ID de evento estável ou de uma combinação cuidadosamente escolhida, como origem, dispositivo, ação e intervalo de tempo. Armazene as últimas chaves concluídas num auxiliar, numa tabela de base de dados ou num manifesto de importação, com uma expiração adequada ao fluxo de trabalho.
Para importações, aplique unicidade no destino sempre que possível. Verifique e registe o ID do item de origem antes de escrever, escreva de forma atómica e marque a conclusão apenas depois de todos os efeitos secundários necessários serem bem-sucedidos. Um nome de ficheiro, por si só, é fraco se os mesmos dados puderem chegar com outro nome.
Torne as Novas Tentativas Seguras em Vez de as Desativar
Um tempo limite não prova que a primeira tentativa falhou; o dispositivo remoto ou a API pode ter concluído a ação antes de a resposta se perder. Antes de repetir, leia o estado resultante ou consulte o destino pela chave da operação. Repita apenas quando o estado pretendido estiver ausente.
Separe a etapa de reivindicação da etapa de execução. Um trabalhador reivindica a chave da operação, executa a ação, regista o sucesso e liberta ou deixa expirar a reivindicação falhada de acordo com uma regra documentada. Isto impede que dois contentores concorrentes processem o mesmo item, permitindo ainda a recuperação após uma falha.
A explicação da ZimaSpace sobre o trabalho em segundo plano do Home Assistant após alterações ajuda a identificar recarregamentos, reprocessamentos e tarefas posteriores que podem parecer duplicações, mas que, na realidade, começam em etapas diferentes.
Teste a Prevenção de Duplicações Antes de Depender Dela
Reproduza o mesmo evento duas vezes, envie dois eventos próximos no tempo, reinicie durante a tarefa, simule um tempo limite depois de o destino confirmar a operação e inicie brevemente um segundo trabalhador num teste isolado. Cada caso deve produzir um único efeito secundário concluído ou um segundo evento claramente colocado em fila quando ambos forem legítimos.
Verifique também o limite oposto: dois eventos genuinamente diferentes não devem ser reduzidos a uma única chave de operação. Confirme os rastreios, os registos de destino, o estado do dispositivo e o armazenamento de idempotência, para garantir que a regra de prevenção não elimina silenciosamente trabalho válido.
Se já tiver ocorrido uma duplicação, pause o produtor, preserve os rastreios e os identificadores de destino, reverta apenas os efeitos secundários que possam ser anulados com segurança e corrija a causa antes de repetir. Encaminhe as integrações que emitem IDs de eventos duplicados ou ignoram a semântica de execução documentada, acompanhadas de uma reprodução mínima.
Suporte e Dicas
Mais para Ler

Como otimizar as ligações à base de dados do Home Assistant para contentores simultâneos
Ajuste uma base de dados externa do Recorder com base nas ligações ativas e na latência medidas, não aumentando o número máximo de ligações...

Como reparar o Home Assistant depois de o volume da base de dados ficar cheio
Recupere de um volume do Recorder cheio sem eliminar primeiro as evidências e, em seguida, reduza o crescimento e comprove que o histórico e...

Porque é que o Home Assistant recria ficheiros em falta com o proprietário errado?
Faça corresponder o UID e o GID de execução ao caminho do anfitrião, repare apenas os ficheiros afetados enquanto estiver parado e verifique a...

