Homebridge-Plugin für die Philips Hue Sync Box.
Die Sync Box kann als Glühbirne dargestellt werden. Die folgenden Funktionen werden unterstützt:
Ein/Aus
Helligkeit
Die Sync Box kann als Schalter freigelegt werden. Die folgenden Funktionen werden unterstützt:
Ein/Aus
Sie können auch zusätzliches TV-Zubehör aktivieren, das Folgendes unterstützt:
HDMI-Eingänge umschalten
Modi wechseln
Schaltintensität
Unterhaltungsbereiche wechseln
Jedes der zusätzlichen TV-Zubehörteile unterstützt das iOS-Remote-Widget:
Oben/unten: Helligkeit ändern
Links/rechts: Intensität ändern
Auswählen (mittlere Taste): Modi umschalten
Informationstaste: HDMI-Eingänge umschalten
Wiedergabe/Pause: Ein-/Ausschalten
Darüber hinaus kann jedes TV-Zubehör über eine integrierte Glühbirne verfügen, die Folgendes unterstützt:
Ein/Aus
Helligkeit
Wichtig : TV-Zubehör muss manuell zu HomeKit hinzugefügt werden. In den Protokollen wird die PIN für das Hinzufügen angezeigt (sollte dieselbe PIN wie für das Plugin sein).
Installieren Sie das Plugin über npm:
npm installiere homebridge-philips-hue-sync-box -g
Sie müssen neue Anmeldeinformationen erstellen, um mit der Philips Hue Sync Box zu kommunizieren:
Stellen Sie sicher, dass die Sync-Box eingeschaltet ist
Stellen Sie sicher, dass die Synchronisierung gestoppt ist
Stellen Sie eine HTTP-POST-Anfrage an https://<SYNC-BOX-IP>/api/v1/registrations
Der Hauptteil der Anfrage muss JSON sein: { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
Die erste Antwort auf die Anfrage lautet { "code": 16, "message": "Invalid State" }
WICHTIG: Klicken Sie nun auf den Button der Sync Box und halten Sie ihn gedrückt, bis die LED auf grün wechselt. Lassen Sie den Taster sofort los, sobald die LED grün leuchtet! Es wechselt wieder zu Weiß.
Stellen Sie die Anfrage sofort noch einmal
Die Antwort enthält eine accessToken
Zeichenfolge
Hinweise:
Eine Möglichkeit, dies zu tun, besteht darin, Folgendes in das Terminal einzugeben: curl -H "Content-Type: application/json" -X POST -d '{"appName": "homebridge", "appSecret":"MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge"}' https://<SYNC-BOX-IP>/api/v1/registrations
, ersetzt <SYNC-BOX-IP>
mit der IP-Adresse Ihrer Sync Box. Wenn aufgrund eines Zertifikatfehlers ein Problem auftritt, fügen Sie den Parameter -k
zum cURL-Befehl hinzu.
Eine andere Möglichkeit könnte darin bestehen, Tools wie Postman zu verwenden. Stellen Sie die Anfragemethode auf POST
und geben Sie https://<SYNC-BOX-IP>/api/v1/registrations
als Anfrage-URL ein (ersetzen Sie <SYNC-BOX-IP>
durch die IP-Adresse Ihrer Sync Box). Als nächstes öffnen Sie den Tab „Body“, setzen den Typ auf „raw“ und wählen im Dropdown „JSON“ als Inhaltstyp aus. Geben Sie dann { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
in das Textfeld für den Text ein. Klicken Sie oben rechts auf die Schaltfläche „Senden“, um die Anfrage abzusenden. Wenn aufgrund eines Zertifikatfehlers ein Problem auftritt, können Sie die Zertifikatsüberprüfung in Postman deaktivieren. Gehen Sie zu den globalen Einstellungen, öffnen Sie den Reiter „Allgemein“ und deaktivieren Sie den Kippschalter für „SSL-Zertifikatsüberprüfung“.
{"Plattformen": [ {"platform": "PhilipsHueSyncBoxPlatform", "syncBoxIpAddress": "<SYNC-BOX-IP-ADDRESS>", "syncBoxApiAccessToken": "<ACCESS-TOKEN>", "defaultOnMode": "video", "defaultOffMode": " passthrough, „baseAccessory“: „lightbulb“, „tvAccessory“: false, „tvAccessoryType“: „tv“, „tvAccessoryLightbulb“: false, „modeTvAccessory“: false, „modeTvAccessoryType“: „tv“, „modeTvAccessoryLightbulb“: false, „intensityTvAccessory“: false, „intensityTvAccessoryType“: „tv“, „intensityTvAccessoryLightbulb“: false, „entertainmentTvAccessory“: false, „entertainmentTvAccessoryType“: „tv“, „entertainmentTvAccessoryLightbulb“: false, „isApiEnabled“: false, „apiPort“: 40220, „apiToken“: „<YOUR-TOKEN>“} ] }
syncBoxIpAddress : Die IP-Adresse Ihrer Philips Hue Sync Box.
syncBoxApiAccessToken : Das Zugriffstoken, das Sie bei der Registrierung erhalten.
defaultOnMode (optional): Der Modus, der beim Einschalten der Sync Box über HomeKit verwendet wird. Standardmäßig ist video
eingestellt. Mögliche Werte sind video
, music
, game
oder lastSyncMode
.
defaultOffMode (optional): Der Modus, der beim Ausschalten der Sync Box über HomeKit verwendet wird. Standardmäßig ist passthrough
. Mögliche Werte sind powersave
oder passthrough
.
baseAccessory (optional): Bestimmt den Typ des Basiszubehörs für die Sync Box. Standardmäßig ist lightbulb
eingestellt. Mögliche Werte sind lightbulb
, switch
oder none
. Wenn none
verwendet wird, liegt kein Basiszubehör frei.
tvAccessory (optional): Ermöglicht ein TV-Zubehör zum Umschalten der Eingänge der Sync Box. Der Standardwert ist false
.
tvAccessoryType (optional): Art des Symbols, das die Apple Home-App anzeigen soll. Mögliche Werte sind tv
, settopbox
, tvstick
oder audioreceiver
. Standardmäßig ist tv
eingestellt.
tvAccessoryLightbulb (optional): Aktiviert eine integrierte Glühbirne für das TV-Zubehör zum Umschalten der Eingänge. Der Standardwert ist false
.
modeTvAccessory (optional): Ermöglicht einem TV-Zubehör das Umschalten der Modi ( video
, music
, game
) der Sync Box. Der Standardwert ist false
.
modeTvAccessoryType (optional): Art des Symbols, das die Apple Home-App anzeigen soll. Mögliche Werte sind tv
, settopbox
, tvstick
oder audioreceiver
. Standardmäßig ist tv
eingestellt.
modeTvAccessoryLightbulb (optional): Aktiviert eine integrierte Glühbirne für das TV-Zubehör zum Umschalten der Modi. Der Standardwert ist false
.
IntensityTvAccessory (optional): Ermöglicht einem TV-Zubehör das Umschalten der Intensität ( subtle
, moderate
, high
, intense
) der Sync Box. Der Standardwert ist false
.
IntensityTvAccessoryType (optional): Art des Symbols, das die Apple Home-App anzeigen soll. Mögliche Werte sind tv
, settopbox
, tvstick
oder audioreceiver
. Standardmäßig ist tv
eingestellt.
IntensityTvAccessoryLightbulb (optional): Aktiviert eine integrierte Glühbirne für das TV-Zubehör zum Umschalten der Intensität. Der Standardwert ist false
.
entertainmentTvAccessory (optional): Ermöglicht ein TV-Zubehör zum Umschalten des Unterhaltungsbereichs der Sync Box. Der Standardwert ist false
.
entertainmentTvAccessoryType (optional): Art des Symbols, das die Apple Home-App anzeigen soll. Mögliche Werte sind tv
, settopbox
, tvstick
oder audioreceiver
. Standardmäßig ist tv
eingestellt.
entertainmentTvAccessoryLightbulb (optional): Ermöglicht eine integrierte Glühbirne für das TV-Zubehör zum Umschalten der Unterhaltungsbereiche. Der Standardwert ist false
.
isApiEnabled (optional): Aktiviert eine HTTP-API zur Steuerung der Sync Box. Der Standardwert ist false
. Weitere Informationen finden Sie unter API .
apiPort (optional): Der Port, auf dem die API (sofern aktiviert) ausgeführt wird. Der Standardwert ist 40220
Bitte ändern Sie diese Einstellung, wenn der Port bereits verwendet wird.
apiToken (optional): Das Token, das in jeder Anfrage der API enthalten sein muss. Ist erforderlich, wenn die API aktiviert ist und keinen Standardwert hat.
Dieses Plugin bietet auch eine HTTP-API zur Steuerung einiger Funktionen der Sync Box. Es wurde erstellt, damit Sie das System mit HomeKit-Verknüpfungen weiter automatisieren können. Ab iOS 13 können Sie Verknüpfungen für die HomeKit-Automatisierung verwenden. Die Automatisierungen, die auf dem HomeKit-Koordinator (z. B. iPad, AppleTV oder HomePod) ausgeführt werden, unterstützen auch HTTP-Anfragen, was bedeutet, dass Sie Ihre Sync-Box automatisieren können, ohne störende Schalter und Tasten, die in HomeKit sichtbar sind.
Wenn die API aktiviert ist, ist sie am angegebenen Port auf dem Host dieses Plugins erreichbar.
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>
Das Token muss bei jeder Anfrage als Wert des Authorization
Headers angegeben werden:
Authorization: <YOUR-TOKEN>
Verwenden Sie den state
, um den Status der Sync-Box abzurufen. Die HTTP-Methode muss GET
sein:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
Die Antwort ist eine JSON-Antwort, die folgenden Eigenschaften sind enthalten:
{ groupId: '<group-number>', mode: 'passthrough|powersave|video|game|music', lastSyncMode: 'video|game|music', brightness: 0-100, hdmiSource: 'input1|input2|input3|input4', options: { video: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, game: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, music: { intensity: 'subtle|moderate|high|intense' } } }
Verwenden Sie den state
, um den Status der Sync-Box festzulegen. Die HTTP-Methode muss POST
sein:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
Der Hauptteil der Anfrage muss JSON sein und kann beliebige/einige/alle der folgenden Werte enthalten:
{ groupId: '<group-number>', mode: 'passthrough|powersave|video|game|music', brightness: 0-100, hdmiSource: 'input1|input2|input3|input4', options: { video: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, game: { intensity: 'subtle|moderate|high|intense', backgroundLighting: true|false }, music: { intensity: 'subtle|moderate|high|intense' } } }