In dem folgendem Artikel bzw. dem angefügten Video zeige ich euch, wie ihr „Homebridge“ auf einem Raspberry Pi installiert und dadurch eine Vielzahl von Geräten mit Siri auf seinem iOS-Gerät steuern könnt.

Was ist eigentlich Homebridge und HomeKit?

Homebridge ist ein NodeJS Server, der in diesem Fall auf einem Raspberry Pi läuft und die HomeKit API von iOS emuliert. HomeKit ist dabei eine Smart-Home Schnittstelle, durch die offiziell von Apple unterstützte Hardware wie Philips Hue oder Elgato Eve direkt vom iPhone aus mit Siri ferngesteuert werden kann.

Warum Homebridge?

Der Grund für die Verwendung ist ganz einfach. Leider bieten nur sehr wenige, meist hochpreisige Geräte die HomeKit Unterstützung an. Hier kommt nun Homebridge ins Spiel, das eine Vielzahl von Plugins anbieten und offen für Entwickler steht, sodass auch andere Geräte Problemlos in HomeKit eingebunden werden können uns so z.B. ganz einfach per Siri das Garagentor hochgefahren oder der PC/Mac gestartet werden kann.

Wie die Installation nungenau auf dem Raspberry Pi vorgenommen werden kann, zeige ich daher sowohl in dem oben eingebetteten Video und in der folgenden Textanleitung.

Raspberry Pi aktualisieren

Zunächst müsst ihr euch per SSH mit dem Raspberry Pi verbinden und die neuesten Softwarepakete herunterladen. Über folgenden Befehl könnt dies tun:

sudo apt-get update && sudo apt-get -y upgrade

Solltet ihr an dieser Stelle Probleme haben und euch noch nicht gut auskennen, kann ich empfehlen, das oben eingebettete Video als Anleitung anzusehen, da hier alles ausführlich gezeigt wird.

Voraussetzung für die nachfolgenden Schritte ist zusätzlich, dass „gcc“ in Version 4.9.2 oder neuer vorliegen muss. Eine Überprüfung kann mit g++ -4.9 -v durchgeführt werden. Sollte hier eine ältere Version als 4.9.2 stehen, so muss das Update manuell nachinstalliert werden.

NodeJS installieren

Wie bereits zu Beginn des Artikels erwähnt, wird NodeJS dringend benötigt.

Da einige Benutzer Probleme bei der Installation hatten, ist hier nun die aktualisierte Fassung.

sudo apt-get remove nodered nodejs nodejs-legacy npm

Anschließend muss je nach Pi Gerätegeneration anders vorgegangen werden.

Für Raspberry Pi 2 und 3:

curl -sL https://deb.nodesource.com/setup_4.x | sudo bash
sudo apt install nodejs
sudo apt-get install -y build-essential python-dev npm

Für Raspberry Pi 1:

wget http://node-arm.herokuapp.com/node_archive_armhf.deb
sudo dpkg -i node_archive_armhf.deb
sudo apt-get install -y build-essential python-dev npm

Libavahi und git installieren

Libavahi muss ebenfalls installiert werden, sodass Homebridge später im Heimnetzwerk für iOS sichtbar wird. Es kann folgendermaßen installiert werden:

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

Es kann sein, dass während der Installation mehrmals mit Y (für „Yes“) die Installation bestätigt werden muss.

Homebridge installieren

Nachdem nun die Voraussetzungen für die Installation erfüllt sind, kann nun endlich Homebridge installiert werden.

sudo npm install -g homebridge

In einigem Fällen kommen nach der Installation Fehlermeldungen, durch die später Probleme auftreten werden. Gebt dazu zusätzlich nach der Installation folgendes ein:

sudo npm install -g --unsafe-perm homebridge

Homebridge konfigurieren

Nach der Installation muss ebenfalls eine Konfigurationsdatei im Home-Verzeichnis angelegt werden.

Hierfür ist es wichtig, dass ihr bereits ins Homeverzeichnis navigiert seid, ansonsten muss der folgende Befehl ggf. angepasst werden.

sudo nano .homebridge/config.json

Kopiert dazu folgenden Inhalt in die Datei:

Als Name kannst du hier nun einen eigenen Name eingeben. Username, Port und Pin sollten unverändert bleiben. Nur sofern Probleme auftreten sollten oder ihr mehrere Homebridges verwenden möchtet, könnt ihr der Username ändern.

Anschließend kann die Konfiguration mit STRG+O abgespeichert und mit STRG+X geschlossen werden.

Automatischen Start konfigurieren

Momentan ist es so, dass Homebridge nur manuell gestartet werden kann und zum Beispiel nach einem Neustart nicht mehr läuft und wieder manuell gestartet werden muss. Daher müssen wir nun einen automatischen Start konfigurieren.

Hierfür erstellen wir zunächst eine Datei im Verzeichnis /etc/init.d/ mit dem Befehl sudo nano /etc/init.d/homebridgeund fügt folgenden Inhalt in die Datei ein:
Mit STRG+O und STRG+X könnt ihr die Datei dann wieder speichern und schließen.

Bitte beachte, dass hier davon ausgegangen wird, dass der Benutzername des Raspberry Pi pi heißt. Sofern ihr einen anderen Benutzername verwendet, müsst ihr pi entsprechend in der homebridge-Datei durch den eigenen Name ersetzen.

Nachtrag: Damit die Datei nun korrekt für den automatischen Start erkannt wird, müsst ihr noch folgenden Befehl eingeben:

sudo update-rc.d homebridge defaults

Ab sofort wird Homebridge automatisch gestartet und kann bei Bedarf auch per Befehl beendet (stop), gestartet (start) und neugestartet (restart) oder der aktuelle Status (status) erfragt werden

sudo /etc/init.d/homebridge stop|start|restart|status

Schlusswort und wie es weiter geht

Nun habt ihr erfolgreich euer eigenes HomeKit auf dem Raspberry Pi installiert.

In den nächsten Schritten solltet ihr nun am besten Plugins installieren um eure eigenen Geräte mit Siri zu steuern und bei eurem iOS-Gerät das HomeKit hinzufügen. Wie das genau funktioniert, könnt ihr hier sehen.

Kommentieren

166 Kommentare

  • Mike sagt:

    Hallo Timo

    Habe ein Problem mit dem Autostart der Homebridge. Nach Eingabe des Startbefehls (sudo /etc/init.d/homebridge start) kommt folgende Fehlermeldung

    Kein Passworteintrag für Benutzer »CC:22:3D:E3:CE:32«
    Homebridge starting
    Homebridge is not running

    Hast du eine Idee?

  • Chris sagt:

    Hallo Timo,
    ich habe das problem das, das installierte Homebridge-Hie Plugin Probleme macht, da es sagt die node Version wäre nicht aktuell, aber irgendwie doch.
    Beim check mit „node -v“ kommt als Ergebnis v6.10.0 die zu alt ist. Checke ich mit „nodejs -v“ kommt die benötigte „v8.11.3“.
    Was kann ich hier machen um das problem zu beseitigen? Ich stehe gerade auf einem großen Schlauch.

    Vielen Dank
    Chris

  • recovery sagt:

    HI schicke dir mal auch meine fehler meldung weiß nicht ob des die log ist aber wenn ich die homebridge starte stürzt sie nach einiger Zeit ab ist dann nicht mehr ereichbar.

    Error: bind EADDRINUSE 0.0.0.0:5224
    at Object.exports._errnoException (util.js:907:11)
    at exports._exceptionWithHostPort (util.js:930:20)
    at dgram.js:214:18
    at nextTickCallbackWith3Args (node.js:522:9)
    at process._tickCallback (node.js:428:17)
    at Function.Module.runMain (module.js:443:11)
    at startup (node.js:140:18)
    at node.js:1043:3

    • Sebastian sagt:

      Habe nun das Problem gelöst es liegt an dser Harmony hub des plugin geht nicht richtig
      Ne andere Frage kennst dich mit Dem Plugin http-switch aus?

  • Michi sagt:

    Hallo,

    ich bekomme nach Eingabe diesen Befehls: pi@:~ $ sudo /etc/init.d/homebridge start
    folgende Meldung: sudo: /etc/init.d/homebridge: Befehl nicht gefunden

    Leider funktioniert bei mir homebridge nur solange ich das ausführe 🙁

  • Ronald sagt:

    Hallo,

    ich bekomme folgenden Fehler beim starten der Homebridge:

    events.js:141
    throw er; // Unhandled ‚error‘ event
    ^

    Error: listen EADDRINUSE :::51826
    at Object.exports._errnoException (util.js:907:11)
    at exports._exceptionWithHostPort (util.js:930:20)
    at Server._listen2 (net.js:1253:14)
    at listen (net.js:1289:10)
    at Server.listen (net.js:1385:5)
    at EventedHTTPServer.listen (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:60:19)
    at HAPServer.listen (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:158:20)
    at Bridge.Accessory.publish (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:601:16)
    at Server.str.replace.Server._publish (/usr/lib/node_modules/homebridge/lib/server.js:126:16)
    at Server.str.replace.Server.run (/usr/lib/node_modules/homebridge/lib/server.js:96:10)

  • Andre Schuh sagt:

    Hallo Timo,

    erstmal super danke für deine absoluten Top Videos Tutorials.

    Ich habe eine Frage ich hoffe du kannst mir helfen. Es geht um das homebridge plugin yeelight. Ich bekomme dieses installiert aber nicht eingerichtet. Es gibt keine Konfiguration die man kopieren kann. Auf der npm seite steht lediglich:

    Configuration
    Enable developer mode of your Yeelight bulb, Yeelight Strip or Yeelight Ceiling lamp.

    (Habe ich an der Lampe aktiviert)

    Run it
    From source code

    $ cd /path/to/homebridge-yeelight
    $ DEBUG=* homebridge -D -P .
    As homebridge plugin

    $ npm install -g homebridge-yeelight
    $ homebridge

    Kannst du mir da helfen??

    Grüße
    Andre Schuh

  • Lars Klette sagt:

    Habe herrausgefunden, dass „apt-get autoremove“ g++ deinstalliert. deswegen ist es wahrscheinlich nicht vorhanden.

  • hans sagt:

    root@raspberrypi:/home/pi# homebridge
    module.js:339
    throw err;
    ^

    Error: Cannot find module ‚../build/Release/dns_sd_bindings‘
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object. (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:32:22)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

    bei mir funktioniert die Homebridge nicht?

  • Sven sagt:

    Hallo,

    Habe alles Installiert zusammen mit dem Plugin fuer die HomeMatic .
    beim Starten bekomme ich folgen Fehler text

    module.js:339
    throw err;
    ^

    Error: Cannot find module ‚../build/Release/dns_sd_bindings‘
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object. (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:32:22)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

    • Hallo Sven,

      ich verwende leider kein HomeMatic, weshalb ich den Fehler nicht reproduzieren kann.
      Da jedoch die meisten Fehler dieser Art aufgrund einer zu alten NodeJS Version verursacht werden, empfehle ich dir die Neuinstallation einer neueren NodeJS.

      Dies geht mit:

      sudo apt-get remove nodered nodejs nodejs-legacy npm

      Und anschließend

      sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
      sudo apt-get install -y nodejs
  • Prüfung ortsveränderlicher Geräte sagt:

    Guten Morgen! Dank für den umfassenden Artikel.Ich mag Deine Webseite!

  • Paua sagt:

    Hallo Timo,
    habe eine Frage zum Autostart. Funktioniert die Methode mit der init.d auch bei einem Pi3? Hatte irgendwo anders gelesen, dass man dort mit einer anderen Variante den Autostart realisiert..

    Oder kann man mit nem cronjob checken lassen ob die Homebridge aktiv ist und falls nicht starten lassen?

    Gruß
    Paua

  • Schneider Manuel sagt:

    Hallo.
    Ich habe auf meinem Raspberry Homekit mit 3 Plugins installiert.
    Das Fritz Box Plug in funktioniert einwandfrei und wird angezeigt in Apple Homekit.
    Dann habe ich noch ein Plug in für Hue installiert und eines für Tado.
    Es wird kein Fehler ausgegeben, funktioniert aber trotzdem nicht.

    Folgendes wird angezeigt bei Eingabe von Homebridge:

    Loaded plugin: homebridge-fritz
    [3/21/2017, 7:01:36 PM] Registering platform ‚homebridge-fritz.Fritz!Box‘
    [3/21/2017, 7:01:36 PM] —
    [3/21/2017, 7:01:38 PM] Loaded plugin: homebridge-fritzbox
    [3/21/2017, 7:01:38 PM] Registering platform ‚homebridge-fritzbox.FRITZ!Box‘
    [3/21/2017, 7:01:38 PM] —
    [3/21/2017, 7:01:39 PM] Loaded plugin: homebridge-hue
    [3/21/2017, 7:01:39 PM] Registering platform ‚homebridge-hue.Hue‘
    [3/21/2017, 7:01:39 PM] —
    [3/21/2017, 7:01:39 PM] Loaded plugin: homebridge-tado
    [3/21/2017, 7:01:39 PM] Registering accessory ‚homebridge-tado.TADO‘
    [3/21/2017, 7:01:39 PM] —
    [3/21/2017, 7:01:39 PM] Loaded config.json with 1 accessories and 2 platforms.
    [3/21/2017, 7:01:39 PM] —
    [3/21/2017, 7:01:39 PM] Loading 2 platforms…
    [3/21/2017, 7:01:39 PM] [My FritzBox] Initializing Fritz!Box platform…
    [3/21/2017, 7:01:39 PM] [Hue] Initializing Hue platform…
    [3/21/2017, 7:01:39 PM] [Hue] homebridge-hue v0.3.11, node v4.3.2, homebridge api v2.1
    [3/21/2017, 7:01:39 PM] Loading 1 accessories…
    [3/21/2017, 7:01:39 PM] [Tado] Initializing TADO accessory…
    [3/21/2017, 7:01:39 PM] [Hue] Wohnung Coburg: BSB002 bridge, api v1.17.0
    [3/21/2017, 7:01:39 PM] [Hue] Wohnung Coburg: 1 accessories
    [3/21/2017, 7:01:39 PM] [Hue] Initializing platform accessory ‚Wohnung Coburg’…
    [3/21/2017, 7:01:39 PM] [Hue] Wohnung Coburg: 2 services
    [3/21/2017, 7:01:42 PM] [My FritzBox] Fritz!Box platform login successful
    [3/21/2017, 7:01:42 PM] [My FritzBox] Discovering accessories
    [3/21/2017, 7:01:43 PM] [My FritzBox] Outlets found:
    [3/21/2017, 7:01:44 PM] [My FritzBox] Thermostats found:
    [3/21/2017, 7:01:44 PM] [My FritzBox] Sensors found:
    [3/21/2017, 7:01:44 PM] [My FritzBox] Initializing platform accessory ‚Guest WLAN’…
    Scan this code with your HomeKit App on your iOS device to pair with Homebridge:

  • Michael sagt:

    Hallo Timo

    Muss auch auf dem Raspberry Pi 1 noch irgendwas beachten? Ich habe es auf der neuesten Raspian-Ausgabe versucht und erhalte beim Starten der Homebridge diesen Fehler:

    SyntaxError: Unexpected strict mode reserved word
    at exports.runinThisContext……….

    Es scheint mir auf irgendwas mit NodeJS hinzudeuten. Als Installierte Version gibt es mir sowieso irgendwas mit 0.12.xx an.

    Hast du eine Idee?

    Gruss
    Michael

    • Es scheint mir, dass deine NodeJS Version auf dem Raspberry Pi 1 zu alt ist. Deinstalliere dazu zuerst NodeJS:

      sudo apt-get remove nodered nodejs nodejs-legacy npm

      Und installiere es anschließend erneut mit:

      sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
      sudo apt-get install -y nodejs
    • Michael Meienberg sagt:

      Hallo Timo

      Du meintest nochmal die Installation für den Raspberry Pi 1, das von dir angegebene ist für 2/3 und endet so:

      ## You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the ‚linux-armv6l‘ binary tarballs available directly from nodejs.org for Node.js v4 and later.

       

      Auch mit der Deinstallation und der neuen Installation ist meine Version immer noch 0.12.6

  • Ertanius sagt:
    Für Raspberry Pi 2 und 3:
    
    curl -sL https://deb.nodesource.com/setup_4.x | sudo bash

    wofür steht die 4.x?

    wenn ich diesen befehl und direkt danach den nächsten abgebe und warte, bekomme ich als antwort, wenn ich „node -v“ eingebe als ergebnis eine version die mit 0.x.x anfängt. da ist doch irgendwo ein fehler?!

    bin schon verzweifelt.

    habe jetzt eine komplett frisch aufgesetzte karte in der Pi3. also alles neu.

    Muss ich trotzdem diesen befehl machen?

    "Da einige Benutzer Probleme bei der Installation hatten, ist hier nun die aktualisierte Fassung."
    
    sudo apt-get remove nodered nodejs nodejs-legacy npm
    • Entschuldigung, dass ich mich erst jetzt melde, ich habe Deinen Kommentar erst gerade bemerkt.
      4.x Steht für die Version.
      Am besten du gehst genau wie in der Anleitung vor, unabhängig davon, welche Version dir dann angezeigt wird.
      Sofern du dann bei der Installation nicht weiterkommst, weil irgendwelche Fehler auftreten, dann versuche es zunächst mit

      sudo apt-get remove nodered nodejs nodejs-legacy npm

      . Ansonsten kannst du auch gerne die Fehlermeldung in den Kommentar schreiben.

  • Maik sagt:

    Hallo bekomme wenn ich die Homebridge starte diese Fehlermeldung und finde die Homebridge auch nicht in der Homeapp .Bitte um Hilfe

    Error: listen EADDRINUSE :::51826
    at Object.exports._errnoException (util.js:907:11)
    at exports._exceptionWithHostPort (util.js:930:20)
    at Server._listen2 (net.js:1250:14)
    at listen (net.js:1286:10)
    at Server.listen (net.js:1382:5)
    at EventedHTTPServer.listen (/usr/lib/node_modules/homebridge/node_modules/h                                                                                                                               ap-nodejs/lib/util/eventedhttp.js:60:19)
    at HAPServer.listen (/usr/lib/node_modules/homebridge/node_modules/hap-nodej                                                                                                                               s/lib/HAPServer.js:158:20)
    at Bridge.Accessory.publish (/usr/lib/node_modules/homebridge/node_modules/h                                                                                                                               ap-nodejs/lib/Accessory.js:496:16)
    at Server._publish (/usr/lib/node_modules/homebridge/lib/server.js:114:16)
    at Server.run (/usr/lib/node_modules/homebridge/lib/server.js:91:10)
  • Thorsti sagt:

    Hab da auch noch ein Problem bekomme beim starten der Homebridge folgendes angezeigt:
    http://pastebin.com/faXayp50

    aus irgendeinem Grund findet er die config.json nicht schaut wohl immer unter root – den gibt es aber nicht – nutze ausschließlich „pi“.
    Hast Du da ggf. noch n Tip ?

    • Hm das habe ich bisher bereits bei einigen gelesen. In diesem Fall ist es am einfachsten, mit

      sudo nano /root/.homebridge/config.json

      die Datei einfach zu erstellen und darin dann die Konfiguration einzuspeichern.