支持设备发现

当 Google 将本地可控设备与云执行方式的 SYNC 响应中返回的设备进行匹配时,系统会建立本地执行方式路径。

如需使 Google 能够在本地网络中发现你的设备并建立本地执行方式路径,你需要在 Actions 控制台中添加发现信息。 你还需要更新云执行方式的 SYNC 响应,让 Google 了解本地可控制的设备。

设置扫描配置信息

如需指定发现信息,请按以下步骤操作:

  1. 在 Google Home Developer Console 中,前往您的 Cloud-to-cloud 集成:

    前往开发者控制台。

  2. 前往屏幕左侧的项目 > 云到云,然后选择相应集成的修改。 在设置和配置页面中,滚动到本地执行方式,然后开启该设置。在每个测试网址字段中输入以下网址,插入您的项目 ID,然后点击保存:

    https://<project-id>.web.app/local-home/index.html

  3. 点击设备发现下的 + 添加扫描配置,以添加新的扫描配置。

  4. 从下拉菜单中选择扫描协议类型,然后输入要供 Google 扫描的值。

根据你想让 Google 扫描你的设备所使用的协议,下表显示了你可以添加的属性:

mDNS
属性 说明 示例值
服务名称 必填。设备发布的服务名称,格式为 service.domain。 _http._tcp.local
名称

必填。唯一服务示例的过滤条件,格式为 instance.service.domain。

平台会将此值视为正则表达式并返回所有匹配的设备。
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
属性 说明 示例值
服务类型 必填。UPnP 服务的完全限定标识符,格式为 domain:service:type:version。 schemas-upnp-org:service:SwitchPower:1
OUI

可选。组织唯一标识符。

用于标识设备制造商的 24 位值。 通常情况下,设备 MAC 地址的前三个八位字节。
1A:2B:3C
UDP
属性 说明 示例值
发现地址 必需。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 处理程序。

独立/Hub
{
  "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": "..."
      }
    }]
  }
}