Domoticasystemen worden steeds populairder, maar hebben wel vaak een belangrijk nadeel: je legt je lot in handen van één fabrikant. Met Home Assistant op een Raspberry Pi neem je weer de controle over je huis in eigen handen en de mogelijkheden zijn eindeloos. We gaan ermee aan de slag!

Home Assistant (https://www.home-assistant.io/) is iets meer dan vijf jaar oud en heeft in die korte tijd al een trouwe schare fans verzameld. Het open source domotica systeem focust zich op onafhankelijkheid van cloudservers, op privacy en op een doe-het-zelfmentaliteit. Domotica is immers iets heel persoonlijks: iedereen heeft andere eisen voor de automatisering van zijn huis.

Home Assistant is een Python-programma en je kunt het dan ook op die manier installeren, bijvoorbeeld op Raspbian op een Raspberry Pi, maar ook in een jail in FreeNAS of in een Docker-container. Dat geeft de meeste vrijheid om je systeem te tweaken, al is het daardoor ook wat moeilijker om te beheren.

Hass.io installeren

Daarom hebben de ontwikkelaars vorig jaar Hass.io (https://www.home-assistant.io/hassio/) geïntroduceerd. Dat is een besturingssysteem gebaseerd op resinOS (https://resinos.io/) en Docker (https://www.docker.com/), dat Home Assistant installeert en updatet en dat je kunt beheren in dezelfde interface als die van Home Assistant. Bovendien ondersteunt Hass.io ook add-ons in de vorm van Docker-images, waardoor ook het uitbreiden van je Home Assistant-systeem wat handiger en betrouwbaarder is.

Daarom gaan we in deze workshop aan de slag met Hass.io. Download het juiste image (https://www.home-assistant.io/hassio/installation/) van de website van Home Assistant, in ons geval was dat hassos_rpi3-1.10.img.gz voor de Raspberry Pi 3 Model B en B+ 32-bits, het image dat de ontwikkelaars aanraden. Schrijf het image met Etcher (https://etcher.io/) naar een microSD-kaart van liefst 32 Gbyte of meer.

We gaan uit van een configuratie met ethernet; op de pagina waar je de images vindt, staat ook uitgelegd hoe je wifi configureert. Dat doe je door een usb-stick in je Pi te steken met een configuratiebestand op. Sluit je Pi op het netwerk aan en start het computertje dan op vanaf de zojuist beschreven microSD-kaart. Deze eerste opstart downloadt Hass.io Home Assistant, wat bij ons een tiental minuten duurde. Vlak na de download kun je al een statuspagina op http://hassio.local:8123 bekijken in je webbrowser en op die pagina is je Home Assistant-installatie ook bereikbaar na installatie.

Configuratie

Na de installatie vraagt Home Assistant je om een gebruikersaccount aan te maken. Vul een naam, gebruikersnaam en wachtwoord in en klik op Account aanmaken. Log je in de stap erna met diezelfde gebruikersnaam en wachtwoord in, dan krijg je een welkomstkader met verwijzingen naar meer informatie.

Klik je op de drie horizontale lijnen linksboven, dan open je een zijpaneel met een menu. We gaan even kort in op elk ervan. De pagina die je nu al zag, is Overzicht. Daaronder heb je Kaart, dat een kaart toont waarop je de locatie van apparaten die je trackt kunt tonen. Logboek geeft je een lijst van belangrijke gebeurtenissen, zoals wanneer Home Assistant is gestart. Later komen hierin wijzigingen van de status van je apparaten. Geschiedenis toont je in de vorm van grafiekjes de waarde van allerlei variabelen door de tijd. In Hass.io beheer je Hass.io en de add-ons en in Instellingen configureer je Home Assistant en zijn belangrijkste componenten. En helemaal onderaan vind je de Ontwikkelaarstools waarmee je onder de motorkap van Home Assistant duikt.

Add-on toevoegen

Niet alle componenten van Home Assistant kun je via de webinterface configureren. De volledige configuratie staat in een bestand configuration.yaml, maar dat kun je momenteel niet bewerken. Daarom installeren we de add-on Configuration die toelaat om het configuratiebestand van in de webinterface te bewerken. En zo tonen we ineens aan hoe je een add-on in Hass.io installeert.

Open links het menu Hass.io en klik dan op Add-on Store. Klik daar bij de Official add-ons op Configurator en dan op Install. Na de installatie krijg je de configuratie van de add-on te zien. Het enige wat je daarin dient te veranderen, is de volgende regel:

  “password”: null,

Verander die in:

  “password”: “geheimwachtwoord”,

Je vult hier je eigen wachtwoord voor de configurator in, zodat niet iedereen met toegang tot je domotica systeem de configuratie van Home Assistant kan aanpassen. Let op: vergeet niet de aanhalingstekens (“) rond je wachtwoord te zetten. Klik daarna op SAVE. Klik daarna bovenaan de pagina op Start om de add-on op te starten en daarna op Open Web UI. Vul in het nu verschijnende aanmeldvenster de gebruikersnaam admin en je zojuist ingestelde wachtwoord in.

Configuratie in de webinterface

De configurator toont je een groot leeg tekstveld. We moeten eerst het juiste bestand openen. Klik daarom linksboven op het icoontje van de map en kies dan het bestand configuration.yaml in de map /config. Je krijgt nu de configuratie van Home Assistant te zien. Nu we hier toch zijn, kun je een commentaarteken (#) vóór de regel introduction zetten, zodat je in het overzicht niet elke keer het welkomstkader meer te zien krijgt. Kijk ook eens naar de instellingen voor je locatie en je tijdzone.

Voeg daarna de volgende code toe, bijvoorbeeld vlak voor de regel die begint met group:

panel_iframe:

  configurator:

    title: Configurator

    icon: mdi:wrench

    url: http://hassio.local:3218

Klik daarna bovenaan rechts op het rode knopje om het configuratiebestand op te slaan. Ga daarna terug naar de pagina van Home Assistant zelf, klik op Instellingen, Algemeen en dan onderaan op Herstarten. Home Assistant herstart dan. Als je alleen het configuratiebestand opnieuw wilt inladen, klik dan op Herlaad kern.

Na de herstart krijg je in het zijpaneel links een nieuw onderdeel, Configurator. Hierin kun je nu configuration.yaml (en andere bestanden op je Pi) bewerken zonder dat je nog de afzonderlijke pagina van de add-on Configurator hoeft te openen.

Andere manieren om configuration.yaml aan te passen
Installeer je de officiële add-on SSH server, dan kun je via ssh op je Hass.io-systeem inloggen en zo ook het configuratiebestand aanpassen. Een verbeterde versie daarvan is de community add-on SSH & Web Terminal die een veilige ssh-configuratie aanbiedt en ook een terminal in de webinterface van Home Assistant beschikbaar maakt. En met de add-on Samba share deel je mappen van Hass.io via Samba, waardoor je de bestanden erin (en dus ook configuration.yaml) op een ander systeem kunt aanpassen.

Apparaten toevoegen

Dan is het nu tijd om al je apparaten aan Home Assistant toe te voegen. Misschien ontdekt Home Assistant zelf al wat van je apparaten op het netwerk, omdat de standaard ingeschakelde component discovery apparaten via zeroconf/mDNS en UPnP ontdekt. Andere apparaten zal je zelf moeten toevoegen. De online documentatie van Home Assistant legt in de meeste gevallen uitstekend uit hoe dat werkt.

We tonen je hier hoe dat met Z-Wave-apparaten gaat. Steek een Z-Wave usb-stick in een usb-poort van de Pi en voeg dan in configuration.yaml het volgende toe:

zwave:

  usb_path: /dev/ttyUSB0

Afhankelijk van je Z-Wave-controller kan dit pad overigens verschillen. Herstart dan Home Assistant. Het is trouwens nuttig om te weten dat Home Assistant gebruik maakt van OpenZWave (http://www.openzwave.com/), dus informatie over de ondersteuning van specifieke Z-Wave-apparaten vind je bij dat project. Na de herstart zijn normaal gezien al je Z-Wave-apparaten toegevoegd en zie je ze in je overzicht. Bij de batterij-gevoegde apparaten kan het overigens even duren voordat ze worden herkend. In het menu Instellingen vind je nu onderaan een onderdeel Z-Wave. Daar kun je je Z-Wave-apparaten beheren. Lees zeker in de online documentatie hoe je weerbarstige Z-Wave-apparaten aan de praat krijgt.

Nadat je je apparaten aan Home Assistant hebt toegevoegd, kun je beginnen met deze te automatiseren.

Automatiseren

Als je op deze manier wat sensoren, schakelaars en andere apparaten hebt toegevoegd, kun je beginnen met zaken te automatiseren. In configuration.yaml zie je onderaan:

automation: !include automations.yaml

Dat betekent dat Home Assistant de inhoud van het bestand automations.yaml inleest. Open dat bestand en plaats daarin je code. Wij willen dat de rolluiken van het schuifraam en keukenraam (beide aan de zuidkant) automatisch omlaag gaat als het binnen te warm wordt. Dat ziet er dan als volgt uit:

– id: close_covers_south_when_hot_inside

  alias: Sluit rolluiken op het zuiden als het binnen te warm is

  trigger:

    platform: numeric_state

    entity_id: sensor.woonkamer_temperature

    above: 26

  action:

    service: cover.close_cover

    data:

      entity_id: cover.schuifraam, cover.keukenraam

Het id is een unieke code van je automatisatie en de alias is de beschrijving van deze automatisatie die je in het overzicht van Home Assistant te zien krijgt. De trigger is wat de automatisatie activeert, in ons geval dat de temperatuur in de berging hoger dan 26 graden wordt. En onder action beschrijf je wat er moet gebeuren, in dit geval dat we beide rolluiken sluiten.

Voorwaarden

Je kunt nog extra voorwaarden aan een automatisatie toevoegen. Stel je voor dat je automatisch alle rolluiken na zonsondergang wilt sluiten als je weg bent, dan moet je eerst een device tracker toevoegen. Home Assistant heeft daarvoor veel mogelijkheden, maar de eenvoudigste is via Bluetooth. Voeg daarvoor het volgende aan je configuration.yaml toe:

device_tracker:

  – platform: bluetooth_tracker

 

Als je daarna Home Assistant herstart, dan herkent het systeem alle apparaten in de buurt via Bluetooth. Ze voegt ze vervolgens aan je overzicht toe met de aanduiding Thuis als ze gevonden zijn en anders staan ze op Afwezig. Het al dan niet thuis zijn, kun je dan in je automatisaties als voorwaarde opleggen, bijvoorbeeld:

– id: close_covers_after_sunset_when_away

  alias: Sluit rolluiken na zonsondergang als ik weg ben

  trigger:

    platform: sun

    event: sunset

    offset: ‘+00:30:00’

  condition:

    condition: state

    entity_id: device_tracker.phone_koen

    state: not_home

  action:

    service: cover.close_cover

    data:

      entity_id: cover.boven

En verder

Een domotica systeem is natuurlijk heel persoonlijk: elk huis is anders, iedereen heeft andere apparaten die hij wil automatiseren en iedereen heeft een andere thuissituatie en andere verlangens. Vanaf nu is het dus aan jou. Denk eens na wat je zoal wilt automatiseren en zoek dan in de uitgebreide online documentatie (https://www.home-assistant.io/docs/) op hoe je dat doet. Wees gewaarschuwd: het is behoorlijk verslavend!