如何从 Google Home 将直接命令发送到没有应用程序名称的自定义智能设备?

问题描述

我尝试构建我的自定义 IoT 设备,该设备将通过 Google Home 设备进行控制,并为残障人士提供服务。

设备本身是 Tiva C Launchpad,我从头开始编程,这意味着我可以完全控制它。

在我看来,用户会说:“Ok Google,按下播放按钮”,因此,Google Home 设备会直接向 IoT 设备发送 press_play_button 命令,最好是通过本地网络。

我找到了 Google Action SDK 以及 Local SDK 扩展名,但如果我理解正确,我必须先进入应用模式(“OK Google,播放 {app_name}”),然后才能发出动作我要,不方便。

有什么办法可以达到我的要求吗? 如果没有,我可能会放弃本地网络控制,使用某种 webhook 向我的智能设备发送 HTTP 请求,在这种情况下,我想知道 MQTT 是否更合适。

谢谢。

解决方法

本地 SDK 是 Smart Home API 的扩展。如果您的设备与 Smart Home API 支持的设备类型和特性相匹配,那么您就可以使用它来控制您的设备。

它支持 media players,因此应该可以实现播放/停止之类的功能。

我已经使用 MQTT 构建了通用智能家居控制来访问设备,但您必须提供一个 HTTP 端点供 Google 系统与之交互。这需要考虑一下,因为您必须将 MQTT 异步方法映射到 HTTP 的同步性质。