Our Mitsubishi Ecodan replaced the 13-year-old DIY Daikin conversion in the summer of 2023, and it took me three attempts to get it into Home Assistant properly. Here is what runs now and what the data has been good for.
Attempt one was the official route. The installer offered a MELCloud Wi-Fi adapter, I bought it because Home Assistant has a MELCloud integration, and that was the whole justification. The app is quite frankly crap, and the integration is a cloud poll for a device sitting two meters from my router – a handful of values, second-hand and late. Nothing from the compressor side either, no frequency, no flow rate. That adapter is now gone.
In December 2023 an ESP32 went onto the CN105 service port instead, running rbroker’s ecodan-ha-local. Local, MQTT, every value the FTC controller knows. I ran it for a month without a logic level converter between the 5 V port and the 3.3 V ESP32, don’t ask why, and added one in January. Overall, it was good, but it lacked features.
Attempt three, April 2025, is what runs today: gekkekoe’s esphome-ecodan-hp on an ESP32-S3. Same port, but native Home Assistant integration with no broker in the chain, OTA updates and a Bluetooth proxy on the side. It exposes many entities – flow and return temperatures, compressor frequency, fan speed, refrigerant temperatures, flow rate, defrost state – and since an October update the FTC’s internal energy meter as separate heating, cooling and DHW counters, consumed and delivered.


The counters are where it gets interesting. Last winter the unit took 4.0 MWh and delivered 12.4 MWh of heat, a seasonal COP of 3.14, with January at 2.75 (the COP vs outside temperature chart is the same data). Hot water runs at 2.0 to 2.4 because it goes to 51 °C. Cooling this summer came out at 3.6. Consumption is metered, output is the unit’s own flow and delta-T estimate, so treat the ratios as consistent rather than absolute.
The less flattering discovery was cycling. Hourly statistics on compressor frequency show that 77% of last winter’s running hours had a stop-start in them, worst between 0 and 10 °C outside. At its lowest modulation, the unit still pushes 4.3 to 5 kW into a house that mostly wants less, so it runs, overshoots the flow target, stops, and does it again. 6 500 compressor starts on 8 345 hours of runtime says the same thing. An 11 kW Zubadan was sized for the −15 °C week, not for a March afternoon. For the coming season, an automation drives the adaptive setpoint bias: +0.5 °C in three blocks (early morning, the PV window after noon, evening) and −1 °C in between when it is above 2 °C outside, so the unit runs fewer, longer sessions. It is dormant until the zone flips to heat, so I cannot claim it works yet. October will tell.
Defrost is the other thing worth watching. A binary sensor pushes a notification on every defrost cycle and history_stats counts them per day, the record so far is 103 minutes on one foggy day around freezing in January. Flow rate is the sensor I should have watched earlier – the 2024 annual service made the difference obvious, now a drop shows up on a graph rather than a year later.
Then the plumbing side, which the heat pump knows nothing about. A Sonoff Basic runs the house circulation pump and follows the operation mode sensor: on when the unit enters space heating or cooling, off eight hours after it goes idle. The five fan-coil thermostats (Salus FC600 via Jordi-14’s integration, where I reported an hvac_action bitmask bug, fixed in v0.9.3) are switched off when the buffer tank cannot support the mode – above 16 °C in cooling, below 25 °C in heating – and only the rooms the guard turned off get turned back on. Window contacts from the alarm panel put a room’s thermostat on hold while the window is open. When the Fronius GEN24 drops into backup mode the heat pump is switched off three minutes later and back on when the grid returns, the battery has better things to do. And the Ohmpilot’s heating rod flips from the DHW tank to the buffer when the water is above 65 °C and the house is in heating, so PV surplus goes into the floor instead of boiling the tank.
A full winter of counters is the part I did not have before, and it is what turns “the heat pump seems fine” into a list of things to fix. If you have an Ecodan and still use the MELCloud adapter, an ESP32 and a cable is a much better solution.
