用于飞利浦 Hue Sync Box 的 Homebridge 插件。
同步盒可以暴露为灯泡。支持以下功能:
开/关
亮度
同步盒可以作为开关公开。支持以下功能:
开/关
您还可以启用其他电视配件,支持:
切换 HDMI 输入
切换模式
开关强度
切换娱乐区域
每个附加电视配件都支持 iOS 远程小部件:
上/下:改变亮度
左/右:改变强度
选择(中心按钮):切换模式
信息按钮:切换 HDMI 输入
播放/暂停:打开/关闭
此外,每个电视配件都可以有一个集成灯泡,支持:
开/关
亮度
重要提示:电视配件必须手动添加到 HomeKit,日志显示添加它们的引脚(应与插件的引脚相同)。
通过 npm 安装插件:
npm 安装 homebridge-philips-hue-sync-box -g
您必须创建新的凭据才能与 Philips Hue Sync Box 进行通信:
确保同步盒已打开
确保同步已停止
向https://<SYNC-BOX-IP>/api/v1/registrations
发出 HTTP POST 请求
请求正文必须是 JSON: { "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
对请求的第一个响应将是{ "code": 16, "message": "Invalid State" }
重要提示:现在,单击并按住同步盒的按钮,直到 LED 变为绿色。 LED 呈绿色后立即松开按钮!它将再次切换为白色。
立即再次提出请求
响应包含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>
为您的 Sync Box 的 IP 地址。如果由于证书错误而出现问题,请在 cURL 命令中添加参数-k
。
另一种方法可能是使用Postman等工具。将请求方法设置为POST
并输入https://<SYNC-BOX-IP>/api/v1/registrations
作为请求 URL(将<SYNC-BOX-IP>
替换为您的 Sync Box 的 IP 地址)。接下来,打开“Body”选项卡,将类型设置为“raw”,然后在下拉列表中选择“JSON”作为内容类型。然后,在正文文本框中输入{ "appName": "homebridge", "appSecret": "MDAwMTExMDAwMTExMDAwMTExMDAwMTExMDAwMTExMDA=", "instanceName": "homebridge" }
。单击右上角的“发送”按钮发送请求。如果由于证书错误而出现问题,您可以在 Postman 中禁用证书验证。转到全局设置,打开“常规”选项卡并禁用“SSL 证书验证”的切换开关。
{“平台”:[ {“平台”:“PhilipsHueSyncBoxPlatform”,“syncBoxIpAddress”:“<SYNC-BOX-IP-ADDRESS>”,“syncBoxApiAccessToken”:“<ACCESS-TOKEN>”,“defaultOnMode”:“视频”,“defaultOffMode”:“ passthrough","baseAccessory": "灯泡","tvAccessory": false,"tvAccessoryType": “电视”,“tvAccessoryLightbulb”:假,“modeTvAccessory”:假,“modeTvAccessoryType”:“电视”,“modeTvAccessoryLightbulb”:假,“intensityTvAccessory”:假,“intensityTvAccessoryType”:“电视”,“intensityTvAccessoryLightbulb”:假, "entertainmentTvAccessory": false,"entertainmentTvAccessoryType": “电视”,“entertainmentTvAccessoryLightbulb”:假,“isApiEnabled”:假,“apiPort”:40220,“apiToken”:“<您的令牌>”} ] }
syncBoxIpAddress :飞利浦 Hue Sync Box 的 IP 地址。
syncBoxApiAccessToken :您在注册时获得的访问令牌。
defaultOnMode (可选):通过 HomeKit 打开同步盒时使用的模式。默认为video
。可能的值为video
、 music
、 game
或lastSyncMode
。
defaultOffMode (可选):通过 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
)。默认为false
。
modeTvAccessoryType (可选):Apple Home 应用程序应显示的图标类型。可能的值为tv
、 settopbox
、 tvstick
或audioreceiver
。默认为tv
。
modeTvAccessoryLightbulb (可选):启用电视配件的集成灯泡以切换模式。默认为false
。
tensityTvAccessory (可选):启用电视配件来切换同步盒的强度( subtle
、 moderate
、 high
、 intense
)。默认为false
。
tensityTvAccessoryType (可选):Apple Home 应用程序应显示的图标类型。可能的值为tv
、 settopbox
、 tvstick
或audioreceiver
。默认为tv
。
tensityTvAccessoryLightbulb (可选):启用电视配件的集成灯泡以切换强度。默认为false
。
EntertainmentTvAccessory (可选):启用电视配件以切换同步盒的娱乐区域。默认为false
。
EntertainmentTvAccessoryType (可选):Apple Home 应用程序应显示的图标类型。可能的值为tv
、 settopbox
、 tvstick
或audioreceiver
。默认为tv
。
娱乐电视配件灯泡(可选):启用电视配件的集成灯泡以切换娱乐区域。默认为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
端点来检索同步盒的状态。 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
端点设置同步盒的状态。 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' } } }