Voorkom dubbele Home Assistant-taken door één logische bewerking identificeerbaar te maken en veilig opnieuw te laten proberen. Stel eerst vast waar de tweede uitvoering begint; regel vervolgens overlap, dubbele aflevering, nieuwe pogingen en uitvoering door meerdere instanties op het meest geschikte, beperkte niveau.
Een dubbele melding is vervelend, maar dubbele deur-, facturatie-, irrigatie-, back-up- of importacties kunnen schadelijk zijn. Leg automatiseringstraces, trigger-ID's, tijdstempels, invoergegevens, bewerkingsmodus en serveridentiteit vast voordat je vertragingen toevoegt. Het preventieontwerp moet dezelfde bewerkingssleutel weigeren, echt nieuwe gebeurtenissen toestaan en netjes herstellen als de eerste poging halverwege mislukt.
Vind het exacte punt waarop de duplicatie begint
Vergelijk automatiseringstraces of taaklogboeken van de twee uitvoeringen. Noteer het triggerplatform, de trigger-ID, context, tijdstempel, invoergegevens, uitvoeringsmodus, het aantal nieuwe pogingen en de serveridentiteit. Als de twee traces verschillende triggers hebben, los dan overlap tussen triggers op; als één trace het neveneffect twee keer uitvoert, los dan de actie of importlus op.
Probleemoplossing in de Home Assistant-community laat zien dat dubbele uitvoeringen kunnen worden beperkt met de automatiseringsmodus en timing, maar waarschuwt ook dat de onderliggende trigger moet worden begrepen. Gebruik het traceringspatroon voor dubbele uitvoeringen als diagnostische richting, niet als universeel recept met vertragingen.
Bevestig dat slechts één Home Assistant-instantie, planner, importcontainer of webhookconsument eigenaar is van de taak. Als twee servers dezelfde inloggegevens of wachtrij delen, kan de automatiseringsmodus binnen één instantie dubbele uitvoeringen tussen instanties niet voorkomen.
Kies de preventiegrens die bij de oorzaak past
Kies voor overlappende uitvoeringen binnen één automatisering een uitvoeringsmodus die bij de taak past: overlap weigeren voor exclusief werk, echt sequentieel werk in een wachtrij plaatsen, of alleen opnieuw starten wanneer het veilig is om de oude uitvoering te vervangen. Gebruik een moduswijziging niet om afzonderlijke gebeurtenissen samen te voegen die allemaal moeten worden verwerkt.
Maak voor dubbele gebeurtenisaflevering of nieuwe pogingen een bewerkingssleutel op basis van een stabiele gebeurtenis-ID of een zorgvuldig gekozen combinatie, zoals bron, apparaat, actie en tijdsinterval. Sla de laatst voltooide sleutels op in een helper, databasetabel of importmanifest met een vervaltijd die past bij de workflow.
Leg voor imports waar mogelijk uniciteit op bij de bestemming. Controleer en registreer de bron-ID van het item voordat je schrijft, schrijf atomair en markeer de voltooiing pas nadat alle vereiste neveneffecten zijn geslaagd. Alleen een bestandsnaam is zwak als dezelfde gegevens onder een andere naam kunnen binnenkomen.
Maak nieuwe pogingen veilig in plaats van ze uit te schakelen
Een time-out bewijst niet dat de eerste poging is mislukt; het externe apparaat of de API kan de actie hebben voltooid voordat het antwoord verloren ging. Lees vóór een nieuwe poging de resulterende status uit of vraag de bestemming op met de bewerkingssleutel. Probeer het alleen opnieuw wanneer de gewenste status ontbreekt.
Scheid de claimstap van de werkstap. Eén worker claimt de bewerkingssleutel, voert de actie uit, registreert het succes en geeft de claim vrij of laat deze vervallen volgens een gedocumenteerde regel wanneer de bewerking mislukt. Zo voorkom je dat twee gelijktijdige containers hetzelfde item verwerken, terwijl herstel na een crash mogelijk blijft.
De uitleg van ZimaSpace over achtergrondwerk van Home Assistant na wijzigingen helpt bij het herkennen van herladingen, herverwerking en vervolgopdrachten die eruit kunnen zien als duplicaten, maar in werkelijkheid in verschillende fasen beginnen.
Test het voorkomen van duplicaten voordat je erop vertrouwt
Speel dezelfde gebeurtenis twee keer af, stuur twee gebeurtenissen kort na elkaar, herstart tijdens de taak, simuleer een time-out nadat de bestemming de wijziging heeft vastgelegd en start kort een tweede worker in een geïsoleerde test. Elk geval moet óf één voltooid neveneffect opleveren, óf een duidelijk tweede gebeurtenis in de wachtrij wanneer beide gebeurtenissen legitiem zijn.
Controleer ook de tegenovergestelde grens: twee echt verschillende gebeurtenissen mogen niet tot één bewerkingssleutel worden samengevoegd. Controleer traces, bestemmingsrecords, apparaatstatus en de idempotentieopslag, zodat de preventieregel niet ongemerkt geldig werk laat vallen.
Als er al een duplicaat is opgetreden, pauzeer dan de producent, bewaar traces en bestemmings-ID's, draai alleen neveneffecten terug die veilig ongedaan kunnen worden gemaakt en herstel de oorzaak voordat je opnieuw afspeelt. Escaleer integraties die dubbele gebeurtenis-ID's uitzenden of gedocumenteerde uitvoeringssemantiek negeren met een minimale reproductie.
Ondersteuning & Tips
Meer om te lezen

Hoe je databaseverbindingen van Home Assistant optimaliseert voor gelijktijdige containers
Stem een externe Recorder-database af op basis van gemeten actieve verbindingen en latentie, niet door het maximumaantal verbindingen te verhogen of de pool van...

Zo repareer je Home Assistant nadat het databasevolume vol raakt
Herstel een volledig Recorder-volume zonder eerst bewijsmateriaal te verwijderen, beperk daarna de groei en toon aan dat de geschiedenis en automatiseringen na een herstart...

Waarom maakt Home Assistant ontbrekende bestanden opnieuw aan met de verkeerde eigenaar?
Stem de runtime-UID en -GID af op het hostpad, herstel alleen de getroffen bestanden wanneer deze is gestopt en controleer het eigenaarschap na het...

