I wanted to share a setup that may save other Mitsubishi / MELCloud users some trial and error.
I use Mitsubishi Electric air conditioners with Home Assistant. The project now contains examples for both:
- the legacy **MELCloud** integration
- the newer **MELCloud Home** integration
The main problem I wanted to solve is that the temperature sensor inside the Mitsubishi indoor unit does not necessarily represent the actual comfort temperature in the room.
In my setup I therefore use external room-temperature sensors as the real comfort reference.
- **Bedroom:** one external room-temperature sensor
- **Living room:** several external temperature sensors combined as a mean value
Home Assistant keeps a separate desired-room-temperature helper and compensates only the Mitsubishi target temperature.
The important point in the current MELCloud Home version is:
- **AUTO stays AUTO**
- **HEAT stays HEAT**
- **COOL stays COOL**
Home Assistant does not force mode changes during normal operation.
Instead, it applies a target-temperature offset based on the external room temperature.
For MELCloud Home AUTO mode:
```text
error = external room temperature - desired room temperature
virtual error = error * 1.5
Mitsubishi target =
Mitsubishi internal temperature - virtual error
Example:
external room temperature = 23.8 °C
desired room temperature = 22.0 °C
Mitsubishi internal temp = 22.0 °C
error = 1.8 °C
virtual error = 1.8 * 1.5 = 2.7 °C
target = 22.0 - 2.7 = 19.3 °C
rounded target = 19.5 °C
The Mitsubishi unit remains in native AUTO and still performs its own compressor and fan control.
For explicit HEAT or COOL, the correction factor remains 1.0:
target =
Mitsubishi internal temperature
- (external room temperature - desired room temperature)
A small neutral zone is used around the real desired room temperature:
desired ±0.25 °C
Inside this range, the artificial offset is removed so the Mitsubishi can reduce output naturally near the real room target.
The correction is limited to:
±3.0 °C
and the final target is rounded to the nearest:
0.5 °C
The current public MELCloud Home example also includes protection against duplicate cloud writes.
A normal 5-minute automation check is kept as a retry / safety check in case the cloud has not yet confirmed the requested target.
Important:
This is not a forced 5-minute MELCloud Home refresh.
The older forced homeassistant.update_entity refresh workaround is only relevant to the legacy MELCloud integration.
The newer MELCloud Home integration already performs its own regular cloud polling.
Optional horizontal swing control is also included in the public example.
When enabled, the example uses horizontal swing while the real room temperature is still clearly away from the desired value and returns the vane to centre near the target.
The public example intentionally does not include installation-specific logic such as:
- radiator control
- FRITZ!DECT logic
- auxiliary electric heaters
- weather-based heating lockouts
- holiday logic
- house-specific schedules
- local network details
GitHub repository:
Current MELCloud Home public example:
melcloud_home_external_temperature_control_public.yaml
The original Mitsubishi infrared remote was not tested because I do not normally use it.
The tested control paths are:
- Home Assistant
- MELCloud / MELCloud Home
- supported app controls
- voice control
Feedback from other Mitsubishi / MELCloud Home users is very welcome, especially regarding:
- native AUTO behavior
- suitable offset factors
- different Mitsubishi indoor-unit models
- single vs multiple external room sensors
- horizontal vane behavior
- original IR remote synchronization
- cloud update delays
The current AUTO factor of 1.5 is based on practical testing in one installation. It is not claimed to be an official Mitsubishi parameter and may need tuning for other rooms or units.