当用户对 Google 助手说 "Hey Google, turn on the light" 时,我们是否需要 Google 的特殊许可才能接收命令?

Do we need a special permission from Google to receive the command when the user has said "Hey Google, turn on the light" to Google Assistant?

我曾经想过如果我可以创建一个虚拟(软件)灯会怎样。也就是我创建了一个软件桥来开启不懂的东西Google助手。请参见下图。

[用户]---("Turn on the light!")---->[Google Home/Assistant]---("Hey, you said you are a light, right? Turn yourself on.")----> [我的虚拟灯软件]---("Yeah... thaaaat's right, I'm a light... (NOT!)" 并发送一些专有信号来打开设备)--->[一个哑设备]。

知名公司的智能灯泡可以用这样的命令打开,但我唯一能做到的是"Hey Google, tell X"然后说"turn on Y",这还不如直接说[方便] =28=]。以为自己做不出这样的虚光软件就放弃了

现在,我已经阅读了一家(大概是小型)灯泡公司的软件开发请求。他们似乎已经有了一个 Android 应用程序来打开他们的灯泡或改变它的亮度,但他们想要使用 Google 助手来控制它。该公司是否需要 Google 的特别许可或合同?

如果有一种方法可以在没有这些的情况下实现这样的功能,这是否意味着我也可以创建一个虚拟灯软件来打开其他东西(比如我的廉价、笨拙的电子风扇,我已经可以打开了通过发送 IR 代码继续我的简单应用程序)?

对于任何 third-party 开发人员或公司来说,开始将他们的智能家居设备与 Google 智能助理集成起来实际上真的很容易。

documentation shows how to get started, and there's a sample 可让您创建虚拟灯、吸尘器和一些其他设备。

一切都通过云集成工作,而不是直接通过红外信号或任何其他本地无线协议。如果您有其中之一,则需要有一个连接到云并处理请求的中间集线器。

基本上您需要处理三种不同的意图。当用户将他们的 Google 帐户链接到您的云服务时,您的服务将获得 SYNC 意图。您将必须使用该用户的设备进行响应,该设备位于 JSON 负载中。

当用户发出直接命令时,您的云服务将获得带有 JSON 负载的 EXECUTE 意图。从这里,您需要将结果发送到您的 device/hub。如果你想打开一个设备,你会得到一个 OnOff 类型的命令和 key-value 对 on: true.

智能家居文档显示了一些受支持的设备,例如灯泡。对于不受支持的类型,您可以假装您的任何东西都是灯。只要您的设备标有受支持的 traits,用于打开和关闭的语法就可以正常工作。 (尽管说 "turn on the lights" 可能会导致意外的用户体验)