Google google 的 Google 助理操作

Google Assistant actions on google

我所有的硬件都已经开发好了。我使用 MQTT 在我的设备之间进行通信,我有灯、风扇、加热器和更多物联网设备。我可以从我构建的 Android 应用程序中控制所有这些。我也想使用 Google 助手来控制我的设备。我的灯 (on/off) 的状态存储在 sql 数据库中,只要数据库发生变化(由硬件检测到),我的硬件就可以控制特定的灯。在我的 Android 应用程序中,我做了同样的事情,即更新灯光的数据库值 (on/off),并且我的硬件平台会检测到更改。我可以使用 Google 助手更新 sql 数据库值吗? 如果 google 助手可以调用用户名或电子邮件、lightID、命令到我的网络服务器,我可以创建一个网络服务器(ASP.NET C#)并将命令传递到我相关客户的 sql 数据库。 google助手能做到吗?如果不是如何实现这一点。

听起来你想看一下 Actions on Google Smart Home API,它将让智能家居助手控件直接与你的控制服务器一起工作。

在不确切了解您的数据库或现有网络服务器是如何配置或托管的情况下,我最多只能笼统地说。您的 Web 服务器需要实现两个主要功能:

  1. 您需要一个 OAuth2 服务器来颁发代表您的用户的令牌。这就是 Google 将如何将智能助理上的用户帐户与您的帐户相关联,以及 Google 将如何识别(向您)发出命令的用户。

  2. 您需要在您的网络服务器上的 URL 处实施网络挂接。将向此 webhook 发送一条 POST 消息,其中包含一个 header 和一个有效的身份验证令牌(您颁发的)和一个 JSON body。 JSON 将包含有关用户发出的命令的信息。您的 HTTP 回复 body 也将是 JSON。有关 JSON 格式和它可以发送的以及您必须回复的所有字段的详细信息,请参阅 Google 的文档。

Google 可以代表用户向您发送许多不同的命令(Google 调用 "intents")。您应该能够通过查询或修改数据库来处理所有这些问题:

  • SYNC - 请求此用户拥有的设备、他们的一些配置信息以及他们遵守的命令。
  • QUERY - 此用户设备的当前状态。
  • EXECUTE - 更改某些用户设备上的状态。
  • RESYNC - (未来更新)用户设备信息的re-request。