Zum Inhalt

Die HomeKit-Schnittstelle (HAP)

Das HomeKit Accessory Protocol ist der einzige lokale Zugang zum Gerät. Es ist von Apple öffentlich spezifiziert; es existieren mehrere quelloffene Implementierungen. Diese Seite beschreibt, was die G4 auf diesem Weg anbietet.

Die Accessory-Datenbank auslesen

Ein gekoppelter HomeKit-Controller kann die vollständige Merkmalsdatenbank des Accessories abfragen — Dienste, Merkmale und aktuelle Werte in einem Schritt. Das ist der schnellste Weg zur Antwort auf die Frage, was am Gerät überhaupt möglich ist. Quelloffene Bibliotheken wie aiohomekit bilden das ab; viele Controller legen die Datenbank zusätzlich in ihren Diagnosedaten ab.

Angebotene Dienste

Ausgelesen am untersuchten Gerät (Firmware 4.0.6). Die iid sind gerätespezifisch und können abweichen; maßgeblich sind die Diensttypen.

HAP-Diensttyp Dienst Bedeutung für eigene Implementierungen
0x121 Doorbell Ereignis „Taster gedrückt"
0x110 Camera RTP Stream Managementzweimal vorhanden begrenzt die Zahl gleichzeitiger Videositzungen auf zwei
0x204 Camera Recording Management HomeKit Secure Video
0x129 Data Stream Transport Management HDS-Transport (u. a. für HKSV)
0x21A Camera Operating Mode Kamerabetriebsart
0x112 Microphone Audio vom Gerät
0x113 Speaker Audio zum Gerät — Voraussetzung für Gegensprechen
0x85 Motion Sensor Bewegungsereignis
0x96 Battery Ladezustand der Außeneinheit

Zwei Dienste, zwei Sitzungen

Dass Camera RTP Stream Management zweimal angeboten wird, ist keine Redundanz: Es ist die Zahl der gleichzeitig möglichen Videositzungen. Wer bereits zwei Abnehmer hat — etwa eine Aufzeichnung und einen Betrachter — bekommt für einen dritten keine Sitzung mehr. Das ist eine häufige, von außen schwer erkennbare Ursache für „der Stream startet nicht".

Speaker-Dienst = Gegensprechen ist vorgesehen

Das Vorhandensein von 0x113 belegt, dass das Gerät einen Audiorückkanal nach Spezifikation anbietet. Dass viele Controller ihn nicht nutzen, ist eine Eigenschaft dieser Controller, nicht des Geräts (siehe Zwei-Wege-Audio).

Kopplungsberechtigungen

HAP unterscheidet zwischen Kopplungen mit und ohne Verwaltungsrecht. Nur eine Kopplung mit Verwaltungsrecht darf weitere Kopplungen anlegen oder entfernen. Eine als einfacher Nutzer angelegte Kopplung — der Normalfall, wenn ein Zusatzdienst über einen bereits gekoppelten Controller aufgenommen wird — kann sich nicht selbst ersetzen.

Praktische Folge für den Betrieb: Der Austausch einer solchen Controller-Identität muss über die verwaltungsberechtigte Kopplung erfolgen. Die verbreiteten Kommandozeilenwerkzeuge der Bibliotheken decken das Anlegen einer Kopplung häufig nicht ab, obwohl die Bibliothek selbst es kann.

Die Controller-Identität ist ein Geheimnis

Der private Schlüssel einer HAP-Kopplung ist gleichwertig zum Zugang selbst: Wer ihn besitzt, erhält Bild und Ton des Geräts. Er steckt in der Konfiguration des Controllers und erscheint bei manchen Implementierungen zusätzlich im Anwendungsprotokoll, etwa beim Starten oder Beenden einer Sitzung.

Das ist beim Betrieb wie beim Veröffentlichen von Protokollauszügen zu beachten: Sicherungskopien solcher Konfigurationen sind Geheimnisträger und sollten nach einem Wechsel vernichtet werden, damit sich nicht über die Zeit ein Archiv aus privaten Schlüsseln ansammelt.

Was HAP an dieser Stelle nicht leistet

Viele Controller-Integrationen implementieren für HomeKit-Kameras ausschließlich den Standbild-Abruf und melden die Kamera dennoch als Kamera an — der Dienst Camera RTP Stream Management dient dabei nur als Kennzeichen zum Anlegen der Entität. Ein Bewegtbild entsteht in der Oberfläche dann durch schnell aufeinanderfolgende Standbilder, nicht durch einen Videostrom.

Das ist eine Eigenschaft der jeweiligen Integration, keine Grenze des Geräts. Wer einen echten H.264-Strom benötigt, braucht einen Controller, der die RTP-Sitzung tatsächlich aushandelt (siehe Videowege).