支持设备发现

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

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

设置扫描配置信息

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

  1. 在 Actions 控制台中打开你的智能家居项目。
  2. 点击左侧导航栏中的 Actions
  3. Configure local home SDK (optional) >Add device scan configuration 下,点击 New scan config
  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 连接到独立设备所需的任何其他数据,或通过 hub 定位终端设备(例如端口号和其他特定于协议的信息)。

示例

以下代码段展示了如何创建 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": "..."
      }
    }]
  }
}