Zo laat je je huis reageren op de zon
De zon is belangrijk voor elk huis: in de zomer wil je die zo veel mogelijk buiten houden zodat de temperatuur in huis niet teveel stijgt, en in de winter wil je juist zo veel mogelijk zon binnenhalen zodat je de verwarmingsketel minder nodig hebt. Gelukkig kun je met Home Assistant en enkele sensoren en motoren je huis automatisch op het ritme van de zon laten meedraaien.
01 Home Assistant
In deze workshop gaan we ervan uit dat je Home Assistant in huis hebt draaien. Het maakt niet uit of dat op een Raspberry Pi, een nas, een intel-nuc of een Linux-server is.
©PXimport
02 Motoren
In dit artikel willen we ons huis laten reageren op de zon. Concreet: met allerlei motoren willen we de zon binnenhalen of juist buitensluiten. Die motoren kunnen een zonnescherm aansturen, maar ook gordijnen of rolluiken. De aanpak is hetzelfde, alleen de scenario’s verschillen wat. Zo zul je gordijnen en rolluiken misschien automatisch willen sluiten als het donker wordt ’s avonds, terwijl je een zonnescherm overdag wilt sluiten als het binnen te warm wordt. Wat je ook gebruikt, je voegt de motoren toe in Home Assistant als schakelaars. Verzeker je er eerst van dat je de motoren manueel in de webinterface van Home Assistant kunt aansturen voordat je ze gaat proberen te automatiseren.
©PXimport
03 Rolluiken met RFXtrx
Rolluiken, jaloezieën, rolgordijnen en andere vormen van zonwering, maar ook garagepoorten, vallen in Home Assistant onder de component cover. In de online documentatie van Home Assistant vind je de verschillende ondersteunde apparaten en hoe je ze configureert. Wij gebruiken rolluiken met Somfy RTS-motoren, die we via de RFXCOM RFXtrx433E usb-transceiver draadloos kunnen aansturen. Helaas kan de RFXtrx433E alleen RFY-signalen uitzenden en niet ontvangen, waardoor je de rolluiken niet automatisch kunt toevoegen. Je dient daarom met het programma RFXmngr een ID en Unit Code voor elk van je rolluiken in te stellen. Daarna voeg je je rolluiken in je configuration.yaml toe met als identificatiecode 071a0000[ID][Unit Code].
©PXimport
04 Sensoren
Je kunt nu je zonwering aansturen, maar je wilt dat Home Assistant dat automatisch doet op basis van sensoren. Dat kan op allerlei manieren, zoals op basis van de lichtsterkte of uv-sterkte buiten, maar het meest logisch is gewoon op basis van de binnentemperatuur, eventueel in combinatie met de buitentemperatuur. Een goedkope draadloze temperatuursensor (die je al voor een tientje vindt in een uitvoering met 433MHz-radiozender) is dus voldoende. Voeg een of meerdere sensoren toe, zet ze op de plaats waar je de temperatuur wilt meten en verzeker je ervan dat je in de webinterface van Home Assistant de temperatuur te zien krijgt. Heb je geen sensoren? Dan kun je ook werken met de virtuele sensor van Dark Sky die de buitentemperatuur teruggeeft.
©PXimport
05 De stand van de zon
Standaard voegt Home Assistant aan zijn configuratie al de component Sun toe, waarmee je de positie van de zon kunt opvragen, evenals de volgende zonsopgang en zonsondergang. Dat vereist wel dat je in je configuration.yaml de juiste coördinaten van je locatie ingevuld hebt. In het menu Ontwikkelaarstools / Toestanden krijg je alle attributen van de component te zien als je zoekt op de naam sun.sun. In de online documentatie zie je dat je op twee gebeurtenissen van de component kunt reageren in je automatiseringsregels: sunrise (zonsopgang) en sunset (zonsondergang).
©PXimport
06 Automatiseringsbewerker
Nu is alles al klaar om een eerste automatiseringsregel te maken, die elke avond een halfuur na zonsondergang automatisch je rolluiken of gordijnen omlaag sluit. Dat kun je in het bestand automations.yaml doen door de juiste yaml-code in te typen, zoals in de masterclass Home Assistant uitgelegd staat, maar hier tonen we je hoe je het op een grafische manier doet met de automatiseringsbewerker. Die open je in het menu Instellingen / Automatisering, waarna je rechtsonder op het plusteken klikt om een nieuwe automatiseringsregel aan te maken.
©PXimport
07 Na zonsondergang
Geef je automatiseringsregel eerst een naam. Dat is belangrijk om later in een hele lijst regels degene terug te vinden die je nodig hebt. Daarna zie je drie onderdelen: triggers, voorwaarden en acties. Kies bij Trigger-type voor Zon, selecteer daar bij Gebeurtenis Zonsondergang en vul bij Offset de vertraging in om de regel te activeren, zoals +00:30:00 als dit een halfuur na zonsondergang moet gebeuren. Een voorwaarde hebben we hier niet nodig (maar zie het kader ‘Sluit jezelf niet buiten’ als je een zekerheid wilt inbouwen).
©PXimport
Sluit jezelf niet buiten
Denk goed na over wat je precies automatiseert. Je zou de eerste niet zijn die zichzelf uit zijn huis buitensluit door automatisch rolluiken te laten sluiten. Merk op dat dat onze automatiseringsregel voor ’s avonds “Sluit meeste rolluiken na zonsondergang” heet … Als je toch alle rolluiken automatisch wilt sluiten, kun je een voorwaarde toevoegen met aanwezigheidsdetectie (zie de masterclass over Home Assistant), zodat de regel eerst test of je wel binnen bent. Maar elke aanwezigheidsdetectie heeft zijn beperkingen. Traceer je bijvoorbeeld je smartphone via wifi, dan blijf je voor Home Assistant nog ver rond je huis ‘thuis’. Heb je twijfels over een automatiseringsregel, stel die dan vooral niet in.
©PXimport
08 Rolluiken automatisch omlaag
Dan komen we tot slot bij de acties. Kies daar als Type actie voor Service aanroepen en als Service voor cover.close_cover. Bij Service data dien je alle ID’s van je rolluiken door te geven in de vorm van een json-lijst. We hebben in ons geval eerder al groepen aangemaakt voor de rolluiken boven en beneden, zodat we ze hier niet allemaal hoeven in te voeren. Zo ziet de lijst er in ons geval als volgt uit:
{
"entity_id": [
"cover.boven",
"cover.voor_links",
"cover.voor_rechts",
"cover.zijraam",
"cover.keukenraam"
]
}
Druk daarna op Opslaan rechtsonder. Vanaf nu gaan je rolluiken (of een deel ervan) automatisch omlaag na zonsondergang.
©PXimport
09 De schemering
Wie dat wil, kan de trigger nog verfijnen. Zoals we het nu hebben ingesteld, gaan de rolluiken immers elke keer een halfuur na zonsondergang omlaag, maar niet in elk seizoen is het een halfuur na zonsondergang even donker: de duur van de schemering varieert per seizoen. Wil je daar meer over weten, lees dan de Wikipedia-pagina over schemering (of in de Engelse Wikipedia over twilight) eens. Om je automatiseringsregel te triggeren wanneer de zon vier graden onder de horizon is, kies je als Trigger-type voor Numerieke staat, vul je bij Onder de waarde -4 in en als Waardesjabloon {{ state.attributes.elevation }}. Overigens konden we dit laatste door een bug niet invullen: vul in dat geval op de juiste plaats in automations.yaml de regel value_template: '{{ state.attributes.elevation }}' in.
©PXimport
10 Te warm
Dan is het nu tijd om eens te kijken hoe we de zon in de zomer buiten kunnen houden. Heb je een groot raam op het zuiden, dan komt er in de zomer zo veel warmte binnen dat de temperatuur in huis weleens te hoog kan oplopen. Helaas kunnen we geen kant-en-klare oplossing aanbieden die voor iedereen werkt. Elk huis is immers anders en er komt heel wat experimenteren bij kijken om een automatiseringsregel op te stellen die in jouw huis goed werkt. Maar sowieso dien je een temperatuursensor te plaatsen in de ruimte die niet te warm mag worden.
©PXimport
11 In de zomer
We maken eerst een sensor aan die ons zegt welk seizoen het is. Voeg daarom aan configuration.yaml de volgende twee regels toe:
sensor:
- platform: season
Herstart daarna Home Assistant en maak een nieuwe automatiseringsregel aan. Kies bij Trigger-type voor Numerieke staat en kies de gewenste temperatuursensor uit de lijst met entiteiten. Vul dan bij Boven je drempelwaarde in, bijvoorbeeld 22. Klik daaronder op Voorwaarde toevoegen, laat het type voorwaarde op Staat staan en kies als entiteit sensor.season. Vul bij Staat de waarde summer in. Zo wordt onze actie alleen in de zomer uitgevoerd wanneer het warmer dan 22 graden wordt. In de andere seizoenen vinden we die temperatuur niet erg!
©PXimport
12 Zonnescherm openen
In de actie kies je bij Type actie weer voor Service aanroepen en bij Service voor de juiste actie. Wij gebruiken de rolluiken op het zuiden en oosten als zonwering, dus we kiezen hier weer cover.close_cover. Als het bij jou om een zonnescherm gaat, dan gebruik je cover.open_cover. En met cover.set_cover_position is het mogelijk om een exacte positie aan te geven. Welke service je ook kiest, bij Service data vul je de lijst met ID’s van je zonwering in, zoals in stap 8, maar dan deze keer wellicht alleen die aan je zuidkant en eventueel het oosten.
©PXimport
13 Verfijningen
We hebben nu op basis van één sensor en één extra voorwaarde meerdere zonneschermen geopend. Uiteraard kun je dit verfijnen. Zo kun je per kamer op basis van de temperatuur in die kamer beslissen of je het zonnescherm in die kamer opent of het rolluik sluit. Elke kamer krijgt dan zijn eigen automatiseringsregel. En je zou ook complexere voorwaarden kunnen toevoegen. Zo zou je bijvoorbeeld met de Dark Sky-sensor kunnen kijken wat de verwachte buitentemperatuur is en je zonnescherm niet openen als die verwachte temperatuur onder een specifiek drempelwaarde ligt omdat het huis dan toch niet zoveel zal opwarmen. Experimenteer hier maar mee!
©PXimport
Dark Sky
Dark Sky is een interessante dienst om de huidige of verwachte weergegevens aan op te vragen, en de ondersteuning in Home Assistant is uitstekend. Je hebt een api-sleutel nodig. Die is gratis tot 1000 api-aanroepen per dag (daarna 0,0001 dollar per aanroep) maar je dient je wel te registreren. Je kunt Dark Sky op twee manieren in Home Assistant integreren: met de component weather.darksky, die eigenschappen als de temperatuur, vochtigheid enzovoort als attributen aanbiedt, of via de sensor darksky die je toelaat om heel precies in te stellen in welke weergegevens je geïnteresseerd bent en hoe vaak je de gegevens wilt vernieuwen. Met die laatste perk je eenvoudig het aantal api-aanroepen in.
©PXimport
14 Invallende zonnestralen
Op een ander moment in het jaar willen we juist wel dat de temperatuur in huis oploopt: in de winter. Als je veel raamoppervlakte op het zuiden en/of oosten hebt, dan kan je huis op een zonnige winterdag alleen al door de invallende zonnestralen flink opwarmen. Zo hoef je zelf minder te verwarmen. Het is dan zaak om zo vroeg mogelijk je gordijnen en/of rolluiken te openen (ook als je aan het uitslapen bent in het weekend), maar alleen als het buiten effectief zonnig is. Voor die laatste voorwaarde kunnen we naar de waarde van de Dark Sky-component kijken of een buitensensor uitlezen die de lichtsterkte meet.
©PXimport
15 Temperatuurstijging
Een andere aanpak is dat we de rolluiken openen wanneer in de winter ’s ochtends de temperatuur oploopt. Daarvoor kunnen we een trend-sensor maken, bijvoorbeeld:
binary_sensor:
- platform: trend
sensors:
buitentemperatuur_stijgend:
entity_id: sensor.buitentemperatuur
sample_duration: 7200
min_gradient: 0.0003
device_class: heat
Deze sensor verzamelt gegevens over de laatste twee uur (7200 seconden) en wordt ingeschakeld wanneer de temperatuur minstens 1 graad per uur (1/3600 is afgerond 0,0003) stijgt.
©PXimport
16 Al omhoog gedaan?
We moeten ook nog vermijden dat onze automatiseringsregel meerdere keren geactiveerd wordt als de temperatuur stijgt, daalt, stijgt, daalt enzovoort. We definiëren daarom een booleaanse invoerwaarde in configuration.yaml, die aangeeft of de rolluiken al door de regel omhoog zijn gedaan:
input_boolean:
rolluiken_omhoog:
Zo’n booleaanse invoerwaarde laat de gebruiker toe om in de webinterface een schakelaar aan of uit te zetten waarop automatiseringsregels kunnen reageren. Wij laten de automatiseringsregels ook de waarde zelf instellen.
©PXimport
17 Lang opwarmen
Dan hebben we nu alles klaarstaan om onze automatiseringsregel aan te maken. Kies bij Trigger-type voor Staat en als entiteit de trend-sensor die je in stap 15 aangemaakt hebt. Bij Naar vul je on in en bij Voor vul je 00:30 in. Met dat laatste zeggen we dat we de regel pas activeren als de temperatuur een halfuur lang zonder onderbreking aan het stijgen is. Klik daarna op Voorwaarde toevoegen en voeg de voorwaarde toe dat input_boolean.rolluiken_omhoog gelijk aan off moet zijn. Voeg daarna nog een voorwaarde toe: dat sensor.season gelijk aan winter moet zijn. In de andere seizoenen hebben we die passieve zonnewarmte immers niet nodig.
©PXimport
18 Rolluiken omhoog
Maak nu een actie aan om de gewenste rolluiken te openen. Dat werkt hetzelfde als in stap 8, maar dan met als service cover.open_cover. Klik daarna op Actie toevoegen voor een tweede actie. Kies als service input_boolean.turn_on en vul bij Service data het volgende in:
{
"entity_id": "input_boolean.rolluiken_omhoog"
}
Zo schakelen we de booleaanse invoerwaarde in na het openen van de rolluiken in deze automatiseringsregel. Daarmee is de regel klaar en kun je hem opslaan.
19 Vanaf zonsopgang
Dan rest ons nog één taak: aan het begin van de dag moeten we de booleaanse invoerwaarde terug op off zetten, zodat onze automatiseringsregel de rolluiken de volgende dag weer omhoog kan doen. Creëer daarom een nieuwe automatiseringsregel met als trigger-type Zon en gebeurtenis Zonsopkomst. Vul bij de actie als service input_boolean.turn_off in en bij Service data:
{
"entity_id": "input_boolean.rolluiken_omhoog"
}
Voor de volledigheid moet je nog een extra automatiseringsregel aanmaken die bij zonsondergang de booleaanse invoerwaarde inschakelt. Dat zorgt er namelijk voor dat de automatiseringsregel niet ’s nachts probeert je rolluiken omhoog te doen (in het zeldzame geval dat de temperatuur de hele dag niet is toegenomen en ’s avonds/’s nachts wel toeneemt).
We gaan er hier overigens vanuit dat je de rolluiken ’s avonds niet-geautomatiseerd sluit.
©PXimport
20 En verder
In dit artikel hebben we allerlei zaken geautomatiseerd met je zonnescherm, gordijnen of rolluiken. Dit is maar één voorbeeld van hoe je dit doet, en je kunt al deze automatiseringsregels nog heel wat verfijnen en aan je specifieke situatie aanpassen. Wil je serieus aan de slag met het automatiseren van je huis, bekijk dan zeker de documentatie van Home Assistant, in het bijzonder die van de talloze componenten. Zo kun je ook allerlei voorwaarden in je automatiseringsregels toevoegen die afhangen van je aanwezigheid in huis of van je agenda (is het een werkdag of niet?), en kun je extra booleaanse invoerwaardes creëren waarmee je in de webinterface van Home Assistant de mogelijkheid aanbiedt om specifieke automatiseringsregels in of uit te schakelen.
©CIDimport