Complemento Homebridge para Philips Hue Sync Box.
La Sync Box se puede exponer como una bombilla. Se admiten las siguientes funciones:
Encendido/Apagado
Brillo
La Sync Box puede exponerse como un interruptor. Se admiten las siguientes funciones:
Encendido/Apagado
También puede habilitar accesorios de TV adicionales que admitan:
Cambiar entradas HDMI
Modos de conmutación
Intensidad de conmutación
Cambiar de área de entretenimiento
Cada uno de los accesorios de TV adicionales es compatible con el widget remoto de iOS:
Arriba/abajo: cambiar brillo
Izquierda/derecha: cambiar intensidad
Seleccionar (botón central): alternar modos
Botón de información: alternar entradas HDMI
Reproducir/Pausar: activar/desactivar
Además, cada accesorio de TV puede tener una bombilla integrada con soporte para:
Encendido/Apagado
Brillo
Importante : los accesorios de TV deben agregarse a HomeKit manualmente; los registros muestran el pin para agregarlos (debe ser el mismo pin que para el complemento).
Instale el complemento a través de npm:
npm instala homebridge-philips-hue-sync-box -g
Debe crear nuevas credenciales para comunicarse con Philips Hue Sync Box:
Asegúrate de que Sync Box esté activado
Asegúrese de que la sincronización esté detenida
Realice una solicitud HTTP POST a https://<SYNC-BOX-IP>/api/v1/registrations
El cuerpo de la solicitud debe ser JSON: { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
La primera respuesta a la solicitud será { "code": 16, "message": "Invalid State" }
IMPORTANTE: Ahora, haga clic y mantenga presionado el botón de Sync Box hasta que el LED cambie a verde. ¡Suelte inmediatamente el botón tan pronto como el LED esté verde! Cambiará a blanco nuevamente.
Inmediatamente vuelva a realizar la solicitud.
La respuesta contiene una cadena accessToken
Consejos:
Una forma de hacer esto es ingresar lo siguiente en la Terminal: curl -H "Content-Type: application/json" -X POST -d '{"appName": "homebridge", "appSecret":"MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge"}' https://<SYNC-BOX-IP>/api/v1/registrations
, reemplazando <SYNC-BOX-IP>
con la dirección IP de su Sync Box. Si se produce un problema debido a un error de certificado, agregue el parámetro -k
al comando cURL.
Otra forma puede ser utilizar herramientas como Postman . Configure el método de solicitud en POST
e ingrese https://<SYNC-BOX-IP>/api/v1/registrations
como la URL de solicitud (reemplace <SYNC-BOX-IP>
con la dirección IP de su Sync Box). A continuación, abra la pestaña "Cuerpo", establezca el tipo en "sin formato" y seleccione "JSON" como tipo de contenido en el menú desplegable. Luego, ingrese { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
en el cuadro de texto del cuerpo. Haga clic en el botón "Enviar" en la parte superior derecha para enviar la solicitud. Si se produce un problema debido a un error de certificado, puede desactivar la verificación de certificado en Postman. Vaya a la configuración global, abra la pestaña "General" y desactive el interruptor de "verificación del certificado SSL".
{"plataformas": [ {"platform": "PhilipsHueSyncBoxPlatform","syncBoxIpAddress": "<SYNC-BOX-IP-ADDRESS>","syncBoxApiAccessToken": "<ACCESO-TOKEN>","defaultOnMode": "video","defaultOffMode": " passthrough","baseAccessory": "bombilla","tvAccessory": false,"tvAccessoryType": "tv","tvAccessoryLightbulb": false,"modeTvAccessory": false,"modeTvAccessoryType": "tv","modeTvAccessoryLightbulb": false,"intensityTvAccessory": false,"intensityTvAccessoryType": "tv","intensityTvAccessoryLightbulb": false,"entertainmentTvAccessory": false,"entretenimientoTvAccessoryType ": "tv","entretenimientoTvAccesorioBombilla": false,"isApiEnabled": false,"apiPort": 40220,"apiToken": "<TU-TOKEN>"} ] }
syncBoxIpAddress : la dirección IP de su Philips Hue Sync Box.
syncBoxApiAccessToken : el token de acceso que obtiene durante el registro.
defaultOnMode (opcional): el modo que se utiliza al encender Sync Box a través de HomeKit. El valor predeterminado es video
. Los valores posibles son video
, music
, game
o lastSyncMode
.
defaultOffMode (opcional): el modo que se utiliza al apagar el Sync Box a través de HomeKit. El valor predeterminado es passthrough
. Los valores posibles son powersave
o passthrough
.
baseAccessory (opcional): determina el tipo de accesorio base para Sync Box. El valor predeterminado es lightbulb
. Los valores posibles son lightbulb
, switch
o none
. Si no se utiliza none
, no se expone ningún accesorio de base.
tvAccessory (opcional): habilita un accesorio de TV para cambiar las entradas de Sync Box. El valor predeterminado es false
.
tvAccessoryType (opcional): tipo de icono que debería mostrar la aplicación Apple Home. Los valores posibles son tv
, settopbox
, tvstick
o audioreceiver
. El valor predeterminado es tv
.
tvAccessoryLightbulb (opcional): Habilita una bombilla integrada para el accesorio de TV para cambiar las entradas. El valor predeterminado es false
.
modeTvAccessory (opcional): habilita un accesorio de TV para cambiar los modos ( video
, music
, game
) de Sync Box. El valor predeterminado es false
.
modeTvAccessoryType (opcional): tipo de icono que debería mostrar la aplicación Apple Home. Los valores posibles son tv
, settopbox
, tvstick
o audioreceiver
. El valor predeterminado es tv
.
modeTvAccessoryLightbulb (opcional): habilita una bombilla integrada para el accesorio de TV para cambiar los modos. El valor predeterminado es false
.
IntensityTvAccessory (opcional): habilita un accesorio de TV para cambiar la intensidad ( subtle
, moderate
, high
, intense
) de Sync Box. El valor predeterminado es false
.
intensidadTvAccessoryType (opcional): Tipo de icono que debería mostrar la aplicación Apple Home. Los valores posibles son tv
, settopbox
, tvstick
o audioreceiver
. El valor predeterminado es tv
.
intensidadTvAccessoryLightbulb (opcional): Habilita una bombilla integrada para el accesorio de TV para cambiar la intensidad. El valor predeterminado es false
.
entertainmentTvAccessory (opcional): habilita un accesorio de TV para cambiar el área de entretenimiento de Sync Box. El valor predeterminado es false
.
entertainmentTvAccessoryType (opcional): tipo de icono que debería mostrar la aplicación Apple Home. Los valores posibles son tv
, settopbox
, tvstick
o audioreceiver
. El valor predeterminado es tv
.
entertainmentTvAccessoryLightbulb (opcional): habilita una bombilla integrada para el accesorio de TV para cambiar las áreas de entretenimiento. El valor predeterminado es false
.
isApiEnabled (opcional): habilita una API HTTP para controlar el Sync Box. El valor predeterminado es false
. Consulte API para obtener más información.
apiPort (opcional): el puerto en el que se ejecuta la API (si está habilitada). El valor predeterminado es 40220
; cambie esta configuración si el puerto ya está en uso.
apiToken (opcional): El token que se debe incluir en cada solicitud de la API. Es obligatorio si la API está habilitada y no tiene un valor predeterminado.
Este complemento también proporciona una API HTTP para controlar algunas funciones de Sync Box. Ha sido creado para que puedas automatizar aún más el sistema con atajos de HomeKit. A partir de iOS 13, puedes utilizar atajos para la automatización de HomeKit. Las automatizaciones que se ejecutan en el coordinador de HomeKit (es decir, iPad, AppleTV o HomePod) también admiten solicitudes HTTP, lo que significa que puedes automatizar tu Sync Box sin molestos interruptores y botones expuestos en HomeKit.
Si la API está habilitada, se puede acceder a ella en el puerto especificado en el host de este complemento.
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>
El token debe especificarse como valor del encabezado Authorization
en cada solicitud:
Authorization: <YOUR-TOKEN>
Utilice el punto final state
para recuperar el estado de Sync Box. El método HTTP tiene que ser GET
:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
La respuesta es una respuesta JSON, se incluyen las siguientes propiedades:
{ 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' } } }
Utilice el punto final state
para establecer el estado de Sync Box. El método HTTP tiene que ser POST
:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
El cuerpo de la solicitud debe ser JSON y puede contener cualquiera/algunos/todos los siguientes valores:
{ 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' } } }