Homebridge – FHEM-Geräte per Siri steuern

Jeder der ein iOS Gerät sein Eigen nennt, träumt irgendwann davon seine Geräte über Siri steuern zu können. Apple bietet dazu Homekit als Schnittstelle an. Problem dabei ist jedoch, dass es noch nicht allzu viele Geräte gibt, die diese Schnittstelle nutzen bzw. unterstützen. Hier kommt das Projekt „Homebridge“ zur Hilfe. Homebridge simuliert auf dem Raspberry ein Homekit-Schnittstelle und lässt euch so eure FHEM-Geräte über Siri steuern.

Siri HomebridgeIn diesem Beitrag erkläre ich euch, wie ihr auf eurem Raspberry Homebridge installiert, einrichtet und die Verbindung mit FHEM herstellt.

Benötigte Pakete installieren

Für den Betrieb von Homebridge wird die aktuelle Version von NodeJS benötigt. Welche momentan aktuell ist könnt ihr auf dieser Seite rausfinden. Zum diesem Zeitpunkt war es Version 4.3.1. Der Befehl zur Installation ist je nach Version des Raspberrys unterschiedlich.

Raspberry  Pi 1:

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

Raspberry Pi 2 / 3:

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

Nun wird der Inhalt in ins Verzeichniss „/user/local“ verschoben:

sudo cp -R * /usr/local/

Nun überprüft ihr am besten ob die Installation erfolgreich war. Dies könnt ihr mit folgendem Befehl machen:

node –v

Jetzt solltet ihr die Version von NodeJS als Ausgabe erhalten.
Hat alles geklappt könnt ihr die heruntergeladene Datei und den entpacken Ordner löschen

Raspberry Pi 1:

rm node-v4.3.1-linux-armv6l.tar.gz 
rm -R node-v4.3.1-linux-armv6l/

Raspberry Pi 2 / 3:

rm node-v4.3.1-linux-armv7l.tar.gz 
rm -R node-v4.3.1-linux-armv7l/

Damit Homebridge ordnungsgemäß läuft wird noch folgendes Paket benötigt:

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

Homebridge installieren

Nachdem alle benötigten Pakete installiert wurden, können ihr mit der Installation von Homebridge beginnen:

sudo npm install -g homebridge

Homebrdge wird nun heruntergeladen und installiert. Dies kann einige Minuten dauern.
Damit Homebridge auch mit den Geräten von FHEM kommuniziert, ist es nötigt das Plugin shim zu installieren:

sudo npm install -g homebridge-fhem

Nach der Installation können ihr damit beginnen Homebridge für den Betrieb mit FHEM zu konfigurieren. Dazu wird ein Verzeichenis mit einer Konfigurataionsdatei erstellt:

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

In dem nun geöffnetet Editor wird die Konfiguration geschrieben:

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "031-45-154"
    },
 
    "platforms": [
        {
            "platform": "homebridge-fhem.FHEM",
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "ssl": true,
            "auth": {"user": "FhemUser", "pass": "XXX"},
            "filter": "room=Homekit"
        }
     ],
    "accessories": []
}

Habt ihr eure FHEM-Installation, wie in meinem Artikel beschrieben, mit SSL und einem Passwort abgesichert, müsst ihr den Eintrag „auth“ entsprechend anpassen und an den Eintrag „ssl“ denken. Ansonsten den Eintrag „ssl“ entfernen und die Zeile „auth“ einfach so belassen.

Der Eintrag „server“ muss nur angepasst werden, wenn Homebridge nicht auf dem gleichen System wie die FHEM-Installation läuft.

Mit der obigen Konfigurationsdatei werden alle kompatiblen FHEM-Devices mit Siri steuerbar, welche sich im Raum „Homekit“ befinden. Wollt ihr alle eurer kompatiblen Geräten steuern oder einen anderen Raum verwenden, dann einfach den Eintrag „filter“ anpassen.

Anschließend die Datei speichern und schließen.

Einrichtung unter FHEM

Aufgrund des oben genannten Filters müssen alle Geräte, welche mit Siri gesteuert werden sollen, den Raum „Homekit“ zugeordnet werden. Sind alle gewünschten Geräte in diesem Raum, ist die Einrichtung innerhalb FHEMs auch schon fertig. Die benötigten Attribute werden beim ersten Start von Homebridge automatisch hinzugefügt.

Werden nachträglich neue Geräte zur Homebridge (Raum Homekit) hinzugefügt, muss Homebridge neu gestartet werden (siehe weiter unten).

Homebridge ist nun startbereit und kann über den Befehl

homebridge

gestartet werden.

Ihr sieht nun einen 8stelligen Code für die Konfiguration auf einem iOS-Gerät.

Homebridge FHEM Einrichtungscode

Konfiguration auf einem iOS-Gerät

Für die Konfiguration auf iOS-Geräten hat Apple noch keine eigene App bereitgestellt, sodass wir auf eine Drittanbieter-App ausweichen müssen. Ich benutze dazu „Elgato Eve“ von Elgato Systems.

Elgato Eve
Preis: Kostenlos

Beim ersten starten der App muss man zuerst Geräte hinzufügen. Dies geschieht über „Gerät hinzufügen“

Nach der Vergabe eines Namens, beginnt die App auch schon nach kompatiblen Geräten zu suchen. Die eingerichtete Homebridge sollte nun gefunden werden:

Nach auswählen der Homebridge werden wir dazu aufgefordert einen 8-stelligen Einrichtungscode einzugeben. In unserem Fall ist es „031-45-154“.

Da die Homebridge-Installation nicht von Apple verifiziert ist, erhalten man nun eine Warnmeldung, welche einfach mit „Trotzdem hinzufügen“ beantwortet werden kann. Die App beginnt sich nun mit der Homebridge zu koppeln. Nach der erfolgreichen Kopplung kann man  bereits erste Räume hinzufügen oder erstmal mit dem Standardraum fortfahren.

Man erhält nun eine Übersicht alle gefundenen Geräten.

Man sollte nun beginnen sich die gewünschten Räume einzurichten. Dazu über der unteren Leiste auf „Räume“ um alle vorhandenen Räume anzuzeigen.

Geht man nun wieder zur Geräteübersicht kann man durch tippen auf ein Gerät dessen Einstellungen bearbeiten.

Hier kann man nun dem Gerät einen Raum zu ordnen. Wichtig ist hier auch, dass jedes Gerät einen eindeutigen Siri-Namen bekommt. Über diesen Namen steuern wir mit Hilfe von Siri unsere Geräte. Man sollte den Geräten also aussprechbare Namen geben. Des Weiteren ist es wichtig darauf zu achten, dass der Eintrag „Verwendet für“ passend gewählt ist. Dadurch ist es auch möglich, allgemeine Befehle über Siri abzusetzen. Zum Beispiel: „Siri, schalte das Licht in der Küche an“ anstatt „Siri, schalte die LEDLeiste in der Küche an“.

Alle Einstellungen die ihr über diese App tätigt werden eurem Homekit-Profil zugeordnet. Ihr könnt also über alle iOS-Geräte die mit eurer Apple-ID verknüpf sind eure Geräte steuern.

Über die App lässt sich noch einiges weiteres Einstellen (Räume, Szenen, Bereiche), aber diese lassen sich am besten selber durch „rumklicken“ innerhalb der App entdecken.

Homekit automatisch starten

Damit man nach einem Neustart des Raspberrys Homebridge nicht immer manuell neustarten muss, erstellen wir uns einen Service, welcher Homebridge automatisch startet.

sudo nano /etc/init.d/homebridge

Wir fügen folgenden Inhalt hinzu:

#!/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

Soll Homebridge über einen anderen Benutzer gestartet werden, muss am Anfang der Datei folgende Zeile entsprechend geändert werden:

su - pi -c "homebridge > /dev/null 2>&1 &"

Nun noch den Autostart aktivieren

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

und Homebridge wird nach einem Neustart automatisch mit neu gestartet.
Manuell kann man Homebridge mit folgenden Befehlen steuern:

sudo service homebridge start
sudo service homebridge stop
sudo service homebridge restart

Weitere Infos zur Homebridge auf dem offiziellen FHEM-Wiki-Eintrag.

Hinterlasse einen Kommentar

17 Kommentare auf "Homebridge – FHEM-Geräte per Siri steuern"

Benachrichtige mich zu:
avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
Sortiert nach:   neuste | älteste | beste Bewertung
Karl
Gast
Karl

Zunächst Danke für die tolle Anleitung.
Ich habe (Außer dem automatischen Starten) alles installiert, Incl. FHEM Plugin, im Grundsatz läuft es auch, d.h. Ich sehe meine Somfy Rolläden in Elgato, aber leider lässt sich nichts steuern. Ich habe den Rolläden die Attr. generis device blind und Model somfyblind zugewiesen.
In Elgato wird die ganze anzeigt der Zustand ’schließend‘ angegeben, ich habe dort dann Pfeile, um Prozentsätze zu verändern, wenn ich das mache, dann sendet Homebridge auch Signale (Kann ich in der Konsole sehen) aber nichts tut sich
Irgendeine Idee? Welche Info brauchst Du?

Karl
Gast
Karl

Danke für den Tipp

Tim
Gast
Tim

Hallo Daniel,

vielen Dank für die super Erklärung! Es hat beim ersten mal auch super funktioniert. Als ich dann nachträglich die SSL Verschlüsselung eingestellt habe bekomme ich keine Verbindung mehr… In der .json Datei hatte ich bei SSL bereits auf „true“ gestellt.

bekomme folgenden fehler angezeigt…

longpoll ended, reconnect in: 200msec
starting longpoll: https://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1472234268720
longpoll error: Error: connect ECONNREFUSED 127.0.0.1:8083, retry in: 10000msec
starting longpoll: https://127.0.0.1:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1472234278735
Hast du eine Idee woran das liegen kann?

Danke und Grüße
Tim

Sebastian
Gast

Hi Daniel,
danke für die Anleitung. Hat gut funktioniert, nur dass ich bei mir noch einen C++11-Compiler installieren musste.
Allerdings scheint nicht alles out-of-the-box zu funktionieren, auch wenn die Grundfunktionen gegeben sind. Ich verwende zum Beispiel das HomeMatic Thermostat HM-CC-RT-DN. Dort funktioniert die Temperatureinstellung und Anzeige, jedoch die Betriebsart (Auto/Manu) nicht. Und beim Fensterkontakt HM-SEC-RHS wird nur zwischen offen und geschlossen unterschieden, obwohl es ja auch gekippt gibt.

Philipp
Gast
Philipp

Hallo

Kann es sein, dass nur ein iOS Benutzer bzw. eine Apple ID die homebridge nutzen kann?
Ich habe alles eingerichtet und es funktioniert auf meinem iPhone auch wunderbar. Mein Bruder kann die Geräte jedoch nur sehen, wenn ich ihn einlade oder wenn ich das ganze Haus lösche.
Ist das einfach so, oder gibt es dafür eine Lösung?

Danke und Gruß

Philipp

Sebastian
Gast

Es tatsächlich so, dass nur einer die Geräte verwalten kann. Das ist dann quasi der Administrator. Man kann dann weitere Personen (weitere Apple-IDs) einladen und auch festlegen, welche Berechtigungen die haben. Viel gibt es da jedoch nicht zur Auswahl.
Verändern kann in jedem Fall nur der „Admin“, auch was die Zuordnung der Geräte zu Räumen betrifft, Siri-Namen der Geräte, usw.

Patrick
Gast
Patrick
Hallo. Nachdem ich viel mit Pilight rumprobiert habe und absolut nicht zufrieden war, habe ich mich mit deiner Anleitung endlich an FHEM gewagt. Deine Anleitung ist echt spitze und mit die beste, die ich gefunden habe. Auch, dass du so rege auf die Kommentare antwortet, finde ich super. Bei mir funktioniert auch alles: 3 Funksteckdosen aus FHEM werden über Homebridge in der Home App angezeigt und können toll gesteuert werden. Nur leider funktioniert das ganze nicht mit dem Autostart (was mir am wichtigsten wäre). Wenn ich den Raspberry Pi neu hochfahre, findet die Home App die FHEM-Geräte nicht mehr. Homebridge… weiterlesen »
Marcel
Gast
Marcel

Guten Abend!

Auch von mir erstmal ein großes Lob für die zahlreichen tollen Anleitungen.

Leider startet das Homebridge Plugin nicht richtig.

Er bleibt immer bei: „Server listening on: http://<ip&gt;:8282″ hängen.

Hat jemand eine Idee woran es liegen könnte? Ich bin ganz genau nach der Anleitung vorgegangen.

Gruß Marcel

 

Manfred
Gast
Manfred

Gleiches Problem hier bei mir, zunächst. Welche Version von node und nodejs ist denn bei dir aktiv?

Die manuelle Installation hat bei mir nicht funktioniert. „node -v“ lieferte irgendetwas mit 0. …

Nach „apt-get install node“ und „apt-get update&upgrade“:

bananapi:~# node -v
v6.9.2
bananapi:~# which node
/usr/local/bin/node
bananapi:~# nodejs -v
v0.12.18
bananapi:~# which nodejs
/usr/bin/nodejs

Und nachdem ich die Zeile <„ssl“: true> aus der config.json gelöscht habe und das Kennwort im Klartext (leider) hier eingetragen habe, läuft die „homebridge“.

Holger
Gast
Holger

Hallo Daniel,

ich bin in Sachen Linux unerfahren und kann mir folgender Fehlermeldung nichts richtiges anfangen:

gyp WARN EACCES user „root“ does not have permission to access the dev dir „/root/.node-gyp/4.3.1“

gyp WARN EACCES attempting to reinstall using temporary dev dir „/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/mdns/.node-gyp“

make: Entering directory ‚/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/mdns/build‘

die Meldung kommt beim Punkt „herunterladen und installieren“ zum Schluss kommt dann noch folgende Meldung:

^Cdns_sd_bindings.target.mk:142: recipe for target ‚Release/obj.target/dns_sd_bindings/src/socket_watcher.o‘ failed

make: *** [Release/obj.target/dns_sd_bindings/src/socket_watcher.o] Interrupt

nach vielen Versuchen schreibe ich Dir in großer Verzweiflung 😉

lg Holger

resyncer
Gast
resyncer

Hallo Holger,

prüfe mal die gcc Version mit „gcc -v“.

Bei mir war es heute erforderlich gcc 4.8 zu installieren. Ich glaube das war bei mir im selben Zusammenhang mit Deiner Fehlermeldung, die ich auch hatte.

Eine funktionierende Anleitung findest Du unter
https://somewideopenspace.wordpress.com/2014/02/28/gcc-4-8-on-raspberry-pi-wheezy/

Gruß resyncer
 

Klaus
Gast
Klaus

Hallo zusammen,

Ich habe eine laufende Homebridge auf meinem RaspberryPi 2.
zusätzlich habe ich jetzt FHEM auf dem selben Raspberry installiert und möchte gerne meine FHEM Geräte in der HomeApp anzeigen. Nach Installation von homebridge-fhem plugin startet die Homebridge neu aber von FHEM wird mir nichts angezeigt. Beim starten der Homebridge sieht man nichts davon, das die FHEM initialisiert wird. Vielleicht hat jemand eine Idee? FHEM Benutzer,Passwort und Room Einträge in der config.json habe ich schon geprüft und sind korrekt. Einzig ist die Sache mit SSL, die true.
Vielen Dank schon mal Gruß Klaus

wpDiscuz