Smart Home

Anleitung: Home Assistant mit Siri via Homebridge steuern

Dieser Beitrag beschäftigt sich mit der Schritt für Schritt Einrichtung von Homebridge, einem Softwareprojekt, das es ermöglicht, nicht HomeKit zertifizierte Geräte in Apples HomeKit zu integrieren. 

Worum geht es?

Ganz nach dem Motto „Die beste App zum Steuern des Smart Home, ist keine App“ kommt jeder Smart Home Anwender natürlich irgendwann an den Punkt, an dem Sprachsteuerung der eigenen Geräte auf der To Do Liste steht. Home Assistant bringt dazu bereits eine Spracherkennung mit, die aus meinen Augen aber noch eher in den Kinderschuhen steckt. Wer im Apple Universum unterwegs ist, wird viel mehr daran interessiert sein, seine Home Assistant Installation irgendwie mit Apples HomeKit zu verbinden und somit Zugriff auf Siri z.B. via iPhone* zu erhalten.

Hinweis: Mittlerweile bietet Home Assistant eine sehr gute, eigene Integration von Home Kit an, die Homebridge als solches überflüssig macht. Scrolle nach ganz unten, um mehr zu erfahren!

Die Komponenten im Überblick

Home Assistant: Wer hier liest, dürfte bereits wissen, was Home Assistant ist und was es kann (ansonsten einmal hier nachlesen).

HomeKit: Ist Apples Smart Home Umgebung, welche ein Protokoll zur Einbindung von Smart- und IoT-Devices in die Apple iOS und bald auch Mac OS Umgebung erlaubt. HomeKit ist dabei auf eine sehr einfache Einrichtung und Konfiguration fokussiert. Damit ein Gerät mit HomeKit funktioniert, muss es HomeKit unterstützen und entsprechend zertifiziert sein (wie z.B. Osram Smart+ LED Leuchtmittel*). Ist das nicht der Fall, benötigt es eine kreative Lösung – z.B. die Anbindung von eigentlich inkompatiblen Geräten via Home Assistant.

Homebridge: Ein kleiner Server, der ein HomeKit kompatibles Gateway initiiert und somit verschiedenste Informationen an HomeKit übergeben kann. Homebridge bietet die Möglichkeit Plugins zu installieren, dies es zu einer Vielzahl an Smart Home Anwendungen kompatibel machen – darunter auch Home Assistant.

Wie funktioniert das Ganze?

Homebridge baut eine Verbindung zur Home Assistant Instant auf und fragt die verfügbaren und von Homebridge unterstützen (oder konfigurierten) Gerätetypen samt aktuellem Zustand ab. Dazu benötigt es das homebridge-homeassistant-Plugin. Diese Daten werden dann HomeKit-kompatibel an alle iOS-Geräte zur Verfügung gestellt. Hier können die Daten genutzt werden, als wären sämtliche mit Home Assistant verbundenen Geräte HomeKit kompatibel, in Wahrheit ist es vielleicht kein Einziges. Home Assistant und Homebridge arbeiten also Hand in Hand als eine Zwischenschicht, die Edge-Device und HomeKit miteinander sprechen lässt. Natürlich können auf diesem Wege auch Befehle von HomeKit („Siri, schalte das Licht im Wohnzimmer an!“) an Homebridge und letzter Instanz an Home Assistant übergeben werden. Somit lässt sich eine vollständige Siri-Integration des Smart Home erreichen.

Oben ist erwähnt, dass es sich bei Homebridge um einen Server handelt. In diesem Zuge stellt sich natürlich die Frage: Wo soll dieser Server laufen? Im Sinne meiner No-Cloud-Politik wenn es um Smart Home Geräte geht, ist die Frage schnell beantwortet: auf dem NAS – im Docker Container. Diesen gibt es nämlich glücklicherweise bereits fertig zum Konfigurieren.

Homebridge via Docker auf dem QNAP NAS installieren

In diesem Tutorial gehe ich nicht mehr einzeln auf die grundlegenden Schritte bei der Installation von Docker Container auf einem QNAP TS-453A NAS* ein. Genaueres dazu findet ihr in meinem Home Assistant Docker Tutorial. Dieses Vorgehen deckt sich zu 90% mit den im Folgenden durchgeführten Schritten.

Schritt 1: Aktuelle Version des Containers im Docker Hub prüfen und merken.

Schritt 2: SSH-Verbindung zum NAS herstellen (z.B. über Putty oder die Linux Konsole)

Schritt 3: Freigabeordner für die Config-Dateien von Homebridge einrichten (am einfachsten via QTS Oberfläche des NAS).

Schritt 4: Docker-Befehl ausführen. Ich möchte noch kurz erklären, welche Parameter hier gewählt worden sind.

docker run -d --name="homebridge" --restart=always --net=host -p 51826:51826 -v /share/Container/homebridge:/root/.homebridge marcoraddatz/homebridge:4.3

-d: detached-mode bedeutet, dass der Container auch ohne aktive SSH-Session im Hintergrund weiterläuft.

–name: Ist der Name des Containers. Unbedingt setzen, sonst denkt sich QTS/Docker irgendeinen Quatsch aus. 😉

–restart:always: Bei einem Crash des Containers, den Container direkt neu starten.

–net:host: Dem Container Zugriff auf die Netzwerkumgebung des NAS gewähren.

-p 51826:51826: Den Port 51826 für die HomeKit Kommunikation registrieren.

-v /PFAD_ZUM_CONFIG_VERZEICHNIS:/root/.homebridge: Der Pfad zum Config-Verzeichnis, welches wir in Schritt 3 angelegt haben. Hier liegen alle Konfigurationsdateien des Homebridge-Servers, damit wir den Container beliebig austauschen können (z.B. für spätere Updates).

marcoraddatz/homebridge:4.3: Der Name des Homebridge Docker Containers auf Docker Hub mit einer konkreten Versionsangabe. Wieso ich diese manuell übergebe, habe ich hier beschrieben.

Schritt 5: Container in der Container Station App stoppen, damit wir die wichtigsten Konfigurationen durchführen können.

Schritt 6: Dependecies, d.h. die Homebridge-Plugins, konfigurieren.

Dazu müssen zwei externe Dateien erstellt und in das Config-Verzeichnis von Homebridge verschoben werden. Die Dateiarbeit lässt sich in der Regel am leichtesten mit einem FTP-Client erledigen, der Zugriff auf den entsprechenden Freigabeordner des NAS* hat.

Die erste Datei trägt den Namen: install.sh

#!/bin/bash
npm install -gs homebridge-homeassistant

Diese Datei übergibt das homebridge-homeassistant Plugin in an den Homebridge Container und lässt das entsprechende Paket bei Start des Containers herunterladen. Wir benötigen nur dieses eine Plugin, um eine Verbindung zwischen Home Assistant und Homebridge herstellen zu können.

Die zweite Datei ist die: config.json

{
  "bridge": {
    "name": "Homebridge",
    "username": "RANDOM MAC Adress -> CF:10:7D:G3:CA:70",
    "port": 51826,
    "pin": "YOUR PIN -> 111-1111-111"
  },
  "accessories": [
  ],
"platforms": [
  {
    "platform": "HomeAssistant",
    "name": "HomeAssistant",
    "host": "http://127.0.0.1:8123",
    "password": "yourapipassword",
    "supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "script", "sensor", "switch", "vacuum"],
    "default_visibility": "visible",
    "logging": false,
    "verify_ssl": false
  }
]
}

Diese Datei ist das Herz der Homebridge Installation, hier können alle Einstellungen getroffen werden. Daher wollen wir die Datei Stück für Stück durchgehen.

Homebridge Setup:

„name“: „Homebridge“: Der Name des Gerätes, was in HomeKit unter iOS auftaucht.

„username“: Eine ANZUPASSENDE Adresse im Hex-Format. Einen Generator findet sich z.B. hier.

„port“: 51826: Der Port über welchem Homebridge mit HomeKit kommuniziert.

„pin“: Ein ANZUPASSENDER Pin-Code, welcher für die Authentifizierung zwischen iOS und Homebridge benötigt wird. Er muss im Format „111-1111-111“ mit beliebigen Zahlen gesetzt werden.

Home-Assistant Setup:

„platform“: „HomeAssistant“: Aktiviert das installierte homebridge-homeassistant-Plugin

„name“: „HomeAssistant“: Gibt dem „Gerät“ Home Assistant einen Namen  innerhalb von Homebridge.

„host“: „http://127.0.0.1:8123“: Die IP-Adresse / der Host des Home Assistant Instant mit Port. Sollten beiden Server (Homebridge und Home Assistant als Docker Container im net=host-Modus auf demselben NAS laufen, kann hier 127.0.0.1 stehen bleiben. Ansonsten entsprechend anpassen.

„password“: „yourapipassword“: Kennwort zum Login in Home Assistant

„supported_types“: Typen von Geräten, die über Homebridge von Home Assistant abgefragt werden sollen.

„default_visibility“: „visible“: Alle Geräte werden standardmäßig von Home Assistant an Homebridge übertragen (eingeschränkt durch die Geräteklasse). Wer hier „hidden“ setzt, muss die Geräte in HOME ASSISTANT einzeln für Homebridge sichtbar machen.

„logging“: false: Loggin für den Produktivbetrieb deaktivieren, um übermäßigen Log-Müll zu vermeiden.

„verify_ssl“: false: Wenn die Home Assistant Instanz mit einem selbstsignierten Zertifikat ausgestattet ist oder die Instanz zwar per SSL geschützt, jedoch im Falle von Homebridge über eine lokale IP-Adresse aufgerufen wird, muss diese Option auf „false“ gesetzt werden, da kann gültiges (bzw. aus Sicht von Homebridge vertrauenswürdiges) SSL-Zertifikat vorliegt und der Login fehlschlägt.

That’s it. Speicher und beide Dateien in das Config-Verzeichnis auf dem NAS legen.

Schritt 7: Homebridge Server via Container Station App starten. Am besten vergrößert ihr nach dem Start mit einem Klick auf das Doppel-Pfeil-Symbol die Konsolenausgabe zu Vollbild. So lässt sich der abgebildete QR-Code leichter Einscannen, der von Homebridge ausgegeben wird, wenn alles geklappt hat.

Homebridge Start - QR Code copy

Hinweis: Die Hinweis bzw. Fehlermeldung bzgl. AVAHI kann ignoriert werden. Diese erscheint immer und hat etwas mit dem Aufbau von Homebridge an sich zu tun, schränkt die Funktion aber in keiner Weise ein.

Über dem QR-Code seht ihr in der Konsole im Übrigen bereits einen Teil der Geräte in Listenform, die Homebridge von Home Assistant abgerufen hat.

Homebridge mit Apple HomeKit verbinden

Die Einrichtung unter iOS funktionier ab diesem Punkt ohne irgendwelche Basteleien, was ich als riesigen Vorteil ansehe. Das Apple Gerät (iPhone* oder iPad*) bekommt also „gar nicht mit“, das es in Wahrheit mit einem Blumenstrauss unterschiedlichster Sensoren kommuniziert, die durch Home Assistant aggregiert und per Homebridge zur Verfügung gestellt werden.

Dementsprechend ist die initiale Konfiguration von HomeKit Apple-typisch schnell und einfach erledigt. Im Regelfall wird einem beim Start der Home App auf dem iPhone die Einrichtung direkt angeboten. Wer bereits HomeKit-Geräte verwendet, sollte prüfen, wie weiter vorzugehen ist: Entweder Homebridge wird als zusätzliches Gerät in HomeKit integriert und parallel zu den bereits vorhandnen Geräten betrieben. Oder die anderen Geräte werden zu erst in Home Assistant integriert und dann alle gemeinsame via Homebridge per HomeKit gesteuert. Welche Option gewählt wird. hängt ganz von eurem Setup ab. Prinzipien geht beides.

Schritt 1: Neues Zuhause in HomeKit anlegen und ggf. in das Zuhause wechseln, falls mehrere Häuser über das iOS-Gerät verwaltet werden (klar wieso auch nicht – Zweitwohnung in New York, Finka auf Malle, Wanderhütte in den Alpen und was man sonst so besitzt ;)).

HomeKit - neues Zuhause anlegen copy

Schritt 2: Das neue Zuhause prüfen. Aktuell sollte alles leer sein und keine Sensoren gelistet werden.

HomeKit - Leeres ZuhauseSchritt 3: Homebridge via QR-Code hinzufügen.

HomeKit - Homebridge als neues Gerät hinzufügen

Die erscheinende Sicherheitsmeldung bestätigen. Ist ja klar, Homebridge ist nicht offiziell HomeKit zertifiziert.

Hombridge - QR Code scannen copy

Schritt 4: Sensoren und Geräte benennen, typisieren und Räumen im Zuhause zuordnen.

Homebridge - Setup der einzelnen Sensoren copy

Schritt 5: HomeKit genießen. Ab sofort können die Geräte, die in eurem Zuhause eingerichtet und sichtbar sind, auch per Siri gesteuert werden. Viel Spaß!

HomeKit und Homebridge - Hand in Hand copy

Schlusswort

Die Integration von Home Assistant in HomeKit ist dank Homebridge relativ simple. Hier haben sich eine Menge Leute tolle Gedanken dazu gemacht, wie sich die verschiedensten Smart Home Standards miteinander verbinden lassen. Und nur so kann ein Smart Home entstehen – vernetzt. Das ein Hersteller alle Geräte in einem Smart Home bereitstellt ist auch unrealistisch, deshalb sind Lösungen wie Home Assistant so wichtig und werden in Zukunft das Rückgrat des modernen Zuhauses bilden.

HomeKit direkt mit Home Assistant verwenden

Seit Home Assistant Version 0.64 ist HomeKit fester Bestandteil der Smart Home Plattform. Der oben beschriebene „Umweg“ über eine extra Homebridge-Instanz ist somit also nicht mehr unbedingt erforderlich (auch wenn er weiter ohne Probleme funktioniert).

Da HomeKit eine große Menge an verschiedensten Geräten unterstützt, ist zu erwarten, dass die HomeKit-Schnittstelle von Home Assistant mit der Zeit immer weiter dazulernen wird. Aktuell (0.86.4) funktioniert das Ganze bereits sehr ordentlich. Ich habe mein altes Setup via Homebridge mittlerweile durch die Direktimplementierung ersetzt.

HomeKit in Home Assistant aktivieren

Um die HomeKit Komponente zu aktivieren und einzurichten, werden die folgenden Schritte durchlaufen:

  1. Als erstes ergänzen wir unsere configuration.yaml mit folgenden Inhalt, um HomeKit zu aktivieren:
homekit:

2. Wir loggen uns im Web-Frontend von Home Assistant ein. In der oberen rechten Ecke erscheint bei der Benachrichtigungsglocke ein Hinweis. Home Assistant teilt uns hier den neuen HomeKit Code zur Einrichtung mit.

3. Wenn du bereits HomeKit über Homebridge genutzt hast, musst du ein neues Zuhause in der Home App einrichten. Wenn nicht, öffne einfach die Home App auf deinem iPhone* oder iPad.

4. Wähle „Gerät hinzufügen“ und „Ich habe keinen Code zum Scannen“. Die Home Assistant Bridge sollte nun auftauchen.

5. Bestätige die Abfrage (nicht zertifiziertes Gerät) und gib den Code aus dem Frontend ein.

6. Nun ruft die Home App alle Home Assistant Gerät ab, die derzeit von HomeKit verwendet werden können. Durchlaufe den Setup-Assistent (Geräteklassen und Räume zuweisen).

7. Du solltest nun alle Geräte via HomeKit steuern können.

Mir ist direkt aufgefallen, dass das Wegfallen von Homebridge einen deutlichen Reaktionsvorteil gebracht hat. Die Home Assistant Bridge reagiert noch einmal deutlich flotter. Das merkt man vor allem bei Befehlen, die von meinem Home Pod* versendet werden. Hier hat Siri meist nicht einmal zu Ende gesprochen und alle Aktionen sind erledigt. 🙂

Hinweis: Mit Sternchen (*) markierte Links sind Affiliate-Links / Partnerlinks. Mit einem Kauf über diesen Link erhalten wir als Seitenbetreiber eine Verkaufsprovision. So kannst du das Projekt ganz einfach unterstützen. Mehr Informationen dazu findest du hier.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert