我所有的硬件都已开发。我使用MQTT进行设备之间的通信,有灯光,风扇,加热器和更多物联网设备。我可以从建造的Android应用程序中控制所有这些。我想使用Google Assistant来控制我的设备。我的灯的状态(打开/关(存储在SQL数据库中,并且当对数据库(由硬件检测到(发生更改时,我的硬件可以控制特定的光。在我的Android应用程序中,我执行的操作是在我的硬件平台检测到的光(开/关(的数据库值(ON/OFF(。我可以使用Google Assistant更新SQL数据库值吗?我可以创建一个Web服务器(ASP.NET C#(,如果Google Assistant可以调用用户名或电子邮件,LightID,命令到我的WebServer,则将命令传递到我相关客户的SQL数据库。Google助手可以这样做吗?如果不是这样,将如何实现。
听起来您想查看Google Smart Home API上的操作,这将使助手智能家庭控制直接与您的控制服务器一起使用。
不确切地知道您的数据库或现有Web服务器的配置或托管方式,我只能大致讲话。您的Web服务器将需要实现两件事:
-
您需要一个可以发出代表用户的代币的OAuth2服务器。这就是Google将用户在助手上将用户帐户与您的帐户相关联的方式,以及Google将如何识别哪个用户发出命令。
-
您需要在Web服务器上的URL上实现Webhook。此Webhook将发送一条邮政消息,其中包含带有有效的auth令牌(您发行的(和JSON主体的标题。JSON将包含有关用户发出的命令的信息。您的HTTP答复正文也将是JSON。有关JSON格式及其可以发送的所有字段的详细信息,并且您必须回复,请咨询Google的文档。
Google可以代表用户发送许多不同的命令(Google调用"意图"(。您应该能够通过查询或修改数据库来处理所有这些:
- 同步 - 对本用户具有的设备,其某些配置信息以及他们尊重的命令的请求。
- 查询 - 此用户设备的当前状态是什么。
- 执行 - 更改某些用户设备上的状态。
- resync - (未来更新(重新重新征用用户设备信息。