三步搞定美的家电本地化控制:Midea AC LAN 局域网直连方案完全指南
【免费下载链接】midea_ac_lanAuto-configure and then control your Midea M-Smart devices (Air conditioner, Fan, Water heater, Washer, etc) via local area network.项目地址: https://gitcode.com/gh_mirrors/mi/midea_ac_lan
美的家电本地化控制,正在成为越来越多家庭的刚需。Midea AC LAN 就是这样一套开源的局域网直连方案——它让你绕过云端中转,直接在本地 Home Assistant 里掌控家里的美的系空调、风扇、热水器、洗衣机等设备。最吸引人的一点是:哪怕外网彻底中断,这些设备依然听你指挥,秒级响应、数据不出家门。
如果你厌倦了"按下开关等三秒"的迟钝,或者担心自己的使用习惯被悄悄上传到厂商服务器,那么这篇文章就是为你准备的。我们不讲晦涩的协议细节,只把"把遥控器拿回自己手里"这件事,讲清楚、做明白。
第一章 你的智能家电,其实一直在"绕远路"
想象一个深夜场景:你躺在床上准备入睡,随口说了一句"把空调关了",系统却慢吞吞地转圈,三秒后才传来一声"嘀"。你可能会归咎于网络不好,但真相是——你的指令根本没有直奔空调,而是先出了家门。
一次指令的"千里旅行"
当你用厂商 App 控制设备时,指令的实际路径是这样的:
你家手机 → 路由器 → 运营商骨干网 → 厂商云服务器 → 骨干网 → 路由器 → 空调而 Midea AC LAN 的路径只有短短一截:
Home Assistant → 路由器 → 空调前者像极了"让邻居帮忙传话":明明隔壁就是你家,偏要写封信寄到千里之外再寄回来。后者则是"当面沟通":一句"关空调",对方立刻照做。
云端依赖的三笔"隐形账单"
| 账单类型 | 具体表现 |
|---|---|
| 响应延迟 | 指令绕行云端,动辄几百毫秒起步,自动化联动越多越明显 |
| 隐私成本 | 开关机时间、温湿度读数、作息规律全部经由厂商服务器 |
| 单点故障 | 厂商服务器维护、外网波动、运营商故障,都可能让你的家电集体"失聪" |
这三笔账,很多人平时感觉不到,直到某一天外网断了、厂商服务器抽风了,才发现满屋子智能设备一夜之间变成了"半智能"。而局域网直连方案,正是为了把这三笔账一次性勾销。
第二章 Midea AC LAN 是什么:把"遥控器"还给你
简单说,Midea AC LAN 是一个运行在 Home Assistant 上的集成组件,它用逆向工程还原了美的 M-Smart 协议的通信规则,让你的 HA 能够以"设备本尊"的身份,在局域网内直接与家电对话。
它为你做了什么
- 自动发现与配置:通过 HA 界面完成设备搜索与添加,全程可视化,不需要手写配置文件。
- 实时状态同步:与设备维持 TCP 长连接,设备状态一变,HA 立刻知道,无需反复轮询。
- 丰富的实体扩展:除了核心控制实体,还能按需生成温湿度、能耗等传感器,以及电辅热、ECO、无风感等开关实体。
一屋子家电,它几乎都认识
项目为三十多种设备类型提供了专门的协议实现,常见品类基本全覆盖:
空调、风扇、除湿器、空气净化器、加湿器、新风设备、电热水器、燃气热水器、壁挂炉、洗衣机、干衣机、洗碗机、油烟机、冰箱、电饭煲、微波炉、电烤箱、智能马桶、浴霸、灯……
品牌方面也相当宽容:美的、小天鹅、COLMO、东芝、Carrier、Ariston 等,均在其列。你可以把它理解为一座"翻译官团队"——每种家电都配了一位听得懂它方言的本地翻译。
第三章 一次握手、一个保险箱、一条不断线的通道
局域网直连听起来高大上,拆开看其实就三步,每一步都像极了日常生活中的小动作。
第一步:对暗号(握手与 Token 认证)
设备要确认"你是自己人",才肯跟你说话。这个过程叫握手:客户端先发一个身份请求,设备回应一串随机数,双方再交换密钥材料,最后各自推导出会话密钥。整个过程由midea/core/security.py中的 LocalSecurity 类负责,属于典型的"先对暗号、再谈正事"。
第二步:用保险箱传话(AES 加密通信)
暗号对上之后,所有指令都装进"保险箱"再传输——采用 AES 加密,密钥和初始向量由握手阶段动态协商。哪怕有人在你家网络里偷听,看到的也只是一堆无意义的乱码,完全无法还原你在"调温度"还是"开新风"。
第三步:留一扇常开的门(TCP 长连接)
HTTP 那种"问一句答一句、说完就关门"的模式,在这里被换成了"门一直开着":TCP 长连接建立后,设备状态一旦变化就会主动推送,HA 侧甚至可以在主动刷新间隔设为 0 的情况下依然保持状态最新。这正是它响应快、开销小的底层原因。
如果你想亲手验证这套机制,可以从custom_components/midea_ac_lan/midea/core/目录读起:先看device.py(设备通信基类),再看message.py(消息编解码),最后对照security.py(加密认证)和discover.py(发现机制)。想了解某类设备的具体实现,midea/devices/ac/device.py是个不错的入口。
第四章 半小时上手:把第一台设备接进来
理论说再多,不如动手一次。这一章我们走完整条路,全程大概半小时。
动手前的三分钟自检
| 检查项 | 要求 |
|---|---|
| Home Assistant 版本 | 2022.5 或更高 |
| 网络位置 | 设备与 HA 处于同一网段 |
| 路由器设置 | 关闭 AP 隔离,避免设备互相"看不见" |
| IP 地址 | 强烈建议为设备绑定静态 IP,防止重启后地址漂移 |
其中静态 IP 这一步最容易被人忽略,但恰恰最值钱——地址一变,所有配置都要跟着改,绑定好一劳永逸。
安装:两条路任选
路线一:HACS 一键安装(推荐新手)
在 HACS 中搜索 "Midea AC LAN",点击安装,重启 Home Assistant 即可。
路线二:手动安装(想完全掌控)
git clone https://gitcode.com/gh_mirrors/mi/midea_ac_lan把克隆下来的目录中的custom_components/midea_ac_lan整个复制到你的 Home Assistant 的custom_components/目录下,然后重启。
三步接入:从零到控制
第一步,添加集成。在 HA 的"设备与服务"中搜索并添加 Midea AC LAN 集成。
第二步,登录一次美的账号。配置过程中会要求你输入美的账号和密码——别担心,这只是为了去美的云服务器取回每台设备的 Token 与 Key(相当于设备的"身份证 + 钥匙")。全部设备配置完成后,这个账号配置可以删掉,设备照常使用,此后不再有任何云端往来。
第三步,选择添加方式。项目提供了三种,按你的情况挑:
- 自动搜索:组件扫描局域网并列出可发现的设备,你选一台确认即可;也可以指定网段搜索,比如
192.168.1.255。 - 手动配置:如果你从其他途径已知设备 ID、类型、IP、端口(默认 6444)、协议版本、Token 和 Key,可以直接填表添加。
- 仅列出所有设备:只想看看网络里有哪些美的设备,以及它们的 ID、类型、SN 等信息,选这个就好。
多台设备?重复上述流程多次添加即可,集成并不限制数量。
安装后的三个"加分项"
接入成功后,你还可以在集成选项里做三件小事,体验会立刻不一样:
- 调整刷新间隔:默认每 30 秒主动刷新一次状态,设为 0 表示关闭主动刷新。多数设备状态变化时会主动推送,因此即使设为 0 也基本无感,还能省电。
- 生成额外实体:勾选你想要的传感器与开关,比如室内外温度、实时功率、累计能耗、电辅热、无风感、水平/垂直摆风等,让面板信息更丰富。
- 自定义设备参数:部分设备支持 JSON 自定义,比如把空调温度步长从默认的 0.5 改成 1:
{"temperature_step": 1}第五章 进阶玩法:让家电学会"察言观色"
接入只是开始,真正的乐趣在于让设备们互相配合。下面三个场景,你可以在 HA 的自动化里直接照着写。
场景一:下班回家,房间刚好是舒适温度
出门前关掉空调省电,回家前半小时自动开启预冷——用时间触发就能实现:
automation: - alias: "下班回家预冷" trigger: platform: time at: "17:30:00" action: - service: climate.set_hvac_mode target: entity_id: climate.midea_ac_01 data: hvac_mode: "cool" - service: climate.set_temperature target: entity_id: climate.midea_ac_01 data: temperature: 26场景二:深夜入睡,空调自动"退居二线"
设置一个睡眠自动化:到点把温度调高 1 度、关闭电辅热、开启无风感,让风不再直吹床头:
automation: - alias: "夜间睡眠模式" trigger: platform: time at: "23:00:00" action: - service: climate.set_temperature target: entity_id: climate.midea_ac_01 data: temperature: 27 - service: switch.turn_on target: entity_id: switch.midea_ac_01_breezeless - service: switch.turn_off target: entity_id: switch.midea_ac_01_aux_heating场景三:出门前,一键关闭全屋
把空调、风扇、灯光和安防系统串进同一个脚本,出门只点一下:
script: good_bye: sequence: - service: climate.turn_off target: entity_id: climate.midea_ac_01 - service: fan.turn_off target: entity_id: fan.midea_fa_01 - service: switch.turn_off target: entity_id: switch.midea_light_01 - service: alarm_control_panel.alarm_arm_away target: entity_id: alarm_control_panel.home_alarm如果你生成过能耗类传感器(实时功率、累计能耗),还可以顺手接一个能耗看板,配合峰谷电价时段,让空调在电价高的时候自动"收敛"一点——省钱这件事,交给自动化去算就好。
第六章 故障自救:一份能照着做的排查清单
设备接不上、状态不更新,先别急着卸载重装,按下面的顺序过一遍,九成问题都能自己解决。
症状 1:设备搜索不到
- 确认设备与 HA 在同一网段;
- 确认路由器没有开启 AP 隔离;
- 确认设备确实支持局域网控制(部分老款可能不支持)。
症状 2:连接报"认证失败"
- 重新核对 Token 与 Key;
- 重新走一遍"登录账号 → 获取设备信息"的流程,拿到最新的凭据。
症状 3:状态更新很慢
- 多数设备本身会主动推送状态,若你的设备没有此机制,可以尝试把刷新间隔调小,比如从 30 秒改成 15 秒。
症状 4:想深挖原因,日志不够看
在configuration.yaml中开启调试日志,然后盯住运行日志:
logger: default: warn logs: custom_components.midea_ac_lan: debug常见日志关键词的含义也帮你准备好了:
connect failed→ 网络不通,先 ping 设备 IP;invalid token→ 认证凭据有误;timeout→ 设备无响应或网络延迟高;decrypt error→ 密钥不匹配,重新获取 Token/Key。
第七章 常见问题速答
问:这个项目收费吗?完全免费开源。项目仓库地址仅用于手动安装时git clone使用:https://gitcode.com/gh_mirrors/mi/midea_ac_lan,HACS 安装则无需手动下载。
问:接入之后,原来的美的 App 还能用吗?能。局域网直连与原厂 App 是"两条路",互不干扰,你完全可以两者并存。
问:断网真的能用吗?只要设备与 HA 在同一局域网内,外网断开后控制、自动化照常运行。唯一例外是首次配置时需要用一次云账号获取 Token 与 Key,之后云就不再参与了。
问:需要很强的技术背景吗?不需要。全程通过 HA 界面点选完成,唯一稍显技术含量的就是给设备设静态 IP,在路由器后台花两分钟就能搞定。
问:多台设备怎么管理?重复"添加集成 → 添加设备"的流程即可;不同设备类型的协议实现在项目里是模块化隔离的,互不影响。
写在最后:真正的智能,是"当家作主"
Midea AC LAN 的价值,远不止"快了一点、省了一点"。它代表了一种更健康的智能家居理念:设备是你的,数据是你的,控制权也是你的。响应速度从"绕远路"变成"面对面",隐私从"交给别人保管"变成"锁在自己家里",可用性从"看厂商脸色"变成"我说了算"。
你不需要成为协议专家,也不需要看懂每一行代码。你只需要一个周末的下午,跟着这篇文章的步骤,把第一台空调接入本地网络,然后站在开关前,感受一次"零延迟"的回应。
那一刻你会发现:原来智能家居本该如此。从今晚开始,动手吧——把遥控器,重新握回自己手里。
【免费下载链接】midea_ac_lanAuto-configure and then control your Midea M-Smart devices (Air conditioner, Fan, Water heater, Washer, etc) via local area network.项目地址: https://gitcode.com/gh_mirrors/mi/midea_ac_lan
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考