谷歌上的Google智能助理操作

时间:2017-06-27 18:17:15

标签: actions-on-google home-automation

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

1 个答案:

答案 0 :(得分:2)

听起来你想看看Actions on Google Smart Home API,它会让助手智能家居控件直接与控制服务器配合使用。

如果不确切地知道您的数据库或现有Web服务器是如何配置或托管的,我只能充分说明。您的Web服务器需要实现两个主要内容:

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

  2. 您需要在Web服务器上的URL上实现webhook。此webhook将发送一条POST消息,其中包含带有有效身份验证令牌(您发出的)和JSON正文的标头。 JSON将包含有关用户已发出的命令的信息。您的HTTP回复正文也将是JSON。有关JSON格式及其可以发送的所有字段以及您必须回复的详细信息,请参阅Google的文档。

  3. Google可以代表用户向您发送许多不同的命令(Google称之为“意图”)。您应该能够通过查询或修改数据库来处理所有这些:

    • SYNC - 请求此用户拥有的设备,部分配置信息以及他们尊重的命令。
    • QUERY - 此用户的设备当前状态是什么。
    • 执行 - 更改部分用户设备的状态。
    • RESYNC - (未来更新)重新请求用户的设备信息。