Homebridge auf dem Raspberry Pi installieren

Ich habe seit einigen Jahren einen Raspberry Pi der ersten Version bei mir im Regal liegen. Früher war er dazu da, Filme vom Server zu schauen. Mittlerweile tut diesen Job ein Apple TV der 4. Generation wesentlich besser. Da er aber schon immer in einem Legohäuschen beherbergt war, habe ich mir überlegt ihm endlich ein neues Leben einzuhauchen und ihn als Homebridge zur Ansteuerung der guten alten Conrad RS 200 Steckdosen zu verwenden.

Im heutigen ersten Beitrag soll es darum gehen, wie du auf einem Raspberry Pi Homebridge installieren kannst. Im zweiten Schritt installieren wir ein Homebridge Plugin für die Fritzbox und am Ende zeige ich dir, wie du die guten alten Conrad RS200 Steckdosen bei 433 MHz steuern kannst. So kannst du all diese Geräte später ganz bequem in der Home App unter iOS steuern und in Kombination mit einem AppleTV sogar zeitbasiert oder auf Grundlage von Sensordaten steuern.

Zunächst lädst du dir hier die aktuelle Version von Raspbian oder NOOBS herunter. Wenn du Raspbian direkt verwendest, nimm Balena Etcher und lass es auf eine SD-Karte flashen. Dabei wird die Karte formatiert und danach das Image auf die Karte kopiert.

Bei der Verwendung von NOOBS formatierst du die SD-Karte einfach selbst als FAT-Dateisystem und kopierst alle Dateien im NOOBS-Ordner auf die SD-Karte

Nun legst du die SD-Karten in den Raspberry Pi ein und verbindest ihn zur Installation mit Maus, Tastatur, HDMI-Kabel und Netzteil. Wer keine USB-Tastatur hat, dem reicht auch nur die Maus. Auf dem Bildschirm solltest du nun die verschiedenen Einrichtungsassistenten sehen. In NOOBS wählst du jetzt einfach Raspbian aus und lässt den Installer die nächste Zeit arbeiten. Ähnlich sieht es aus, wenn du Raspbian direkt verwendest mit dem Unterschied, dass du am Ende noch SSH in den Einstellungen aktivieren solltest.

Im nächsten Schritt kannst du nämlich den Raspberry wieder ausschalten und ihn an einen tollen Platz packen, an dem er Strom und eine Netzwerkverbindung bekommt. Alles andere ist jetzt nicht mehr nötig.

Denn jetzt verbinden wir uns per SSH mit dem Raspberry Pi. Suche dazu die IP-Adresse des Raspberry in der Oberfläche deines Routers heraus oder nimm LanScan.
Öffne nun das Terminal oder unter Windows PuTTY und verbinde dich mit folgendem Befehl.

ssh pi@<span style="color: #0000ff;">10.0.0.1</span>

Sollte dir hier eine Fehlermeldung angezeigt werden, so hilt es folgendes auszuführen und mit dem Befehl oben einen neuen Login per SSH zur beginnen.

ssh-keygen -R <span style="color: #0000ff;">10.0.0.1</span>

Das Passwort lautet anfangs raspberry sollte aber direkt geändert werden:

passwd

Außerdem kannst du direkt die richtige Zeitzone einstellen:

sudo dpkg-reconfigure tzdata

Jetzt updatest du einmal alle Systempakete.

sudo apt-get update
sudo apt-get upgrade

Außerdem installierst du NodeJS

Raspberry Pi 2 Model B

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
sudo cp -R * /usr/local/

Raspberry Pi Model A, B, B+

wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv6l.tar.gz
tar -xvf node-v4.0.0-linux-armv6l.tar.gz
cd node-v4.0.0-linux-armv6l
sudo cp -R * /usr/local/

Nun geht es weiter mit Avahi, einem DNS Discovery Programm und falls nötig auch npm.

sudo apt-get install libavahi-compat-libdnssd-dev
sudo apt-get install npm

Als nächsten Schritt installierst du nun Homebridge.

sudo npm install -g --unsafe-perm homebridge

Jetzt haben wir es fast geschafft und erstellen die Konfigurationsdatei:

mkdir -p ~/.homebridge
sudo nano ~/.homebridge/config.json

Trage doch als Grundkonfiguration Folgendes ein:

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },

    "accessories": [
    ],

    "platforms": [
    ]
}

Mit ctrl + x kannst du in nano die Konfigurationsdatei wieder schließen und mit y speichern.

Jetzt startest du Homebridge mit

homebridge

An diesem Punkt angekommen kannst du jetzt einmal die Home-App auf dem iPhone oder iPad öffnen und den angezeigten Code einscannen oder eingeben.

Homebridge kann nun jederzeit mit dem Terminalbefehl gestartet werden. Für ein Rundum-sorglos-Gefühl z.B. nach einem Stromausfall oder schlicht einem Systemreboot nach einigen Updates bietet es sich einen Schritt weiterzugehen und die Installation einfach von selbst beim Bootvorgang zu starten.

sudo npm install forever -g

Nun erstellen wir das Startscript und fügen ein wenig Magie ein:

sudo nano /etc/init.d/homebridge
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for homebridge
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
PID=`pidof homebridge`
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is already running"
else
        su - pi -c "homebridge > /dev/null 2>&1 &"
        echo "Homebridge starting"
        $0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is not running"
else
        kill $PID
        echo "Homebridge closed"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Homebridge is running PID $PID"
else
        echo "Homebridge is not running"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0

Mit ctrl + x schließen und speichern wir das Script wieder.

Zu guter letzt räumen wir dem System noch die nötigen Rechte ein und aktivieren den automatischen Start von Homebridge

sudo chmod 755 /etc/init.d/homebridge
sudo update-rc.d homebridge defaults

Super! Nun läuft deine Homebridge und wir können beim nächsten Mal ein kleines Plugin zur Verwendung der Fritzbox installieren, welches uns hilft DECT-Dosen und Heizkörperthermostate zu steuern. Im dritten Teil dieser kleinen Reihe wird es ans eingemachte gehen, damit wir am Ende einige ältere RS 200 Schaltsteckdosen von Conrad bedienen können.

Weitere Links:
Installing Node.js v.4.0.0 on a Raspberry Pi (All Models)
Anleitung: Homebridge auf einem Raspberry Pi einrichten