Domotica met OpenHAB

openhab

Nadat ons huis geautomatiseerd was met Domoticz, leek het me interessant om eens een ander Domotica-systeem te gaan proberen op de Raspberry Pi. Ik kwam uit bij OpenHAB, wat staat voor Open Home Automation Bus.

OpenHAB integreert verschillende domotica-technieken in een enkelvoudige software-oplossing. Een kleine waarschuwing vooraf: het is geen kant-en-klare consumentenoplossing en en er moet best wel wat geconfigureerd worden. Daar staat tegenover dat dat het systeem heel veel oplossing biedt en behoorlijk goed uitbreidbaar is. Je kunt er veel oplossing op ‘inhaken’, er zelf uitbreidingen voor schrijven of gebruik maken van de uitbreidingen die de community beschikbaar stelt.

Na de initiële installatie van OpenHAB kun je eenvoudig uitbreidingen installeren waaronder HomeKit integratie en koppelingen met Zwave en Ikea’s Trädfri. Je hebt dan al snel al je Ikea-verlichting en Zwave devices tot je beschikking om er een geweldig domotica-systeem mee te bouwen, maar daarvoor moet je wel de concepten van OpenHAB begrijpen zoals Things, Channels, Binding en Items.

Installatie op een Raspberry Pi

De Raspberry Pi (en vooral versie 3B) leent zich uitstekend om een Domotica-systeem mee op te bouwen. Het installeren van OpenHAB is zeer eenvoudig, maar je hebt er wel een beetje geduld voor nodig.

Voor de Raspberry Pi is OpenHABian ontwikkeld: een SD-card image met een voorgeconfigureerde installatie van OpenHAB. Je hoeft alleen de laatste versie van het image-bestand te downloaden en op een SD-card te plaatsen met een applicatie zoals bijvoorbeeld Etcher.

Zodra je de image op de Sd-card hebt gezet, plaats je de SD-card in de Raspberry Pi en start hem op. De installatie wordt nu uitgevoerd. Dit kan behoorlijk lang duren. Het vervelende is dat het beeld van je Raspberry Pi tijdens de installatie op zwart gaat. Geen nood, de installatie loopt dan gewoon door. Bij mij duurde het tot wel 45 minuten alvorens er weer iets op het beeld verscheen. Je moet dus behoorlijk wat geduld hebben en de verleiding weerstaan om tussentijds de Raspberry Pi opnieuw te starten.

Zodra de installatie afgerond is, kun je de web-interface openen via http://openhabianpi:8080.

Ook heb je de mogelijkheid om in te loggen via SSH:

ssh openhabian@openhabianpi (wachtwoord = openhabian)

Wanneer je via SSH bent ingelogd, kun je de OpenHABian Configuration Tool gebruiken om de software te upgraden en backup’s te maken en terug te zetten.

WiFi instellen

Als je Raspberry Pi voorzien is van WiFi dan kun je, nadat je de image op de SD-card hebt gezet, het bestand openhabian.conf openen en daarin je WiFi-instellingen configureren:

wifi_ssid="<naam_van_je_netwerk>"
wifi_psk="<je_wifi_wachtwoord>"

Binnenkort meer over hoe je je devices configureert…

 

Je huis besturen met Siri

Domotica met Siri en HomeBridge

In een eerdere blog heb ik beschreven hoe je met een Raspberry Pi de basis kunt leggen voor Domotica in je huis. Daarnaast heb ik uitgelegd hoe je op afstand je huis kunt besturen.

Aangezien ik een iPhone gebruik, leek het me ook aardig om een koppeling te maken met Apple’s HomeKit. Deze domotica-software zit ingebouwd in iOS, waardoor het op elke iPhone en iPad beschikbaar is. Het leuke van HomeKit is dat je het kunt besturen met Siri, waardoor je met je stem je huis kunt besturen. Helaas werken niet alle domotica-oplossingen met HomeKit en Domoticz, het open-source pakket dat ik voor mijn domotica gebruik, is daar geen uitzondering op. Ook mijn Nest-thermostaat werkt standaard niet met HomeKit.

HomeBridge

Om apparaten toch met HomeKit te laten communiceren, is er HomeBridge. Deze open-source software werkt als schakel tussen je apparaten en HomeKit. Het draait op Node.js, dus dat zul je eerst moeten installeren. In deze blog ga ik er vanuit dat je de basis met een Raspberry Pi en Domoticz reeds draaiend hebt.

Om te beginnen log je via SSH in op je Raspberry Pi. We gaan nu eerst Node.js installeren. Ik vind het zelf het gemakkelijkste om dit als root te doen. Hiervoor geef je het volgende commando:

sudo bash

Toets nu de volgende commando’s om Node.js op te halen:

wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv7l.tar.gz
tar -xvf node-v4.0.0-linux-armv7l.tar.gz
cd node-v4.0.0-linux-armv7l

Verplaats nu NodeJS naar /usr/local met het volgende commando:

cp -R * /usr/local/

Node.js is nu geïnstalleerd. Je kunt dit controleren door het onderstaande commando uit te voeren. Je krijgt dan krijgt dan als antwoord het versienummer te zien:

node -v

Voordat we HomeBridge gaan installeren, moeten we eerst Avahi installeren, omdat HomeBridge hier gebruik van maakt:

apt-get install libavahi-compat-libdnssd-dev

De voorbereidingen zijn nu gereed en we kunnen nu HomeBridge gaan installeren.Voer het volgende commando uit:

npm install -g homebridge

De installatie kan aardig wat tijd in beslag nemen. Wees niet bang als je wat errors voorbij ziet komen. Als de installatie voltooid is, kunnen we HomeBridge voor het eerst opstarten:

homebridge

Aangezien we nog niet alle onderdelen van HomeBridge geïnstalleerd hebben, zullen er nog wat foutmeldingen verschijnen, zoals “No plugins found. See the README for information on installing plugins.” De plugins waarover gesproken wordt, gaan we nu installeren. Je kunt HomeBridge stoppen door de toetsencombinatie CTRL+c.

Plugins installeren

Domoticz

Om de Domoticz-plugin te installeren, toets je het volgende commando:

npm install -g homebridge-edomoticz

Nadat de plugin geïnstalleerd is, gaan we het configuratiebestand voor HomeBridge aanmaken:

cd ~/.homebridge/
nano config.json

Kopieer de onderstaande tekst in het bestand en sluit met CTRL+x. (Het bestand wordt nu opgeslagen)

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:21:3E:E4:DE:33",
        "port": 51826,
        "pin": "031-45-154"
    },
    "description": "Configuration file for (e)xtended Domoticz platform.",
    "platforms": [
        {
            "platform": "eDomoticz",
            "name": "eDomoticz",
            "server": "127.0.0.1",
            "port": "8080",
            "ssl": 0,
            "roomid": 2,
            "mqtt": 1
        }
    ],
    "accessories": []
}

De waarde voor “roomid” is hierboven gezet op 2. Dit is het floorplan dat we in Domoticz aanmaken en waarin we alle apparaten zetten die we via HomeKit beschikbaar willen maken. In Domoticz ga je naar:
Instellingen -> Meer opties -> Ruimtes -> Kamerplan

Klik nu rechtsboven op Ruimte toevoegen. Als naam geef je bijvoorbeeld HomeBridge. Vervolgens kun je onderin kiezen welke apparaten je wilt toevoegen. Voeg één voor één al je apparaten toe.

Zodra je dit gedaan hebt, start HomeBridge op:

homebridge

Je ziet nu dat HomeBridge de apparaten via Domoticz vindt. Wanneer HomeBridge is opgestart, krijg je het volgende te zien:

Scan this code with your HomeKit App on your iOS device to pair with Homebridge:
                       
    ┌────────────┐     
    │ 031-45-154 │     
    └────────────┘     

Deze code heb je nodig om je iPhone of iPad te verbinden met HomeBridge. Start nu in iOS de HomeKit-app.

  • Druk rechtsboven op de +-knop en kies Voeg accessoire toe.
  • Je ziet nu HomeBridge verschijnen. Kies deze.
  • Je wordt nu gevraagd om een code te scannen. Dit gaat niet met HomeBridge, maar je kunt ook kiezen om de code handmatig in te voeren. Kies deze optie en voer de code in die je van HomeBridge hebt gekregen.
  • Hierna wordt je gevraagd om één voor één de apparaten in te stellen. Je kunt hun naam, functie en lokatie wijzigen. Eventueel kun je dit ook later doen, maar het is wel belangrijk omdat Siri dan bijvoorbeeld het verschil kent tussen spotjes in de keuken en spotjes in de woonkamer. Als je lampen configureert als lamp in plaats van schakelaar, dan weet Siri dat je deze apparaten wilt schakelen wanneer je het hebt over verlichting.

HomeBridge automatisch starten

We hebben HomeBridge handmatig opgestart. Echter, zodra je de SSH-sessie sluit zullen applicaties, die je gestart hebt, automatisch afsluiten, dus ook HomeBridge. Daarom moeten we de Raspberry Pi HomeBridge automatisch laten starten.

Voer het volgende commando uit:

nano /lib/systemd/system/homebridge.service

Plak de volgende tekst in het bestand en sla het op:

[Unit]
Description=HomeBridge Service
After=multi-user.target

[Service]
User=pi
Type=idle
ExecStart=/usr/local/bin/homebridge

[Install]
WantedBy=multi-user.target

Voer nu de volgende commando’s uit:

systemctl daemon-reload
systemctl enable homebridge
systemctl start homebridge

HomeBridge wordt nu in de achtergrond gestart en je krijgt geen output te zien. Als je de output toch wilt zien, kun je deze terug vinden in /var/log/daemon.log.

In de Woning-app op je iPhone of iPad kun je nu de verschillende apparaten zien:

Behalve via de app kun je je apparaten ook oproepen in Control Center door vanuit je Home Screen van onderuit het scherm naar boven te vegen en dan in Control Center naar links te vegen.

Maar het leukste is natuurlijk om het aan Siri te vragen:

Hé Siri, schakel de spots in de keuken in

 

 

Helaas werkt deze oplossing enkel wanneer je iPhone verbonden is met je thuisnetwerk. Wil je je huis ook buiten de deur kunnen bedienen, dan is hiervoor een heel simpele oplossing beschikbaar.

Tot slot nog even een kleine demonstratie van de werking op een iPhone:

Bouw je eigen cloud-dienst

Met een cloud-dienst kun je altijd en overal bij je bestanden, zolang je maar een internetverbinding hebt. Vaak is het mogelijk om je bestanden vanuit meerdere apparaten te benaderen, zoals je computer, tablet en smartphone. Er zijn veel commerciële cloud-oplossingen te vinden zoals DropBox, iCloud, Google Drive en Microsoft’s OneDrive. Continue reading “Bouw je eigen cloud-dienst”