你如何编写一个 Google 动作发布到本地网络上的 API

How do you write a Google Action that posts to an API on the local network

我刚开始为一些家庭自动化项目编写 Google 操作。我似乎无法找到有关如何编写将 POST 到本地网络上的 API 的操作的信息。我不想走出防火墙来自动化位于本地 LAN 上的设备和服务。我已经提供了我想要做的事情的图像。

你不能这样做。 Google 家用设备(通常)无法访问本地网络,除了基本的语音处理外,您的操作 运行 在云端而不是本地设备本身。

大多数看起来在本地运行的设备都联系基于云的服务来做他们想做的事。这允许您的智能助理对它们执行操作,即使智能助理设备(例如您的 phone)不在局域网中也是如此。

您的选择非常有限:

  • 查看 IFTTT 是否支持您正在尝试执行的操作,然后将 API 与 IFTTT 一起使用或直接从主页使用 IFTTT。
  • 在 public 互联网端点和您的 LAN 之间设置隧道。
  • 设置一个基于云的服务,让您的本地设备检查状态变化(您可以在此处采用多种方法)。
  • 最后一个变体(受@Nick 的评论启发)是拥有一个本地集线器,用于侦听某些云服务中的更改并在本地分派这些更改。 (同样,有多种方法。)

如果您使用 Google 智能家居操作,您可以使用: Local Execution

我不知道他们是否计划将其扩展到对话流类型的操作。