Homebridge Plugin für die Fritzbox installieren

Im letzten Beitrag dieser kleinen Reihe haben wir uns Homebridge auf einem Raspberry Pi installiert und waren froh darüber, es mit HomeKit gekoppelt zu haben. So kannst du sie in der Home App unter iOS steuern. Diesmal gehen wir einen kleinen Schritt weiter und installieren das Homebridge Plugin, welches passend zur Fritzbox ist und es ermöglicht beispielsweise das Gäste-WLAN einzuschalten, Temperaturen anzuzeigen, DECT Steckdosen zu steuern oder DECT Heizkörperthermostate zu regeln. Klingt praktisch und ist es auch. Los gehts.

Zunächst gilt es zu wissen, dass du jedes Homebridge Plugin hier bei npm in einer kleinen Übersicht mit Beschreibung und Konfigurationsanleitung finden kannst. Wir installieren in diesem Artikel einfach quasi als Muster einmal homebridge-fritz.

Dazu gibst du nachdem du dich bei SSH wieder mit dem Raspberry Pi verbunden hast, einfach folgendes ein:

npm install -g homebridge-fritz

Im nächsten Schritt öffnest du einfach wieder die config.json

sudo nano ~/.homebridge/config.json

In dieser erweiterst du einfach den Bereich Plattforms wie folgt und passt die Angaben name, username, password an deine Bedürfnisse und Einstellungen an.

{<br>
  "platforms": [<br>
    {<br>
      "platform": "Fritz!Box",<br>
      "name": "My FritzBox",<br>
      "username": "&lt;username&gt;",<br>
      "password": "&lt;password&gt;",<br>
      "url": "http://fritz.box",<br>
      "interval": 60,<br>
      "options": {<br>
        "strictSSL": false<br>
      }<br>
    }<br>
  ]<br>
}<br>

Nun speicherst du wieder die config.json mit ctrl + x.

Für einen kleinen Test kannst du jetzt einmal homebridge neustarten:

sudo service homebridge stop<br>
sudo homebridge -D

Dabei startet obiger Befehl Homebridge im Debugmodus, der dir im Zweifel hilft, falls etwas nicht funktioniert und entsprechende Fehler oder Warnungen ausgibt. Oft ist einfach nur das json-File nicht valide, weil eine runde oder eckige Klammer vergessen wurde. Bei jsonlint wurde mir in diesem Falle oft geholfen.

Falls das alles geklappt hat kannst du jetzt einmal Home auf dem iPhone öffnen und wirst nach kurzer Zeit einige neue Geräte in der Übersicht finden können.

Das war es für heute, ganz kurz und schmerzlos. Andere Plugins wie z.B. für ältere Phillips Hue Lampen oder Alexa lassen sich sehr ähnlich installieren. Im nächsten Beitrag wird es daher etwas komplexer werden, denn wir bauen eine kleine 433 MHz-Antenne an den RaspberryPi und werden damit die guten alten RS200-Steckdosen von Conrad steuern.

Was treibst du schönes mit HomeBridge? Lass es mich gern wissen.

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@&amp;amp;amp;lt;span style="color: #0000ff;"&amp;amp;amp;gt;10.0.0.1&amp;amp;amp;lt;/span&amp;amp;amp;gt;

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 &amp;amp;amp;lt;span style="color: #0000ff;"&amp;amp;amp;gt;10.0.0.1&amp;amp;amp;lt;/span&amp;amp;amp;gt;

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 &amp;amp;amp;gt; /dev/null 2&amp;amp;amp;gt;&amp;amp;amp;amp;1; then
        echo "Homebridge is already running"
else
        su - pi -c "homebridge &amp;amp;amp;gt; /dev/null 2&amp;amp;amp;gt;&amp;amp;amp;amp;1 &amp;amp;amp;amp;"
        echo "Homebridge starting"
        $0 status
fi
;;
stop)
if ! ps -p $PID &amp;amp;amp;gt; /dev/null 2&amp;amp;amp;gt;&amp;amp;amp;amp;1; then
        echo "Homebridge is not running"
else
        kill $PID
        echo "Homebridge closed"
fi
;;
restart)
if ! ps -p $PID &amp;amp;amp;gt; /dev/null 2&amp;amp;amp;gt;&amp;amp;amp;amp;1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID &amp;amp;amp;gt; /dev/null 2&amp;amp;amp;gt;&amp;amp;amp;amp;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

Mal wieder etwas bloggen.

Wahnsinn, seit mehr als 2 Jahren ist es hier ziemlich still. Kein Beitrag, kein Podcast, kein Lebenszeichen. Dabei liegen doch längst Pläne im Schrank für frischen Wind mit neuem Design, neuem Spin, gaaanz tollen Fonts und großen Plätzen für Bilder und der Idee im Blog vieles zu beschreiben. In der Realität ist davon aber natürlich nichts angekommen. Beim Schreiben fühlt es sich daher gerade recht komisch an, vielleicht leicht altbacken, einfach mal wieder etwas zu machen. Wie Schwelgen in einer anderen Zeit. Einen anderen Fokus wollte ich dem Ganzen hier schon vor etwa einem Jahr gegeben haben. Mit mehr Platz für alles, was mich aktuell umtreibt.

Schließlich hat es mich für fast 6 Monate nach Växjö in Schweden gezogen, in denen ich jeden Tag ein klein wenig von meinen Erlebnissen schreiben wollte. Vom Ankommen, den Menschen um mich herum. Die Begebenheiten an der Uni und die tollen Erlebnisse.

Schließlich mache ich gerne Fotos von der Welt, die geteilt werden wollen. Ich will erzählen von Erlebnissen und habe Gedanken, die diskutiert werden dürfen. Technik steht bei mir auch jede Menge rum und sicherlich ist es recht spannend einmal zu beschreiben, wie diese Dinge alle zusammenhängen.

Doch passiert tagtäglich doch irgendwas, was jetzt als perfekte Ausrede herhalten kann. Das Studium zieht mich in seinen Bann, das Leben will jung gelebt werden und im Haus am Rechner zu sitzen ist zu virtuell, weil ich will, dass alles möglichst echt ist. Dadurch wird der nächste Beitrag ins Nirwana verschoben und sicherlich irgendwann einmal geschrieben sein.

Überhaupt kann es mittlerweile doch so einfach sein, seinen Senf bei Facebook zu posten und den guten alten Weblog zu schließen. Kostet im Volksmund eh nur Geld. Nur will ich dieses Archiv hier nicht schließen, weil ich es bereits seit meiner Schulzeit befüttere und ich mit meinen Gedanken unabhängig bleiben will. Werbung nervt und Geschichten in Podcasts lassen sich ja doch nicht so schön verteilen.

Here, I control my words. Nobody can shut this site down, run annoying ads on it, or sell it to a phone company. Nobody can tell me what I can or can’t say, and I have complete control over the way it’s displayed. Nobody except me can change the URL structure, breaking 14 years of links to content on the web.

Andy Baio

In diesem Sinne hoffe ich demnächst mal mehr aus dem Nähkästchen zu plaudern und hinterlasse als Lebenszeichen ein tolles Sommerbild.