当 Google 将本地可控制的设备匹配你的云执行方式的 SYNC
响应所返回的设备,就会建立本地执行方式路径。
如需使 Google 能够在本地网络中发现你的设备并建立本地执行方式路径,你需要在 Actions 控制台中添加发现信息。
你还需要更新云执行方式的 SYNC
响应,让 Google 了解本地可控制的设备。
设置扫描配置信息
如需指定发现信息,请按以下步骤操作:
在 Google Home Developer Console 中前往您的 Cloud-to-cloud 集成:
在屏幕左侧,依次选择项目 > 云到云,然后为相应集成选择修改。在设置和配置页面中,滚动到本地履单,然后将该设置切换为开启。在每个测试网址字段中输入以下网址,插入您的项目 ID,然后点击 Save:
https://<project-id>.web.app/local-home/index.html
点击 Device discovery 下的 + Add scan configuration,添加新的扫描配置。
从下拉菜单中选择扫描协议类型,然后输入要供 Google 扫描的值。
根据你想让 Google 扫描你的设备所使用的协议,下表显示了你可以添加的属性:
属性 | 说明 | 示例值 |
---|---|---|
服务名称 |
必填。设备发布的服务名称,格式为 service.domain 。
|
_http._tcp.local |
名称 |
必填。唯一服务示例的过滤条件,格式为 |
my-device-[0-9]{4}\._http\._tcp\.local |
属性 | 说明 | 示例值 |
---|---|---|
服务类型 |
必填。UPnP 服务的完全限定标识符,格式为 domain:service:type:version 。
|
schemas-upnp-org:service:SwitchPower:1 |
OUI |
可选。组织唯一标识符。 用于标识设备制造商的 24 位值。 通常情况下,设备 MAC 地址的前三个八位字节。 |
1A:2B:3C |
属性 | 说明 | 示例值 |
---|---|---|
发现地址 | 必需。UDP 广播的目标 IP 地址。 | 255.255.255.255 |
广播端口 | 必需。UDP 广播的目标端口。 | 5555 |
监听端口 | 必需。UDP 发现响应的侦听端口。 | 5556 |
发现数据包 | 必填。要在 UDP 广播中发送的载荷。 格式为十六进制编码的字节字符串。 |
48454C4C4F |
在云执行方式中更新 SYNC 响应
SYNC
intent 会向 Google 助理报告用户控制哪些设备及其功能。
为了支持本地执行方式,Local Home 平台会检查来自智能家居 Action 的云执行方式的 SYNC
响应,并尝试将 otherDeviceIds
字段中的设备 ID 与 IDENTIFY
处理程序返回的验证 ID 相匹配。没有 otherDeviceIds
字段的设备条目会从本地执行方式中排除。
在 SYNC
响应的 otherDeviceIds
字段中,你需要为可在本地控制的智能家居设备设置设备 ID。该字段会显示在响应的 device
级别。Google 可以在具有指定 ID 的任何设备上建立本地执行方式路径。
使用 customData
字段指定 Google 连接到独立设备所需的任何其他数据,或使用集线器定位终端设备(例如端口号和其他特定于协议的信息)。
示例
以下代码段展示了如何创建 SYNC
处理程序。
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [{ "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "name": "Night light" }, "willReportState": false, "otherDeviceIds": [{ "deviceId": "local-device-id" }], "customData": { "port": 5555, "authToken": "..." } }] } }