Je eerste eenvoudige automatisering
In het vorige hoofdstuk heb je een slimme stekker aan Home Assistant toegevoegd. Je kunt die stekker nu vanuit Home Assistant in- en uitschakelen en je kunt…
In het vorige hoofdstuk heb je een slimme stekker aan Home Assistant toegevoegd. Je kunt die stekker nu vanuit Home Assistant in- en uitschakelen en je kunt zien wat de huidige status is.
Dat is al handig, maar het wordt pas echt interessant wanneer Home Assistant zelf een actie uitvoert op basis van een gebeurtenis of situatie.
Daarvoor gebruik je een automatisering.
Een automatisering kun je zien als een eenvoudige afspraak met Home Assistant:
Als dit gebeurt, doe dan dat.
Bijvoorbeeld:
- als het 20:00 uur wordt, schakel dan de slimme stekker in;
- als het 23:00 uur wordt, schakel hem weer uit;
- als een bewegingssensor beweging ziet, zet dan een lamp aan;
- als de temperatuur te hoog wordt, stuur dan een melding.
In dit hoofdstuk beginnen we bewust eenvoudig. We laten de slimme stekker die je eerder hebt toegevoegd automatisch inschakelen op een vast tijdstip.
Zo leer je hoe een automatisering is opgebouwd, zonder dat je meteen meerdere sensoren, voorwaarden en apparaten met elkaar hoeft te combineren.
Eerst voorspellen wat er moet gebeuren
Voordat je iets instelt, is het verstandig om eerst duidelijk te maken wat je verwacht.
Voor onze eerste automatisering spreken we het volgende af:
Iedere dag om 20:00 uur schakelt Home Assistant de slimme stekker in.
Er zijn dus twee onderdelen:
Gebeurtenis: het wordt 20:00 uur.
Actie: de slimme stekker wordt ingeschakeld.
Dat klinkt vanzelfsprekend, maar deze manier van denken wordt later erg belangrijk.
Wanneer een automatisering niet doet wat je verwacht, kun je namelijk afzonderlijk controleren:
- heeft de gebeurtenis plaatsgevonden?
- is de automatisering daardoor gestart?
- is de gewenste actie uitgevoerd?
Door een automatisering op te delen in kleine stappen wordt het veel gemakkelijker om fouten te vinden.
De drie belangrijkste onderdelen van een automatisering
Een automatisering in Home Assistant bestaat meestal uit drie onderdelen:
Trigger
De trigger bepaalt wanneer Home Assistant de automatisering moet starten.
In ons voorbeeld is de trigger:
Het is 20:00 uur.
Een trigger kan later bijvoorbeeld ook zijn:
- iemand komt thuis;
- een deur wordt geopend;
- een temperatuur komt boven 25 °C;
- het wordt donker;
- een knop wordt ingedrukt.
Je kunt de trigger dus zien als het startsein.
Voorwaarde
Een voorwaarde bepaalt of de automatisering na de trigger daadwerkelijk verder mag gaan.
Bijvoorbeeld:
Schakel om 20:00 uur de lamp in, maar alleen als iemand thuis is.
De tijd is dan de trigger.
"Er is iemand thuis" is de voorwaarde.
Voor onze eerste automatisering gebruiken we nog geen voorwaarde. Dat houdt het voorbeeld overzichtelijk.
Actie
De actie is wat Home Assistant uiteindelijk moet uitvoeren.
In dit voorbeeld is dat:
Schakel de slimme stekker in.
Later kunnen automatiseringen meerdere acties achter elkaar uitvoeren. Home Assistant kan bijvoorbeeld eerst een lamp inschakelen, daarna een melding sturen en vervolgens nog een ander apparaat bedienen.
Voor nu gebruiken we één actie.
De automatisering aanmaken
Ga in Home Assistant naar:
Instellingen → Automatiseringen & scènes
Open vervolgens Automatiseringen.
Kies voor het maken van een nieuwe automatisering.
Home Assistant kan je afhankelijk van de versie verschillende mogelijkheden aanbieden, bijvoorbeeld een lege automatisering of een automatisering op basis van een bestaand voorbeeld.
Voor deze oefening beginnen we met een lege automatisering.
Zo zie je precies welke onderdelen we zelf toevoegen.
Geef de automatisering een duidelijke naam
Geef de automatisering bijvoorbeeld de naam:
Werkplaats stekker aan om 20:00
Een goede naam lijkt misschien niet zo belangrijk wanneer je nog maar één automatisering hebt. Later kunnen dat er tientallen worden.
Een naam als:
Stekker aan
is dan al snel te vaag.
Een naam als:
Werkplaats stekker aan om 20:00
vertelt meteen:
- om welk apparaat het gaat;
- wat er gebeurt;
- wanneer het gebeurt.
Dat maakt beheer en foutzoeken later een stuk eenvoudiger.
De trigger instellen
Bij het onderdeel Wanneer voeg je een trigger toe.
Kies een trigger op basis van Tijd.
Stel de tijd in op:
20:00:00
Daarmee vertel je Home Assistant:
Start deze automatisering iedere dag wanneer de klok 20:00 uur bereikt.
Je hoeft hier geen dagen van de week op te geven. Zonder extra beperkingen geldt deze trigger iedere dag.
Controleer voordat je verdergaat nog even wat je verwacht:
Als de automatisering actief is en Home Assistant om 20:00 uur draait, moet de automatisering starten.
Die voorspelling gaan we straks testen.
Nog geen voorwaarde
Je ziet waarschijnlijk ook een onderdeel voor voorwaarden.
Dat laten we bij deze eerste automatisering leeg.
Dat is bewust.
Je zou meteen allerlei extra regels kunnen toevoegen, maar daardoor wordt het moeilijker om te zien waarom iets wel of niet werkt.
Eerst willen we alleen weten:
Kan een tijdstip onze slimme stekker betrouwbaar inschakelen?
Pas wanneer dat werkt, heeft het zin om meer logica toe te voegen.
Dit principe kun je bij vrijwel ieder Home Assistant-project gebruiken:
Verander of voeg steeds één onderdeel tegelijk toe.
De actie toevoegen
Nu bepalen we wat Home Assistant moet doen nadat de trigger is geactiveerd.
Voeg bij Dan doen een actie toe.
Kies de mogelijkheid om een apparaat of entiteit te bedienen en selecteer de slimme stekker die je in het vorige hoofdstuk hebt toegevoegd.
Kies vervolgens de actie waarmee de stekker wordt ingeschakeld.
Afhankelijk van het apparaat en de gebruikte integratie kan Home Assistant dit bijvoorbeeld tonen als:
Inschakelen
of als een actie voor de betreffende schakelaar.
Uiteindelijk moet de betekenis hetzelfde zijn:
Zet deze schakelaar aan.
Controleer goed of je de juiste entiteit hebt geselecteerd.
Een apparaat kan namelijk meerdere entiteiten bevatten. Een slimme stekker kan bijvoorbeeld niet alleen een schakelaar hebben, maar ook sensoren voor stroomverbruik, spanning of energiegebruik.
Voor deze automatisering hebben we de schakelaar nodig.
Sla de automatisering op
Sla de automatisering op.
Home Assistant bewaart de nieuwe automatisering en deze verschijnt vervolgens in het overzicht.
Controleer daar of de automatisering is ingeschakeld.
Een automatisering kan namelijk bestaan, maar uitgeschakeld zijn. In dat geval zal Home Assistant niet op de trigger reageren.
Niet wachten tot 20:00 uur
Je zou nu kunnen wachten tot 20:00 uur om te kijken of alles werkt.
Dat is alleen niet erg praktisch.
Bij het bouwen van automatiseringen wil je onderdelen afzonderlijk kunnen testen.
Daarom testen we eerst de actie.
Schakel de slimme stekker eventueel handmatig uit.
Open daarna de automatisering en voer de actie handmatig uit, bijvoorbeeld via de mogelijkheid om de automatisering of de acties te testen.
Kijk vervolgens naar de stekker.
Als alles goed gaat:
- Home Assistant voert de actie uit;
- de slimme stekker schakelt in;
- de status in Home Assistant verandert naar aan.
Daarmee heb je nog niet de hele automatisering getest.
Je hebt alleen vastgesteld dat het laatste deel werkt:
Home Assistant kan de juiste stekker inschakelen.
Dat is waardevolle informatie.
De trigger testen
Nu weten we dat de actie werkt.
Daarna kunnen we de trigger controleren.
Je kunt daarvoor tijdelijk de tijd van de automatisering aanpassen naar een paar minuten later dan de huidige tijd.
Stel dat het bijvoorbeeld 14:27 uur is.
Dan zou je de trigger tijdelijk kunnen instellen op:
14:30 uur
Schakel de stekker eerst weer uit en wacht vervolgens af.
Probeer in die paar minuten niets aan de automatisering te veranderen.
Observeer alleen wat er gebeurt.
Om 14:30 uur zou Home Assistant de automatisering moeten starten en de slimme stekker moeten inschakelen.
Wanneer dat gebeurt, weet je dat zowel de trigger als de actie werken.
Daarna kun je de tijd weer terugzetten naar 20:00 uur.
Kijk niet alleen naar het apparaat
Als de stekker niet inschakelt, is het verleidelijk om meteen allerlei instellingen te veranderen.
Doe dat liever niet.
Kijk eerst wat Home Assistant zelf heeft waargenomen.
Open de automatisering en bekijk de beschikbare geschiedenis, uitvoeringen of traces.
Een trace is een registratie van de stappen die Home Assistant tijdens een automatisering heeft doorlopen.
Daarmee kun je bijvoorbeeld ontdekken:
- of de automatisering überhaupt gestart is;
- welke trigger hem heeft gestart;
- of voorwaarden zijn gecontroleerd;
- welke actie is uitgevoerd;
- waar een fout is ontstaan.
Bij onze eenvoudige automatisering kun je zo onderscheid maken tussen twee situaties.
De automatisering is niet gestart
Dan ligt het probleem waarschijnlijk bij de trigger of bij het feit dat de automatisering niet actief was.
De automatisering is wel gestart, maar de stekker reageert niet
Dan ligt het probleem waarschijnlijk bij de actie, de geselecteerde entiteit of de verbinding met het apparaat.
Dat onderscheid voorkomt veel zoekwerk.
Controleer ook de geschiedenis van de stekker
In het vorige hoofdstuk heb je gezien dat Home Assistant statussen en geschiedenis kan bewaren.
Die informatie kun je nu opnieuw gebruiken.
Bekijk de geschiedenis van de slimme stekker rond het ingestelde tijdstip.
Je zou daar een overgang moeten zien van bijvoorbeeld:
uit → aan
rond 20:00 uur.
Daarmee controleer je niet alleen wat je denkt dat er gebeurd is, maar ook wat Home Assistant daadwerkelijk heeft geregistreerd.
Dat verschil tussen voorspellen, waarnemen en controleren is belangrijk wanneer automatiseringen later ingewikkelder worden.
Maak ook een automatisering om uit te schakelen
Een stekker die automatisch wordt ingeschakeld maar nooit meer wordt uitgeschakeld is meestal niet bijzonder nuttig.
Daarom kun je nu zelf een tweede automatisering maken.
Bijvoorbeeld:
Iedere dag om 23:00 uur schakelt Home Assistant de slimme stekker uit.
De opbouw is bijna hetzelfde.
De trigger wordt:
23:00 uur
De actie wordt:
Slimme stekker uitschakelen
Geef ook deze automatisering een duidelijke naam, bijvoorbeeld:
Werkplaats stekker uit om 23:00
Je hebt nu twee heel eenvoudige automatiseringen:
20:00 → stekker aan
23:00 → stekker uit
Samen vormen ze al een klein automatisch systeem.
Waarom twee automatiseringen?
Je zou je kunnen afvragen waarom we hiervoor twee aparte automatiseringen maken.
Home Assistant kan veel ingewikkeldere automatiseringen maken waarin meerdere triggers en acties samenkomen.
Toch zijn twee losse automatiseringen in dit stadium duidelijker.
Als de stekker 's avonds wel inschakelt maar niet uitschakelt, weet je meteen welke automatisering je moet onderzoeken.
Eenvoudige automatiseringen zijn vaak gemakkelijker te begrijpen, testen en onderhouden.
Later zul je merken dat het soms juist handig is om meerdere situaties in één automatisering samen te brengen.
Maar complexer is niet automatisch beter.
Wat gebeurt er als Home Assistant uitstaat?
Onze automatisering draait lokaal in Home Assistant.
Dat betekent dat Home Assistant zelf verantwoordelijk is voor het uitvoeren ervan.
Als Home Assistant om 20:00 uur uitstaat, kan hij de automatisering op dat moment niet uitvoeren.
Wanneer Home Assistant bijvoorbeeld om 20:05 uur opnieuw wordt gestart, zal deze eenvoudige tijdtrigger normaal gesproken niet alsnog besluiten:
Ik heb 20:00 uur gemist, dus ik zet de stekker nu alsnog aan.
Dat is een belangrijk verschil met een mechanische tijdschakelaar of een schema dat rechtstreeks in een apparaat is opgeslagen.
Bij het ontwerpen van automatiseringen moet je daarom soms nadenken over wat er gebeurt na een stroomstoring of herstart.
Voor deze eerste oefening is dat nog niet nodig, maar het laat wel zien waarom betrouwbaarheid belangrijk is.
Automatisering betekent niet automatisch internet
Onze automatisering gebruikt Home Assistant en een apparaat dat lokaal bereikbaar is.
Wanneer de gebruikte integratie lokaal werkt, hoeft Home Assistant voor het uitvoeren van deze automatisering geen opdracht via een externe cloudserver te sturen.
Dat heeft een paar voordelen.
De automatisering kan sneller reageren en blijft minder afhankelijk van een internetverbinding of externe dienst.
Ook blijft meer informatie binnen je eigen netwerk.
Of een apparaat volledig lokaal werkt, hangt wel af van het apparaat en de gebruikte integratie. Niet iedere slimme stekker werkt op dezelfde manier.
Het is daarom zinvol om bij nieuwe apparaten steeds te kijken waarvan ze afhankelijk zijn.
Van tijdschema naar een huis dat reageert
Een automatisering op een vast tijdstip is eenvoudig en lijkt misschien sterk op een gewone tijdschakelaar.
Het belangrijkste is daarom niet dat je nu een stekker om 20:00 uur kunt inschakelen.
Het belangrijkste is dat je de structuur hebt gezien:
trigger → eventueel voorwaarden → actie
Diezelfde structuur kun je straks gebruiken voor veel slimmere situaties.
Bijvoorbeeld:
Als het buiten donker wordt
én er iemand thuis is,
schakel dan de verlichting in.
Of:
Als er beweging in De Werkplaats wordt gedetecteerd
én het lichtniveau laag is,
zet dan de werkverlichting aan.
Of:
Als een raam langer dan tien minuten openstaat terwijl de verwarming aan is,
stuur dan een melding.
Daar begint Home Assistant verder te gaan dan een verzameling op afstand bedienbare schakelaars.
Het systeem gaat reageren op wat er in en rond je huis gebeurt.
Wat je nu hebt geleerd
Je hebt nu je eerste automatisering gemaakt en daarbij gezien dat een automatisering uit verschillende onderdelen bestaat.
De trigger bepaalt wanneer de automatisering begint.
Een voorwaarde kan bepalen of hij daarna verder mag gaan.
De actie bepaalt wat Home Assistant uiteindelijk uitvoert.
Je hebt bovendien niet alleen de complete automatisering geprobeerd, maar ook de onderdelen afzonderlijk gecontroleerd.
Dat is een werkwijze die later veel belangrijker wordt dan het uit je hoofd kennen van alle mogelijkheden van Home Assistant.
Als iets niet werkt, verander dan niet meteen alles.
Voorspel eerst wat er zou moeten gebeuren, kijk vervolgens wat Home Assistant daadwerkelijk doet en zoek daarna het eerste punt waarop die twee van elkaar afwijken.
Tot slot
Je Home Assistant-installatie kan nu meer dan alleen apparaten weergeven en handmatig bedienen.
De slimme stekker uit het vorige hoofdstuk kan zelfstandig worden aangestuurd op basis van een regel die jij hebt bedacht.
Dat is een kleine stap, maar wel een fundamentele.
Vanaf dit punt kun je apparaten, sensoren, tijdstippen en situaties steeds verder met elkaar verbinden.
Voordat we daarop verder bouwen, is het verstandig om eerst aandacht te besteden aan iets minder zichtbaars maar minstens zo belangrijk: zorgen dat je configuratie niet verloren gaat.
In het volgende hoofdstuk kijken we daarom naar: