我本地网络中的物联网设备如何从其他网络控制?

物联网 联网 路由器 小米米
2021-06-18 13:54:45

我有一些小米/飞利浦的 WIFI 灯泡。它是使用小米之家应用程序控制的。当我与灯泡在同一个网络中时,或者当我在完全不同的地方,在不同的网络中时,我都可以控制它(打开/关闭)。

这怎么可能?

我知道在同一个 wifi 网络中时,我的手机可以直接与灯泡通话(虽然我不知道现实中是否会发生这种情况)。但是,当我在不同的网络中时,它是如何工作的?

我假设 Mi Home 实际上并没有直接与灯泡对话。我相信它与一些实际与灯泡通信的云服务器进行通信。但是,这样的服务器(在云中)如何与我本地(NATted)网络中的灯泡通信?我的路由器上没有为灯泡设置任何端口转发。

我认为可能的唯一方法是,灯泡是否通过按计划(每隔几秒?)调用一些 API 来检查云中是否有任何命令 - 某种形式的 HTTP 轮询。我不喜欢这个想法,因为这意味着如果我有几个这样的灯泡,我的网络会非常“拥挤”。

那么,我如何能够从另一个网络控制我的灯泡?

1个回答

您的所有设备都在打开与云的持久连接。他们将使用基于消息传递的协议(例如 MQTT)而不是像 HTTP 这样的请求/响应协议。

消息通过这些类型的协议双向流动,灯泡用它们的当前状态更新云,而云发送命令来改变状态。