Stop alstublieft met het hard-coden van schema's in Home Assistant—doe dit in plaats daarvan
Als je wilt dat je Home Assistant-automatiseringen alleen op bepaalde tijden of dagen draaien, kun je een tijdsvoorwaarde gebruiken. Je schema op deze manier hardcoderen is eenvoudig, maar er is een betere manier.
Vastgelegde schema's werken niet meer wanneer het echte leven verandert
Je slimme huis weet niet wanneer je op vakantie bent
Het expliciet opnemen van het schema in je automatisering heeft een aantal problemen. Het meest voor de hand liggende is dat je schema niet altijd hetzelfde blijft.
U kunt bijvoorbeeld een automatisering hebben gemaakt om uw lichten 's ochtends langzaam feller te laten worden totdat ze om 6:30 uur op hun maximale helderheid zijn. U kunt dan natuurlijker wakker worden, maar heeft nog steeds tijd om u klaar te maken voor het werk. De automatisering werkt alleen op weekdagen, zodat u in het weekend iets langer in bed kunt blijven.
Het grootste deel van de tijd zal deze automatisering prima werken, maar als je besluit maandag vrij te nemen, zal je automatisering nog steeds draaien en je veel eerder wekken dan je wilt. Als je een week vrij neemt, wordt het nog erger. Je kunt de automatisering altijd uitschakelen, maar als je vergeet deze weer aan te zetten, kun je de volgende werkdag te laat wakker worden.
Een ander probleem is dat als je schema verandert, je in elke automatisering die je oude schema gebruikt, moet gaan en dit moet aanpassen. Als je meerdere automatiseringen hebt die hetzelfde schema gebruiken, kan dit een ondankbare taak zijn.
Kalenders geven je veel meer controle
Het bijwerken van je agenda zal je schema wijzigen
Een eenvoudige maar effectieve oplossing is het gebruik van de Workday-integratie. Hiermee wordt bepaald welke dagen daadwerkelijk werkdagen zijn door gebruik te maken van de Python holidays-module om rekening te houden met feestdagen in jouw regio. Je kunt ook handmatig specifieke dagen opnemen of uitsluiten.
Zelfs dit kan uit elkaar vallen wanneer je op vakantie gaat, waar de Workday-integratie zich niet van bewust zal zijn. Daar komt bij dat het gebruiken van je eigen agenda's om je schema te bepalen je nog meer controle geeft. Door je agenda te koppelen aan Home Assistant, heb je volledige controle over je schema; wanneer je evenementen in je agenda wijzigt, zullen je automatiseringen hierop reageren.
Het beste van alles is dat jij, of iemand anders met toegang, je agenda-items op elk moment direct vanaf je telefoon kunt wijzigen. Je hoeft helemaal geen toegang tot Home Assistant te hebben; voeg gewoon een agenda-item toe, verwijder of bewerk het, en je automatiseringsschema zal dienovereenkomstig binnen korte tijd veranderen. Bijvoorbeeld, de Google Agenda-integratie zal ongeveer elke 15 minuten controleren op updates.
Het gebruik van kalendertriggers in Home Assistant
Één kalender om ze allemaal te beheersen
Het eerste dat u moet doen, is uw agenda's verbinden met Home Assistant. Er zijn verschillende opties, afhankelijk van het type agenda dat u gebruikt. De Google Calendar-integratie werkt goed voor Google-agenda's, hoewel het even instellen is. De CalDAV-integratie laat u WebDAV-gebaseerde agenda's verbinden, inclusief Apple iCloud-agenda's. Er is ook een Lokale agenda-integratie voor het maken van uw eigen agenda binnen Home Assistant.
Zodra je een agenda hebt gekoppeld, kun je de Agenda-trigger gebruiken, die afgaat wanneer een evenement begint of eindigt, afhankelijk van welke optie je selecteert. Je kunt een doelschema opgeven als je meerdere agenda's hebt gekoppeld, en een verschuiving toevoegen als je niet wilt dat de automatisering precies afgaat wanneer het evenement begint of eindigt.
Er is geen manier om een evenement in deze trigger op te geven, dus de automatisering zal worden geactiveerd telkens wanneer een evenement in de agenda begint of eindigt, ongeacht wat dat evenement is. Om te activeren op basis van de exacte naam van een evenement, moet je een sjabloonvoorwaarde toevoegen met behulp van code zoals de volgende:
{{trigger.calendar_event.summary == 'event_name'}}
Om te activeren op basis van een woord dat ergens in de naam van het evenement voorkomt, kun je in plaats daarvan een trefwoordvoorwaarde gebruiken:
{{'keyword' in trigger.calendar_event.summary}}Wanneer je kalendertriggers test, zorg ervoor dat alle evenementen die je toevoegt meer dan 15 minuten in de toekomst zijn. De kalendertrigger heeft een buffer van 15 minuten, dus als je evenement sneller dan dat plaatsvindt, kan de automatisering helemaal niet worden geactiveerd.
Veelgemaakte fouten om te vermijden
Hele dag durende evenementen kunnen allerlei problemen veroorzaken
Er zijn enkele problemen waar je op moet letten bij het gebruik van kalenderevenementen als triggers in Home Assistant. Een veelvoorkomend probleem zijn hele-dag-evenementen. Het is eenvoudig om een evenement aan een kalender toe te voegen als een hele-dag-evenement in plaats van een met een specifieke tijd, maar als je dat doet, zullen de begin- en eindtijden van het evenement op de grens van middernacht vallen, wat mogelijk niet een ideaal moment is voor het activeren van je automatiseringen.
Er kunnen ook problemen ontstaan als de klok van je Home Assistant-systeem en de tijdzone van je agenda niet overeenkomen. Je moet ervoor zorgen dat ze allebei zijn ingesteld op dezelfde tijdzone zodat je automatiseringen op het juiste moment worden uitgevoerd.
Aangezien voorwaarden afhankelijk zijn van de namen van je evenementen, moet je er ook voor zorgen dat je je evenementen nauwkeurig benoemt of je voorwaarden breed genoeg maakt zodat ze alle geschikte evenementen omvatten. Als je bijvoorbeeld sommige evenementen "werken" noemt en andere "op het werk," kunnen je automatiseringen mislukken.
Het gebruik van kalendertriggers biedt een aantal voordelen ten opzichte van het hardcoderen van je schema's voor automatiseringen. Het maakt het gemakkelijk om je schema te wijzigen zonder Home Assistant te hoeven openen, en je hebt veel meer controle over precies wanneer je automatiseringen zullen draaien.




