Плагин Homebridge для Philips Hue Sync Box.
Блок синхронизации можно представить в виде лампочки. Поддерживаются следующие функции:
Вкл/Выкл
Яркость
Блок синхронизации можно представить как переключатель. Поддерживаются следующие функции:
Вкл/Выкл
Вы также можете включить дополнительные аксессуары для телевизора, которые поддерживают:
Переключение входов HDMI
Переключение режимов
Интенсивность переключения
Переключение развлекательных зон
Каждый из дополнительных аксессуаров к телевизору поддерживает удаленный виджет iOS:
Вверх/вниз: изменить яркость
Влево/вправо: изменить интенсивность
Выбор (центральная кнопка): переключение режимов.
Информационная кнопка: переключение входов HDMI
Воспроизведение/Пауза: включение/выключение.
Кроме того, каждый аксессуар для телевизора может иметь встроенную лампочку с поддержкой:
Вкл/Выкл
Яркость
Важно : ТВ-аксессуары необходимо добавлять в HomeKit вручную, в журналах указан пин-код для их добавления (должен быть тот же пин-код, что и у плагина).
Установите плагин через npm:
npm установить homebridge-philips-hue-sync-box -g
Вам необходимо создать новые учетные данные для связи с блоком синхронизации Philips Hue:
Убедитесь, что Sync Box включен.
Убедитесь, что синхронизация остановлена
Отправьте запрос HTTP POST на https://<SYNC-BOX-IP>/api/v1/registrations
Тело запроса должно быть в формате JSON: { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
Первым ответом на запрос будет { "code": 16, "message": "Invalid State" }
ВАЖНО: Теперь нажмите и удерживайте кнопку блока синхронизации, пока светодиод не загорится зеленым. Немедленно отпустите кнопку, как только светодиод загорится зеленым! Он снова станет белым.
Немедленно сделайте запрос еще раз
Ответ содержит строку accessToken
Подсказки:
Один из способов сделать это — ввести в терминал следующее: curl -H "Content-Type: application/json" -X POST -d '{"appName": "homebridge", "appSecret":"MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge"}' https://<SYNC-BOX-IP>/api/v1/registrations
, заменив <SYNC-BOX-IP>
на IP-адрес вашего Sync Box. Если проблема возникает из-за ошибки сертификата, добавьте параметр -k
в команду cURL.
Другим способом может быть использование таких инструментов, как Postman . Установите метод запроса POST
и введите https://<SYNC-BOX-IP>/api/v1/registrations
в качестве URL-адреса запроса (замените <SYNC-BOX-IP>
IP-адресом вашего Sync Box). Затем откройте вкладку «Тело», установите тип «raw» и выберите «JSON» в качестве типа контента в раскрывающемся списке. Затем введите { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
в текстовое поле тела. Нажмите кнопку «Отправить» в правом верхнем углу, чтобы отправить запрос. Если проблема возникает из-за ошибки сертификата, вы можете отключить проверку сертификата в Postman. Зайдите в глобальные настройки, откройте вкладку «Общие» и отключите тумблер «Проверка SSL-сертификата».
{"платформы": [ {"platform": "PhilipsHueSyncBoxPlatform","syncBoxIpAddress": "<SYNC-BOX-IP-ADDRESS>","syncBoxApiAccessToken": "<ACCESS-TOKEN>","defaultOnMode": "video","defaultOffMode": " passthrough","baseAccessory": "лампочка","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": "<ВАШ- ТОКЕН>"} ] }
syncBoxIpAddress : IP-адрес вашего устройства синхронизации Philips Hue.
syncBoxApiAccessToken : токен доступа, который вы получаете при регистрации.
defaultOnMode (необязательно): режим, который используется при включении Sync Box через HomeKit. По умолчанию video
. Возможные значения: video
, music
, game
или lastSyncMode
.
defaultOffMode (необязательно): режим, который используется при выключении Sync Box через HomeKit. По умолчанию используется passthrough
. Возможные значения: powersave
или passthrough
.
baseAccessory (необязательно): определяет тип базового аксессуара для блока синхронизации. По умолчанию lightbulb
. Возможные значения: lightbulb
, switch
или none
. Если none
используется, базовый аксессуар не отображается.
tvAccessory (необязательно): включает телевизионный аксессуар для переключения входов блока синхронизации. По умолчанию установлено значение false
.
tvAccessoryType (необязательно): тип значка, который должно отображаться в приложении Apple Home. Возможные значения: tv
, settopbox
, tvstick
или audioreceiver
. По умолчанию tv
.
tvAccessoryLightbulb (дополнительно): включает встроенную лампочку для ТВ-аксессуара для переключения входов. По умолчанию установлено значение false
.
modeTvAccessory (необязательно): включает ТВ-аксессуар для переключения режимов ( video
, music
, game
) Sync Box. По умолчанию установлено значение false
.
modeTvAccessoryType (необязательно): тип значка, который должно отображать приложение Apple Home. Возможные значения: tv
, settopbox
, tvstick
или audioreceiver
. По умолчанию tv
.
modeTvAccessoryLightbulb (необязательно): включает встроенную лампочку для ТВ-аксессуара для переключения режимов. По умолчанию установлено значение false
.
ИнтенсивностьTvAccessory (необязательно): включает телевизионный аксессуар для переключения интенсивности ( subtle
, moderate
, high
, intense
) окна синхронизации. По умолчанию установлено значение false
.
ИнтенсивностьTvAccessoryType (необязательно): тип значка, который должно отображать приложение Apple Home. Возможные значения: tv
, settopbox
, tvstick
или audioreceiver
. По умолчанию tv
.
интенсивностьTvAccessoryLightbulb (необязательно): включает встроенную лампочку для ТВ-аксессуара для переключения интенсивности. По умолчанию установлено значение false
.
EntertainmentTvAccessory (необязательно): включает телевизионный аксессуар для переключения развлекательной области Sync Box. По умолчанию установлено значение false
.
EntertainmentTvAccessoryType (необязательно): тип значка, который должно отображаться в приложении Apple Home. Возможные значения: tv
, settopbox
, tvstick
или audioreceiver
. По умолчанию tv
.
EntertainmentTvAccessoryLightbulb (дополнительно): включает встроенную лампочку для телевизионного аксессуара для переключения развлекательных зон. По умолчанию установлено значение false
.
isApiEnabled (необязательно): включает HTTP API для управления окном синхронизации. По умолчанию установлено значение false
. См. API для получения дополнительной информации.
apiPort (необязательно): порт, на котором работает API (если он включен). По умолчанию 40220
Измените этот параметр, если порт уже используется.
apiToken (необязательно): токен, который должен быть включен в каждый запрос API. Требуется, если API включен и не имеет значения по умолчанию.
Этот плагин также предоставляет HTTP API для управления некоторыми функциями Sync Box. Он был создан для того, чтобы вы могли дополнительно автоматизировать систему с помощью ярлыков HomeKit. Начиная с iOS 13, вы можете использовать ярлыки для автоматизации HomeKit. Те автоматизации, которые выполняются в координаторе HomeKit (например, iPad, AppleTV или HomePod), также поддерживают HTTP-запросы, что означает, что вы можете автоматизировать свой Sync Box без раздражающих переключателей и кнопок, доступных в HomeKit.
Если API включен, к нему можно получить доступ по указанному порту на хосте этого плагина.
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>
Токен должен быть указан как значение заголовка Authorization
для каждого запроса:
Authorization: <YOUR-TOKEN>
Используйте конечную точку state
, чтобы получить состояние Sync Box. HTTP-метод должен быть GET
:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
Ответ представляет собой ответ в формате JSON, в который включены следующие свойства:
{ 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' } } }
Используйте конечную точку state
, чтобы установить состояние Sync Box. HTTP-метод должен быть POST
:
http://<YOUR-HOST-IP-ADDRESS>:<apiPort>/state
Тело запроса должно быть в формате JSON и может содержать любые/некоторые/все следующие значения:
{ 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' } } }