Estado em tempo de execução vs. estado persistente no Home Assistant: o que tem de sobreviver ao reinício?

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

O “estado” do Home Assistant não é uma coisa única. O processo em execução tem uma Máquina de Estados em memória que representa o que as entidades comunicam neste momento, enquanto a configuração persistente e os registos identificam o que deve existir após um reinício. O Recorder mantém observações históricas, e determinadas plataformas de entidades podem guardar valores especificamente para que sejam restaurados mais tarde.

Por isso, uma implementação fiável não tenta serializar todos os objetos transitórios em memória. Preserva as fontes de verdade duradouras e permite que o novo processo reconstrua o estado ativo a partir das integrações, dos registos, dos valores restaurados e dos novos relatórios dos dispositivos.

A Máquina de Estados é uma vista em tempo de execução do mundo atual

O Home Assistant Core mantém os estados atuais das entidades na sua Máquina de Estados e emite eventos quando esses estados mudam. Esta vista atual pertence ao processo Core em execução.

A documentação da arquitetura do Core descreve a Máquina de Estados como o componente que acompanha os estados atuais e dispara eventos state_changed. O Barramento de Eventos, o Registo de Serviços e o Temporizador são componentes de execução que funcionam à sua volta.

Após um reinício, a Máquina de Estados é novamente preenchida. Assim, um dispositivo que ainda não tenha restabelecido a ligação pode estar indisponível, mesmo que as suas observações antigas continuem guardadas em segurança no Recorder.

Os registos de entidades persistem a identidade, não a verdade atual do dispositivo

O Home Assistant precisa de reconhecer a mesma entidade após os reinícios, para que as personalizações do utilizador, os IDs das entidades, os nomes, as áreas e outras definições não desapareçam sempre que uma integração restabelece a ligação.

O registo de entidades existe porque o Home Assistant precisa de uma identidade de entidade duradoura entre reinícios para manter as personalizações e acompanhar as entidades conhecidas. Essa entrada no registo não significa que a leitura atual do sensor esteja automaticamente atualizada após o arranque.

Pense na identidade e no valor atual como registos separados: o registo responde a “que entidade é esta?”, enquanto a integração responde a “o que está a comunicar agora?”.

Alguns valores das entidades são guardados intencionalmente para restauração

Determinadas entidades — especialmente helpers e entidades de software com estado — beneficiam da restauração do valor anterior antes de existir uma nova observação externa. O Home Assistant tem um ponto de verificação persistente dedicado para essas entidades.

A ação atual de guardar estados persistentes explica que algumas entidades restauram o último valor após um reinício e que o Home Assistant normalmente cria pontos de verificação desses valores no arranque, a cada 15 minutos e no encerramento.

Trata-se de persistência seletiva. Não deve ser confundida com considerar o estado de todos os dispositivos físicos como permanentemente autoritativo. Um valor restaurado pode ser útil durante o arranque, mas uma integração deve continuar a convergir para a informação atual do dispositivo assim que esta estiver disponível.

-15% OFF

O Recorder mantém observações históricas, não o processo em execução

O Recorder guarda alterações de estado e eventos para vistas históricas, análises e estatísticas. Essa base de dados pode sobreviver a muitos reinícios do Home Assistant, enquanto a Máquina de Estados em tempo de execução é recriada de cada vez.

Uma consulta ao Histórico que responda a “qual era a temperatura às 15:00?” pertence à persistência histórica. Uma automação ativa que pergunte “a porta está aberta agora?” depende do estado atual em execução e do percurso da integração.

Esta distinção explica por que razão eliminar ou corromper o Recorder pode remover o histórico sem necessariamente apagar automações, utilizadores e a configuração das integrações, enquanto a perda do diretório de configuração pode destruir a identidade e a configuração, mesmo que ainda exista uma base de dados de histórico antiga.

A implementação tem de persistir os ficheiros que recriam estas camadas

O Home Assistant em contentores acrescenta mais uma fronteira: a imagem de execução pode ser substituída, enquanto a montagem da configuração e as dependências externas têm de sobreviver fora dela. A montagem precisa de preservar a configuração do Home Assistant, o armazenamento dos registos, as referências a segredos e a base de dados, caso o Recorder seja local.

O artigo da ZimaSpace sobre as funções dos dados persistentes do Home Assistant aborda o âmbito da recuperação. A distinção entre execução e persistência explica por que razão esses ficheiros são importantes: são os dados de entrada a partir dos quais o processo seguinte reconstrói a casa.

Use a camada de persistência correspondente à função do estado

Função do estado Onde reside O que acontece após um reinício
Estado atual da entidade Máquina de Estados em execução Reconstruído a partir das integrações/restauração
Identidade/personalização da entidade Registo/configuração persistente Carregado novamente
Valores selecionados restauráveis Ponto de verificação de estado persistente Restaurados até serem atualizados
Histórico/estatísticas Base de dados do Recorder Mantêm-se como dados históricos
Ligações das integrações/objetos em execução Memória do processo Recriados e ligados novamente
Imagem/contentor em execução Camada de implementação substituível Pode ser recriada em torno dos dados persistentes

A regra segura é persistir a identidade, a configuração, os dados de recuperação e o estado que o Home Assistant trata intencionalmente como duradouro. Deixe que o estado transitório em execução seja reconstruído. Isto produz um modelo de reinício mais simples do que presumir que todos os valores em memória devem sobreviver sem alterações.

Centro de Tecnologia e IA

Mais para Ler

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.