#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.
Из-за портативности мобильных телефонов не имеет смысла разрешать удаленно использовать их в качестве устройства выполнения, отсюда и локальная связь.