Локальный путь выполнения заказа устанавливается, когда Google сопоставляет локально управляемое устройство с устройством, возвращенным в ответе SYNC
от вашего облачного выполнения заказа.
Чтобы Google мог обнаружить ваше устройство в локальной сети и настроить локальный путь выполнения заказов, необходимо добавить информацию об обнаружении в консоль действий. Также необходимо обновить ответ SYNC
от вашего облачного сервиса выполнения заказов, чтобы сообщить Google о локально управляемом устройстве.
Настройте информацию о конфигурации сканирования
Чтобы указать информацию об обнаружении, выполните следующие действия:
Перейдите к интеграции Cloud-to-cloud в Google Home Developer Console :
Перейдите в раздел «Проект» > «Облако-облако» в левой части экрана, затем выберите «Изменить» для интеграции. На странице «Настройка и конфигурация» прокрутите до пункта «Локальное выполнение» и включите этот параметр. Введите следующий URL-адрес в каждое поле тестового URL-адреса, укажите идентификатор вашего проекта и нажмите «Сохранить »:
https://<project-id>.web.app/local-home/index.html
Нажмите + Добавить конфигурацию сканирования в разделе Обнаружение устройства , чтобы добавить новую конфигурацию сканирования.
Выберите тип протокола соответствия сканированию из раскрывающегося списка и введите значения, которые 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 |
Атрибут | Описание | Пример значения |
---|---|---|
Адрес открытия | Обязательно. 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": "..." } }] } }