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/homebridge
und 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.
Hallo Timo,
ich bin seit ein paar Tagen dabei mir einen Pi4B zur Nutzung mit Homebridge über die Philips Hue Bridge einzurichten.
Raspian aufsetzen, SSH einrichten, Homebridge installieren soweit so gut. Jetzt bin ich an dem Punkt angekommen, dass die Homebridge eingerichtet ist („automatisiert“ über die iPhoneApp Homebridge lief es vorerst nicht, sodass ich dann nochmal manuell zu Werk gehen musste und deine Anleitung verwendet habe).
Nun konnte ich die Homebridge erst nicht in HomeKit finden, geholfen hat evtl. das Löschen von Accessories und Persist. Dann sagte HomeKit aber, der Code sei nicht korrekt, Abhilfe schaffte der Debugging-Mode (Fehlerbehebung) in der Homebridge iPhoneAPP… die Homebridge ließ sich hinzufügen und alle nicht HomeKit fähigen Geräte werden in der Home-App angezeigt.
ABER: nun ist es so, dass alle nicht HomeKit fähigen Geräte als „keine Antwort“ angezeigt werden. Es sei denn ich starte wieder den Debug-Mode, dann funktioniert alles prima, sobald dieser beendet wird -> „keine Antwort“
Aus dem Log des Debugs kann ich keine Fehler herauslesen.
Ich sollte dazu sagen, dass ich kein richtiger Nerd auf dem Gebiet bin, „programmieren gelernt“ habe ich minimal in den 90ern in der Schule, davon kann ich aber heute nichts mehr anwenden.
Viele Grüße
Björn
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?
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
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
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?
Hallo,
ich bekomme nach Eingabe diesen Befehls: [email protected]:~ $ 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 🙁
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)
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
Habe herrausgefunden, dass „apt-get autoremove“ g++ deinstalliert. deswegen ist es wahrscheinlich nicht vorhanden.
[email protected]:/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?
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:
Und anschließend
Guten Morgen! Dank für den umfassenden Artikel.Ich mag Deine Webseite!
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
Danke für die Anleitung. Das mit dem „Autostart“ würde mich auch interessieren. Ist nicht systemd inzwischen besser? https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi#running-homebridge-on-bootup-systemd
Und wie kann ich die Einrichtung von init.d Rückgängig machen, falls ich mich nun für systemd entscheiden sollte?
Vorab danke für die Unterstützung.
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:
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:
Und installiere es anschließend erneut mit:
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:
Auch mit der Deinstallation und der neuen Installation ist meine Version immer noch 0.12.6
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?
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
. Ansonsten kannst du auch gerne die Fehlermeldung in den Kommentar schreiben.
Hallo bekomme wenn ich die Homebridge starte diese Fehlermeldung und finde die Homebridge auch nicht in der Homeapp .Bitte um Hilfe
Es sieht so aus, als würde Homebridge bereits irgendwo laufen. Am besten mal den Raspberry Pi komplett neu starten und dann erneut probieren.
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
die Datei einfach zu erstellen und darin dann die Konfiguration einzuspeichern.