Iván Gómez Arnedo

Without using proprietary hardware or proprietary apps (MelCloud)

Recently I moved into a house with ducted ACs. It has on official wall thermostat like this:

Press enter or click to view image in full size

My wifi-less wall thermostat

I can control it’s mode (heath, dry, cool) and the fan mode (high, medium, low) but the problem is that I have to click those buttons physically…

I’m lazy enough to want some refreshing (or warm during winters) air in my face directly when I’m on the sofa or in the bed without having to get up and click the button.

My current setup:

What I wanted

Options discarded

The solution

It’s the reverse-engineered Mitsubishi protocol, now maintained as an ESPHome external component.

Or the native ESPHome component:

Press enter or click to view image in full size

https://github.com/echavet/MitsubishiCN105Esphome#when-to-use-which

Same core but a bit less features (but way easier to install).

Both of them allows us to have:

Mitsubishi cannot update the units remotely, so our configuration should remain valid (the units don’t have Wi-Fi connectivity) .

What CN105 gives instead: it is the same service port the manufacturer’s own Wi-Fi adapter uses, so you get the native protocol: setpoint, mode, fan, room temperature as the unit measures it…. And it works alongside the wall controller rather than replacing it.

Hardware used

How I did it

How to configure the ESP32

A blank ESP32 has no firmware and no Wi-Fi configured so the board plugs into the machine running the browser, not the machine running Home Assistant.

If you have properly installed Home Assistant (HA OS or Supervised as Core or Docker installations do not have add-on store) then it’s easy as you can install the ESPHome add-on then:

Now you can use the native ESPHome version

Press enter or click to view image in full size

Screenshot from my ESPHome Builder add-on

Or do a custom install of the ESPHome external component

If you have chosen the same board as myself, it’s as easy as copy-pasting this pre-configured YAML, into the editor of the device in ESPHome Builder:

Press enter or click to view image in full size

Editor of the device in ESPHome builder

After the first USB flash the board is on Wi-Fi and Home Assistant (HA) auto-discovers it . Every later update is over the air (done from HA if the YAML lives in the add-on).

CN105 pinout

From the official docs: https://esphome.io/components/climate/mitsubishi_cn105/#cn105-pinout

In my specific case with the colors of the cable that I bought:

 ──────────┬───────────┬─────────────┬────────────────────┐
│ Cable │ Pin CN105 │ Signal │ ESP32 (board) │
├──────────┼───────────┼─────────────┼────────────────────┤
│ blue │ 1 │ 12 V │ ⛔ NEVER CONNECT │
├──────────┼───────────┼─────────────┼────────────────────┤
│ green │ 2 │ GND │ GND │
├──────────┼───────────┼─────────────┼────────────────────┤
│ yellow │ 3 │ 5 V │ VIN │
├──────────┼───────────┼─────────────┼────────────────────┤
│ black │ 4 │ TX │ RX2 = GPIO16 │
├──────────┼───────────┼─────────────┼────────────────────┤
│ red │ 5 │ RX │ TX2 = GPIO17 │
└──────────┴───────────┴─────────────┴────────────────────┘

How to install it

First, search where your unit is installed and dismantle the tape then locate the CN-105 port:

It’s a bit tricky to fit the CN-105 cable in, but once you have it in place, you just need to press it down. You have to do it with confidence.

Press enter or click to view image in full size

My ESP32 connected to my AC board in the CN105 port

Mount the ESP32 OUTSIDE the metal control box (it is a Faraday cage).

Home Assistant integration

You can control your AC from your mobile phone using Home Assistant, giving you access to the same features that are available on the physical wall thermostat and much more.

You can also create your own Home Assistant automations, such as turning the AC on at specific times or when the room reaches a certain temperature.

If you use the repository directly, you also get new features that aren’t available on the official thermostat (some examples of the most useful ones):

TLDR

A step-by-step guide to using an ESP32 board to connect your Mitsubishi AC to Home Assistant, keeping your data local instead of sending it to external servers, while also gaining access to useful sensors such as energy consumption (kWh) and temperature.

I have written this article as a tutorial for my future self and as a guide if it could be helpful for someone.