Hoofdstuk 2 van 22

Wat een goede automatisering eigenlijk is

In het vorige hoofdstuk hebben we gezien dat Home Assistant pas echt interessant wordt wanneer je niet meer voor iedere handeling zelf een knop hoeft in te…

In het vorige hoofdstuk hebben we gezien dat Home Assistant pas echt interessant wordt wanneer je niet meer voor iedere handeling zelf een knop hoeft in te drukken.

Een lamp inschakelen via een dashboard is handig. Maar je hebt nog steeds zelf besloten wanneer die lamp aan moest.

Een automatisering gaat een stap verder.

Home Assistant kijkt naar wat er gebeurt en voert op basis daarvan een handeling uit.

Dat klinkt eenvoudig. Toch zit er een belangrijk verschil tussen iets automatisch laten gebeuren en een goede automatisering maken.

Een lamp die iedere avond precies om 19:00 uur aangaat, is bijvoorbeeld automatisch.

Maar is het ook slim?

In december misschien wel.

In juni waarschijnlijk niet.

Een goede automatisering probeert daarom niet alleen een handeling over te nemen. Ze probeert een eenvoudige beslissing na te bootsen die je anders zelf zou nemen.

Daar gaan we in dit hoofdstuk naar kijken.

Begin niet met Home Assistant

Wanneer je een automatisering wilt maken, is het verleidelijk om meteen Home Assistant te openen.

Je klikt op:

Instellingen → Automatiseringen & scènes

en begint voorwaarden, apparaten en acties toe te voegen.

Vooral in het begin is dat meestal niet de beste aanpak.

Begin liever met de vraag:

Wat wil ik eigenlijk dat er gebeurt?

Neem De Werkplaats als voorbeeld.

Stel dat je daar regelmatig 's avonds binnenkomt en steeds dezelfde handelingen uitvoert:

  • je loopt naar binnen;
  • je merkt dat het donker is;
  • je schakelt de verlichting in.

Dat is een heel gewone menselijke beslissing.

Je denkt waarschijnlijk niet bewust:

Het lichtniveau is lager dan een bepaalde grenswaarde, daarom activeer ik nu de verlichting.

Je kijkt gewoon om je heen en denkt:

Het is donker. Ik doe het licht aan.

Dat is precies het soort beslissing dat geschikt kan zijn voor een automatisering.

Je zou deze in gewone taal kunnen beschrijven als:

Als iemand De Werkplaats binnenkomt en het is donker, zet dan de verlichting aan.

Nu hebben we nog geen Home Assistant-configuratie gemaakt.

Toch is het belangrijkste denkwerk al begonnen.

Een goede automatisering heeft een duidelijk doel

Een automatisering moet niet bestaan omdat het technisch mogelijk is.

Ze moet iets oplossen.

Bijvoorbeeld:

Ik wil niet iedere keer zelf het licht hoeven inschakelen wanneer ik De Werkplaats binnenkom.

Dat is een duidelijk probleem.

Een minder duidelijk doel zou zijn:

Ik wil iets met mijn bewegingssensor automatiseren.

Daarbij begin je vanuit het apparaat.

Je hebt een sensor en zoekt vervolgens naar iets dat je ermee kunt doen.

Dat kan leuke experimenten opleveren, maar vaak ook automatiseringen die uiteindelijk weinig nut hebben.

Probeer daarom zoveel mogelijk vanuit de situatie te denken:

Niet:

Welke automatisering kan ik maken met deze sensor?

Maar:

Welke handeling voer ik steeds opnieuw uit die Home Assistant misschien kan overnemen?

Dat kleine verschil helpt later enorm.

Een goede automatisering reageert op de juiste informatie

Laten we ons voorbeeld iets nauwkeuriger bekijken.

Als iemand De Werkplaats binnenkomt en het is donker, zet dan de verlichting aan.

Om die beslissing te kunnen nemen heeft Home Assistant informatie nodig.

Bijvoorbeeld:

  • is er iemand binnengekomen?
  • hoe licht of donker is het?
  • staat de lamp misschien al aan?

Die informatie kan uit verschillende entiteiten komen.

Een entiteit is, zoals je in de eerdere gids hebt gezien, een onderdeel binnen Home Assistant waarvan een toestand kan worden bijgehouden.

Bijvoorbeeld:

binary_sensor.werkplaats_beweging

kan aangeven:

on

wanneer beweging wordt waargenomen.

En:

sensor.werkplaats_licht

kan bijvoorbeeld aangeven:

125 lx

De eenheid lux, afgekort als lx, wordt gebruikt om de hoeveelheid licht te beschrijven.

Hoe lager het aantal lux, hoe donkerder het is.

Je automatisering kan deze informatie gebruiken om een beslissing te nemen.

Maar daar zit meteen een belangrijke les in:

een automatisering is nooit slimmer dan de informatie waarop ze haar beslissing baseert.

Een bewegingssensor weet bijvoorbeeld niet werkelijk of iemand De Werkplaats binnenkomt.

Hij weet alleen dat hij beweging heeft waargenomen.

Dat verschil lijkt klein, maar wordt later belangrijk.

Automatiseren is regels maken

Een automatisering kun je zien als een aantal regels die jij vooraf opstelt.

Bijvoorbeeld:

Als beweging wordt gedetecteerd,
en het lichtniveau lager is dan 200 lux,
dan moet de lamp aan.

Home Assistant begrijpt niet waarom jij dat logisch vindt.

Het systeem weet niet wat gezellig, donker, verstandig of onhandig betekent.

Jij moet die begrippen vertalen naar meetbare informatie.

Dat betekent dat jij moet bepalen wat bijvoorbeeld donker betekent.

Is dat:

  • minder dan 500 lux?
  • minder dan 200 lux?
  • minder dan 50 lux?

Er bestaat daarvoor niet altijd één correct antwoord.

In De Werkplaats kan 200 lux een prima grens zijn.

In een woonkamer misschien niet.

Daarom is het verstandig om eerst te kijken wat de sensor werkelijk meet.

Eerst voorspellen, dan meten

Stel dat je een lichtsensor in De Werkplaats hebt geplaatst.

Voordat je een automatisering maakt, kun je eerst voorspellen wat je verwacht.

Bijvoorbeeld:

Ik denk dat De Werkplaats bij ongeveer 200 lux zo donker wordt dat ik normaal gesproken de verlichting zou inschakelen.

Kijk daarna in Home Assistant naar de werkelijke sensorwaarde.

Doe dit op verschillende momenten:

  • midden op de dag;
  • tijdens bewolkt weer;
  • rond zonsondergang;
  • wanneer je zelf vindt dat het licht aan zou moeten.

Misschien ontdek je:

SituatieGemeten licht
Heldere middag850 lux
Bewolkte middag420 lux
Schemer170 lux
Donker35 lux

Dan heb je ineens veel betere informatie.

Je oorspronkelijke grens van 200 lux blijkt misschien helemaal niet zo gek.

Of misschien merk je dat je zelf de verlichting meestal al bij 300 lux inschakelt.

Dat is geen fout.

Dat is informatie waarmee je de automatisering beter kunt maken.

Een automatisering hoeft niet meteen perfect te zijn

Dit is belangrijk.

Wanneer je begint met automatiseringen, hoef je niet direct alle mogelijke situaties af te vangen.

Sterker nog: dat is meestal onverstandig.

Stel dat je meteen probeert rekening te houden met:

  • beweging;
  • lichtniveau;
  • tijd;
  • zonsopkomst;
  • zonsondergang;
  • werkdagen;
  • aanwezigheid;
  • vakantie;
  • handmatige bediening;
  • de toestand van de lamp;
  • de televisie;
  • het alarm;
  • het weer.

Dan ontstaat al snel een automatisering waarvan je zelf nauwelijks meer begrijpt waarom hij wel of niet wordt uitgevoerd.

Begin liever klein.

Bijvoorbeeld:

Als beweging wordt gedetecteerd en het is donkerder dan 200 lux, zet de werkplaatslamp aan.

Test dat.

Werkt dat betrouwbaar?

Pas daarna voeg je eventueel iets toe.

Bijvoorbeeld:

Alleen tussen 07:00 en 23:00 uur.

Test opnieuw.

Daarna misschien:

Alleen wanneer de lamp nog uit staat.

Door steeds één onderdeel tegelijk te veranderen, weet je ook welk onderdeel verantwoordelijk is wanneer het gedrag verandert.

Dat maakt foutzoeken veel eenvoudiger.

Voorspel wat er gaat gebeuren

Voordat we verdergaan, doen we een klein denkexperiment.

Stel dat je deze regel hebt gemaakt:

Als beweging wordt gedetecteerd en het lichtniveau lager is dan 200 lux, zet de lamp aan.

De huidige situatie is:

  • lichtniveau: 120 lux;
  • lamp: uit;
  • geen beweging.

Wat verwacht je dat er gebeurt?

Waarschijnlijk:

Niets.

De ruimte is wel donker, maar er is nog geen beweging gedetecteerd.

Nu loop je De Werkplaats binnen.

De bewegingssensor verandert van:

off

naar:

on

Wat verwacht je nu?

De beweging wordt waargenomen.

Het lichtniveau is lager dan 200 lux.

De lamp moet dus inschakelen.

Dat lijkt vanzelfsprekend.

Maar juist door vooraf te voorspellen wat Home Assistant zou moeten doen, leer je automatiseringen veel sneller begrijpen.

Wanneer het systeem iets anders doet dan je voorspelde, heb je een bruikbaar aanknopingspunt.

Wat gebeurt er als het al licht genoeg is?

Neem nu dezelfde automatisering.

Dit keer is de situatie:

  • lichtniveau: 560 lux;
  • lamp: uit;
  • geen beweging.

Je loopt De Werkplaats binnen.

De bewegingssensor detecteert beweging.

Maar het lichtniveau ligt boven 200 lux.

Wat verwacht je?

De lamp blijft uit.

Dat is waarschijnlijk precies wat je wilt.

Hier zie je waarom alleen een bewegingssensor vaak niet voldoende is.

Een automatisering als:

Als beweging wordt gedetecteerd, zet de lamp aan.

zou de lamp ook midden op een zonnige middag inschakelen.

Technisch werkt die automatisering uitstekend.

Maar het is waarschijnlijk geen goede automatisering.

Technisch correct is niet hetzelfde als prettig

Dit is een belangrijk onderscheid.

Een automatisering kan technisch precies doen wat je hebt ingesteld en toch irritant zijn.

Denk bijvoorbeeld aan een toiletlamp die met een bewegingssensor wordt ingeschakeld en na twee minuten weer uitgaat.

Zolang je beweegt, werkt alles prima.

Maar wanneer je rustig blijft zitten, ziet de sensor misschien geen beweging meer.

Na twee minuten gaat het licht uit.

Home Assistant heeft dan geen fout gemaakt.

De automatisering heeft exact uitgevoerd wat jij hebt ingesteld.

Het probleem zit in de regel die we hebben bedacht.

Misschien was de gedachte:

Geen beweging betekent dat er niemand meer is.

Maar dat blijkt in deze situatie niet betrouwbaar genoeg te zijn.

Dat is een nuttige ontdekking.

Je zou daarna bijvoorbeeld kunnen onderzoeken of:

  • de uitschakeltijd langer moet worden;
  • een andere sensor beter geschikt is;
  • een aanwezigheidssensor bruikbaarder is dan een bewegingssensor;
  • er extra informatie nodig is.

Een goede automatisering ontstaat vaak op deze manier:

bedenken → voorspellen → testen → waarnemen → aanpassen.

Goede automatiseringen houden rekening met uitzonderingen

Mensen zijn redelijk goed in het herkennen van uitzonderingen.

Stel dat je normaal gesproken iedere avond rond 22:30 uur de verlichting in De Werkplaats uitschakelt.

Je zou daarom kunnen automatiseren:

Om 22:30 uur gaat de verlichting uit.

Dat werkt prima.

Totdat je op een avond om 22:30 uur nog bezig bent met een soldeerklus.

Home Assistant denkt niet:

Ap is duidelijk nog bezig, ik wacht nog even.

Home Assistant ziet alleen:

22:30

en voert de opdracht uit.

Het licht gaat uit.

Dat is een automatisering die technisch betrouwbaar is, maar niet goed genoeg aansluit op de werkelijke situatie.

Misschien is een betere regel:

Als het na 22:30 uur is en er gedurende dertig minuten geen aanwezigheid is geweest, zet dan de verlichting uit.

Nu wordt niet alleen naar de klok gekeken, maar ook naar de situatie in de ruimte.

Dat maakt de automatisering robuuster.

Maar ook hier geldt:

maak die uitgebreidere versie pas wanneer je begrijpt waarom je hem nodig hebt.

Een goede automatisering moet voorspelbaar blijven

Hoe slimmer automatiseringen worden, hoe groter de verleiding om steeds meer logica toe te voegen.

Maar een huis waarin je niet meer begrijpt waarom dingen gebeuren, voelt niet slim.

Het voelt onvoorspelbaar.

Een goede automatisering moet daarom niet alleen automatisch werken.

Je moet achteraf ook kunnen begrijpen waarom iets gebeurde.

Wanneer de lamp in De Werkplaats ineens inschakelt, wil je kunnen redeneren:

Er werd beweging gedetecteerd en het lichtniveau was lager dan 200 lux.

Niet:

Geen idee. Er zitten inmiddels twaalf voorwaarden en drie andere automatiseringen tussen.

Dat betekent niet dat complexe automatiseringen verkeerd zijn.

Maar complexiteit moet een reden hebben.

Elke extra voorwaarde maakt de automatisering iets moeilijker te begrijpen, te testen en te onderhouden.

Laat handmatige bediening mogelijk

Een ander kenmerk van een prettige automatisering is dat je niet het gevoel krijgt dat je tegen je eigen huis moet vechten.

Stel dat Home Assistant automatisch de verlichting inschakelt.

Dat is prima.

Maar je moet de lamp nog steeds zelf kunnen uitschakelen wanneer jij dat wilt.

Het wordt vervelend wanneer de automatisering hem onmiddellijk weer inschakelt.

Bijvoorbeeld:

  • de lamp gaat automatisch aan;
  • jij schakelt hem handmatig uit;
  • de bewegingssensor ziet opnieuw beweging;
  • Home Assistant schakelt hem weer aan;
  • jij schakelt hem opnieuw uit.

Vanaf dat moment helpt de automatisering je niet meer.

Je bent met haar aan het onderhandelen.

Voor sommige situaties kan het daarom nuttig zijn om later rekening te houden met handmatige bediening.

Dat hoeft in je eerste automatiseringen nog niet ingewikkeld te worden.

Onthoud voorlopig vooral dit uitgangspunt:

Automatisering moet handelingen voor je overnemen, niet de controle van je overnemen.

Veiligheid gaat voor gemak

Niet alles wat automatisch kan, moet automatisch.

Dat geldt vooral voor apparaten waarbij verkeerd gedrag gevaarlijk kan zijn.

Denk aan:

  • verwarmingstoestellen;
  • elektrische kachels;
  • apparaten met bewegende onderdelen;
  • kookapparatuur;
  • zware elektrische belastingen;
  • toegang tot deuren of poorten.

Een lamp die onbedoeld inschakelt is meestal alleen irritant.

Een verwarmingstoestel dat onbedoeld wordt ingeschakeld kan een heel ander risico vormen.

Vraag jezelf daarom bij een automatisering altijd af:

Wat is het ergste dat kan gebeuren als deze automatisering op het verkeerde moment wordt uitgevoerd?

Hoe groter het mogelijke gevolg, hoe voorzichtiger je moet ontwerpen.

Voor deze gids gebruiken we daarom vooral voorbeelden met verlichting en andere situaties waarbij je veilig kunt experimenteren.

Ook lokale werking speelt een rol

Een automatisering die iedere dag wordt gebruikt, moet bij voorkeur zo weinig mogelijk afhankelijk zijn van diensten buiten je eigen huis.

Stel dat de verlichting in De Werkplaats alleen kan worden ingeschakeld nadat eerst een internetdienst is geraadpleegd.

Dan kan een storing in:

  • je internetverbinding;
  • de externe dienst;
  • DNS;
  • een account;
  • een cloudplatform

ervoor zorgen dat je automatisering niet meer werkt.

Wanneer de bewegingssensor, lichtsensor, lamp en Home Assistant lokaal met elkaar kunnen communiceren, blijft de automatisering vaak gewoon functioneren wanneer de internetverbinding wegvalt.

Dat maakt lokale apparatuur vooral voor dagelijkse automatiseringen aantrekkelijk.

Niet omdat alles per definitie lokaal moet zijn, maar omdat afhankelijkheden invloed hebben op de betrouwbaarheid.

Wanneer is een automatisering goed?

We kunnen nu een paar eigenschappen samenbrengen.

Een goede automatisering:

  • heeft een duidelijk doel;
  • gebruikt informatie die voldoende betrouwbaar is;
  • doet iets wat je normaal gesproken zelf zou beslissen;
  • werkt ook in normale uitzonderingssituaties prettig;
  • blijft begrijpelijk;
  • is voorspelbaar;
  • laat waar nodig handmatige bediening toe;
  • veroorzaakt bij fouten geen onnodig risico;
  • heeft zo weinig mogelijk onnodige afhankelijkheden.

Dat klinkt misschien alsof een automatisering meteen aan al deze punten moet voldoen.

Dat hoeft niet.

Je eerste versie mag eenvoudig zijn.

Sterker nog, dat is meestal beter.

Je bouwt hem vervolgens stap voor stap verder op wanneer de praktijk laat zien dat dat nodig is.

De Werkplaats: van idee naar automatisering

Laten we ons voorbeeld nog één keer samenvatten.

We beginnen met een praktische wens:

Als ik De Werkplaats binnenkom terwijl het donker is, wil ik niet eerst naar de lichtschakelaar hoeven lopen.

Daaruit maken we een regel in gewone taal:

Als er beweging wordt gedetecteerd en het is donker, zet dan de verlichting aan.

Daarna onderzoeken we wat donker betekent.

We bekijken de sensorwaarden en kiezen bijvoorbeeld:

Minder dan 200 lux.

Nu wordt de regel:

Als beweging wordt gedetecteerd en het lichtniveau lager is dan 200 lux, zet dan de werkplaatsverlichting aan.

Dat is al bijna een echte Home Assistant-automatisering.

Maar er ontbreekt nog één stap.

Home Assistant gebruikt namelijk een vaste structuur om dit soort regels op te bouwen.

Daarbij maken we onderscheid tussen:

  • wat de automatisering start;
  • wat er op dat moment waar moet zijn;
  • wat Home Assistant vervolgens moet doen.

Die onderdelen hebben namen:

trigger, voorwaarden en acties.

In het volgende hoofdstuk gaan we onze gewone Nederlandse zin stap voor stap naar die structuur vertalen.