Действия Google Assistant в Google
Все мое оборудование уже разработано. Я использую MQTT для связи между моими устройствами, у меня есть освещение, вентиляторы, обогреватели и многие другие устройства ioT. Я могу контролировать все это из моего приложения для Android, которое я построил. Я также хотел бы использовать Google Assistant для управления своими устройствами. Состояние моих индикаторов (вкл / выкл) хранится в базе данных sql, и когда когда-либо происходит изменение в базе данных (обнаруживается аппаратным обеспечением), мое оборудование может управлять этим конкретным источником света. В моем приложении для Android я делаю то же самое, что обновляет значение базы данных (вкл / выкл) индикатора, и изменение обнаруживается моей аппаратной платформой. Могу ли я использовать Google Assistant для обновления значения базы данных sql? Я могу создать веб-сервер ( ASP.NET C#) и передать команду в базу данных sql моего соответствующего клиента, если помощник Google может вызвать команду с именем пользователя или электронной почтой, lightID, на мой веб-сервер. Может ли помощник Google сделать это? Если нет, то как бы этого добиться.
1 ответ
Похоже, вы хотите взглянуть на API-интерфейс действий в Google Smart Home, который позволит элементам управления Assistants Smart Home работать напрямую с вашим сервером управления.
Не зная, как именно сконфигурирована или размещена ваша база данных или существующий веб-сервер, я в лучшем случае могу говорить только широко. Ваш веб-сервер должен будет реализовать две основные вещи:
Вам понадобится сервер OAuth2, который может выдавать токены, представляющие ваших пользователей. Это то, как Google будет связывать учетную запись пользователя в Assistant с вашей учетной записью, и как Google будет определять (для вас), какой пользователь выполняет команду.
Вам нужно будет реализовать webhook по URL на вашем веб-сервере. Этому веб-крюку будет отправлено сообщение POST, содержащее заголовок с действительным токеном авторизации (который вы выдали) и тело JSON. JSON будет содержать информацию о команде, выданной пользователем. Ваше тело ответа HTTP также будет JSON. Для получения подробной информации о форматах JSON и всех полях, которые он может отправлять и на которые вы должны ответить, обратитесь к документации Google.
Существует ряд различных команд (которые Google называет "намерениями"), которые Google может отправлять вам от имени пользователя. Вы должны иметь возможность обрабатывать все из них, запрашивая или изменяя вашу базу данных:
- SYNC - запрос о том, какие устройства у этого пользователя есть, какая-то информация о его конфигурации и какие команды они уважают.
- QUERY - Каково текущее состояние устройств для этого пользователя.
- ВЫПОЛНИТЬ - изменить состояние на некоторых устройствах пользователя.
- RESYNC - (Будущее обновление) Повторный запрос информации об устройстве пользователя.