Viele intelligente Geräte ignorieren die Unterstützung für Apple HomeKit und lassen sich oft nur in Plattformen wie Alexa oder Google integrieren. Mit einem Raspberry Pi und der Open-Source-Software Homebridge kann man jedoch fast jedem intelligenten Gerät die HomeKit-Unterstützung hinzufügen.
HomeKit-Integration für jedes Smart-Gerät
Ein häufiges Problem bei der Nutzung von HomeKit ist die begrenzte Anzahl von kompatiblen Geräten. Beispielsweise scheitert die Integration einiger günstiger Smart-Glühbirnen lediglich an der fehlenden HomeKit-Unterstützung. Ein Viererpack der Marke TECKIN, eine beliebte Wahl auf Amazon, ist oft für rund 40 Dollar erhältlich und damit günstiger als eine einzelne Glühbirne von LIFX.
Diese Glühbirnen sind zwar qualitativ nicht so hochwertig wie LIFX-Produkte, mit weniger lebendigen Farben und einem hörbaren Betriebsgeräusch, aber das Preis-Leistungs-Verhältnis mit etwa 10 Dollar pro Stück ist schwer zu übertreffen.
Das Hauptproblem bleibt die fehlende HomeKit-Kompatibilität. Zwar funktionieren sie mit Google Home, Alexa, IFTTT und der Hersteller-App, was für Nutzer mit ausschließlich TECKIN-Geräten in Ordnung sein mag.
Die fehlende HomeKit-Integration verhindert jedoch die Steuerung über die Home-App, das Kontrollzentrum-Widget oder Siri. Ebenso ist eine Einbindung in Szenen mit anderen Marken oder Automatisierungen nicht möglich. Für Nutzer, die bereits stark in das HomeKit-Ökosystem investiert haben, ist dies oft ein Ausschlusskriterium.
Einführung in Homebridge
Zum Glück gibt es einen Trick, der diese Glühbirnen deutlich nützlicher macht. Die HomeKit-API erlaubt sogenannte Bridges, ähnlich wie die von Philips Hue, um untergeordnete Geräte zu verbinden, die mit anderen Protokollen arbeiten. Man fügt die Bridge einfach als Gerät in HomeKit hinzu, und sie registriert alle angeschlossenen Lichter in HomeKit. Bei Aktualisierungsanfragen kommuniziert das Smartphone mit der Bridge, und die Bridge wiederum mit dem Licht.
Eine Bridge dient also im Grunde nur dazu, Informationen zwischen verschiedenen APIs zu vermitteln. Da die TECKIN-Glühbirnen über das Internet steuerbar sind, ist es durchaus möglich, sie rein softwareseitig mit HomeKit zu verbinden, ohne dass zusätzliche Hardware erforderlich ist.
Wenn man einen Raspberry Pi zur Hand hat (ein 5-Dollar-Pi Zero reicht aus), kann man ihn als Bridge mit dem Framework Homebridge konfigurieren. Diese leichtgewichtige NodeJS-Anwendung emuliert die HomeKit-API und leitet Anfragen an nicht-HomeKit-fähige Smart-Geräte weiter.
Im Wesentlichen wird Homebridge auf dem Pi ausgeführt und fügt alle ‚dummen‘ Geräte zur Home-App hinzu. Wenn man versucht, die Glühbirne über die Home-App oder Siri zu steuern, kommuniziert Homebridge mit den Geräten. Nach der Einrichtung wirkt es so, als ob die Geräte von vornherein HomeKit-fähig wären.
Da Homebridge kontinuierlich laufen muss, ist eine Installation auf einem Laptop nicht empfehlenswert. Ein Raspberry Pi eignet sich ideal, aber auch ein alter Server oder Desktop-Computer, der ständig in Betrieb ist, kann verwendet werden.
Homebridge ist ein Framework, das durch Plugins erweiterbar ist. Es gibt eine große Community-Unterstützung, sodass es wahrscheinlich für fast jedes Smart-Gerät ein Plugin gibt, um Unterstützung hinzuzufügen. Falls kein Plugin existiert, man aber über eine API verfügt und technisch versiert ist, kann man selbst ein Plugin entwickeln.
Für die meisten Nutzer umfasst die Einrichtung die Installation von Homebridge und dem Plugin des jeweiligen Herstellers, zusammen mit einer einfachen Konfiguration. Mit etwas Befehlszeilenkenntnissen und Zeit ist die Einrichtung relativ einfach.
Installation und Konfiguration von Homebridge
Homebridge ist eine NodeJS-App, daher müssen Node und npm installiert werden. Unter Linux können diese in der Regel über den Paketmanager installiert werden.
Unter Ubuntu sind die folgenden Befehle notwendig, um das Node-Repository manuell einzurichten und Nodejs zu installieren:
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
Weitere Informationen zur Installation auf anderen Betriebssystemen findet man auf der Download-Seite von Node.
Unter Linux müssen zusätzlich einige Abhängigkeiten installiert werden:
sudo apt-get install libavahi-compat-libdnssd-dev
Anschließend kann Homebridge global über npm installiert werden:
sudo npm install -g --unsafe-perm homebridge
Da Homebridge nur ein Framework ist, müssen auch die benötigten Hersteller-Plugins installiert werden. Für die TECKIN-Lampen ist das Plugin beispielsweise homebridge-tuya-web, das ebenfalls global installiert wird.
Der zugehörige Befehl lautet:
npm i homebridge-tuya-web -g
Nachdem alles installiert ist, kann Homebridge das erste Mal mit folgendem Befehl ausgeführt werden:
homebridge
Es wird sich über eine fehlende Konfigurationsdatei beschweren, die erstellt werden muss. Das Standardverzeichnis ist ~/.homebridge/, bei Bedarf kann aber auch der Parameter -U genutzt werden, um ein anderes Verzeichnis zu wählen.
Um eine neue JSON-Konfigurationsdatei in diesem Ordner zu erstellen, verwendet man:
nano ~/.homebridge/config.json
Unabhängig von den verwendeten Plugins ist die folgende Grundkonfiguration notwendig:
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "Benutzerdefinierter HomeBridge-Server", "ports": { "start": 52100, "end": 52150 }, "platforms": [ ] }
Dies konfiguriert Homebridge mit einem Standardport, Namen, PIN und Portbereich für andere Geräte.
Innerhalb des leeren Plattform-Arrays wird die Konfiguration für jedes Plugin platziert. Anweisungen und Beispiele dazu sollten auf der GitHub-Seite des jeweiligen Plugins zu finden sein.
Im Beispiel für das Plugin homebridge-tuya-web für TECKIN-Glühbirnen benötigt man den Benutzernamen und das Passwort für die API der Glühbirnen-App, sowie einige weitere Einstellungen:
"platforms": [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "options": { "username": "Benutzername", "password": "Passwort", "countryCode": "1", "platform": "smart_life", "pollingInterval": 10 } } ]
Nachdem dies alles konfiguriert ist, sollte Homebridge einsatzbereit sein. Beim erneuten Ausführen sollte ein QR-Code im Terminal erscheinen. Dieser kann mit der Home-App eingescannt werden, um die Bridge und alle verbundenen Geräte zu HomeKit hinzuzufügen.
Homebridge lädt die Plugins und sollte für jedes gefundene Gerät eine Nachricht auf dem Bildschirm ausgeben. Alle Geräte sollten nach der Integration in HomeKit sichtbar sein und voll funktionsfähig sein.
Im Vergleich zu meinen LIFX-Lampen habe ich eine leichte Verzögerung festgestellt. Dies liegt wahrscheinlich daran, dass die Glühbirnen nicht direkt über eine API gesteuert werden. Anfangs wurden einige Weißtöne nicht korrekt angezeigt, aber nach etwas Feintuning konnte ich die richtigen Szenen einrichten.
Man kann die Geräte in ihren jeweiligen Apps konfigurieren, die Aktualisierung in der Home-App abwarten und dann die Szenen in HomeKit mit der voreingestellten Konfiguration festlegen.
Sollte Homebridge neu hinzugefügt werden, muss der Ordner persist/ im Konfigurationsverzeichnis gelöscht und die Bridge in HomeKit über die Einstellungen jeder Glühbirne auf dem Reiter ‚Bridge‘ entfernt werden.
Homebridge als Dienst hinzufügen
Für einen dauerhaften Betrieb von Homebridge sollte diese so eingerichtet werden, dass sie nach einem Absturz oder Neustart des Raspberry Pi automatisch neu startet. Dies kann über einen Unix-Dienst erreicht werden. Die Einrichtung sollte nach der Verifizierung des korrekten Betriebs von Homebridge erfolgen.
Zuerst muss ein neuer Dienstbenutzer namens homebridge erstellt werden:
sudo useradd -M --system homebridge
Anschließend wird ein Passwort festgelegt:
sudo passwd homebridge
Danach muss die Homebridge-Konfiguration außerhalb des persönlichen Home-Verzeichnisses verschoben werden. /var/lib/homebridge/ ist ein geeignetes Verzeichnis:
sudo mv ~/.homebridge /var/lib/homebridge/
Es muss sichergestellt werden, dass der Homebridge-Nutzer Eigentümer des Verzeichnisses und aller Unterverzeichnisse ist:
sudo chown -R homebridge /var/lib/homebridge/
Nun kann der Dienst erstellt werden. Hierzu wird eine neue Datei namens homebridge.service in /etc/systemd/system/ angelegt:
sudo nano /etc/systemd/system/homebridge.service
Und mit folgender Konfiguration befüllt:
[Unit] Description=Homebridge service After=syslog.target network-online.target [Service] Type=simple User=homebridge ExecStart=/usr/bin/homebridge -U /var/lib/homebridge Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Der Dienst-Daemon muss neu geladen werden, um die Änderungen zu übernehmen:
sudo systemctl daemon-reload
Nun kann der Dienst aktiviert werden (Start beim Booten):
sudo systemctl enable homebridge
Und gestartet werden:
sudo systemctl start homebridge
Sollten Fehler auftreten, kann man die Protokolle des Dienstes mit folgendem Befehl einsehen:
journalctl -fn 50 -u homebridge