Действия Google Ассистента в Google

Все мое железо уже разработано. Я использую MQTT для связи между моими устройствами, у меня есть освещение, вентиляторы, обогреватели и многие другие устройства ioT. Я могу управлять всем этим из моего приложения для Android, которое я создал. Я также хочу использовать Google Assistant для управления своими устройствами. Состояние моих источников света (включено / выключено) хранится в базе данных sql, и когда когда-либо происходит изменение в базе данных (обнаруженное оборудованием), мое оборудование может управлять этим конкретным светом. В моем приложении для Android я делаю то же самое, что обновляю значение базы данных (вкл / выкл) света, и это изменение обнаруживается моей аппаратной платформой. Могу ли я использовать Google Assistant для обновления значения базы данных sql? Я могу создать веб-сервер (ASP.NET C #) и передать команду в базу данных sql моего соответствующего клиента, если помощник Google может вызвать имя пользователя или адрес электронной почты, lightID, команду на моем веб-сервере. Может ли это сделать Google Ассистент? Если бы не то, как бы этого добиться.


person user8222166    schedule 27.06.2017    source источник


Ответы (1)


Похоже, вы хотите взглянуть на Действия в Google Smart Home API, которые будут позвольте элементам управления Assistants Smart Home работать напрямую с вашим управляющим сервером.

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

  1. Вам понадобится сервер OAuth2, который может выдавать токены, представляющие ваших пользователей. Вот как Google свяжет учетную запись пользователя в Ассистенте с вашей учетной записью и как Google будет определять (для вас), какой пользователь выдает команду.

  2. Вам нужно будет реализовать веб-перехватчик по URL-адресу на вашем веб-сервере. Этому веб-перехватчику будет отправлено сообщение POST, содержащее заголовок с действующим токеном аутентификации (который вы выпустили) и тело JSON. JSON будет содержать информацию о команде, выданной пользователем. Тело вашего HTTP-ответа также будет в формате JSON. Для получения подробной информации о форматах JSON и всех полях, которые он может отправлять и на которые вы должны ответить, обратитесь к документации Google.

Существует ряд различных команд (которые Google называет «намерениями»), которые Google может отправлять вам от имени пользователя. Вы должны иметь возможность обрабатывать все из них, запрашивая или изменяя свою базу данных:

  • SYNC - запрос о том, какие устройства есть у этого пользователя, некоторую информацию об их конфигурации и какие команды он уважает.
  • QUERY - каково текущее состояние устройств этого пользователя.
  • ВЫПОЛНИТЬ - измените состояние на некоторых устройствах пользователя.
  • RESYNC - (будущее обновление) повторный запрос информации об устройстве пользователя.
person Prisoner    schedule 27.06.2017
comment
Не могли бы вы уточнить, как на самом деле подключить его к моему серверу управления? заранее спасибо - person user8222166; 28.06.2017
comment
В документации должны быть подробности, но я обновил свой ответ более обширным обзором. - person Prisoner; 30.06.2017
comment
Хорошо, спасибо. Я разберусь с этим и дам вам знать :). Спасибо - person user8222166; 30.06.2017
comment
Если у вас есть конкретные дополнительные вопросы или проблемы, не стесняйтесь задавать другой вопрос. Удачи! - person Prisoner; 30.06.2017