Midea AC LAN: local control for Midea M-Smart appliances in Home Assistant
Project brief: Auto-configure and then control your Midea M-Smart devices (Air conditioner, Fan, Water heater, Washer, etc) via local area network.
At a glance
- What is it?
- The wuwentao/midea_ac_lan integration discovers Midea appliances on your LAN and drives them over a long TCP connection, but Midea is closing the cloud token APIs it depends on for adding new devices.
- Who is it for?
- Adopt it if you run Home Assistant 2024.4.1 or newer, have a Midea appliance already reachable on a static IP, and are willing to back up the per-device .json configuration file outside HAOS. Skip it if you have not yet added your appliance and cannot obtain a token while NetHome Plus token APIs remain open, or if you want a vendor-supported path.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 18, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Midea AC LAN solves, and for whom
Midea's own apps route commands through Midea's cloud. This integration takes the other path: it talks to the appliance over the local area network, so a command does not leave your house. The README frames the project as a way to "Control your Midea M-Smart appliances via local area network," and the supported list is broad, covering air conditioners, fans, water heaters, washers, dishwashers, refrigerators, rice cookers and more, each with a document under doc/ keyed by an appliance code such as AC, FA or DA.
The audience is Home Assistant users who already own Midea M-Smart hardware and want it in the same dashboard as everything else, without a cloud round trip. The integration is a custom component, not a standalone service, and the README states plainly that Home Assistant 2024.4.1 or higher is required. If you do not run Home Assistant, this project is not for you.
How the integration talks to an appliance
Three layers are visible in the repository. Discovery and configuration happen through Home Assistant's config flow UI, which the README describes as automated device discovery and configuration. Credentials and per-device secrets are the second layer: during setup you may be asked for a Midea account and password, because the integration needs to retrieve the appliance Token and Key from a Midea cloud server. The README notes that once all appliances are configured, the account configuration can be removed without affecting their use.
The third layer is the live connection. The README says status is synchronized "by long TCP connection in time," so the integration holds a persistent socket to each appliance rather than polling. That is why the README insists on a static IP address for the appliance in your router: the connection is addressed to the device, and a changed lease breaks it. Extra sensors and switches are exposed on top of the core controls, and each appliance type has its own document describing the supported features.
Installing Midea AC LAN and adding a first appliance
The README gives three installation routes. HACS is the shortest if you already run it: add the repository through the HACS custom repository flow, then restart Home Assistant. The script option runs in the HA Terminal or SSH add-on and pulls the latest release archive.
wget -O - https://github.com/wuwentao/midea_ac_lan/raw/main/scripts/install.sh | ARCHIVE_TAG=latest bash -Manual install is the fallback: download midea_ac_lan.zip from the latest release, copy it into /custom_components/midea_ac_lan in your Home Assistant configuration, and restart. After any of the three, open Settings, then Devices & services, then Integrations, and add Midea AC LAN.
Before adding a device, set a static IP for the appliance in your router. The README warns this is needed because the address can change after setup. You can then let the integration discover appliances on the network, or point it at a broadcast address to search a subnet.
192.168.1.255During configuration you may be prompted for your Midea account and password so the integration can fetch the Token and Key. Once a device is added, the README recommends copying its .json configuration file to a backup device outside HAOS; the debug document at doc/debug.md#get-device-json-config explains how to retrieve it. Devices added under the older georgezhao2010/midea_ac_lan integration survive the switch: the README says they are not deleted and do not need to be rediscovered, though you may need to enable them under Settings, Devices & Services, Midea AC LAN, Devices, CONFIGURE.
The cloud token shutdown is the real constraint
The most important thing in this repository is not a feature. It is a notice. The README states that Midea has closed the server-side Token APIs in Meiju Cloud and Smarthome Cloud, and that the project switched to NetHome Plus cloud Token APIs to add new devices, with those expected to close successively. If they do, adding new devices stops working.
The README gives Midea's stated reason: the v1 LAN API assumed client communication was already encrypted, so tokens issued by the cloud had no expiry. Because many Home Assistant plugins on GitHub use cracked client encryption, those non-expiring tokens became a security problem, and Midea is moving to a v2 cloud control API that will make the v1 LAN control API unusable.
That changes how you should read the installation steps. Adding a device is the fragile operation, not controlling one. The README's instruction to back up each v3 device's .json file outside HAOS exists precisely because re-adding may not be possible later. Note the README's own qualifier: old v2 devices have no json config file, only v3 devices do. If your appliance is v2, that backup route is not available to you.
Where this is the wrong tool
If your appliance has not been added yet and you are reading this after the NetHome Plus token APIs close, the integration cannot help you add it. That is a hard boundary set by Midea, not a bug the maintainer can patch. The README says the token services are expected to be closed successively, which prevents adding new devices in the future.
There is a second boundary that is easy to miss. This is a Home Assistant integration, so it has no meaning outside Home Assistant. Someone who wants a command-line tool or a standalone daemon will not find one here; the repository ships a custom component, documentation and scripts, not a general-purpose client. A third: the README requires Home Assistant 2024.4.1 or higher, so older installations are out of scope regardless of the appliance.
Finally, the static IP requirement is a real operational cost. Every appliance you add needs a fixed lease in your router. In a network where you cannot control DHCP reservations, expect the connection to break whenever the address changes.
Midea CCM15 controller and other paths compared
People searching for a Midea CCM15 AC controller are usually looking at a different layer of the same problem. A CCM15 is a wired gateway that sits between the indoor units and the network, and it is a hardware purchase. This integration is software that speaks to the appliance's own Wi-Fi module. If your unit has no Wi-Fi module, or you want one gateway covering several indoor units rather than one network client per unit, the hardware route addresses something this project cannot.
The other alternative is simply the vendor app. It stays current because Midea maintains it, and it will keep working after the v1 LAN token APIs are gone. The trade is that commands travel through Midea's cloud, and you get no Home Assistant entities, no automations and no local-only operation. Choosing between them is really a choice about whether local control is worth depending on a token you cannot renew.
Licence, maintenance and upgrade cost
The repository is MIT licensed, and pyproject.toml declares the same for the packaged project. MIT is permissive: you can modify and redistribute the integration, including inside a commercial product, provided the copyright notice and permission notice are preserved. That is a description of the licence text, not legal advice; read LICENSE yourself if the distinction matters to you.
On maintenance, the last push was on 2026-08-12, and the most recent release is v2026.8.0 from the same date, following v0.7.1 and v0.7.0 in July 2026. The version scheme has moved to calendar-style tags. Upgrading is not free of coordination: pyproject.toml pins Home Assistant versions by Python version, with homeassistant==2024.4.1 on Python 3.12, homeassistant==2024.12.1 on 3.13, and homeassistant==2026.3.1 on Python 3.14.2 and above, and requires-python is >=3.12,<3.15. The runtime dependency is midea-lan==2026.9.1, so the integration's behaviour is partly governed by that separate package. If you track Home Assistant releases closely, expect to keep the integration and that dependency in step.
Editorial conclusion
Adopt it if you run Home Assistant 2024.4.1 or newer, have a Midea appliance already reachable on a static IP, and are willing to back up the per-device .json configuration file outside HAOS. Skip it if you have not yet added your appliance and cannot obtain a token while NetHome Plus token APIs remain open, or if you want a vendor-supported path. Before installing, confirm your appliance type has a matching document under doc/ and that the integration is actually needed rather than the vendor app.
Frequently asked questions
Can I connect a Midea AC to WiFi so Midea AC LAN can control it?
The integration controls Midea M-Smart appliances that are already on your local network, so the appliance needs its own Wi-Fi connectivity first. The README also asks you to give the appliance a static IP address in your router, because the address can change after setup and break the connection.
Can I control my Midea AC with my phone using Midea AC LAN?
Not directly. This is a Home Assistant custom component, so control happens through Home Assistant, and the README requires Home Assistant 2024.4.1 or higher. The vendor app remains the phone-first option.
What are the common issues with Midea AC units when using Midea AC LAN?
The README highlights two: the appliance IP address changing, which is why a static IP is required, and the closure of the cloud Token APIs, which prevents adding new devices. It also notes that v2 devices have no .json configuration file to back up, only v3 devices do.
Community notes