Automatisch weten wie er thuis is, slapen, nachtdienst én verlichting aanpassen
Veel automatiseringen beginnen simpel: “als iemand thuis komt, doe de lamp aan”. Maar zodra je twee bewoners, gasten, nachtwerk en telefoons die opladen erbij krijgt, wordt aanwezigheid al snel ingewikkeld.
In deze blog bouwen we een compleet systeem dat:
- bijhoudt of 0, 1 of 2 personen thuis zijn
- een helper bijwerkt met dat aantal
- een simpel “iemand aanwezig”-signaal maakt voor andere automatiseringen
- slapen aan/uit zet
- nachtmodus voor verlichting inschakelt met Adaptive Lighting
- rekening houdt met nachtwerk (nachtdienst)
- een gasten/oppas override heeft
- de woonkamer automatisch uitschakelt wanneer iedereen weg is
Alles draait in Node-RED, met Home Assistant als basis.

1. Wat heb je nodig?
1.1 Home Assistant
- Home Assistant Core / OS
- Twee person entities, bijvoorbeeld:
person.bewoner_1person.bewoner_2
(Je vervangt deze later in de flow door je eigen person entiteiten.)
1.2 Node-RED
Je hebt Node-RED draaiend naast Home Assistant nodig, bijvoorbeeld via de add-on.
In Node-RED gebruik je onder andere:
node-red-contrib-home-assistant-websocketnode-red-contrib-bool-gate(AND/OR-gates)node-red-contrib-time-range-switch
2. Helpers aanmaken in Home Assistant
We beginnen in Home Assistant met het aanmaken van een paar helpers. Deze worden door de flow gebruikt en bijgewerkt.
Ga naar:
Instellingen → Apparaten & services → Helpers → Helper toevoegen
2.1 Aantal personen thuis
Type: Getal (Number)
Entity-id: input_number.iemand_thuis
- Minimale waarde: 0
- Maximale waarde: 2
- Stapgrootte: 1
Deze helper geeft straks aan:
- 0 = niemand thuis
- 1 = één persoon thuis
- 2 = twee personen thuis
2.2 Boolean: iemand aanwezig
Type: Schakelaar (Toggle / Boolean)
Entity-id: input_boolean.iemand_aanwezig
Deze gebruiken we als “simpel signaal” voor andere automatiseringen:
iemand aanwezig = ja/nee.
2.3 Boolean: gasten of oppas aanwezig
Type: Schakelaar
Entity-id: input_boolean.gasten_oppas_aanwezig
Met deze override kun je aangeven dat er iemand thuis is, ook als de telefoons/person entities het nog niet goed doorhebben (bijvoorbeeld oppas, logés).
2.4 Boolean: slapen
Type: Schakelaar
Entity-id: input_boolean.slapen
Deze wordt door de flow gebruikt als centrale “slaapstand” voor het huis:
on= huis in slaapstandoff= normaal
2.5 Boolean: nachtdienst
Type: Schakelaar
Entity-id: input_boolean.nachtdienst
Deze helper wordt automatisch aan/uit gezet op basis van locatie/werk en tijd. Handig als één van de bewoners onregelmatige diensten heeft.
3. Basis aanwezigheidslogica: 0, 1 of 2 personen thuis
Nu gaan we naar Node-RED.
De basis is:
- kijk naar
person.bewoner_1 - kijk naar
person.bewoner_2 - tel hoeveel er op “home” staan
- schrijf dit naar
input_number.iemand_thuis
3.1 Triggers
In de flow zitten meerdere server-state-changed nodes die luisteren naar:
person.bewoner_1person.bewoner_2input_number.iemand_thuis
Zodra iemand thuiskomt of weggaat, wordt de flow geactiveerd.
3.2 Tellen van personen
Met een combinatie van:
- OR-gates (check of iemand op “home” staat)
- AND-gates (kijk of beide op “home” staan)
- een klein function-blok (zet 0/1/2 om naar een getal)
wordt bepaald:
- 0 personen thuis
- 1 persoon thuis
- 2 personen thuis
3.3 Wegschrijven naar helper
Het resultaat wordt in een call service node naar Home Assistant gestuurd:
- Service:
input_number.set_value - Entity:
input_number.iemand_thuis - Value: 0, 1 of 2 (afhankelijk van de logica)
Vanaf nu heb je in Home Assistant een nette helper die altijd het aantal personen thuis bijhoudt.
4. Simpel signaal: iemand thuis ja/nee
De volgende stap is een boolean: iemand aanwezig.
Hiervoor gebruikt de flow:
- de waarde van
input_number.iemand_thuis - de override
input_boolean.gasten_oppas_aanwezig
Logica in stappen
- Als
input_number.iemand_thuisgelijk is aan 1 of 2
→input_boolean.iemand_aanwezigwordt aangezet - Als
input_number.iemand_thuisgelijk is aan 0 én er geen gasten/oppas aan staan
→input_boolean.iemand_aanwezigwordt uitgezet - Als
input_boolean.gasten_oppas_aanwezigoponstaat
→ wordtiemand_aanweziggeforceerd opon, ook al zijn de bewoners officieel “weg”
Op deze manier heb je:
- een numerieke helper (0–2)
- én een simpele boolean (aanwezig ja/nee)
Andere automatiseringen in Home Assistant kunnen dus gewoon kijken naar input_boolean.iemand_aanwezig.
5. Thuis en opladen: telefoons als extra signaal
In de flow worden ook telefoons gebruikt als signaal. Bijvoorbeeld:
- smartphone van bewoner 1 aan het opladen
- smartphone van bewoner 2 aan het opladen
De gedachte is: als iemand thuis is én de telefoon ligt aan de oplader, dan is dat vaak een moment om:
- naar bed te gaan
- nachtmodus in te schakelen
- bepaalde routines te starten (zoals “koffie klaarzetten” voor de volgende dag)
Wat doet de flow?
Per bewoner:
- Node die luistert naar de batterijstatus / chargertype (bijvoorbeeld “charging” of “ac”)
- OR-gate die combineert:
- “bewoner is thuis”
- en “telefoon wordt opgeladen”
- AND/OR-gates die deze status doorgeven als:
- “bewoner thuis en opladen”
Dit wordt later gebruikt voor slaaplogica en nachtstand.
6. Slapen en nachtmodus voor verlichting
De centrale schakelaar is:input_boolean.slapen
Die kan je handmatig bedienen (via een knop/scene in Home Assistant), maar óók automatisch door de flow.
6.1 Wat gebeurt er als slapen AAN gaat?
De flow voert meerdere acties uit:
input_boolean.slapenwordt opongezet- De nachtstand van Adaptive Lighting wordt aangezet voor de relevante ruimtes:
- bijvoorbeeld badkamer, gang, keuken, woonkamer, zolder, werkkamer, etc.
(in de flow viaswitch.adaptive_lighting_sleep_mode_*)
- bijvoorbeeld badkamer, gang, keuken, woonkamer, zolder, werkkamer, etc.
Hierdoor wordt:
- licht zachter
- kleur warmer
- het huis “nachtvriendelijk”
6.2 Wat gebeurt er als slapen UIT gaat?
Als de flow bepaalt dat het huis niet meer in slaapstand moet zijn (bijvoorbeeld omdat er iemand actief is, of een tijdvenster voorbij is), doet hij:
input_boolean.slapen→off- Alle
switch.adaptive_lighting_sleep_mode_*→off
Het huis gaat dan weer naar de normale lichtinstellingen.
7. Nachtdienst: anders omgaan met aanwezigheid
Voor huishoudens met onregelmatig werk (zoals nachtdiensten) is er een aparte helper:
input_boolean.nachtdienst
7.1 Wanneer gaat nachtdienst AAN?
De flow kan bijvoorbeeld kijken naar:
- de locatie van een bewoner (bijvoorbeeld een werkadres)
- of een bepaald tijdstip (start van een nachtdienst)
In jouw flow wordt dit via een combinatie van:
- een
server-state-changednode (person op bepaalde locatie) - een
current-statecheck - een
call-servicenode ominput_boolean.nachtdienstoponte zetten
7.2 Wat doet nachtdienst met de rest?
Als input_boolean.nachtdienst = on:
- wordt slapen en nachtlicht anders behandeld
- kan nachtstand langer of op andere tijden blijven
- voorkom je dat automatiseringen tegenwerken (bijvoorbeeld woonkamer uit terwijl iemand laat thuis komt)
7.3 Wanneer wordt nachtdienst uitgezet?
Er zitten twee vaste momenten in de flow:
- een inject rond 01:00 om te controleren of nachtdienst nog klopt
- een inject rond 15:30 om
input_boolean.nachtdienstautomatisch uit te zetten
Zo blijft deze helper nooit per ongeluk de hele dag aan.
8. Gasten of oppas: override voor aanwezigheid
Met input_boolean.gasten_oppas_aanwezig kun je het systeem vertellen:
Er is iemand in huis, ook als onze eigen telefoons/locaties dat niet zien.
De flow gebruikt deze boolean om:
- te voorkomen dat
input_number.iemand_thuiseffectief ‘0’ gedrag triggert input_boolean.iemand_aanwezigoponte houden- verlichting niet automatisch uit te schakelen
Als de oppas/gasten weg zijn, zet je deze helper weer handmatig uit.
9. Woonkamer automatisch uit als niemand thuis
Een praktisch onderdeel van de flow:
de woonkamerverlichting gaat automatisch uit als niemand meer aanwezig is.
Stappen:
- De AND/OR-logica bepaalt: niemand thuis
- De flow checkt of
light.woonkamer_lampennog aan staat - Er zit een korte vertraging (bijvoorbeeld 10 seconden) om te voorkomen dat de lampen uitgaan als iemand net wegloopt
- Daarna stuurt een
call-servicenode:- Service:
light.turn_off - Entity:
light.woonkamer_lampen
- Service:
Resultaat:
je vergeet nooit meer de woonkamer uit te zetten als iedereen weg is.
10. Hoe gebruik je deze flow in jouw eigen setup?
- Importeer de JSON-flow in Node-RED (via Menu → Import).
- Pas de entity-id’s aan naar jouw eigen situatie:
person.bewoner_1/person.bewoner_2- telefoonsensoren (battery_state / charger_type)
- lampgroep woonkamer
- adaptive lighting sleep mode schakelaars
- Controleer of alle Home Assistant helpers bestaan:
input_number.iemand_thuisinput_boolean.iemand_aanweziginput_boolean.gasten_oppas_aanweziginput_boolean.slapeninput_boolean.nachtdienst
- Deploy in Node-RED.
- Kijk in Home Assistant hoe de helpers reageren als je:
- thuis wegklikt
- telefoons oplaadt
- gasten-override aanzet
- nachtdienst boolean test
Vanaf dat moment heb je een robuust aanwezigheidssysteem waar je al je andere automatiseringen op kunt bouwen.
