Midea Smart AC
mill1000/midea-ac-py · v2026.10.0
Home Assistant custom integration for local control of Midea (and related brands) air conditioners.
In Apple Home through HomeKit Bridge
What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.
| Entity | Shows up as | Note |
|---|---|---|
switch | Switch or outlet | |
climate | Thermostat | |
fan | Fan | |
binary_sensor | Sensor (motion, contact, leak, smoke…) | |
sensor | Sensor (temperature, humidity, air quality…) | |
button | Button (as a switch) | |
select | Mode picker (as switches) |
2 reports below say how a device from this integration behaves in the Home app.
What people report
Midea Wi-Fi air conditioners work locally via msmart-ng; commercial CC units are supported and heat pump support is pending. Cloud login is needed during setup and sometimes fails. HomeKit Bridge exposes climate but not the fan slider.
- Works3
- Partly works2
- Requested1
| Device | In Home Assistant | In Apple Home | What they said | Source |
|---|---|---|---|---|
| Midea AC with mismatched LAN/cloud IP | Works Local | Devices failed to add when LAN and cloud IPs differed; fixed in msmart-ngSaved copyAfter a few weeks of running the integration, 3 of my devices went offline. Has anyone else seen the case where the device IPs differ between LAN and cloud? ➜ ~ msmart-ng discover INFO:msmart.cli:Discovering all devices on local network. WARNING:msmart.discover:Reported device IP 192.168.1.86 does not match received IP 192.168.1.85. INFO:msmart.cloud:Using Midea cloud server: https://mp-prod.appsmb.com (China: False). WARNING:msmart.discover:Reported device IP 192.168.1.51 does not match received IP 192.168.1.50. WARNING:msmart.discover:Reported device IP 192.168.1.247 does not match received … Excerpt saved from GitHub on 2026-10-23. | Issue #48 · 2023-10 | |
| Midea air conditioners | Works | Work great via HACS integration or ESPHomeSaved copyDaikin and Gree are fully local. Midea based units also work great either via Midea Smart AC (HACS) or integrated via ESPhome. Excerpt saved from the Arctic Shift Reddit archive on 2026-10-23. | Reddit comment · 2025-06 | |
| Midea commercial air conditioner (CC) | Works Local | Commercial AC device type with climate modes and fan speeds addedSaved copyAdd support for CC device types CC device are "Commercial Air Conditioners". They support a number of similar features to AC devices such as * Normal climate functionality: modes, presets, fan speeds, swing mode * Swing angle * Purifier, aux heat * Maybe more? Discovery should handle CC devices automatically, but the type must be specified when configuring manually. Requires https://github.com/mill1000/midea-msmart/pull/233 Closes #374 Remaining work - [x] Update options flow to only display relevant functionality based on device type - [ ] ~Hide/remove SwingAngle.CLOSE option from … Excerpt saved from GitHub on 2026-10-23. | PR #380 · 2025-09 | |
| Midea AC (fan speed in HomeKit) | Partly works | Partly in Home Fan speed slider not exposed on HomeKit thermostat; maintainer says bridge limitation | Custom fan speed slider not exposed through HomeKit BridgeSaved copyI noticed that there is a custom control slider for fan speed control. Is there any workaround that I could publish this slider to HomeKit via HomeBridge? It will be nice if it also would integrate within native HomeKit thermostat fan speed slider. HomeBridge kind of makes fan speed as a HomeKit fan. Excerpt saved from GitHub on 2026-10-23. | Issue #91 · 2024-02 |
| Midea PortaSplit AC | Partly works | Partly in Home Fan speed percentages map inconsistently to HomeKit | Works in HA; fan speed percentage maps oddly in HomeKit BridgeSaved copyHomeKit fan speed exposed with incorrect percentage mapping ## Bug Description I am using a Midea PortaSplit AC integrated via `midea-ac-py` in Home Assistant. The device works correctly inside Home Assistant, but when exposed to Apple HomeKit through the Home Assistant HomeKit Bridge integration, the fan speed values appear to be mapped inconsistently between Home Assistant and HomeKit. ## What happens ### Example 1 * In Home Assistant: * `number.klimi_luftergeschwindigkeit` reports `1%` * In HomeKit: * the exposed climate entity `climate.klimi` shows `100%` ### Example 2 * Setting the fan … Excerpt saved from GitHub on 2026-10-23. | Issue #418 · 2026-05 |
| Midea C3 heat pump | Requested | Heat pump (0xC3) support proposed in open PRSaved copySummary - Add `HeatPump` (0xC3) device type to config flow: device type selector, cloud credentials (MSmartHome account/password), auto-discovery of device ID via UDP probe - Add `MideaClimateHeatPumpZone` climate entity: zone1 power, target temperature, HVAC modes (HEAT/COOL/AUTO/OFF) - Add sensor entities for water temperature, outdoor temperature, electric power, thermal power - Wire up `SmartHomeCloud` login in `async_setup_entry` for HeatPump devices (cloud relay instead of LAN) - Skip `get_capabilities()` and capability overrides for HeatPump - Add translations for all new fields and … Excerpt saved from GitHub on 2026-10-23. | PR #417 · 2026-05 |
Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.
How it connects
Local polling
Talks to the device on your network, asking it for updates every so often.
Details
| Installs (analytics) | 3,531 (0.5%) |
|---|---|
| GitHub stars | 529 |
| Latest version | 2026.10.0 (2026-10-07) |
| Set up in the UI | Yes |
| Maintainers | @mill1000 |
| License | MIT |
Notable forks
Forks with stars, or with code pushed at least 90 days after the original’s last push. Useful when the original goes quiet.
| Fork | Stars | Last push | Description |
|---|---|---|---|
| cjay42/midea-ac-py | ★ 14 | 2026-07-24 | Home Assistant custom integration for local control of Midea (and related brands) air conditioners. Fork with additional sensors, only tested on Midea PortaSplit. |
In ReReHome
Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.
Bridges get their own settings page listing the accessories behind them.
Sources
- Documentation: https://github.com/mill1000/midea-ac-py
- Source code: https://github.com/mill1000/midea-ac-py
- Issues: https://github.com/mill1000/midea-ac-py/issues
- HACS: https://hacs.xyz