Home Assistant toont verouderde gegevens na een wijziging van het opslagpad

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Verouderde Home Assistant-gegevens na een wijziging van het opslagpad betekenen meestal dat de actieve instantie een andere /config of database leest dan je verwacht, niet dat Home Assistant oude status uit het geheugen heeft gereconstrueerd.

Stop met het wijzigen van paden en bewaar zowel de oude als de nieuwe gegevenslocatie. Bewijs vanuit de actieve container welke bron is gekoppeld, identificeer de actieve database en instantie, vergelijk tijdstempels en unieke statusgegevens en corrigeer daarna pas één koppeling. Als geschiedenis of registers mogelijk worden overschreven, stop Home Assistant dan voordat je iets kopieert of hernoemt.

Bewijs welk pad de actieve container daadwerkelijk ziet

Inspecteer de actieve container in plaats van alleen het Compose-bestand. Controleer welke bron op de host aan /config is gekoppeld, of het om een bind-mount of een benoemd volume gaat en of de opgeloste bron bestaat en de verwachte configuratiebestanden bevat. Een correct ogende declaratie kan verschillen van de actieve container na een onvolledige hercreatie.

Een besproken migratie benadrukt dat het verplaatsen van een container afhankelijk is van een correct aan de container gekoppelde configuratiemap met bruikbare rechten. Dat ondersteunt het eerst controleren van de actieve koppeling; het bewijst niet dat elk geval van verouderde gegevens door een rechtenprobleem komt.

Maak terwijl Home Assistant is gestopt een onschadelijk markeringsbestand aan in het bedoelde pad op de host en bevestig vervolgens dat dezelfde marker zichtbaar is op /config in een tijdelijke inspectiecontainer. Ontbreekt deze, herstel dan de koppeling. Is deze wel aanwezig, ga dan verder met de database- en instantiidentiteit.

Onderscheid een oudere bestandskopie van een externe database

Vergelijk de wijzigingstijden en enkele unieke configuratiegegevens in de oude en nieuwe paden: een automatiseringsnaam, dashboardwijziging, helper of recente back-up. Als de nieuwe map simpelweg een oudere kopie is, voeg dan geen bestanden selectief samen terwijl Home Assistant actief is; kies de gezaghebbende set en kopieer die als één consistent geheel terwijl de dienst is gestopt.

Controleer de database-URL van Recorder. Het verplaatsen van /config verplaatst geen externe MariaDB- of PostgreSQL-database, en een herstelde configuratie kan nog steeds naar de vorige database verwijzen. Als de huidige entiteiten correct lijken maar de geschiedenis oud is, wijst dat sterker op een databaseprobleem dan op een volledige mismatch van de configuratie.

Het ZimaSpace-artikel over persistente gegevens na het opnieuw aanmaken van een stack legt een verwant probleem uit: een lege mount kan eruitzien als gegevensverlies, terwijl een oudere mount kan lijken alsof gegevens zijn teruggedraaid.

Sluit een dubbele instantie en alleen lokale clientcache uit

Bevestig dat de browser-URL, servernaam, het IP-adres, de instantie-ID en het certificaat bij de bedoelde Home Assistant-host horen. Tijdens migraties kunnen een oude DNS-record, reverse-proxydoel, serververmelding in de mobiele app of een nog ingeschakelde oude host verschillende clients naar verschillende instanties sturen.

Vergelijk dezelfde entiteit en het tijdstip van de geschiedenis in een privés browsersessie en op een tweede client. Als slechts één client verouderd is terwijl de serverlogboeken en een andere client actueel zijn, wis dan de verbinding of gecachte frontendgegevens van die client in plaats van de opslag opnieuw te wijzigen.

Als clients afwisselend oude en nieuwe statusgegevens tonen, stop dan de oude instantie en corrigeer de doelen van DNS, proxy of load balancer. Laat tijdens het onderzoeken van de identiteit niet twee controllers automatiseringen uitvoeren voor dezelfde apparaten.

Corrigeer één koppeling en bewaar een terugvalkopie

Stop Home Assistant, maak een momentopname of kopie van beide kandidaatpaden en label deze met host, datum en bekende status. Kies /config en de database als een bij elkaar horende herstelset. Corrigeer alleen de containerkoppeling of database-URL die de geverifieerde mismatch veroorzaakt.

Controleer eigenaarschap en schrijftoegang voordat je start. Als de container het gekozen pad kan lezen maar er niet naar kan schrijven, kan het systeem aanvankelijk correct lijken en daarna geen nieuwe status meer opslaan. Gebruik geen algemene recursieve rechtenwijzigingen zonder de service-identiteit en het verwachte eigenaarschap te controleren.

Start Home Assistant één keer en controleer de logboeken voordat je verdere wijzigingen aanbrengt. Als de verwachte entiteiten, dashboards, geschiedenis en recente wijzigingen verschijnen, ga dan verder met het testen van persistentie. Zo niet, stop dan en zet terug naar de gelabelde kopie in plaats van de twee gegevensbomen te combineren.

Controleer of de juiste gegevens een hercreatie en herstart overleven

Voer één omkeerbare testwijziging uit, bijvoorbeeld door een tijdelijke helper aan te maken of een testautomatisering te hernoemen. Start Home Assistant opnieuw en bevestig dat de wijziging behouden blijft. Maak daarna de container opnieuw aan vanuit de opgeslagen deploymentconfiguratie en controleer dit nogmaals.

Een geslaagd resultaat toont dezelfde instantiidentiteit, de verwachte geschiedenis, actuele registers, de juiste mountbron, geslaagde schrijfbewerkingen en het ontbreken van een dubbele controller. Bevestig dat een nieuwe back-up de geselecteerde status bevat en bewaar die buiten beide migratiepaden.

Escaleren is nodig als gegevens afhankelijk van de client veranderen, de geschiedenis uit een andere database komt dan de live status of het juiste pad na een herstart alleen-lezen wordt. Bewaar de inspectie van de mount, de database-URL, tijdstempels, logboeken en de twee onaangeroerde terugvalkopieën, zodat de volgende stap zich op de overgebleven mogelijkheid kan richten.

Ondersteuning & Tips

Meer om te lezen

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.