Поддержка обнаружения устройств

Локальный путь выполнения устанавливается, когда Google сопоставляет локально управляемое устройство с устройством, возвращенным в ответе SYNC от вашего облачного выполнения.

Чтобы Google мог обнаружить ваше устройство в локальной сети и установить локальный путь выполнения, вам необходимо добавить информацию об обнаружении в консоли действий. Вам также необходимо обновить ответ SYNC от вашего облачного выполнения, чтобы сообщить Google о локально управляемом устройстве.

Настройте информацию о конфигурации сканирования

Чтобы указать информацию для обнаружения, выполните следующие действия:

  1. Откройте проект умного дома в консоли действий.
  2. На панели навигации слева нажмите Действия .
  3. В разделе «Настроить локальный домашний SDK (необязательно)» > «Добавить конфигурацию сканирования устройства » нажмите «Новая конфигурация сканирования» .
  4. Выберите тип протокола сопоставления сканирования из раскрывающегося списка и введите значения, которые Google будет сканировать.

В следующих таблицах показаны атрибуты, которые вы можете добавить в зависимости от протоколов, которые вы хотите, чтобы Google использовал для сканирования вашего устройства:

mDNS
Атрибут Описание Пример значения
Имя службы Необходимый. Имя службы, публикуемое устройством в формате service . domain . _http._tcp.local
Имя

Необходимый. Отфильтруйте уникальный экземпляр службы в формате instance . service . domain .

Платформа рассматривает это значение как регулярное выражение и возвращает все соответствующие устройства.
my-device-[0-9]{4}\._http\._tcp\.local
УПнП
Атрибут Описание Пример значения
Тип услуги Необходимый. Полный идентификатор службы UPnP в формате domain :service: type : version . schemas-upnp-org:service:SwitchPower:1
ОУИ

Необязательный. Организационный уникальный идентификатор .

24-битное значение, идентифицирующее производителя устройства. Обычно это первые три октета MAC-адреса устройства.
1A:2B:3C
UDP
Атрибут Описание Пример значения
Широковещательный адрес Необходимый. IP-адрес назначения для широковещательной передачи UDP. 255.255.255.255
Широковещательный порт Необходимый. Порт назначения для широковещательной передачи UDP. 5555
Слушать порт Необходимый. Порт прослушивания для ответа на обнаружение UDP. 5556
Пакет обнаружения

Необходимый. Полезная нагрузка для отправки в широковещательном сообщении UDP.

Форматируется как строка байтов в шестнадцатеричной кодировке.
48454C4C4F

Обновить ответ SYNC при выполнении облака

Намерение SYNC сообщает Ассистенту, какими устройствами управляет пользователь и их возможностями.

Для поддержки локального выполнения платформа Local Home проверяет ответ SYNC от облачного выполнения действия вашего умного дома и пытается сопоставить идентификаторы устройств в otherDeviceIds с идентификатором проверки, возвращаемым обработчиком IDENTIFY . Записи устройств без otherDeviceIds исключаются из локального выполнения.

В otherDeviceIds ответа SYNC вам необходимо установить идентификаторы устройств умного дома, которыми можно управлять локально. Поле появляется в ответе на уровне device . Google может установить локальный путь выполнения на любом устройстве с указанным идентификатором.

Используйте поле 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": "..."
      }
    }]
  }
}