Zo automatiseer je alles in huis

Door: Gertjan Groen | 17 augustus 2019 12:55

How To

Wil je alles in en om het huis automatiseren maar weet je niet waar te starten? Met software als Domoticz, OpenHAB en Home Assistant kun je klein beginnen en zit je niet meteen vast aan een bepaald systeem. Vooral Home Assistant is een duizendpoot en groeit rap in populariteit. Grote kans dat je er direct wat handige toepassingen voor vindt. We laten zien hoe je het gebruikt met wat leuke gebruiksvoorbeelden!

De wereld van Home Automation kent talloze standaarden die vaak lastig zijn te combineren. Het meest flexibel ben je met software als Domoticz, OpenHAB en Home Assistant. Domoticz is geschikt voor beginners maar oogt niet zo modern. OpenHAB en Home Assistant leunen meer op scripts. Bij OpenHAB voelt dat voor instappers vooral als een handicap, terwijl je bij Home Assistant al snel de voordelen hiervan inziet. Het wordt bovendien actief ontwikkeld en heeft een grotere gebruikersgroep. Hoog tijd om nader kennis te maken!

In deze masterclass installeren we het op een Raspberry Pi 3 model B, maar een Intel-nuc, kleine Linux-server of een nas is ook een goede optie. Op veel van deze systemen, waaronder een Synology-nas (zie kader) kun je handig gebruikmaken van Docker voor zogenaamde containervirtualisatie. Op de Raspberry Pi zul je meestal voor de omgeving Hass.io kiezen. Die leunt op de achtergrond ook sterk op Docker, maar biedt ook veel extra’s, zoals een vereenvoudigde installatie van updates en uitbreidingen. Overigens is Hass.io ook voor enkele andere systemen verkrijgbaar, waaronder Ordroid C2 en Intel-nuc. Houd er wel rekening mee dat je dan – naast het draaien van Home Assistant – weinig anders met het systeem kunt.

Installatie op de nas met Docker

Op verschillende systemen, inclusief de wat uitgebreidere nas’en van Synology, kun je handig gebruikmaken van Docker voor de installatie van Home Assistant. Zorg dat je Docker hebt geïnstalleerd en open de toepassing. Ga naar Register, zoek op trefwoord homeassistant en kies homeassistant/home-assistant uit de lijst (meestal de eerste) gevolgd door Downloaden. Kies de laatste versie. Ga dan naar Image en druk indien het downloaden klaar is op Starten. Nu opent een wizard voor de configuratie van de container. Klik daarin op Geavanceerde instellingen. Zet een vinkje bij Automatisch opnieuw opstarten inschakelen. Ga daarna naar Volume / Map toevoegen en koppel de map docker/HomeAssistant aan /config. Hiermee zorg je in feite dat de map met de configuratiebestanden op je nas – dus buiten de container – wordt bewaard, zodat je er toegang toe kunt krijgen. Vink op het tabje Netwerk de optie Gebruik hetzelfde netwerk als Docker Host aan. Op het rechtertabje Milieu voeg je met het plusteken de variabele TZ toe met de waarde Europe/Amsterdam. Kies ten slotte Toepassen, Volgende en dan in het overzichtsscherm weer Toepassen zodat de container wordt uitgevoerd. Je kunt daarna beginnen met Home Assistant op het adres van de nas en poort 8123 in de vorm http://ipadres:8123.

Op verschillende nas’en kun je gebruikmaken van Docker voor de installatie van Home Assistant.

01 Installatie op Pi

Voor de installatie op onze Raspberry Pi 3 model B kiezen we voor het kant-en-klare image met Hass.io. De basis daarin wordt gevormd door het besturingssysteem HassOS en een Docker-omgeving. Binnen die Docker-omgeving wordt automatisch de container voor Home Assistant gestart die je bovendien heel eenvoudig kunt updaten via de webinterface. Die webinterface bevat ook enkele andere extra’s, zoals een tool voor het maken van back-ups (snapshots). Bovendien kun je diverse uitbreidingen snel toevoegen, zoals de Configurator waarmee je configuratiebestanden gemakkelijk via de browser kunt aanpassen. Haal het imagebestand voor Hass.io op. Wij selecteerden het 32bit-image voor de Raspberry Pi 3 model B en B+. Gebruik balenaEtcher voor het flashen van het imagebestand op een microSD-geheugenkaart (bij voorkeur minimaal 32 GB).

01 Gebruik Etcher om het imagebestand voor Hass.io te flashen.

02 Preparatie geheugenkaart

Ben je klaar met het flashen van de geheugenkaart, dan ben je in principe klaar om de Pi ermee op te starten. Optioneel kun je er door het schrijven van een configuratiebestandje voor zorgen dat instellingen voor wifi meteen goed staan en/of een vast ip-adres wordt toegekend. Wij kiezen er in deze masterclass echter voor de Pi gewoon met een netwerkkabel aan te sluiten. Dat is gelijk stabieler dan wifi, waarbij het ip-adres via dhcp wordt toegekend. Let erop dat er na het starten van je Pi enkele installatietaken worden uitgevoerd, wat tot twintig minuten kan duren. Optioneel kun je dat proces in de gaten houden door een monitor aan te sluiten. Als het klaar is kun je de webinterface openen met een browser in je netwerk op het adres http://hassio.local:8123. Hier wordt gevraagd een account te maken, waar je vervolgens mee inlogt. Werkt hassio.local niet? Gebruik dan het ip-adres van je Raspberry Pi, dat je kunt opzoeken met tools als Advanced IP Scanner.

02 Na installatie zie je het openingsscherm in de browser.

03 Configurator toevoegen

We installeren Configurator om eenvoudig de configuratie aan te kunnen passen, één van de extra’s van Hass.io. Ga hiervoor in het menu naar Hass.io. Klik onder Add-on Store op deze officiële add-on en kies Install. Vul in het configuratiescript onder het kopje Config een wachtwoord in achter password en voeg bij allowed_networks de ip-reeks van je netwerk toe. Klik dan op Save gevolgd door Start. Volg daarna de link naar Open Web UI om de Configurator te openen. Via het mapicoontje kun je het gewenste configuratiebestand openen, bijvoorbeeld configuration.yaml waarin we deze masterclass de meeste aanpassingen maken. Ook kun je eenvoudig een nieuw configuratiebestand toevoegen met de gewenste naam. Wil je de Configurator in het menu van Home Assistant opnemen? Voeg dan onderstaande regels (bijvoorbeeld onderaan) toe aan dat bestand.

panel_iframe:

configurator:

title: Configurator

icon: mdi:wrench

url: http://10.0.0.70:3218

Zorg dat achter url de correcte link staat. Klik op Save om de veranderingen te bewaren. Ga nu in Home Assistant naar Instellingen / Algemeen en klik onder Serverbeheer op Herstarten. Als het goed is kun je de Configurator nu direct via het menu openen.

04 Opzet configuratiebestanden

Bekijk vooraf goed de structuur van de configuratiebestanden. De hoofdconfiguratie vind je in configuration.yaml. Standaard wordt de configuratie opgedeeld om het overzicht te behouden. Dat zie je aan een regel als automation: !include automations.yaml. Dat is een verwijzing naar het aparte script met automatiseringsregels. Je kunt dit ook zelf doen voor bijvoorbeeld alle sensoren met sensor: !include sensor.yaml. Er is zelfs een mogelijkheid om hele mappen automatisch in te voegen. Dit alles is vooral handig als je wat verder bent en je scripts steeds langer worden.

04 De configuratie wordt vaak in aparte bestanden opgedeeld.

05 Eerste aanpassingen

Vul in configuration.yaml voor de component homeassistant: achter latitude: en longitude: je thuislocatie in. De waardes achterhaal je gemakkelijk op www.gps-coordinates.org. Ze worden onder andere voor het bepalen van zonsopgang- en ondergang gebruikt. Zorg dat bij time_zone: de juiste tijdzone staat, zoals Europe/Amsterdam. Vergeet niet je aanpassingen te bewaren via Save. Het is verstandig na aanpassingen de configuratie te valideren via Instellingen / Algemeen. Vooral met spaties kun je de mist ingaan. In dat menu kun je ook de configuratie herladen of – als dat niet toereikend is – de server herstarten. Dat is heel belangrijk om de aanpassingen die je maakt in de configuratiebestanden actief te laten worden!

05 Zorg onder meer voor de correcte locatiegegevens en tijdzone.

06 Automatisch toegevoegd

Mogelijk zijn er dankzij de Discovery-component automatisch al apparaten gevonden zoals Chromecast, Apple TV, Kodi, Sonos en je televisie. Je ziet de automatisch gevonden apparaten onder Instellingen / Integraties samen met veel handmatig in te stellen integraties. We zullen dit straks gebruiken om Philips Hue-lampen toe te voegen. Daarna gaan we, voordat we echt gaan ‘automatiseren’, ook nog wat andere apparaten toevoegen. Goed om te weten is dat Home Assistant enorm veel hardware en software ondersteunt (zie kader ‘Werkt samen met … bijna alles’). De kans is daarom groot dat je al heel wat apparaten in huis hebt die er op aansluiten.

06 Home Assistant herkent automatisch al diverse apparaten in huis.

Werkt samen met … bijna alles!

Home Assistant ondersteunt enorm veel hardware en software of – kortweg – componenten. Voor een compleet overzicht kijk je op www.home-assistant.io/components. Per component is er een uitgebreide beschrijving opgenomen. Die is voor beginners wellicht nog net wat te beknopt, maar als je wat verder bent heb je er vrijwel altijd genoeg aan. En anders zijn er talloze hulptroepen en -bronnen op internet te vinden. Houd ook de blog van Home Assistant in de gaten want er worden regelmatig interessante componenten toegevoegd!

Home Assistant werkt met heel veel hardware en software samen.

07 Philips Hue-lampen

We beginnen met het integreren van Philips Hue-lampen die werken via het ZigBee-protocol. De Hue Bridge zorgt ervoor dat je de lampen ook vanuit je netwerk kunt bedienen, met de Hue-app of natuurlijk Home Assistant. Die kan rechtstreeks met de zogenaamde api in de Hue Bridge praten. Wij gebruiken overigens de oudere Hue Bridge 1.0 die prima voldoet. Ga in Home Assistant naar Instellingen / Integraties en klik achter Philips Hue op Configureer. Druk zodra gevraagd op de ronde knop op de bridge en druk dan op Submit. Iedere Hue-lamp wordt hierna automatisch als een zogenaamde entiteit aan Home Assistant toegevoegd en kun je bedienen. Een veranderde status wordt binnen enkele seconden bijgewerkt, bijvoorbeeld als je een lamp buiten Home Assistant aan- of uitzet.

07 Philips Hue-lampen zijn als entiteit toegevoegd en bedienbaar.

08 Voordelige Yeelight

De lampen van Yeelight werken via wifi en zijn een voordelig alternatief voor Philips Hue. Je voegt ze snel en eenvoudig aan Home Assistant toe. We nemen de Yeelight YLDP02YL (ongeveer 18 euro) als voorbeeld, die kleuren kan weergeven en met 600 lumen een goede lichtopbrengst heeft. Voordat je de lamp in Home Assistant kunt toevoegen zorg je dat deze op de gebruikelijke manier via de Yeelight-app werkt en over de laatste firmware beschikt. Zet ook de optie LAN Beheer aan in de app om toegang met andere toepassingen zoals Home Assistant mogelijk te maken. Achterhaal het ip-adres via diezelfde Yeelight-app of het netwerkoverzicht van je router. In ons voorbeeld is dat 10.0.0.185. Open daarna configuration.yaml en voeg onderstaande regels toe. Heb je meerdere lampen, dan voeg je ze elk met het eigen ip-adres en beschrijvende naam (zonder spaties) toe onder devices.

light:
- platform: yeelight
devices:
10.0.0.185:
name: Sfeerlamp

Vergeet niet om de aanpassingen actief te maken (onder Instellingen / Algemeen). Hierna zal de lamp in Home Assistant beschikbaar zijn onder de gekozen naam. Probeer ook eens een van de vele effecten zoals Disco of Police.

08 Via de Yeelight-app geef je andere toepassingen toegang.

09 Toevoegen 433MHz-producten

Voor het werken met producten in de 433MHz-band, zoals KlikAanKlikUit (zie kader ‘KaKu in Home Assistant’), sluiten we de Rfxcom RFXtrx433E aan op één van de usb-poorten van de Pi. Dit is een populaire zender/ontvanger voor 433 MHz die met talloze producten en protocollen overweg kan. Denk aan bijvoorbeeld schakelaars, weerstations, deurbellen, automatische gordijnen en garagedeuren. Ook in Chinese webshops vind je een groot aanbod. Om deze zender/ontvanger als component aan Home Assistant toe te voegen hoef je slechts onderstaande regels aan het script configuration.yaml toe te voegen. Met het apparaat op /dev/ttyUSB0 ziet dat er als volgt uit:

rfxtrx:
device: /dev/ttyUSB0

Hierna moeten we nog wel zelf de gewenste sensoren en dergelijke toevoegen. Dat doen we in de volgende stap. Het aansluiten van een zender/ontvanger voor Z-wave, een degelijk alternatief, gaat op vergelijkbare wijze, maar dan met onderstaande regels:

zwave:
usb_path: /dev/ttyUSB0

09 De Rfxcom-zender/ontvanger voeg je snel en eenvoudig toe.

KaKu in Home Assistant

KlikAanKlikUit (KaKu) heeft veel producten voor het slimme huis. Sommige werken rond 868 MHz of met Zigbee, maar het bekendst is het schakelmateriaal op 433 MHz. Hiermee schakel je voordelig stopcontacten en stekkerdozen op afstand. In elke bouwmarkt en elektronicawinkel vind je zulke setjes. Ze gebruiken een simpel protocol dat sterk op het aloude X10-protocol lijkt. Daar zitten ook nadelen aan. Zo is communicatie bijvoorbeeld maar in één richting mogelijk. Je kunt dus wel een signaal sturen om bijvoorbeeld een lamp in te schakelen, maar er is geen bevestiging dat dit ook daadwerkelijk is gebeurd. Daarnaast is de communicatie niet versleuteld, waardoor de kans bestaat dat buren onbedoeld apparaten in- en uitschakelen. Sluit je een zender/ontvanger aan die de protocollen kent, dan kun je in Home Assistant aan de slag met met KlikAanKlikUit-producten maar ook talloze andere (goedkope) setjes die het 433MHz-frequentiegebied benutten, zoals raam-, deur- en temperatuursensoren.

In Home Assistant kun je met KlikAanKlikUit aan de slag.

10 Sensoren beschikbaar maken

We willen om te beginnen enkele temperatuursensoren die op 433 MHz werken toevoegen. Sensoren worden zeer breed toegepast binnen Home Assistant en lang niet alleen voor het feitelijk meten van de temperatuur. Zo kun je bijvoorbeeld weersvoorspellingen (onder andere Buienradar en OpenWeatherMap) toevoegen als sensor maar ook het niveau van je printercartridges (via snmp of cups), meterstanden van je slimme meter, de actuele handelswaarde voor de bitcoin, de actuele reistijd van A naar B volgens Google Maps of de snelheid van je internetverbinding. Daarom kun je ervoor kiezen deze details in een apart configuratiebestand (bijvoorbeeld sensors.yaml) te zetten zoals beschreven bij stap 4. Standaard zijn de weersvoorspellingen van het Noorse Yr.no toegevoegd als sensor. Om de temperatuursensoren van de rfxtrx-component beschikbaar te maken voegen we er een paar regels aan toe, zodat het er als volgt uitziet:

sensor:
- platform: yr
- platform: rfxtrx
automatic_add: True

10 Informatie over sensoren zet je eventueel in een apart bestand.

11 Sensor toevoegen

Zodra een temperatuursensor een signaal geeft, doorgaans eens per minuut, wordt deze dankzij de optie automatic_add direct toegevoegd. Je kunt de waarde terugzien in de webinterface in het gedeelte Overzicht. Zorg dat je configuratie actief is en ververs indien nodig je browserscherm (F5). Noteer de identificatiecode van de temperatuursensor, dat ziet er uit zoals als 0a52070e380e00365346369. Voeg de gewenste sensoren toe in je configuratiebestand onder het kopje devices met een herkenbare naam. Dat komt voor een sensor die temperatuur en luchtvochtigheid meet bijvoorbeeld op het volgende neer:

- platform: rfxtrx
automatic_add: True
devices:
0a52070e380e00365346369:
name: Buiten
data_type:
- Humidity
- Temperature

11 Home Assistant heeft nu zelf al temperatuursensoren gevonden.

12 Schakelaars toevoegen

Het toevoegen van schakelaars gaat eigenlijk op dezelfde manier, maar nu gebruik je de component switch:. Voeg daarvoor onderstaande regels aan de configuratie toe.

switch:
platform: rfxtrx
automatic_add: True

Druk je op de aan-knop van de afstandsbediening, dan zie je de code direct op de overzichtspagina verschijnen en kun je deze toevoegen. Dat gaat op dezelfde manier als bij de temperatuursensoren onder een kopje devices:.

switch:
platform: rfxtrx
automatic_add: True
signal_repetitions: 2
devices:
0b11000f012ef9ba01010f50:
name: Kerstverlichting

Als we er even van uitgaan dat de afstandsbediening ook gewoon aan de bewuste slimme stekker is gekoppeld, kun je het aangesloten apparaat vanaf nu dus ook via Home Assistant bedienen. Met de waarde bij signal_repetitions zorg je (optioneel) dat het signaal meerdere keren wordt verstuurd, zodat je meer zekerheid hebt dat het aankomt. Als je geen afstandsbediening hebt, kun je overigens ook handmatig een code genereren met Home Assistant en deze via de leermodus aan de slimme stekker koppelen. Die leermodus is meestal korte tijd vanzelf actief als je de slimme stekker in het stopcontact steekt.

12 Schakelaars worden herkend zodra je ze gebruikt.

13 Aanwezig via router

De vraag of er iemand thuis is, kan een belangrijke rol spelen bij je automatiseringsregels. Voor dergelijke informatie zijn meerdere opties. Je kunt het grondig aanpakken met bluetooth of gps. Maar er is ook een simpele optie: het pingen van het ip-adres van je smartphone of tablet. Een alternatief, zoals hieronder beschreven, is het uitlezen van de verbindingslijst van de router, om te zien of je smartphone is aangemeld. We zetten hiervoor eerst de zogenaamde Device Tracker aan voor een Fritz!Box in configuration.yaml. Hiermee wordt de verbindingslijst samengesteld en periodiek bijgewerkt. In dit voorbeeld heeft de router het ip-adres 10.0.0.1 maar dat kan in jouw situatie verschillen.

device_tracker:
- platform: fritz
host: 10.0.0.1
track_new_devices: yes
interval_seconds: 10
consider_home: 180

De waarde bij consider_home, in dit voorbeeld 180 voor drie minuten, is de tijd die Home Assistant als extra neemt voordat het iemand daadwerkelijk op afwezig zet.

13 De verbindingslijst van de router kun je gebruiken voor aanwezigheidsinformatie.

14 Aanwezigheid van apparaat

Er verschijnt na voorgaande aanpassing vanzelf een script known_devices.yaml in je configuratiemap. Dat is een lijst met alle op het netwerk gevonden apparaten. Nieuwe apparaten worden hieraan automatisch toegevoegd. Wijzig het script zodat er track: no staat bij apparaten die je niet wilt volgen. Voor apparaten die je wél wilt volgen, zoals je smartphone, kies je zoals hieronder track: yes met achter name een vriendelijke naam.

apparaatnaam:
hide_if_away: false
icon:
mac: 20:39:56:7B:4A:93
name: gertjan
picture:
track: yes

De nauwkeurigheid van deze trackingmethode is niet optimaal. Een smartphone zal bijvoorbeeld in slaapstand af en toe de wifi-verbinding verbreken waardoor het lijkt alsof die persoon afwezig is. Dat wordt echter wel opgevangen. De Fritz!Box haalt apparaten pas uit de verbindingslijst als ze tien minuten niet zijn gezien. Daarnaast kun je nog experimenteren met de waarde voor consider_home. Het ‘thuiskomen’ van een smartphone wordt wel direct opgemerkt.

14 Nieuwe apparaten op het netwerk worden automatisch toegevoegd.

15 Automatiseren met Home Assistant!

We hebben nu de nodige apparaten toegevoegd die vanuit Home Assistant of met een app bediend en beheerd kunnen worden, maar dat maakt het huis nog niet slim! Daarvoor gaan we automatiseringsregels toevoegen in automations.yaml.

Een regel bevat tot drie onderdelen: een trigger, eventuele condities en de gewenste actie(s). Met een trigger stel je in wanneer de regel geëvalueerd moet worden, bijvoorbeeld na een bepaalde tijd, bij het indrukken van een knop of zodra iemand thuiskomt. Met condities stel je eventueel beperkingen in, opdat een lamp bijvoorbeeld alleen wordt ingeschakeld als iemand thuis is én als het donker is. Ten slotte definieer je de actie die moet worden uitgevoerd, bijvoorbeeld het inschakelen van de lamp. Een goede hulp is het onderdeel Ontwikkelaarstools / Toestanden. Daar zie je de bekende entiteiten met hun status en attributen. Een entiteit is bijvoorbeeld een lamp met status on of off en attribuut als brightness (voor een dimlamp). Een entiteit kan ook de zon zijn met status above_horizon en attributen als next_rising en next_setting. De acties kun je verkennen via Ontwikkelaarstools / Services. Voor een schakelaar is dat bijvoorbeeld switch.turn_off en voor een lamp light.turn_off.

15 Toestanden laat de huidige status van entiteiten zien.

16 Schakelen met de tijd

We binnen met een eenvoudige tijd-gestuurde trigger die elke seconde een lamp afwisselend aan en uit zet. Onder alias geven we een korte beschrijvende naam. Met /1 geef je aan dat het elke seconde herhaalt. De regels voeg je toe aan automations.yaml.

- alias: 'Toggle lamp'
trigger:
platform: time_pattern
seconds: '/1'
action:
service: light.toggle
entity_id: light.sfeerlamp

17 Schakelen met zonsondergang

Hieronder zie je een voorbeeld waarbij de lamp anderhalf uur voor zonsondergang aan wordt gezet en om 23:00 weer uit wordt gezet.

- alias: 'Lamp aan voor zonsondergang'
trigger:
platform: sun
event: sunset
offset: '+01:30:00'
action:
service: light.turn_on
entity_id: light.sfeerlamp
- alias: 'Lamp uit om 23:00’
trigger:
platform: time
at: '23:00:00'
action:
service: light.turn_off
entity_id: light.sfeerlamp

18 Schakelen met aanwezigheidsinformatie

Om bovenstaande nog wat geavanceerder te maken zou je er bijvoorbeeld voor kunnen kiezen om alle lampen uit te zetten als iedereen van huis is vertrokken.

- alias: 'Iedereen weg – lampen uit'
trigger:
platform: state
entity_id: group.all_devices
to: 'not_home'
action:
service: light.turn_off
entity_id: group.all_lights

Je kunt hier eindeloos op voortborduren. Denk aan het toevoegen van condities, zodat lampen alleen aangaan als er iemand thuis is. Of de ontvangst van een notificatie bij statusveranderingen. De iOS-app is daar handig voor. Bij Android kun je Pushbullet gebruiken. Ook leuk om te ontdekken zijn de vele extra’s voor Home Assistant. Daar is voor Hass.io makkelijk voor. Een mooi voorbeeld is Node Red waarmee je via een webinterface eenvoudiger acties kunt programmeren.

0 Reactie(s) op: Zo automatiseer je alles in huis

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • Er zijn nog geen reacties op dit artikel.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.