Homebridge, Siri und das Terminal: Homekit-Server selbst gebaut
ifun.de Leser Dirk hat sich genauer mit der quelloffenen Homebridge-Lösung beschäftigt, die sowohl auf dem Mac als auch auf einem Windows-Rechner oder einem Raspberry Pi installiert werden kann und anschließend in der Lage ist, eure Geräte Homekit-kompatibel zu verwalten. Ein Bastel-Projekt, das euch unter anderem dazu befähigt, die eigenen HUE-Lampen auch dann mit Siris Hilfe zu steuern, wenn ihr noch nicht in die neue HUE-Bridge investiert habt.
Doch nicht nur HUE-Lampen lassen sich so in Apples Homekit-Konzept einbinden, der freie Homebridgeversteht sich auch auf zahlreiche andere Devices, die über eine Netzwerkschnittstelle verfügen.
Um euch den Einstieg zu erleichtern, hat Dirk den groben Ablauf (Node installieren, Homebridge installieren, Homebridge konfigurieren und Homekit-Setup konfigurieren) im Anschluss notiert und motiviert euch so vielleicht ein etwas umfangreicheres Wochenendprojekt in Angriff zu nehmen. Wir sagen Dank und wünschen euch viel Erfolg.
Node.js installieren
Das Installationspaket kann auf nodejs.org aus dem Netz geladen werden.
Homebridge und Hue-Plugin im Terminal installieren
Während der Terminal-Installation der Node-Pakete Homebridge und Homebridge-Philips darauf achten, dass nicht die Entwickler-Versionen, sondern die normalen Pakete ausgewählt werden. Eventuell werden hierbei Xcode-Komponenten nachinstalliert.
sudo npm install -g homebridge
sudo npm install -g homebridge-philipshue
Homebridge starten
homebridge
Es erscheint folgende Fehlermeldung:
Couldn’t find a config.json file at ‚/Users/username/.homebridge/config.json‘. Look at config-sample.son for examples of how to format your config.js and add your home accessories.
Config-Datei anlegen
Die fehlende config.json-Datei mit folgendem Inhalt (und einem geeigneten Editor wie etwa Textmate) erstellen und in das angegebene Verzeichnis packen.
Hierfür eventuell zunächst in das Terminal abtauchen, um versteckte Ordner sichtbar zu machen:
defaults write com.apple.finder AppleShowAllFiles true
killall Finder
Homebridge erneut starten
homebridge
Es erscheint wieder eine Fehlermeldung, da in der Config-Datei noch die Angaben der Hue fehlen:
Save the Philips Hue bridge ip address ##.##.##.## to your config to skip discovery.
/usr/local/lib/node_modules/homebridge-philipshue/node_modules/node-hue-api/node_modules/q/q.js:126
throw e;
^
Please press the link button on your Philips Hue bridge, then start the HomeBridge server within 30 seconds.
Einfach den Anweisungen folgen und die Werte in der Config-Datei ergänzen. Danach jeweils neu starten. Am Ende sollte der Hue-Abschnitt in etwa so aussehen:
Homebridge final starten
homebridge
Folgende Ausgabe erscheint im Terminal:
Homebridge mit dem iPhone Verbinden
Hierfür am besten die Eve-App verwenden und den Anweisungen folgen. Weitere Infos dazu lassen sich hier einsehen.
Zwar werden die Szenen aus der Hue-App (sofern keine Homekit-fähige Hue-Bridge vorhanden ist) nicht automatisch übernommen, aber man kann in der App seine eigenen Szenen definieren. Ich habe zudem festgestellt, dass die Hue-App mit neuer Bridge nicht ganz fehlerfrei läuft.
So werden etwa die Szenen synchronisiert, aber nicht, wenn man diese löscht und nicht zuvor aus den Siri-Einstellungen entfernt hat. Diese bleiben wohl auf ewig im HomeKit. Daher lieber diese App für die Administration verwenden.
Eventuell die Anzeige versteckter Dateien wieder rückgängig machen
defaults write com.apple.finder AppleShowAllFiles false
killall Finder
Fertig!
Jetzt sollten Siri-Befehle wie „Mach die Lampen aus [dunkler, heller]“ oder „Aktiviere [Szene]“ funktionieren:
Für Entwickler
Wer will, kann auch seine eigenen Plugins schreiben. Hierfür empfiehlt es sich, die Bridge nicht global (ohne -g) zu installieren:
npm install homebridge
npm install homebridge-philipshue
Anschließend das Verzeichnis „nodes_modules“ (aus dem eigenen Home-Verzeichnis) in einem Editor öffnen. Hier am Beispiel von Microsoft Code, was auch ähnlich unter Windows aussehen sollte. Darin die config.json-Datei direkt im Root erstellen:
Zum Starten eine launch.json Datei mit dem Zahnrad erstellen:
und die Parameter für „Program“ und „args“ so anpassen, dass die Bridge gestartet wird und die richtige config.json-Datei lädt:
"program": ".bin/homebridge",
"args": ["--user-storage-path=./"],
Die Homebridge mit F5 oder dem Pfeil starten:
Fertig!
Wer sich ein wenig mit Javascript auskennt, kann seine eigenen Plugins schreiben. Ich habe mir z.B. eines für meinen Fernseher (Toshiba) geschrieben, welcher via http-Requests gesteuert werden kann. Diese kann man beispielsweise mit der entsprechenden iPhone-App (falls es eine solche für den Fernseher gibt) und der Proxy-App Charles herausfinden.
Anschließend muss man diese dann in das Script integrieren. Theoretisch könnte man alles ansteuern, was via Bluetooth, http, ssh, Applescript usw. erreichbar ist.
Einfach mal in die entsprechenden Beispiele schauen, wie so etwas geht: Hier gibt’s auch schon fertige Anbindungen für diverse Geräte:
Und so sieht das dann im Terminal aus:
Viel Spaß!