État d’exécution vs état persistant dans Home Assistant : que doit survivre à un redémarrage ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

« L’état » de Home Assistant n’est pas une notion unique. Le processus en cours d’exécution dispose d’une machine d’état en mémoire qui représente ce que les entités signalent actuellement, tandis que la configuration persistante et les registres identifient ce qui devrait exister après un redémarrage. Recorder conserve les observations historiques, et certaines plateformes d’entités peuvent enregistrer des valeurs spécifiquement afin de les restaurer ultérieurement.

Un déploiement fiable ne cherche donc pas à sérialiser chaque objet transitoire en mémoire. Il préserve les sources de vérité durables et laisse le nouveau processus reconstruire l’état actif à partir des intégrations, des registres, des valeurs restaurées et des nouveaux rapports des appareils.

La machine d’état est une vue d’exécution du monde actuel

Home Assistant Core conserve l’état actuel des entités dans sa machine d’état et émet des événements lorsque ces états changent. Cette vue actuelle appartient au processus Core en cours d’exécution.

La documentation de l’architecture de Core décrit la machine d’état comme le composant qui suit les états actuels et déclenche les événements state_changed. Le bus d’événements, le registre des services et le minuteur sont des composants d’exécution qui l’entourent.

Après un redémarrage, la machine d’état est de nouveau alimentée. Un appareil qui ne s’est pas encore reconnecté peut donc être indisponible, même si ses anciennes observations sont conservées en toute sécurité dans Recorder.

Les registres d’entités conservent l’identité, pas la vérité actuelle des appareils

Home Assistant doit reconnaître la même entité après un redémarrage afin que les personnalisations utilisateur, les identifiants d’entité, les noms, les zones et autres paramètres ne disparaissent pas à chaque reconnexion d’une intégration.

Le registre des entités existe parce que Home Assistant a besoin d’une identité d’entité durable entre les redémarrages pour conserver les personnalisations et suivre les entités connues. Cette entrée de registre ne signifie pas que la mesure actuelle du capteur est automatiquement à jour après le démarrage.

Considérez l’identité et la valeur actuelle comme deux enregistrements distincts : le registre répond à la question « de quelle entité s’agit-il ? », tandis que l’intégration répond à la question « que signale-t-elle actuellement ? »

Certaines valeurs d’entités sont intentionnellement enregistrées pour être restaurées

Certaines entités, notamment les assistants et les entités logicielles à état, gagnent à restaurer leur valeur précédente avant qu’une nouvelle observation externe soit disponible. Home Assistant dispose d’un point de contrôle persistant dédié à ces entités.

L’action actuelle d’enregistrement des états persistants explique que certaines entités restaurent leur dernière valeur après un redémarrage et que Home Assistant enregistre normalement ces valeurs au démarrage, toutes les 15 minutes et à l’arrêt.

Il s’agit d’une persistance sélective. Il ne faut pas la confondre avec le fait de considérer indéfiniment l’état de chaque appareil physique comme une source d’autorité. Une valeur restaurée peut être utile pendant le démarrage, mais une intégration doit tout de même converger vers l’état réel récent de l’appareil dès qu’il est disponible.

-15% OFF

L’historique de Recorder conserve des observations, pas le processus en cours

Recorder stocke les changements d’état et les événements pour les vues historiques, les analyses et les statistiques. Cette base de données peut survivre à de nombreux redémarrages de Home Assistant, tandis que la machine d’état d’exécution est recréée à chaque fois.

Une requête d’historique répondant à la question « quelle était la température à 15 heures ? » relève de la persistance historique. Une automatisation active demandant « la porte est-elle ouverte maintenant ? » dépend de l’état d’exécution actuel et du chemin d’intégration.

Cette distinction explique pourquoi la suppression ou la corruption de Recorder peut effacer l’historique sans nécessairement supprimer les automatisations, les utilisateurs et la configuration des intégrations, tandis que la perte du répertoire de configuration peut détruire l’identité et la configuration, même si une ancienne base de données d’historique existe toujours.

Le déploiement doit conserver les fichiers qui recréent ces couches

Home Assistant conteneurisé ajoute une limite supplémentaire : l’image d’exécution peut être remplacée, tandis que le point de montage de configuration et les dépendances externes doivent survivre en dehors de celle-ci. Le point de montage doit conserver la configuration de Home Assistant, le stockage des registres, les références aux secrets et la base de données si Recorder est local.

L’article de ZimaSpace sur les rôles des données persistantes de Home Assistant décrit le périmètre de récupération. La distinction entre exécution et persistance explique pourquoi ces fichiers sont importants : ce sont les données à partir desquelles le processus suivant reconstruit le foyer.

Utilisez la couche de persistance correspondant au rôle de l’état

Rôle de l’état Emplacement Ce qui se passe après un redémarrage
État actuel de l’entité Machine d’état d’exécution Reconstruit à partir des intégrations et de la restauration
Identité et personnalisation de l’entité Registre/configuration persistants Rechargées
Valeurs sélectionnées pouvant être restaurées Point de contrôle d’état persistant Restaurées jusqu’à leur actualisation
Historique/statistiques Base de données Recorder Restent des données historiques
Connexions des intégrations/objets d’exécution Mémoire du processus Recréés et reconnectés
Image/conteneur d’exécution Couche de déploiement remplaçable Peut être recréé autour des données persistantes

La règle de sécurité consiste à conserver l’identité, la configuration, les données de récupération et les états que Home Assistant considère intentionnellement comme durables. Laissez l’état d’exécution transitoire être reconstruit. Vous obtenez ainsi un modèle de redémarrage plus clair que si vous supposiez que chaque valeur en mémoire devait survivre sans modification.

Centre Tech & IA

Plus à lire

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.