Basierend auf meinem Artikel zur Installation von HomeBridge geht es in diesem Beitrag um das Erweitern der Installation um Plugins zum Schalten vorhandener Geräte und Auslesen von Sensoren sowie der Konfiguration des Setups. Dabei gehe ich vor allem auf die Steuerung der Funksteckdosen über Raspberry-Remote (Installation und Konfiguration siehe dieser Artikel, das Auslesen gespeicherter Sensordaten sowie mögliche Erweiterungen ein.

1. Plugin zum Steuern der Funksteckdosen

Um die Funksteckdosen zu Schalten (auch z.B. über den ESP8266), bietet sich das Plugin „homebridge-http“ an, das es erlaubt diese über das Webinterface von Raspberry-Remote zu schalten. Auch der aktuelle Status der Dosen kann damit ausgelesen werden (weiteres PHP-Skript erforderlich). Ihr installiert euch das Plugin ganz einfach über npm mit

Der Befehl richtet euch das Plugin gleich ein, sodass ihr es sofort verwenden könnt. Bevor wir mit der Konfiguration von HomeBridge zur Nutzung des Plugins fortfahren, erstellen wir noch ein kleines PHP-Skript, um den Status in einer für das Plugin verständlichen Form auslesen zu können. Erstellt dazu eine Datei z.B. mit dem Namen „status.php“ unter dem Ordner, in dem auch euer Webinterface für Raspberry-Remote installiert wurde (z.B. „/var/www/remote/“ bzw. „/var/www/html/remote/“).


[Update 28.01.2017] Mit den neueren Versionen von raspberry-remote funktioniert das ursprünglich vorgestellte Script zum Auslesen des Status der Funksteckdosen nicht mehr. Torsten (Danke dafür!) hat in den Kommentaren aber eine wohl funktionstürchtige Modifikation für neuere Versionen gepostet, die ich hier in den Artikel übernommen habe (siehe „Neue Versionen von raspberry-remote“)


Alte Versionen von raspberry-remote

Der Inhalt des Skripts sollte folgender sein:

In der Variable “$ig” müsst ihr den Wert noch mit eurem Hauscode aus der „config.php“ von Raspberry-Remote ersetzen. Die Verwendung des Skripts ist sehr einfach und kann auch im Browser getestet werden. Ruft eine URL im Format

auf, wobei die Zahl am Ende der Nummer der Steckdose aus der „config.php“ von Raspberry-Remote entspricht. Ist die Dose an laut Webinterface solltet ihr nun eine „1“ erhalten bzw. eine „0“, wenn die Dose aus ist.

Neue Versionen von raspberry-remote

Bei neueren Versionen von raspberry-remote könnt ihr folgendes PHP-Script benutzen:

Die entsprechende URL zum Aufruf lautet dann:

Nun können wir mit der Konfiguration von HomeBridge weitermachen bzw. damit beginnen. Wechselt dazu auf dem Raspberry Pi in den Ordner „/home/pi/.homebridge“ über cd /home/pi/.homebridge. Dort ist eine Datei namens „config.json“, welche ihr nun bearbeitet. Nutzt dazu z.B. nano.

Exkurs: config.json

Wie die Dateiendung schon sagt, handelt es sich bei der Konfigurationsdatei um eine Datei im JSON-Format. Diese ist daher einfach zu bearbeiten und erweitern. Hier mal eine Beispielkonfiguration:

Nach „name“ könnt ihr einen beliebigen Namen für euren HomeKit-Server am Raspberry Pi auswählen, der „username“ kann auch geändert werden (bitte hier das Format mit den Hex-Werten beibehalten!), der „port“ sollte so gelassen werden und die „pin“ könnt ihr frei wählen (mit der Einschränkung, dass er im Format „xxx-xx-xxx“ sein muss und einfache Pins von iOS nicht akzeptiert werden [z.B. 012-34-567]). Die „description“ (Beschreibung) dürft ihr wieder frei wählen. Interessant an der JSON ist für die Konfiguration der eigenen Geräte das „accessories“-Array, indem ihr eure Geräte konfigurieren könnt.

1.1 Hinzufügen der Funksteckdosen zur HomeBridge-Konfiguration

Wie bereits erwähnt, nutze ich zum Schalten der Funksteckdosen das praktische und zuverlässige Plugin „homebridge-http“. Den Aufbau einer möglichen Konfiguration für eine Funksteckdose sehr ihr in der JSON-Datei oben. In der „accessory“-Variable wird festgelegt, dass für dieses Gerät das Plugin „homebridge-http“ genutzt werden soll, im „name“ kann ein Name für das Gerät vergeben werden (hier „Drucker“). Da es sich um ein einfaches Ein-/Aus-Gerät handelt, ist „switchHandling“ auf „yes“ gesetzt, als „http_method“ passt bei Raspberry-Remote-Geräten „GET“. Die „on_url“ und „off_url“ könnt ihr eurem Webinterface entnehmen, den generellen Aufbau sehr ihr in der JSON oben. Als „status_url“ nutzt ihr den Pfad zum PHP-Skript, welches ich weiter oben beschrieben habe, der Parameter „switch“ sollte mit dem aus „on_url“ bzw. „off_url“ übereinstimmen. Da es sich um eine Funksteckdose handelt, wird der „service“ sinnigerweise auf „Switch“ gesetzt, den Rest der Parameter könnt ihr aus der JSON oben übernehmen (hier kann noch ein Dimmer angesteuert werden und ein etwaiger Passwortschutz des Homepage-Verzeichnisses genutzt werden).

Weitere Funksteckdosen und andere Geräte werden ebenfalls in dieser JSON-Datei in das „accessories“-Array eingetragen (ein Komma zwischen den Einträgen nicht vergessen, sonst habt ihr einen Syntaxfehler, der HomeBridge hindert zu starten).

Für einen ersten Test der Konfiguration bietet es sich an, HomeBridge zu starten über homebridge.Ihr solltet nun einige Ausgaben erhalten, unter anderem auch den in der config.json angelegten Pin.

Ihr könnt nun euer iOS-Gerät zur Hand nehmen und HomeKit z.B. über die (kostenlose) App „Eve“ von Elgato einrichten. Wie das geht, habe ich bereits im Artikel zu RaZberry gezeigt, sodass ich die Bilderstrecke hier nochmals verwende:

  • Öffnet zunächst die App und tippt auf „Gerät hinzufügen“

Hinweis: Ich habe festgestellt, dass es Probleme mit HomeKit gibt, wenn der iCloud Schlüsselbund auf eurem Gerät deaktiviert ist. Aktiviert diesen also besser vor der Einrichtung.


Nach der Einrichtung könnt ihr eure Geräte auch per Siri schalten:siri_drucker

2. Plugin zum Anzeigen von Sensorwerten

Auch zur Verarbeitung von Sensorwerten gibt es entsprechende Plugins für HomeBridge. Ich nutze direkt am Raspberry einen DHT11, den ich regelmäßig auslese und die Werte in separate, einfache Textdateien speichere. Genau für diesen Anwendungsfall gibt es das Plugin „homebridge-temperature-file“ bzw. „homebridge-humidity-file“. Installiert werden sie wie das bereits vorgestellte http-Plugin via npm:

Eure config.json muss natürlich auch erweitert werden, die Einträge dazu könnten so aussehen:

Die Variablen hier sollten selbsterklärend sein. In der eve-App sieht mein Keller-Raum dann so aus:keller_eve_resizedEs gibt auch Plugins, um Sensoren auf andere Art (z.B. mittels HTTP-Requests) auszulesen – eines davon wäre „homebridge-httptemperaturehumidity“, das ein JSON-File mit Temperatur und Luftfeuchtigkeit erwartet. Leider machte dieses Plugin bei mir Probleme (Werte wurden nur teilweise oder gar nicht angezeigt), sodass ich es aktuell nicht einsetze.

 

3. Weitere Plugins

Es gibt natürlich noch zahlreiche weitere Plugins für HomeBridge, die sich auf gleiche Weise installieren und konfigurieren lassen. Für fast alle Szenarien gibt es fertige Bausteine, die nur noch in das eigene Setup integriert werden müssen. Werft einfach mal einen Blick auf die npm-Suche, momentan werden dort 120 Plugins gelistet – unter anderem für MQTT, OpenHAB, IFTTT und viele weitere.


Ihr habt damit HomeBridge vollständig konfiguriert und könnt es nun auch beim Booten starten lassen (siehe vorheriger Artikel). Falls ihr mehrere Familienmitglieder mit iOS-Geräten habt oder eure Freunde mit iOS-Geräten eure Geräte steuern lassen wollt, könnt ihr sie übrigens dazu einladen (siehe dazu auch die Apple-Website).