Skip to content

Evita loops recursivos usando context.parent_id do Home Assistant#9

Open
jucastilhoduarte wants to merge 1 commit into
lnpbr:mainfrom
jucastilhoduarte:main
Open

Evita loops recursivos usando context.parent_id do Home Assistant#9
jucastilhoduarte wants to merge 1 commit into
lnpbr:mainfrom
jucastilhoduarte:main

Conversation

@jucastilhoduarte

@jucastilhoduarte jucastilhoduarte commented May 23, 2026

Copy link
Copy Markdown

Esta alteração substitui a abordagem baseada em delay por uma proteção adequada contra recursão utilizando o sistema de contexto de eventos do Home Assistant.

Anteriormente, mudanças espelhadas entre entidades podiam gerar loops recursivos na automação, exigindo delays artificiais para minimizar execuções repetidas.

A nova implementação utiliza o contexto do evento:

trigger.to_state.context.parent_id is none

Com isso, a automação reage apenas a alterações originais feitas pelo usuário/dispositivo, ignorando mudanças geradas pela própria automação.

Benefícios:

  • Elimina loops recursivos de forma limpa
  • Remove dependência de delays arbitrários
  • Sincronização mais rápida e confiável
  • Comportamento mais determinístico
  • Melhor escalabilidade para múltiplas entidades sincronizadas

A solução segue o modelo interno de propagação de eventos do Home Assistant e é mais robusta para sincronização bidirecional de interruptores virtuais.

Esta alteração substitui a abordagem baseada em delay por uma proteção adequada contra recursão utilizando o sistema de contexto de eventos do Home Assistant.

Anteriormente, mudanças espelhadas entre entidades podiam gerar loops recursivos na automação, exigindo delays artificiais para minimizar execuções repetidas.

A nova implementação utiliza o contexto do evento:

  trigger.to_state.context.parent_id is none

Com isso, a automação reage apenas a alterações originais feitas pelo usuário/dispositivo, ignorando mudanças geradas pela própria automação.

Benefícios:
- Elimina loops recursivos de forma limpa
- Remove dependência de delays arbitrários
- Sincronização mais rápida e confiável
- Comportamento mais determinístico
- Melhor escalabilidade para múltiplas entidades sincronizadas

A solução segue o modelo interno de propagação de eventos do Home Assistant e é mais robusta para sincronização bidirecional de interruptores virtuais.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant