0

我正在尝试将智能家居设备与 Google home 和 Alexa 集成,但我面临以下问题。

  1. Google Home/Alexa 和我们的设备云服务器之间的通信是 HTTP。
  2. 智能家居设备与我们的设备云服务器之间的通信是 MQTT。

如何跟踪同步请求响应?有没有更好的方法来实施这个系统?

4

2 回答 2

1

完全可能与 HTTP 到 MQTT 并再次返回有关。

我已经为我的 Node-RED 节点为 Alexa 和 Google Home 完成了它。

您只需要跟踪正在进行的请求并在请求/响应 MQTT 消息中包含一个唯一的 ID,同时还需要运行一个计时器来处理来自设备的无响应。

于 2019-01-31T11:32:35.217 回答
0

gBridge 项目(https://github.com/kservices/gBridge;https://about.gbridge.io)基本上实现了普通的 Google Assistant/Alexa 到 MQTT 的桥接

关于您的问题,有两点有助于实施这些解决方案:

  1. 考虑设备或端点,而不是请求。当您只想将 HTTP“翻译”为 MQTT 时,您会引发很多问题,就像您已经发现的那样。您可能希望实现一个逻辑,允许 MQTT 主题控制/查询您的实际设备 - 而不是响应 HTTP 请求的设备。这让事情变得简单多了。
  2. 缓存是必不可少的。允许您的网桥拥有设备状态的本地副本。当拥有正确实现的缓存时,您将不需要任何响应。只需使用缓存的数据。
于 2019-04-29T14:08:44.883 回答