【问题标题】:Google Assistant actions on google谷歌上的谷歌助理操作
【发布时间】:2025-11-24 20:35:01
【问题描述】:

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

【问题讨论】:

    标签: actions-on-google home-automation


    【解决方案1】:

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

    在不确切了解您的数据库或现有 Web 服务器的配置或托管方式的情况下,我充其量只能泛泛而谈。你的网络服务器需要实现两个主要的东西:

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

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

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

    • SYNC - 请求此用户拥有哪些设备、他们的一些配置信息以及他们尊重哪些命令。
    • QUERY - 此用户的设备当前状态如何。
    • 执行 - 更改某些用户设备的状态。
    • RESYNC -(未来更新)重新请求用户的设备信息。

    【讨论】:

    • 您能否更具体地说明如何将它与我的控制服务器实际连接?提前致谢
    • 文档应该有详细信息,但我已经用更广泛的概述更新了我的答案。
    • 好的,谢谢。我会调查这个并让你知道:)。谢谢
    • 如果您确实有具体的后续问题或问题,请随时提出另一个问题。祝你好运!