【问题标题】:Google Assistant API, controlling a light switch connected to Google HomeGoogle Assistant API,控制连接到 Google Home 的电灯开关
【发布时间】:2020-12-09 18:33:16
【问题描述】:

我有一台机器 A,它只输出 .png 文件。它被同步到机器 B,我在机器 B 上查看它。

有时机器 A 出于某种原因崩溃并停止执行计划的作业,这意味着机器 B 上的文件将是旧的。

我希望机器 B 运行一个脚本来查看文件是否超过 1 天,如果是,则重置机器 A 上的电源开关,以便可以冷启动。开关已连接到 Google Home,但请理解我必须使用 Assistant API。

我已经安装了google-assistant-sdk[samples] 包。有人能告诉我一些关于如何查询和返回所有设备然后在该设备上打开和关闭开关的代码吗?

【问题讨论】:

  • 您有任何当前使用的示例代码可以发布吗?
  • 这些codelabsgoogle提供的可以查看
  • 您能分享一下您使用的设备设置类型吗?

标签: python google-assistant-sdk


【解决方案1】:

不幸的是,许多智能家居公司都在为消费者而非开发人员打造产品。谷歌的 SDK 允许开发人员将消费者语音请求流式传输到他们的服务器并将其转化为行动。同样,Gosund 只对亚马逊和谷歌的 API 访问感兴趣。它们的 API 可能没有记录供公众使用。

要回答您的具体问题,如果您想使用 Google 智能助理 SDK,请将您的交换机命名为“服务器 A 交换机”,并录制一段您说“关闭服务器 A 交换机”和“打开服务器 A 交换机”并发送这两个谷歌。谷歌将请求与您的特定帐户匹配的方式是通过 OAuth2 令牌,谷歌将向您提供该令牌以换取有效的登录凭据。

如果 Gosund 与 Google Assistant 一起使用,它有一个标准的 OAuth2 服务器端点以及一个符合 Google Assistant 的 API 端点。如果你想对它进行一些有趣的逆向工程,我只推荐这个。

在您的 Google Assistant 应用程序中,如果您尝试添加 Gosund 集成,第一个屏幕弹出窗口是 url 端点,您可以在其中将有效的 Gosund 帐户凭据交换为一次性代码,然后您可以交换 OAuth2 访问和刷新令牌.使用访问令牌,您理论上可以控制您的交换机。您要发送的命令由 Google 标准化。但是,您必须弄清楚将它们发送到哪里。最好的办法可能是给他们的开发者发电子邮件。

您熟悉 OAuth2 吗?如果没有,我不建议您执行上述任何操作。

您的另一个选择是防止服务器 A 发生硬件崩溃。这是我推荐的最少工作量。您应该从永远不会崩溃的服务器开始,保持这种状态并在其上添加内容。如果您只有两台服务器,它们应该能够维持数月的正常运行时间。使用 cron 或 systemctl 运行计划的作业,并有一个监视程序在检测到错误时重新启动作业。如果您的工作导致服务器崩溃,则可以将其放入 docker 之类的 VM 中,这样可以立即为您提供简洁的自动重启功能。

您可以做的另一件事是安排您的 gosund 插头每天通过他们的消费者 UI 或应用程序关闭和打开一次,或者以您认为最佳的任何频率。

【讨论】:

    【解决方案2】:

    google-assistant-sdk 用于处理音频请求。

    来自文档:

    您的项目捕获话语(语音音频请求,例如我的日历上有什么?),将其发送到 Google 助理,并接收语音音频响应以及话语的原始文本。

    虽然您可以将它与一些录制的短语一起使用,但直接连接到交换机或使用 IFTTT 之类的服务更有意义。是什么样的开关?

    【讨论】:

    • 这是一个 Gosund 智能插头。我不想使用 IFTTT,想留在 Google 生态系统中。首先,如果您拥有超过一定数量的设备,IFTTT 会向您收费。还有身份验证,我宁愿将其全部保存在 Google 上以更安全。我了解它旨在用于录制的短语来触发操作。为什么我不能直接触发动作?
    • 他们不会暴露这一点,可能是为了防止滥用。要从 Google 内部执行此操作,我认为您必须创建一个设备服务并将事件发送到 Google,然后在 google home 中进行编排。也许更容易使用 tasmota 或 esp-easy 刷新您的交换机并直接在您的网络上控制它。见github.com/clach04/python-tuya
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    相关资源
    最近更新 更多