终于搞定了格力云控,控制中央空调【局域网协议】

您所在的位置:网站首页 空调联网失败114169 终于搞定了格力云控,控制中央空调【局域网协议】

终于搞定了格力云控,控制中央空调【局域网协议】

2023-06-02 18:01| 来源: 网络整理| 查看: 265

本帖最后由 goto100 于 2020-1-17 12:51 编辑

1月17更新:

建议使用 https://github.com/xcy1231/Ha-GreeCentralClimate 版本,可自动发现子设备,无需手动获取子设备 mac

原文:

自从家里安装了格力中央空调,接入 HA 就成了一个难啃的骨头。趁着最近手热,彻底研究了一下,终于被我搞定了。 过程就不细说了,非常曲折,曾一度想放弃走 modbus rtu 方案,但最终在严酷的现实(穷)面前(设备价格小2000),坚持了下来……

格力的通信协议采用的 udp,抓包不太方便,为了看代码各种逆向安卓 apk,最后终于被我找到相关协议代码,上网一搜,居然已经有了?!

https://github.com/arthurkrupa/gree-hvac-mqtt-bridge https://github.com/RobHofmann/HomeAssistant-GreeClimateComponent

原来,格力云控的原理是把自己作为一个父设备,下面的空调作为子设备,而格力云控则直接通过格力普通空调的局域网 udp 协议对外暴露接口,问题在于,以上两个项目都是从普通空调做的逆向,并没有处理父子设备相关的逻辑,且中央空调和普通空调的功能上也有差异,需要做一些适配工作,HomeAssistant-GreeClimateComponent 的适配修改我已经做完了,目前还未合入,可以使用我的修改版 fork:

https://github.com/goto100/HomeAssistant-GreeClimateComponent

最终效果比较满意,状态读取、模式、温度、风向控制一应俱全。除了云控 api 偶尔会报错 400,状态更新可能有延迟。

此方案需要先获取到子设备的 mac 地址,此 mac 地址并不是真实 mac 地址,无法从路由器看到,还得通过官方云 api 获取,后续的运行时为完全局域网通信。感谢群内大佬 yinzhennan 之前的成果,这部分代码我可以不用重新写了: https://github.com/goto100/HomeAssistant-GreeClimateComponent/blob/master/scripts/mac.py

python3 mac.py 用户名 密码

会输出所有子设备的名字和 mac,这里的 mac 就是 HA 插件配置文件中的 mac 了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3