通过Wi-Fi进行空调控制

这个话题已经被反复提出,甚至有解决方案,但是我将告诉您另一件事。当浏览一个受欢迎的在线网站时,我遇到了一个以前未知的设备Broadlink RM Mini3。当时的价格为9.90美元。这比类似物便宜得多。但是下面还有哪些缺点。


图片

该设备是一个圆柱体,其上部有360度的IR传感器。设备管理是通过应用程序进行的。您可以控制任何具有红外接收器的设备。但我的目标是控制空调。回家后,他已经设法创造出舒适的温度。

我的第一个问题是,在对设备进行培训之后,我的空调不接受从服务器自动下载的命令。一切都是通过手动配置遥控器来决定的,程序中就有这样的机会。但这还不是全部,我接下来意识到的是,某些命令(例如,更改风扇速度)也包含温度。事实证明,如果我更改了风扇速度,则设备训练期间的温度也会发生变化。

事实证明,应用程序无法通过VPN看到设备。在Android应用程序中,将自动检测该设备并在网络上找到该设备;您无法手动选择地址。

以下内容并不重要,但可以使用制造商的云服务对互联网进行细微的控制。尽管应用程序和设备直接在本地网络上进行通信,但有人不想控制Internet。不存在开放的API。

使用WiFi路由器上的流量嗅探,结果发现应用程序和设备在端口80上相互通信UDP数据包。

tcpdump -w /tmp/dump.cap host <ip >


图片

决定在本地Web服务器上创建一个控制台来控制空调。从一开始,我们就在专有应用程序中创建远程控制:

图片

之后,我们启动嗅探器并开始缓慢执行所有命令。停止嗅探器并确保数据包数量与已执行命令的数量匹配,然后将其复制到Web应用程序。唯一乏味的事情是要记住不同转速下的温度。结果是:

图片

之后,我关闭了设备的Internet访问。

所有代码发布在GitHub上

Source: https://habr.com/ru/post/zh-CN396347/


All Articles