← Frank Seidel
Free · Open Source

Keep your Midea PortaSplit in iECO — automatically, locally, no cloud account

Small, reliable command-line tools that keep your Midea air conditioner's energy-saving iECO mode switched on for you — over your local network, even after you turn the unit off and on by hand, which normally resets it.

🇬🇧 Reading in English — zur deutschen Fassung.

Why this matters right now

Through the 2026 European heatwaves the Midea PortaSplit became one of the most sought-after home appliances of the season. If you managed to get one, it's worth running it as efficiently as it can go — and that means keeping iECO on.

The problem nobody tells you about

iECO can currently be switched on only through the MSmartHome / Midea Smarthome app — there is no physical iECO button on the remote. And it doesn't stay on: every time you power the unit off and on outside the app — at the unit itself or with the remote, which most people do every day — iECO silently switches off again. You won't notice, because the unit otherwise works normally at the temperature you set. Power-cycling through the app preserves it, which is why not every owner runs into this.

ECO vs. iECO — two different modes, easily confused

The remote's ECO button and the app-only iECO are not the same feature.
ECO (button / remote)iECO (app / cloud only)
Activated viaPhysical button on unit or remoteOnly through the Midea app
Target temperatureFixed automatically at 24 °CWhatever setpoint you chose (e.g. 21 °C)
MechanismSimple fixed setpointAdaptive algorithm around your setpoint
Resets after off/on outside the appYes — this is what this tool solves

This project is specifically about iECO — the app-only mode that quietly turns itself off. It never forces 24 °C; it keeps iECO active at the temperature you already set.

What iECO is worth

Midea advertises iECO as saving up to 60% versus standard operation, with up to eight hours of runtime on about 1.2 kWh (Midea's own figures). An independent ten-hour practical test measured roughly 100 W lower draw in iECO than in Auto mode, at a comfortable room temperature. Measurements taken for this project — two identical units, each behind its own power meter, ten days at an unchanged 23 °C setpoint — found 2 to 3.8 kWh per day and unit of avoidable extra consumption when iECO was not active, with no comfort benefit from running without it. The cleaner of the two comparisons came out at 3.8 kWh/day, roughly half the consumption with iECO.

That is an everyday measurement, not a lab test: the days with and without iECO are different calendar days, and outdoor temperature was not logged. What does support the comparison is that the overnight base load is practically identical on both — so the difference arises in the active cooling hours, not simply from hotter days.

A note on those “eight hours”: that is a consumption figure (eight hours of runtime on 1.2 kWh), not a timeout. It is often misread as iECO switching itself off after eight hours. Whether iECO additionally ends by itself after a long undisturbed run is unconfirmed — several PortaSplit owners report never seeing it, and any interaction (app, remote, changing the temperature) appears to reset such a timer. What is reproducible is the power-cycle behaviour described above, and that is what this tool addresses.

The fix

  • midea_ieco_ensure.py — checks and enforces iECO, either always or only when the unit is already running (a safe --only-if-on mode that never powers the AC on for you)
  • midea_refresh_tokens.py — fetches the local access credentials your unit needs, with a single command and no Midea password

Both talk to your air conditioner directly over your local network — no cloud round-trip in normal operation, and no dependency on Midea's servers staying online.

In the press

German tech outlets that have covered this project or worked with its measurements:

  • techboys.de — Gary Madeo, 25 July 2026: on Midea's token-API shutdown; a later update added this project's test protocol on which cloud still issues device tokens.
  • Caschy's Blog — Carsten Knobloch, 26 July 2026: on saving energy with iECO, and on the ECO/iECO mix-up.
  • techboys.de — Gary Madeo, 26 July 2026: the iECO mode in practice, built on this project's consumption measurements (Shelly logs and day-by-day tables).
  • SmarthomeAssistent — Dennis Jakobi, 27 July 2026: a portrait of this project, following the outlet's own report on the token-API shutdown.
  • t3n — Jörn Brien, 27 July 2026: a full portrait of this project — the hidden iECO mode, up to 60% savings, and fully local control after the one-time token fetch.
  • mobiflip — René Hesse, 27 July 2026: a follow-up centred on this project's token-API findings and its local-only control.
  • allround-pc.com — Arian Krasniqi, 30 July 2026: presents the tool as the remedy — the hidden iECO mode, up to 60% savings, purely local control.

For transparency: I supplied the measurement data, the API protocol and screenshots to techboys.de and am credited there as the source. Two pieces followed a press e-mail from me containing the same API findings — SmarthomeAssistent and the follow-up mobiflip article (which notes that I pointed its editors to the tool); the SmarthomeAssistent piece states openly that no independent test of the tool was available to its editors. t3n and allround-pc.com covered the project without any contact from me. The articles were written and fact-checked independently by their authors — no money changed hands in any direction, and I had no say over the wording.

Install in one line

The installer supports Debian/Ubuntu/Raspberry Pi OS, Fedora/RHEL, Arch, Alpine, openSUSE and macOS, with a bilingual (English/German) setup that discovers your units on the network for you:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/tuxbox78/midea-ieco/main/install.sh)"

It's open source — you can read install.sh on GitHub before you run it. The setup needs no Midea account and no password: device tokens are bound to the unit, not to your account, and are fetched locally. Nothing is ever stored in the cloud.

What you get

Requirements

A small, always-on computer on the same network as the unit — a Raspberry Pi, home server, NAS or Mac — running Python 3.11+ (not the iPhone itself). The air conditioner must be reachable on the local network (TCP port 6444) and already added to the Midea app once, for Wi-Fi onboarding. Besides the PortaSplit, iECO-capable Midea rebrands from Comfee, Toshiba, Carrier and Klimaire work too.

Already running Home Assistant?

Then use a Home Assistant integration for the controls — but mind which one: midea-ac-py does expose iECO (it builds on the same msmart-ng library this project uses), while the popular midea_ac_lan cannot set iECO at all — its eco preset is the plain fixed-24 °C mode. Either way an integration only gives you the control; re-enabling iECO after a power cycle still needs an automation on top. This project is for the narrower case: a Raspberry Pi, Mac or small server that should just keep iECO on, without a running smart-home server.

This is an independent, community-built tool and is not affiliated with, endorsed by, or sponsored by Midea Group. “Midea” and “PortaSplit” are trademarks of their respective owner. Provided free of charge, as-is, under the MIT open-source license.