So verbinden Sie jedes Smart Device mit HomeKit (mit einem Raspberry Pi)

Veröffentlicht: 2022-01-29
Raspberry Pi mit Homekit-Logo
Raspberry Pi Foundation, Apple

Viele intelligente Geräte überspringen den Apple HomeKit-Support und lassen sich nur mit Alexa, Google und anderen Plattformen integrieren. Mit diesem Raspberry Pi-Hack können Sie jedoch jedem Smart-Gerät mit der Open-Source-Homebridge-Software HomeKit-Unterstützung hinzufügen.

HomeKit für jedes Smart Device

Wenn Sie auf HomeKit setzen, besteht ein großes Problem darin, wie wenige intelligente Geräte es unterstützen. Das einzige, was einige preiswerte intelligente Glühbirnen zurückhält, ist zum Beispiel ihr Mangel an HomeKit-Unterstützung. Amazon's Choice für eine „intelligente Glühbirne“ ist ein Viererpack von TECKIN, das zum jetzigen Zeitpunkt rund 40 US-Dollar kostet – weniger als eine einzelne LIFX-Glühbirne.

Tuya Smart Lights

Sicher, sie sind nicht so hochwertig wie LIFX; Die Farben sind nicht so lebendig und geben im Badezimmer ein hörbares Summen ab, aber für 10 US-Dollar pro Stück sind sie ein ziemlich unschlagbarer Wert.

Das Hauptproblem ist jedoch, dass sie keine HomeKit-Unterstützung haben. Sie sind nicht ganz dumm – sie funktionieren mit Google Home, Alexa, IFTTT und der App des Herstellers. Sie sind in Ordnung für jemanden, der nur intelligente TECKIN-Glühbirnen hat.

Da Sie jedoch nicht über HomeKit darauf zugreifen können, können Sie sie nicht über die Home-App, das Widget im Kontrollzentrum oder Siri steuern. Sie können sie auch nicht in Szenen mit Glühbirnen anderer Marken einbinden oder in Automatisierungen verwenden. Wenn Sie bereits in HomeKit investiert haben, ist dies höchstwahrscheinlich ein Dealbreaker.

Lernen Sie Homebridge kennen

Glücklicherweise gibt es einen Hack, der diese speziellen Glühbirnen viel nützlicher macht. Die HomeKit-API ermöglicht es Geräten, die Bridges genannt werden, wie dieses von Philips Hue, untergeordnete Geräte zu verbinden, die mit anderen Protokollen arbeiten. Sie fügen die Bridge einfach als Gerät in HomeKit hinzu und sie registriert jedes daran angeschlossene Licht in HomeKit. Immer wenn Sie die Aktualisierung einer Leuchte anfordern, kommuniziert Ihr Telefon mit der Bridge und die Bridge mit der Leuchte.

Anzeige

Eine Brücke leitet also nur Informationen von einer API zu einer anderen weiter. Da Sie die TECKIN-Glühbirnen über das Internet steuern können, ist es durchaus möglich, sie nur mit Software mit HomeKit zu verbinden – es ist keine proprietäre Hardware erforderlich.

Wenn Sie einen Raspberry Pi herumliegen haben (ein $ 5 Pi Zero ist in Ordnung), können Sie ihn mit einem Framework namens Homebridge als Brücke einrichten. Diese leichtgewichtige NodeJS-Anwendung emuliert die HomeKit-API und leitet Anfragen an Ihre Nicht-HomeKit-Smart-Geräte weiter.

Grundsätzlich führen Sie es auf dem Pi aus und es fügt jedes "dumme" Gerät zur Home-App hinzu. Wenn Sie versuchen, die Glühbirne über die Home-App oder Siri zu steuern, kommuniziert Homebridge für Sie mit den Geräten. Nachdem Sie es eingerichtet haben, ist es so, als hätte das Gerät überhaupt HomeKit-Unterstützung.

Dies erfordert, dass auf dem Gerät jederzeit Homebridge ausgeführt wird, also würden Sie dies nicht auf Ihrem Laptop installieren. Ein Raspberry Pi ist ideal, aber wenn Sie ein altes Gerät haben, das Sie als Server oder Desktop verwenden können, der immer läuft, können Sie es dort installieren.

Homebridge ist ein Framework, das Sie mit Plug-Ins erweitern können. Es hat eine ziemlich große Community-Unterstützung, daher besteht eine gute Chance, dass jedes Smart-Gerät wahrscheinlich über ein Homebridge-Plug-in verfügt, um es zu unterstützen. Wenn Ihr Gerät kein Plug-In hat, Ihr Smart-Gerät aber über eine API verfügt und Sie technisch versiert sind, können Sie selbst eines schreiben.

Anzeige

Für die meisten Leute besteht das Setup jedoch nur aus der Installation von Homebridge und dem Marken-Plug-In für das Gerät, zusammen mit ein wenig Konfiguration. Wenn Sie die Befehlszeile verwenden können und ein wenig Zeit haben, ist es ziemlich einfach.

Homebridge installieren und konfigurieren

Homebridge ist eine NodeJS-App, daher müssen Sie node und npm installieren, um sie zu verwenden. Wenn auf Ihrem Computer Linux ausgeführt wird, können Sie es wahrscheinlich von Ihrem Paketmanager erhalten.

Unter Ubuntu müssen Sie Folgendes eingeben, um das Node-Repo manuell einzurichten, und dann nodejs installieren:

 curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

Andernfalls können Sie die Download-Seite von Node konsultieren, um Informationen zur Installation für Ihr spezielles Betriebssystem zu erhalten.

Wenn Sie Linux verwenden, müssen Sie auch einige Abhängigkeiten installieren, wie unten gezeigt:

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

Danach können Sie Homebridge global über npm installieren, wie unten gezeigt:

 sudo npm install -g --unsafe-perm homebridge
Anzeige

Sie möchten auch die benötigten Marken-Plug-Ins installieren, da Homebridge nur ein Framework ist. Für die TECKIN-Glühbirnen ist das Plug-in beispielsweise homebridge-tuya-web , das sich auch global installiert.

Sie würden Folgendes eingeben:

 npm i homebridge-tuya-web -g

Nachdem alles installiert ist, können Sie das Ding tatsächlich verwenden! Geben Sie Folgendes ein, um Homebridge einmal auszuführen und alles zu initialisieren:

 Heimatbrücke

Es wird sich über eine fehlende Konfiguration beschweren, die Sie erstellen müssen. Das Standardverzeichnis ist ~/.homebridge/ , aber Sie können den Parameter -U verwenden, wenn Sie es verschieben möchten.

Geben Sie Folgendes ein, um eine neue JSON-Konfigurationsdatei in diesem Ordner zu erstellen:

 nano ~/.homebridge/config.json

Unabhängig davon, welche Plugins Sie verwenden, benötigen Sie folgende Grundkonfiguration:

 {
  "Brücke": {
    "name": "Homebridge",
    "Benutzername": "CC:22:3D:E3:CE:30",
    "Hafen": 51826,
    "Stift": "031-45-154"
  },

  "description": "Benutzerdefinierter HomeBridge-Server",

  "Häfen": {
    "Start": 52100,
    "Ende": 52150,
  },

  "Plattformen": [

  ]
}

Dadurch wird Homebridge mit einem Standard-Port, -Namen, -PIN und -Portbereich konfiguriert, der anderen Geräten zugewiesen werden kann.

Anzeige

Innerhalb des leeren platforms platzieren Sie die Konfiguration für jedes Plug-in. Anleitungen und Beispiele hierfür sollten Sie auf der GitHub-Seite jedes Plug-ins finden.

Im folgenden Beispiel möchte das homebridge-tuya-web Plug-in für die TECKIN-Glühbirnen meinen Benutzernamen und mein Passwort wissen, um sich mit der API für die App der Glühbirne zu verbinden, und einige andere Dinge:

 "Plattformen": [
     {
       "Plattform": "TuyaWebPlatform",
       "name": "TuyaWebPlattform",
       "Optionen":
         {
           "Benutzername": "Benutzername",
           "Passwort": "Passwort",
           "Ländercode": "1",
           "Plattform": "smart_life",
           "pollingInterval": 10
         }
     }
   ]

Sobald das alles konfiguriert ist, sollte Homebridge einsatzbereit sein. Führen Sie es erneut aus, und Ihr Terminal sollte einen riesigen QR-Code anzeigen, der Sie möglicherweise dazu zwingt, herauszuzoomen. Scannen Sie diese mit der Home-App, um sie und alle verbundenen Geräte zu HomeKit hinzuzufügen.

QR-Code im Terminal

Homebridge lädt Ihre Plug-Ins und sollte für jedes gefundene Gerät eine Meldung auf dem Bildschirm protokollieren. Sie sollten sie alle in HomeKit sehen, nachdem sie hinzugefügt wurden, und sie sollten voll funktionsfähig sein.

Ich habe eine leichte Verzögerung im Vergleich zu meinen LIFX-Glühbirnen bemerkt. Dies liegt wahrscheinlich daran, dass die Glühbirnen eher über eine API als direkt gesteuert werden. Anfangs zeigten die Glühbirnen auch einige Weiß- und Warmweißtöne nicht richtig an, aber nach ein wenig Feintuning konnte ich richtige Szenen einrichten.

Sie können die Geräte jederzeit in ihren eigenen Apps konfigurieren, auf die Aktualisierung der Home-App warten und dann die Szene in HomeKit mit der vorgefertigten Konfiguration einstellen.

Anzeige

Wenn Sie Homebridge erneut hinzufügen müssen, sollten Sie den Ordner persist/ im config-Verzeichnis löschen und dann die Bridge von HomeKit aus den Einstellungen jeder angeschlossenen Glühbirne auf der Registerkarte „Bridge“ entfernen.

Hinzufügen von Homebridge als Dienst

Wenn Sie möchten, dass Homebridge die ganze Zeit läuft, sollten Sie es wahrscheinlich so konfigurieren, dass es neu gestartet wird, wenn es abstürzt oder wenn Ihr Raspberry Pi neu startet. Sie können dies über einen Unix-Dienst tun. Richten Sie dies ein, nachdem Sie überprüft haben, dass Homebridge wie vorgesehen funktioniert.

Fügen Sie zuerst einen neuen Dienstbenutzer namens homebridge :

 sudo useradd -M --system homebridge

Legen Sie ein Passwort fest:

 sudo passwd homebridge

Als nächstes müssen Sie die homebridge Konfiguration aus Ihrem persönlichen Home-Verzeichnis verschieben. /var/lib/homebridge/ sollte in Ordnung sein:

 sudo mv ~/.homebridge /var/lib/homebridge/

Stellen Sie sicher, dass die Person, die homebridge verwendet, Eigentümer dieses Verzeichnisses und aller Unterordner ist:

 sudo chown -R homebridge /var/lib/homebridge/

Sobald dies erledigt ist, können Sie den Dienst erstellen. Erstellen Sie dazu eine neue Datei namens homebridge.service in /etc/systemd/system/ :

 sudo nano /etc/systemd/system/homebridge.service

Und fügen Sie dann die folgende Konfiguration ein:

 [Einheit]
Description=Homebridge-Dienst
After=syslog.target network-online.target

[Service]
Typ=einfach
Benutzer=Homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
Neustart=bei Fehler
RestartSec=10
KillMode=Prozess


[Installieren]
WantedBy=multi-user.target

Laden Sie den Services-Daemon neu, um ihn mit Ihren Änderungen zu aktualisieren:

 sudo systemctl daemon-reload
Anzeige

Jetzt sollten Sie in der Lage sein, Ihren Dienst zu aktivieren (so einzustellen, dass er beim Booten ausgeführt wird):

 sudo systemctl homebridge aktivieren

Und starten Sie es:

 sudo systemctl homebridge starten

Wenn Sie Fehler beheben müssen, die sich aus der Dienstkonfiguration ergeben, können Sie die Protokolle für den Dienst anzeigen, indem Sie Folgendes eingeben:

 journalctl -fn 50 -u homebridge