Le redémarrage d’un conteneur Home Assistant peut donner l’impression que le système a brièvement changé, même lorsque la configuration persistante est parfaitement intacte. Cela s’explique par le fait qu’une instance en fonctionnement contient à la fois un état durable sur le disque et un état d’exécution transitoire en mémoire. Le redémarrage du conteneur détruit ce dernier et demande aux intégrations de le reconstruire.
C’est pourquoi une entité peut passer par l’état unknown ou unavailable, qu’un appareil MQTT peut réapparaître dès que les messages conservés sont reçus et qu’un service externe peut rester absent jusqu’à la réussite d’une nouvelle tentative. Le redémarrage est un événement de reconstruction de l’état, et non une simple mise en pause suivie de la reprise du même processus en mémoire.
Le runtime du conteneur est remplaçable ; /config constitue la limite durable
Home Assistant Container fonctionne généralement en recréant le conteneur à partir de l’image, tout en conservant le montage de configuration. La mise à jour de l’image, la modification du runtime ou le redémarrage du processus ne devraient pas nécessiter de reconstruire toute l’installation domestique lorsque le chemin persistant reste correctement monté.
Le flux de travail actuel de Home Assistant Container recrée explicitement le conteneur lors d’un changement de version. Ce modèle fonctionne parce que l’état de l’application est censé survivre en dehors du runtime jetable.
Tout ce qui n’existe qu’en mémoire du processus disparaît au redémarrage. Le processus suivant doit relire la configuration, les registres, les bases de données et les entrées des intégrations avant de pouvoir recréer la même vue en direct.
Core démarre une nouvelle machine à états d’exécution
À chaque démarrage, Home Assistant crée un nouveau processus Core avec une nouvelle boucle d’événements, une nouvelle machine à états, ainsi que de nouveaux services, minuteurs et objets d’exécution des intégrations. Le registre des entités peut identifier les entités connues, mais la valeur actuelle d’un appareil physique doit encore être restaurée, récupérée ou signalée.
Recorder crée également une nouvelle exécution de Recorder chaque fois que Home Assistant démarre. Les lignes historiques de la base de données persistent, mais le processus actuel correspond à un nouvel intervalle d’exécution et non à la continuation de l’ancien.
Cette distinction est importante lors de la comparaison des journaux ou des horodatages de la base de données autour d’un redémarrage. Un enregistrement historique prouve ce que Home Assistant a précédemment observé ; il ne prouve pas automatiquement que le nouveau processus a déjà rétabli la connexion en direct avec l’appareil.
Les intégrations repeuplent l’état d’exécution à des vitesses différentes
Certaines intégrations se reconnectent immédiatement à un appareil local. D’autres attendent le DNS, un broker, une API cloud, une passerelle radio ou un autre conteneur. Leurs entités deviennent donc disponibles à des moments différents, même si Home Assistant Core fonctionne déjà.
Le modèle actuel de Home Assistant en cas d’échec de configuration exige que les intégrations temporairement indisponibles entrent dans un processus de nouvelle tentative afin de pouvoir récupérer lorsque l’appareil ou le service redevient accessible. Ainsi, l’état visible après un redémarrage peut évoluer pendant plusieurs minutes sans que cela signifie que les données persistantes ont changé.
Un second redémarrage, une fois toutes les dépendances déjà opérationnelles, peut sembler bien plus rapide qu’un redémarrage de toute la pile, car le réseau, le broker, la base de données et les appareils n’ont plus besoin de converger simultanément.
MQTT rend la reconstruction de l’état particulièrement visible
MQTT constitue un exemple utile, car le broker peut conserver les messages de découverte ou d’état indépendamment du processus Home Assistant. Lorsque Home Assistant se reconnecte, les données conservées peuvent être rejouées et les entités peuvent rapidement retrouver leur dernière valeur signalée.
La documentation de l’intégration MQTT indique que les entités découvertes sont indisponibles après un redémarrage jusqu’au traitement de la découverte, tandis que les messages de découverte et d’état conservés peuvent être rejoués lors de la reconstruction des abonnements. Home Assistant émet également un message Birth que les appareils peuvent utiliser pour republier la découverte et un état actualisé.
Une valeur conservée reste toutefois un dernier rapport connu et ne prouve pas que l’appareil physique est actuellement accessible. Les sujets d’état de disponibilité et la télémétrie récente doivent être évalués séparément.
Le comportement au redémarrage dépend de l’emplacement de la source de vérité
- Configuration et registres persistants : relus depuis le stockage durable de Home Assistant.
- État actuel de l’appareil : souvent récupéré ou signalé à nouveau par une intégration.
- État MQTT : peut être reconstruit à partir de messages conservés ou de nouvelles publications.
- État reposant sur le cloud : dépend de la connectivité à l’API distante et des identifiants.
- État historique : reste dans Recorder, mais ne correspond pas à l’état en direct.
- Objets d’exécution purs : recréés par le nouveau processus Home Assistant.
L’explication de ZimaSpace sur l’état MQTT après un redémarrage présente une voie de reconstruction spécifique. La règle générale est que le comportement au redémarrage suit l’emplacement de la source de vérité de chaque composant.
FAQ
Le redémarrage du conteneur Home Assistant supprime-t-il l’historique ?
Non, pas lorsque la configuration persistante et la base de données Recorder sont correctement montées. Le redémarrage remplace le processus d’exécution ; les données historiques restent dans la base de données persistante.
Pourquoi une entité peut-elle afficher immédiatement son ancienne valeur après un redémarrage ?
La valeur peut provenir d’un mécanisme de restauration de Home Assistant, du cache d’une intégration, d’un état MQTT conservé ou d’une interrogation immédiate de l’appareil. Vérifiez l’intégration et le chemin de disponibilité avant de considérer la valeur affichée comme une mesure physique récente.
Centre Tech & IA
Plus à lire

État d’exécution vs état persistant dans Home Assistant : que doit survivre à un redémarrage ?
Home Assistant ne conserve pas chaque valeur en temps réel ; la configuration, les registres, certains états restaurés, l’historique et les données de déploiement...

Comment Home Assistant authentifie-t-il les sessions locales et distantes ?
Les sessions Home Assistant locales et distantes utilisent le même modèle d’identité côté serveur ; l’accès à distance modifie le chemin et la limite...

Pourquoi les requêtes d’historique de Home Assistant peuvent-elles ralentir à mesure que les données de l’enregistreur augmentent ?
L’augmentation du nombre d’enregistrements peut accroître le coût des requêtes d’historique lorsque la plage demandée concerne davantage de lignes, que les défauts de cache...

