mqtt - 如何在没有应用名称的情况下将直接命令从 Google Home 发送到自定义智能设备?
问题描述
我尝试构建我的自定义 IoT 设备,该设备将通过 Google Home 设备进行控制,并为残疾人服务。
该设备本身是 Tiva C Launchpad,我从头开始编程,这意味着我可以完全控制它。
在我的设想中,用户会说类似:“Ok Google,按下播放按钮”,因此,Google Home 设备将直接向物联网设备发送 press_play_button 命令,最好是通过本地网络。
我找到了 Google Action SDK 以及Local SDK扩展,但如果我理解正确,我必须先处于应用模式(“OK Google,play {app_name}”),然后才能说出我想要的操作,这很不方便.
有什么办法可以达到我的要求吗?如果没有,我可能会放弃本地网络控制,并使用某种 webhook 向我的智能设备发送 HTTP 请求,这种情况下我想知道MQTT是否更适合。
谢谢。
解决方案
Local SDK 是Smart Home API的扩展。如果您的设备与 Smart Home API 支持的设备类型和特征相匹配,那么您可以使用它来控制您的设备。
它支持媒体播放器,因此应该可以进行播放/停止等操作。
我已经使用 MQTT 构建了通用的智能家居控制来访问设备,但是您必须为 Google 系统提供一个 HTTP 端点以与之交互。这需要考虑一下,因为您必须将 MQTT 异步方法映射到 HTTP 的同步特性。
推荐阅读
- java - 我如何制作子弹的旋转图案。(爪哇)
- flutter - 如何在flutter中查看模拟器ui中的元素
- javascript - 元素重复时如何将节点树合并为一棵
- unix - 如何在没有任何插件或工具的情况下使用 Unix 命令将 .xls 或 .xlxs 文件转换为 csv 文件
- python - 使用 Selenium 和 Python 单击网页上的按钮
- javascript - Javascript 解释器如何执行递归函数?
- scheme - 以 * 为后缀的方案名称
- laravel - Laravel 应用程序冻结不再响应
- php - php guzzlehttp 流从 fopen('php://input', "r") 上传到远程端点
- python - 检测对话中的说话人重叠