问题描述
我尝试构建我的自定义 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 的同步性质。