Hoofdstuk 21 van 22

Eindproject — Bouw een begrijpelijke slimme Werkplaatsverlichting

In de vorige hoofdstukken heb je steeds losse onderdelen van automatiseringen bekeken. Je hebt geleerd wat triggers doen, waarom voorwaarden belangrijk…

In de vorige hoofdstukken heb je steeds losse onderdelen van automatiseringen bekeken.

Je hebt geleerd wat triggers doen, waarom voorwaarden belangrijk zijn, hoe acties worden uitgevoerd en hoe je met choose, helpers, scripts, scènes en templates meer mogelijkheden krijgt. Daarna hebben we gekeken naar testen, traces, foutzoeken en de vraag wanneer AI je kan helpen — en wanneer je beter zelf controleert wat er werkelijk gebeurt.

Nu brengen we dat bij elkaar.

Niet door de ingewikkeldste automatisering te bouwen die Home Assistant aankan, maar juist door iets te maken dat je een halfjaar later nog kunt begrijpen.

We gaan de verlichting van De Werkplaats automatiseren.

De bedoeling is eenvoudig:

Als je De Werkplaats binnenkomt en het is donker genoeg, gaat het licht aan.
Als je weg bent, gaat het licht na enkele minuten weer uit.
En als je de automatische bediening niet wilt, moet je die eenvoudig kunnen uitschakelen.

Dat klinkt bijna te eenvoudig voor een eindproject.

Maar juist hierin zitten vrijwel alle belangrijke keuzes die je bij een goede automatisering tegenkomt.

Wanneer is het donker genoeg?

Hoe weet Home Assistant dat je aanwezig bent?

Hoe voorkom je dat het licht onmiddellijk uitgaat wanneer een bewegingssensor even niets ziet?

Wat gebeurt er wanneer je het licht zelf bedient?

En vooral:

kun je straks nog uitleggen waarom het licht wel of niet aanging?

Dat laatste is het werkelijke doel van dit hoofdstuk.

Begin niet met Home Assistant

Het is verleidelijk om meteen naar:

Instellingen → Automatiseringen & scènes

te gaan en op Automatisering maken te klikken.

Doe dat nog even niet.

Een goede automatisering begint niet in Home Assistant.

Hij begint met een beschrijving van het gewenste gedrag.

Voor De Werkplaats schrijven we daarom eerst op wat we willen.

Het gewenste gedrag

Overdag, wanneer er voldoende licht binnenkomt, hoeft de Werkplaatsverlichting niet automatisch aan.

Wanneer het donkerder wordt en je De Werkplaats binnenkomt, moet het licht wel aangaan.

Zolang je aanwezig bent, moet het blijven branden.

Wanneer gedurende vijf minuten geen beweging meer wordt waargenomen, mag het licht uit.

Daarnaast willen we een mogelijkheid om de automatische verlichting helemaal uit te schakelen.

Dat laatste lijkt misschien overbodig.

Maar stel dat je een filmopname maakt, aan een lichtsensor werkt of bewust een bepaalde lichtsituatie wilt testen. Dan wil je niet dat Home Assistant voortdurend probeert behulpzaam te zijn.

Een automatisering die niet eenvoudig uitgeschakeld kan worden, wordt al snel een automatisering waartegen je moet vechten.

En dat is precies wat we niet willen.

Eerst voorspellen

Voordat we iets bouwen, kun je het gedrag al testen met een paar denkbeeldige situaties.

Stel:

  • er wordt beweging waargenomen;
  • buiten meet de lichtsensor 120 lux;
  • automatische verlichting staat ingeschakeld.

Wat moet er gebeuren?

Het licht moet aangaan.

Een tweede situatie:

  • er wordt beweging waargenomen;
  • buiten wordt 3.000 lux gemeten;
  • automatische verlichting staat ingeschakeld.

Wat verwacht je?

Er hoeft niets te gebeuren.

En nog één:

  • het is donker;
  • er wordt beweging waargenomen;
  • automatische verlichting staat uit.

Dan moet Home Assistant eveneens niets doen.

Deze voorspellingen zijn belangrijk.

Je maakt namelijk eerst duidelijk wat het systeem behoort te doen. Pas daarna kun je controleren of Home Assistant zich werkelijk zo gedraagt.

Welke onderdelen hebben we nodig?

Voor dit project gebruik ik vier onderdelen:

  • een sensor die aanwezigheid of beweging detecteert;
  • een sensor die de hoeveelheid licht meet;
  • de verlichting die Home Assistant kan schakelen;
  • een helper waarmee we de automatische bediening kunnen inschakelen of uitschakelen.

In jouw installatie zullen de namen waarschijnlijk anders zijn.

Voor de voorbeelden gebruik ik:

binary_sensor.werkplaats_beweging

sensor.weerstation_licht

light.werkplaats_verlichting

input_boolean.werkplaatsverlichting_automatisch

Zie deze namen niet als iets dat je letterlijk moet overnemen.

Controleer onder Instellingen → Apparaten & diensten → Entiteiten welke entiteiten jouw apparaten werkelijk hebben.

Dat is een kleine stap die veel fouten voorkomt.

Een YAML-voorbeeld van internet — of van een AI — kan technisch volkomen correct zijn en toch niets doen omdat jouw entiteit anders heet.

Waarom ik buitenlicht gebruik

In De Werkplaats gebruiken we in dit voorbeeld een lichtsensor die de hoeveelheid buitenlicht meet.

Dat kan bijvoorbeeld een VEML7700 zijn die onderdeel is van een weerstation.

Je zou ook een lichtsensor in De Werkplaats zelf kunnen gebruiken.

Beide oplossingen hebben voor- en nadelen.

Een sensor binnen meet het licht op de plek waar je het nodig hebt, maar heeft een vervelende eigenschap: zodra de Werkplaatsverlichting aangaat, verandert zijn eigen meting.

Daardoor kan zo'n systeem zichzelf beïnvloeden.

De sensor meet bijvoorbeeld eerst 80 lux.

Het licht gaat aan.

Vervolgens meet de sensor 600 lux.

Een automatisering die uitsluitend naar die waarde kijkt, zou nu kunnen denken:

Er is voldoende licht, dus het licht kan uit.

Daarna wordt het weer donker en zou het licht opnieuw kunnen aangaan.

Dat soort terugkoppeling wil je voorkomen.

Een buitenlichtsensor heeft daar geen last van. De Werkplaatsverlichting verandert de buitenmeting immers niet.

Het is niet de enige juiste oplossing, maar wel een oplossing die eenvoudig te begrijpen is.

Kies een eerste lichtgrens

We moeten nu bepalen wanneer we "donker genoeg" vinden.

Voor dit voorbeeld beginnen we met:

400 lux.

Dat getal is geen natuurwet.

De juiste waarde hangt af van de ligging van De Werkplaats, de ramen, het weer, het tijdstip en vooral van wat jij prettig vindt.

Daarom beginnen we niet met eindeloos rekenen.

We kiezen een waarde en gaan waarnemen.

Kijk de komende tijd eens naar:

sensor.weerstation_licht

wanneer jij zelf denkt:

Nu zou ik eigenlijk het licht aandoen.

Misschien blijkt dat meestal rond 300 lux te zijn.

Of rond 500.

Dan pas je de grens later aan.

Dat is betrouwbaarder dan proberen vooraf de perfecte waarde te bedenken.

Maak eerst de helper

We maken eerst onze handmatige hoofdschakelaar voor de automatisering.

Ga naar:

Instellingen → Apparaten & diensten → Helpers

en maak een nieuwe Schakelaar of Toggle-helper.

De exacte benamingen en plaats van onderdelen in de interface kunnen door Home Assistant-updates iets veranderen. In Home Assistant 2026.8 wordt een toggle-helper nog via Instellingen → Apparaten & diensten → Helpers → Helper maken aangemaakt. Zo'n helper is een virtuele entiteit met een aan/uit-status en kan daardoor rechtstreeks als voorwaarde in automatiseringen worden gebruikt.

Geef hem bijvoorbeeld de naam:

Werkplaatsverlichting automatisch

Na het aanmaken krijg je een entiteit die ongeveer zo zal heten:

input_boolean.werkplaatsverlichting_automatisch

Zet de helper voorlopig aan.

Waarom een helper en niet de automatisering zelf uitschakelen?

Je zou natuurlijk ook naar de automatisering kunnen gaan en die uitschakelen.

Technisch werkt dat.

Maar de helper beschrijft iets anders.

De automatisering blijft bestaan en actief, maar je geeft haar een instelling:

automatische verlichting is toegestaan.

Dat verschil lijkt klein, maar maakt het systeem beter leesbaar.

Op een dashboard kun je straks eenvoudig zien:

Werkplaatsverlichting automatisch: Aan

Je hoeft daarvoor niet te weten welke automatiseringen er achter de schermen bij horen.

Bouw eerst alleen het inschakelen

We gaan nu bewust niet meteen het hele systeem maken.

Eerst bouwen we alleen:

beweging + donker + automatische bediening toegestaan → licht aan.

Dat is alles.

Maak een nieuwe automatisering.

Geef hem een duidelijke naam, bijvoorbeeld:

Werkplaats — Verlichting automatisch aan

Een goede naam vertelt bij voorkeur drie dingen:

  • waar het over gaat;
  • wat er gebeurt;
  • waarom of wanneer dat gebeurt.

Automation 17 vertelt je over een jaar vrijwel niets.

Werkplaats — Verlichting automatisch aan wel.

Stap 1 — De trigger

De automatisering moet starten wanneer beweging wordt waargenomen.

Gebruik daarom als trigger de bewegingssensor.

Conceptueel is dat:

ALS

Werkplaats beweging verandert naar gedetecteerd

In YAML kan een eenvoudige state-trigger er bijvoorbeeld zo uitzien:

triggers:

- trigger: state

entity_id: binary_sensor.werkplaats_beweging

to: "on"

Een trigger is alleen het startsein. Wanneer hij afgaat, controleert Home Assistant daarna pas de voorwaarden en voert vervolgens eventueel de acties uit. Dat onderscheid is belangrijk: beweging betekent hier dus niet automatisch dat het licht aangaat.

Stap 2 — Mag de automatische bediening werken?

Onze eerste voorwaarde controleert de helper.

Die moet op aan staan.

In gewone taal:

EN

Werkplaatsverlichting automatisch = aan

In YAML:

conditions:

- condition: state

entity_id: input_boolean.werkplaatsverlichting_automatisch

state: "on"

Je kunt nu al voorspellen wat er gebeurt wanneer je de helper uitschakelt.

De bewegingssensor kan de automatisering nog steeds starten.

Maar bij de voorwaarde stopt de uitvoering.

Dat verschil kun je later precies terugzien in een trace.

Stap 3 — Is het donker genoeg?

De tweede voorwaarde controleert het lichtniveau.

We hadden voorlopig gekozen voor minder dan 400 lux.

In gewone taal:

EN

Buitenlicht is lager dan 400 lux

Bijvoorbeeld:

- condition: numeric_state

entity_id: sensor.weerstation_licht

below: 400

Nu begint onze automatisering al aardig op gewone taal te lijken:

ALS beweging wordt gedetecteerd

EN automatische verlichting staat aan

EN buitenlicht lager is dan 400 lux

DAN...

Alleen de actie ontbreekt nog.

Stap 4 — Zet de verlichting aan

De actie is bewust eenvoudig:

DAN

zet de Werkplaatsverlichting aan

Bijvoorbeeld:

actions:

- action: light.turn_on

target:

entity_id: light.werkplaats_verlichting

De volledige automatisering ziet er dan conceptueel zo uit:

alias: Werkplaats — Verlichting automatisch aan

triggers:

- trigger: state

entity_id: binary_sensor.werkplaats_beweging

to: "on"

conditions:

- condition: state

entity_id: input_boolean.werkplaatsverlichting_automatisch

state: "on"

- condition: numeric_state

entity_id: sensor.weerstation_licht

below: 400

actions:

- action: light.turn_on

target:

entity_id: light.werkplaats_verlichting

mode: single

Gebruik dit vooral als leesvoorbeeld.

Wanneer je de automatisering via de grafische editor bouwt, kan Home Assistant aanvullende velden toevoegen of de YAML iets anders ordenen.

Dat is niet erg.

Belangrijker is dat je de logica begrijpt.

Test nu voordat je verdergaat

We bouwen de uitschakeling nog steeds niet.

Eerst moet dit deel betrouwbaar werken.

Test 1 — donker en automatisch ingeschakeld

Zorg dat:

  • de helper aan staat;
  • de lichtwaarde onder 400 lux ligt;
  • de Werkplaatsverlichting uit staat.

Activeer vervolgens de bewegingssensor.

Je voorspelling:

het licht gaat aan.

Controleer daarna of dat inderdaad gebeurt.

Test 2 — voldoende licht

Laat de helper ingeschakeld, maar test terwijl de lichtsensor meer dan 400 lux aangeeft.

Activeer opnieuw beweging.

Je voorspelling:

het licht blijft uit.

Wanneer dat gebeurt, heb je niet bewezen dat "de automatisering niet werkt".

Je hebt juist aangetoond dat de voorwaarde werkt.

Dat onderscheid is belangrijk.

Test 3 — automatische bediening uit

Zet nu de helper uit.

Zorg dat het donker genoeg is en activeer beweging.

Je voorspelling:

het licht blijft uit.

Bekijk daarna eventueel de trace.

Je zou daarin moeten kunnen zien:

  • de beweging heeft de automatisering gestart;
  • de voorwaarde voor automatische bediening was niet waar;
  • de actie is daarom niet uitgevoerd.

Dat is precies waarom een begrijpelijke automatisering zo prettig is om te testen.

Nu pas bouwen we het uitschakelen

Het licht kan inmiddels automatisch aangaan.

Nu moet het ook weer uit.

We spreken af:

Als gedurende vijf minuten geen beweging meer wordt waargenomen, gaat het licht uit.

Hier zit een belangrijk detail in.

We zeggen niet:

zodra geen beweging wordt gezien, licht uit.

Een bewegingssensor ziet namelijk niet voortdurend dat jij aanwezig bent.

Je kunt rustig aan een werkbank zitten solderen, programmeren of een handleiding lezen zonder veel te bewegen.

Een onmiddellijke uitschakeling zou daardoor irritant worden.

De vijf minuten vormen daarom een soort veiligheidsmarge.

Maak hiervoor een tweede automatisering

We zouden de aan- en uitschakellogica in één grote automatisering kunnen stoppen.

Met meerdere triggers, trigger-ID's en choose kan dat prima.

Maar voor dit eindproject kies ik bewust voor twee automatiseringen:

Werkplaats — Verlichting automatisch aan

Werkplaats — Verlichting automatisch uit

Waarom?

Omdat je hierdoor aan de naam al kunt zien welke helft je onderzoekt.

Gaat het licht niet aan?

Dan hoef je de uitschakelautomatisering niet te bekijken.

Blijft het licht de hele nacht branden?

Dan begin je bij de automatisering die het licht moet uitschakelen.

Minder compact kan soms juist beter begrijpelijk zijn.

De uitschakeltrigger

Maak een nieuwe automatisering:

Werkplaats — Verlichting automatisch uit

De trigger wordt:

bewegingssensor is vijf minuten lang uit.

Bijvoorbeeld:

triggers:

- trigger: state

entity_id: binary_sensor.werkplaats_beweging

to: "off"

for:

minutes: 5

Dit betekent iets anders dan een vertraging van vijf minuten na iedere beweging.

De sensor moet daadwerkelijk vijf minuten achter elkaar de status off hebben.

Komt er tussendoor opnieuw beweging, dan wordt aan die voorwaarde van vijf minuten onafgebroken off niet voldaan.

Dat sluit mooi aan op het gedrag dat we willen.

Moet de helper ook bij uitschakelen worden gecontroleerd?

Hier krijgen we een interessante ontwerpkeuze.

Je zou kunnen zeggen:

Als automatische verlichting is uitgeschakeld, mag Home Assistant ook het licht niet automatisch uitschakelen.

Dat klinkt logisch.

Maar stel dat je De Werkplaats verlaat terwijl het licht nog brandt en daarna de automatische bediening uitschakelt.

Moet het licht dan blijven branden?

Er is geen universeel juist antwoord.

Voor dit project kiezen we voor de meest voorspelbare regel:

De helper bepaalt zowel automatisch inschakelen als automatisch uitschakelen.

Dus ook de tweede automatisering krijgt:

conditions:

- condition: state

entity_id: input_boolean.werkplaatsverlichting_automatisch

state: "on"

Wanneer de helper uit staat, bemoeit Home Assistant zich helemaal niet met de verlichting.

Dat is eenvoudig uit te leggen.

De actie voor uitschakelen

De actie wordt:

actions:

- action: light.turn_off

target:

entity_id: light.werkplaats_verlichting

De complete tweede automatisering ziet er dan zo uit:

alias: Werkplaats — Verlichting automatisch uit

triggers:

- trigger: state

entity_id: binary_sensor.werkplaats_beweging

to: "off"

for:

minutes: 5

conditions:

- condition: state

entity_id: input_boolean.werkplaatsverlichting_automatisch

state: "on"

actions:

- action: light.turn_off

target:

entity_id: light.werkplaats_verlichting

mode: single

Voor deze korte automatiseringen is de standaardmodus single prima. Die modus voorkomt dat een nieuwe uitvoering begint terwijl dezelfde automatisering nog bezig is; Home Assistant ondersteunt daarnaast onder andere restart, queued en parallel voor situaties waarin ander gedrag nodig is.

Bekijk het systeem nu als geheel

We hebben inmiddels geen losse automatisering meer.

We hebben een klein systeem.

Dat systeem bestaat uit:

Invoer

binary_sensor.werkplaats_beweging

sensor.weerstation_licht

Deze vertellen iets over de echte wereld.

Instelling

input_boolean.werkplaatsverlichting_automatisch

Deze vertelt wat jij wilt dat Home Assistant met die informatie doet.

Uitvoer

light.werkplaats_verlichting

Dat is het apparaat dat uiteindelijk wordt bestuurd.

Gedrag

Automatisering 1:

beweging

+ automatische bediening toegestaan

+ donker

→ licht aan

Automatisering 2:

vijf minuten geen beweging

+ automatische bediening toegestaan

→ licht uit

Als je het op deze manier kunt uitleggen, heb je veel meer dan twee werkende automatiseringen.

Je hebt een begrijpelijk systeem gebouwd.

Maak een klein bedieningspaneel

Nu kun je deze onderdelen ook samen op een dashboard zetten.

Bijvoorbeeld:

Werkplaats

Verlichting Aan

Beweging Gedetecteerd

Buitenlicht 186 lx

Automatische verlichting Aan

Je hoeft daar geen uitgebreid grafisch dashboard van te maken.

Het doel is dat je in één oogopslag kunt zien:

  • wat de sensor ziet;
  • hoeveel licht wordt gemeten;
  • wat de lamp doet;
  • of automatische bediening is toegestaan.

Dat helpt niet alleen bij bediening.

Het helpt vooral bij foutzoeken.

Als het licht onverwacht niet aangaat en je ziet:

Buitenlicht: 742 lx

dan heb je al een sterke aanwijzing.

Je hoeft niet meteen YAML te openen.

Test niet alleen het ideale geval

Een systeem lijkt vaak betrouwbaar zolang je precies doet wat je bij het ontwerpen in gedachten had.

De interessantere testen zijn de afwijkingen.

Je loopt kort naar binnen

Beweging wordt gedetecteerd.

Het is donker.

Het licht gaat aan.

Je loopt meteen weer weg.

Na vijf minuten moet het licht uitgaan.

Je blijft stil aan de werkbank zitten

Het licht gaat aan.

Je gaat vervolgens geconcentreerd zitten solderen en beweegt nauwelijks.

Na enige tijd meldt de bewegingssensor geen beweging meer.

Vijf minuten later gaat het licht uit terwijl jij er nog zit.

Dat is geen mislukking van Home Assistant.

Home Assistant heeft precies uitgevoerd wat je hem hebt opgedragen.

De fout zit in onze aanname:

geen beweging betekent niemand aanwezig.

Blijkbaar is die aanname niet altijd waar.

En juist dat is waardevolle informatie.

Beweging is niet hetzelfde als aanwezigheid

Hier wordt duidelijk waarom het woord presence of aanwezigheid regelmatig opduikt bij slimme woningen.

Een eenvoudige PIR-bewegingssensor ziet vooral veranderingen in warmtestraling door beweging.

Wanneer je stil zit, kan zo'n sensor je uit het oog verliezen.

Voor een doorgang of toilet hoeft dat nauwelijks een probleem te zijn.

Bij een werkbank wel.

Je zou daarom later bijvoorbeeld een mmWave-aanwezigheidssensor kunnen gebruiken.

Die kan kleine bewegingen vaak beter waarnemen dan een traditionele bewegingssensor.

Maar verander nog niet meteen alles.

Observeer eerst.

Misschien blijkt vijf minuten te kort.

Maak er dan eerst tien minuten van.

Test opnieuw.

Verander steeds één onderdeel.

Zo weet je welke wijziging werkelijk verschil maakte.

Maak de wachttijd niet meteen slim

Je zou de uitschakeltijd afhankelijk kunnen maken van:

  • tijdstip;
  • dag van de week;
  • hoeveelheid beweging;
  • status van een computer;
  • stroomverbruik van gereedschap;
  • aanwezigheid via Bluetooth;
  • status van een deur;
  • hoeveelheid buitenlicht.

Technisch kan dat.

Maar vraag jezelf steeds af:

Welk werkelijk probleem probeer ik hiermee op te lossen?

Als tien minuten uitschakelvertraging het probleem met stilzitten oplost, heb je geen template van vijftien regels nodig.

Complexiteit moet iets opleveren.

Anders is eenvoud betrouwbaarder.

Wat gebeurt er wanneer je het licht handmatig aanzet?

Dit is een belangrijke test.

Stel:

  • automatische verlichting staat aan;
  • jij zet de Werkplaatsverlichting zelf aan;
  • er is geen beweging.

Wanneer de bewegingssensor daarna vijf minuten off is, kan onze uitschakelautomatisering het licht weer uitzetten.

Misschien vind je dat prima.

Maar misschien niet.

Daarmee komen we bij een vraag die bij echte automatiseringen voortdurend terugkomt:

Wie heeft op dit moment de controle: jij of de automatisering?

Een mogelijke uitbreiding: handmatige bediening respecteren

Wanneer je merkt dat automatische uitschakeling na handmatige bediening vervelend is, kun je het systeem uitbreiden.

Bijvoorbeeld met nog een helper:

Werkplaats handmatige verlichting

Of met een aparte werkmodus.

Maar voeg zoiets pas toe wanneer je het probleem werkelijk hebt ervaren.

Anders ontwerp je voor situaties waarvan je niet weet of ze ooit voorkomen.

Voor deze beginnersversie accepteren we daarom bewust de eenvoudige regel:

Als automatische verlichting aan staat, mag Home Assistant de verlichting automatisch aan- én uitzetten.

Wil je volledige handmatige controle?

Dan zet je eerst:

Werkplaatsverlichting automatisch

uit.

Dat is eenvoudig, zichtbaar en voorspelbaar.

Wat als de lichtsensor niet beschikbaar is?

Nu een foutscenario.

Stel dat de VEML7700 of het weerstation tijdelijk offline is.

De toestand van de lichtsensor kan dan bijvoorbeeld unavailable worden.

Onze numerieke voorwaarde:

onder 400 lux

kan dan niet waar worden.

Het gevolg is dat het licht niet automatisch aangaat.

Is dat wenselijk?

Daar kun je verschillend over denken.

Je zou kunnen zeggen:

Bij twijfel liever licht aan.

Dat is bij Werkplaatsverlichting heel verdedigbaar.

Je zou later dus een uitgebreidere logica kunnen bouwen waarin een niet-beschikbare lichtsensor als "donker" wordt behandeld.

Maar dat maakt de automatisering complexer.

Voor dit eindproject laten we de eenvoudige versie staan en documenteren we het gedrag:

Als de lichtsensor niet beschikbaar is, wordt de verlichting niet automatisch ingeschakeld.

Dat is geen verborgen beperking meer.

Je weet nu wat het systeem doet.

En daardoor kun je later bewust besluiten of je het wilt veranderen.

Een systeem hoeft niet perfect te zijn om betrouwbaar te zijn

Dat klinkt misschien tegenstrijdig.

Maar betrouwbaarheid betekent niet:

Iedere denkbare situatie is automatisch opgelost.

Betrouwbaarheid betekent eerder:

Ik weet wat het systeem doet, ik ken de beperkingen en onverwacht gedrag is te onderzoeken.

Onze Werkplaatsverlichting weet bijvoorbeeld niet werkelijk of jij aanwezig bent.

Hij interpreteert beweging als aanwijzing voor aanwezigheid.

Hij weet ook niet of jij persoonlijk vindt dat het donker is.

Hij gebruikt 400 lux als afgesproken grens.

Dat zijn vereenvoudigingen.

Maar het zijn zichtbare vereenvoudigingen.

Daar kun je mee werken.

Gebruik traces alsof je het systeem niet zelf hebt gebouwd

Wanneer alles lijkt te werken, open dan een paar traces.

Niet alleen wanneer er iets fout gaat.

Bekijk een uitvoering waarbij het licht aanging.

Kun je aanwijzen:

  • welke trigger de automatisering startte;
  • welke status de helper had;
  • welke lichtwaarde werd gecontroleerd;
  • welke actie uiteindelijk werd uitgevoerd?

Bekijk daarna een uitvoering waarbij beweging werd gezien maar het licht niet aanging.

Kun je verklaren waarom?

Wanneer je het antwoord uit de trace kunt halen zonder te gokken, heb je de automatisering goed opgebouwd.

Geef je toekomstige zelf informatie

Een paar maanden later weet je waarschijnlijk niet meer waarom je precies 400 lux of vijf minuten hebt gekozen.

Gebruik daarom de beschrijving van de automatisering.

Bijvoorbeeld:

Schakelt de Werkplaatsverlichting in wanneer beweging wordt

gedetecteerd en het buitenlicht lager is dan 400 lux.

Alleen actief wanneer de helper

'Werkplaatsverlichting automatisch' aan staat.

De buitenlichtsensor wordt gebruikt omdat de Werkplaatsverlichting

deze meting niet beïnvloedt.

En bij de uitschakelautomatisering:

Schakelt de Werkplaatsverlichting uit nadat gedurende vijf minuten

geen beweging is waargenomen.

De vertraging voorkomt dat de verlichting direct uitgaat zodra de

bewegingssensor tijdelijk geen beweging ziet.

Die paar regels kunnen later meer waard zijn dan de YAML zelf.

Laat AI nu uitleggen wat je hebt gebouwd

Dit is een mooi moment om terug te grijpen op het vorige hoofdstuk.

Je zou de twee automatiseringen aan een AI kunnen geven met de vraag:

Leg in gewone Nederlandse taal uit wanneer deze verlichting aan- en uitgaat. Noem ook situaties waarin de automatisering mogelijk niet doet wat ik verwacht.

Dat is een nuttige toepassing.

Niet omdat AI nu moet beslissen hoe jouw Werkplaats hoort te werken, maar omdat je AI gebruikt als tweede lezer.

Controleer daarna de uitleg zelf.

Klopt het dat de helper beide automatiseringen beïnvloedt?

Klopt de grens van 400 lux?

Klopt de wachttijd?

Wordt duidelijk dat geen beweging niet noodzakelijk betekent dat niemand aanwezig is?

AI mag je helpen kijken.

Jij blijft degene die bepaalt of de uitleg overeenkomt met het werkelijke systeem.

Probeer daarna expres iets fout te maken

Dat klinkt vreemd voor een eindproject.

Maar je leert veel meer van een gecontroleerde fout dan van een systeem dat toevallig meteen werkt.

Verander bijvoorbeeld tijdelijk de lichtgrens van:

400

naar:

40

Activeer beweging terwijl de sensor 150 lux meet.

Voorspel eerst wat er gebeurt.

Het licht zou nu niet moeten aangaan.

Controleer vervolgens de trace.

Zie je waar de automatisering stopt?

Zet daarna de waarde weer terug.

Of schakel de helper uit en herhaal de test.

Of maak de wachttijd tijdelijk één minuut en controleer de uitschakeling.

Je bent nu niet meer alleen aan het testen of het systeem "werkt".

Je controleert of jij het systeem begrijpt.

Dat is een veel belangrijker verschil.

Pas daarna ga je verbeteren

Wanneer de basisversie een tijdje draait, kun je gaan kijken wat je werkelijk mist.

Misschien ontdek je dat:

  • 400 lux te vroeg is;
  • vijf minuten te kort is;
  • de bewegingssensor de werkbank slecht ziet;
  • je een aparte handmatige modus wilt;
  • je 's avonds een andere lichtsterkte wilt;
  • de verlichting bij binnenkomst rustig mag opkomen;
  • meerdere lampen tegelijk geschakeld moeten worden;
  • je bij voldoende daglicht alleen de werkbanklamp wilt inschakelen.

Dan heb je alle gereedschappen uit deze gids om het systeem verder uit te bouwen.

Je kunt een helper toevoegen.

Een choose gebruiken.

Een scène maken voor verschillende lichtinstellingen.

Een script maken wanneer dezelfde reeks acties op meerdere plaatsen nodig is.

Een template toevoegen wanneer gewone voorwaarden werkelijk niet meer voldoende zijn.

Of meerdere automatiseringen samenvoegen wanneer dat het systeem daadwerkelijk duidelijker maakt.

Maar de volgorde blijft belangrijk:

eerst een behoefte, daarna pas techniek.

Niet andersom.

De complete logica op één vel papier

Als laatste test moet je het hele systeem zonder Home Assistant kunnen beschrijven.

Bijvoorbeeld:

Automatisch inschakelen

WANNEER

er beweging in De Werkplaats wordt gedetecteerd

ALLEEN ALS

automatische verlichting ingeschakeld is

EN

het buitenlicht lager is dan 400 lux

DAN

gaat de Werkplaatsverlichting aan

Automatisch uitschakelen

WANNEER

vijf minuten lang geen beweging wordt waargenomen

ALLEEN ALS

automatische verlichting ingeschakeld is

DAN

gaat de Werkplaatsverlichting uit

Handmatig gedrag

ALS

Werkplaatsverlichting automatisch uit staat

DAN

bemoeit Home Assistant zich niet met de verlichting

Kun je dit lezen en voorspellen wat er in een bepaalde situatie gebeurt?

Dan is het systeem begrijpelijk.

En dat is eigenlijk het hele doel

Aan het begin van deze gids ging automatiseren misschien vooral over:

Hoe krijg ik Home Assistant zover dat hij iets automatisch doet?

Inmiddels zou de vraag anders moeten klinken:

Welk gedrag wil ik, welke informatie heb ik daarvoor nodig en hoe kan ik controleren waarom Home Assistant een beslissing neemt?

Dat is een veel krachtiger manier van denken.

De Werkplaatsverlichting die je zojuist hebt gebouwd is technisch niet extreem ingewikkeld.

En dat is juist de bedoeling.

Je hebt geen slimme woning omdat er veel YAML in staat.

Je hebt een slimme woning wanneer techniek op een voorspelbare manier ondersteunt wat jij probeert te doen.

Wat je uit dit hoofdstuk kunt meenemen

Een eindproject hoeft niet ingewikkeld te zijn om veel van Home Assistant te laten samenkomen.

Je hebt in dit project gezien dat je een begrijpelijk systeem kunt bouwen door eerst het gewenste gedrag in gewone taal te beschrijven en daarna pas de techniek in te vullen.

Je hebt:

  • een bewegingssensor als trigger gebruikt;
  • een lichtsensor als informatiebron gebruikt;
  • een numerieke grens als voorwaarde toegepast;
  • met een helper een instelbare bedrijfsmodus gemaakt;
  • automatische in- en uitschakeling van elkaar gescheiden;
  • bewust een wachttijd gebruikt;
  • foutscenario's bekeken;
  • traces gebruikt om beslissingen te controleren;
  • nagedacht over het verschil tussen beweging en werkelijke aanwezigheid;
  • onderzocht wat handmatige bediening betekent;
  • en gezien dat meer mogelijkheden niet automatisch een beter systeem opleveren.

Misschien is dat wel de belangrijkste les van deze hele gids.

Een goede automatisering is niet degene die de meeste dingen kan.

Het is degene waarvan jij begrijpt:

waarom begon hij,
waarom ging hij door,
waarom stopte hij,
en waarom deed hij uiteindelijk wat hij deed?

Vanaf hier kun je vrijwel eindeloos uitbreiden. Meer sensoren, meer ruimtes, complexere beslissingen en slimmere koppelingen zullen vanzelf volgen.

Maar probeer één uitgangspunt vast te houden:

automatiseer niet omdat een apparaat technisch te automatiseren is. Automatiseer omdat je bepaald gedrag wilt ondersteunen.

En daarmee komen we bij het laatste hoofdstuk van deze gids.

Want uiteindelijk automatiseer je geen lampen, sensoren of slimme stekkers.

Je automatiseert gedrag.