De badkamer-afzuiger die zichzelf aanzet
Het probleem met een timer
De meeste badkamer-automations beginnen met een timer. Iemand gaat douchen, het licht gaat aan, de afzuiger start, en na tien minuten stopt alles. Simpel. Maar timers weten niet of de douche al klaar is of nog bezig. En ze weten niet of iemand überhaupt heeft gedoucht — de afzuiger draait ook als je twee minuten naar de spiegel kijkt.
Een volgende stap is een drempelwaarde op luchtvochtigheid: als de sensor boven de 70% RH komt, gaat de afzuiger aan. Dat werkt beter, maar het probleem is vertraging. Een badkamer bereikt die drempel pas na vijf tot tien minuten douchen. De ruimte is al behoorlijk vochtig voordat er actie ondernomen wordt.
Ik wilde iets dat eerder reageert. Niet op hoe vochtig het al is, maar op hoe snel het vochtig wordt.
De oplossing: meten hoe snel de vochtigheid stijgt
Home Assistant heeft een ingebouwd derivative sensor platform. Die berekent de tijdsafgeleide van een andere sensor — in dit geval de luchtvochtigheid. In gewoon Nederlands: hij meet hoe snel de waarde verandert.
Als ik ga douchen, stijgt de luchtvochtigheid binnen de eerste minuut merkbaar. Niet omdat de ruimte al vochtig is, maar omdat warme stoominjecties de lokale luchtvochtigheid direct omhoog drijven. Die stijgsnelheid is het signaal.
De configuratie in configuration.yaml:
sensor:
- platform: derivative
source: sensor.badkamer_luchtvochtigheid
name: badkamer_vochtigheid_stijgsnelheid
round: 2
unit_time: min
time_window: "00:02:00"
Een paar opmerkingen over de parameters:
time_window accepteert een tijdsduur-string in HH:MM:SS formaat — niet een integer. "00:02:00" is twee minuten. Met een te klein window (30 seconden) is de sensor gevoelig voor ruis. Met een te groot window (vijf minuten) reageert hij te traag. Twee minuten werkt goed in mijn setup.
unit_time: min betekent dat de output wordt uitgedrukt in procent RH per minuut. Dat maakt de drempelwaarden in de automatisering makkelijker te interpreteren. Je kunt ook s (per seconde) of h (per uur) gebruiken.
De sensor geeft dus een waarde als "2,3 %RH per minuut". Bij normaal gebruik fluctueert dat rond nul. Bij douchen loopt het snel op.
De automatisering
Met de derivative sensor op zijn plek zijn er twee automations nodig: één om de afzuiger aan te zetten en één om hem uit te zetten.
Afzuiger aan
automation:
- alias: "Badkamer afzuiger aan bij douchen"
trigger:
- platform: numeric_state
entity_id: sensor.badkamer_vochtigheid_stijgsnelheid
above: 2
for:
minutes: 1
action:
- service: switch.turn_on
target:
entity_id: switch.badkamer_afzuiger
De trigger vuurt als de stijgsnelheid meer dan één minuut boven de 2 %RH/min blijft. Dat for: minutes: 1 is belangrijk — zonder die vertraging zou de afzuiger al aangaan bij een kleine fluctuatie.
De drempel van 2 is gebaseerd op mijn eigen sensor. Kalibreer dit op basis van de metingen in jouw badkamer — het kan per sensor en ruimte flink verschillen.
Afzuiger uit
automation:
- alias: "Badkamer afzuiger uit na douchen"
trigger:
- platform: numeric_state
entity_id: sensor.badkamer_vochtigheid_stijgsnelheid
below: 0
for:
minutes: 5
condition:
- condition: numeric_state
entity_id: sensor.badkamer_luchtvochtigheid
below: 75
action:
- service: switch.turn_off
target:
entity_id: switch.badkamer_afzuiger
Hier zijn twee voorwaarden gecombineerd. De trigger vuurt als de derivative al vijf minuten negatief is — de vochtigheid daalt dus actief. Maar de afzuiger gaat pas uit als de absolute luchtvochtigheid ook onder de 75% is gezakt. Dat voorkomt dat de afzuiger stopt terwijl de ruimte nog te vochtig is, ook al daalt de stijgsnelheid al.
Valkuilen
Sensor-positie
De sensor moet dicht bij de douche hangen, niet bij de deur. Hoe verder weg, hoe trager de stijging. Een sensor bij de ventilatieopening vangt de vochtigheid pas als die al deels is afgezogen — dat verstoort de meting.
Kalibratie
De drempelwaarden (2 %RH/min aan, 75% absoluut uit) zijn afgestemd op mijn badkamer. Een grotere ruimte heeft langzamere stijgingen. Een kleinere ruimte of een slechte ventilatie geeft snellere en hogere pieken. Meet eerst een week wat je sensor doet bij normaal en bij douchen gebruik, en pas dan de drempels aan.
De service: syntax
In recentere Home Assistant versies is service: vervangen door action: in automatiseringen. Beide werken nog, maar als je in een nieuwe HA-installatie werkt zie je in de documentatie vaker action:. Functioneel maakt het geen verschil.
Wat je nog kunt uitbreiden
Dezelfde aanpak werkt voor andere sensoren. Een derivative op CO2 detecteert een volle kamer sneller dan een absolute drempel. Een derivative op temperatuur kan raamventilatie aansturen voordat de ruimte te warm wordt.
Of je kunt de badkamer-logica verder uitbreiden: de afzuiger ook aansturen op basis van wie er thuis is (aanwezigheidsdetectie), of hem automatisch uitzetten als het buiten te koud is om efficiënt te ventileren.
De derivative sensor is een van de meest onderbenutte tools in Home Assistant. Zodra je weet dat hij bestaat, zie je toepassingen overal.