Zo laat je je huis reageren op de zon

© PXimport

Zo laat je je huis reageren op de zon

Netwerk

Geplaatst: 23 juli 2019 - 05:28

Aangepast: 16 november 2022 - 09:38

Koen Vervloesem

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.

© CIDimport

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.

© CIDimport

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].

© CIDimport

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.

© CIDimport

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).

© CIDimport

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.

© CIDimport

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).

© CIDimport

Sluit jezelf niet buiten

© CIDimport

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.

© CIDimport

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.

© CIDimport

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.

© CIDimport

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!

© CIDimport

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.

© CIDimport

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!

© CIDimport

Dark Sky

© CIDimport

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.

© CIDimport

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.

© CIDimport

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.

© CIDimport

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.

© CIDimport

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.

© CIDimport

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

Deel dit artikel
Reageer op dit artikel
Wat vond je van dit artikel?

Aanbevolen voor jou

ID.nl logo

ID.nl, onderdeel van Reshift BV, is in 2022 gestart en uitgegroeid tot de meest toonaangevende en complete consumentensite van Nederland. Het doel van ID.nl is om de consument te helpen met alle technologie die hoort bij het dagelijks leven: van smart-health-meters tot e-bikes, van warmtepompen tot zonnepanelen - en alles daar tussenin!

Duidelijk, betrouwbaar en onafhankelijk: ID.nl maakt moeilijke dingen makkelijk.

Contact

ID.nl

Nijverheidsweg 18

2031 CP Haarlem

info@id.nl

Telefoon: 023-5430000