программно отдавайте команды устройству Google Assistant

#actions-on-google

Вопрос:

Можно ли программно давать команды Google Assistant? Например, я хотел бы иметь возможность отправить команду в виде текста «включить вентилятор» и заставить GA реагировать так, как если бы это была произнесенная команда. Я бы также согласился отправить запрос JSON в любом необходимом формате (с идентификаторами устройств или любыми потребностями API).

Моя ситуация такова, что у меня есть потолочный вентилятор, которым управляет Google Assistant. Я хочу иметь возможность управлять им программно. Например, происходит какое-то событие, и мой код хочет включить вентилятор. Есть ли какой-нибудь способ, которым мой код может сказать GA включить вентилятор?

Я попытался использовать SDK Google Assistant. Я могу отправить ему текст типа «который час?» и получить ответный текст и аудио, например «Сейчас 11:00 утра». Однако у меня есть тестовое устройство под названием «стиральная машина», и если я отправлю текст «работает ли стиральная машина?» Я отвечаю: «Извините, я не понял». Если я произнесу эти слова в свой телефон, я получу ответ «Стиральная машина работает».

Почему GA SDK не может взаимодействовать с моим устройством? Учетные данные, которые я предоставляю GA SDK, совпадают с теми, которые я использую для своего приложения SmartHomeApp, определяющего устройство «шайба».

Ответ №1:

Для этого вы можете настроить устройство виртуального помощника, а затем отправлять на него команды. Проверьте Assistant Relay, который представляет собой службу, которая настраивает устройство виртуального помощника и предоставляет API REST, чтобы вы могли отправлять ему текстовые команды, как если бы они были произнесены.

Согласно документации:

Просто отправьте Assistant Relay любой запрос, который вы обычно отправляете Google Assistant, и Assistant Relay вызовет пакет Assistant SDK для выполнения вашей команды.

В связи с проблемой, с которой вы столкнулись с SDK Google Assistant, я считаю, что то, чего вы пытаетесь достичь, возможно только с помощью устройства, будь то физического или виртуального, а не с помощью SDK напрямую.

Ответ №2:

Существует множество проблем с брандмауэром и безопасностью, позволяющих каждому интеллектуальному устройству подключаться к Интернету. Чтобы решить эту проблему, методология проектирования Google использует устройство выполнения в качестве моста для локального подключения к устройству с одного из своих устройств.

Вы находитесь локально, на своем смартфоне, подключаетесь к Google Assistant.
Телефон является связующим клеем для устройства «шайба».

Согласно этой странице:

Для выполнения выполнения требуется устройство Google Home или Google Nest.

Из-за портативности мобильных телефонов не имеет смысла разрешать удаленно использовать их в качестве устройства выполнения, отсюда и локальная связь.