Google 助理 API,控制连接到 Google 主页的电灯开关

Google Assistant API, controlling a light switch connected to Google Home

我的机器 A 刚好可以生成 .png 文件。它同步到机器 B,我在机器 B 上查看它。

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

我想让机器 B 运行 一个脚本来查看文件是否超过 1 天,如果是,则重置机器 A 的电源开关,以便它可以冷启动。开关已连接到 Google 主页,但我知道我必须使用智能助理 API。

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

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

来自文档:

Your project captures an utterance (a spoken audio request, such as What's on my calendar?), sends it to the Google Assistant, and receives a spoken audio response in addition to the raw text of the utterance.

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

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

为了回答你的具体问题,如果你想使用 Google Assistant SDK,你可以将你的开关命名为“服务器 A 开关”,并录制一段你说“关闭服务器 A”的短片开关”和“打开服务器 A 开关”并发送这两个 google。 google 将请求与您的特定帐户匹配的方式是通过 OAuth2 令牌,google 将给您以换取有效的登录凭据。

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

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

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

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

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