Cached at:
09/13/26, 05:34 AM
# How I Added a Non-Wi-Fi Mitsubishi AC to Home Assistant
Source: [https://medium.com/@ivangomezarnedo/how-i-added-a-non-wi-fi-mitsubishi-ac-to-home-assistant-22770661dd77](https://medium.com/@ivangomezarnedo/how-i-added-a-non-wi-fi-mitsubishi-ac-to-home-assistant-22770661dd77)
[](https://medium.com/@ivangomezarnedo?source=post_page---byline--22770661dd77-----------------------------------------)
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 thermostatI 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:
- NAS Synology
- Home Assistant installed in a VM of that NAS\.
- Mitsubishi’s Ducted unit \(`SEZ\-M60DA2, ~2022`\) controlled only by an official wired wall thermostat without wifi\.
- Mitsubishi’s official wall thermostat\.
### **What I wanted**
- To be able to turn it off/on using my mobile phone
- To do not lose any kind of the options that I already have in the wall thermostat\.
- To be able to check the temperature of my house\.
- To be able to set automations when a certain temperature is reached or when no one is at home\.
### Options discarded
- **An IR receiver**\. Mitsubishi does sell optional IR receiver kits for parts of the M\-series, but nothing of the sort is fitted here\. Furthermore it doesn’t solve the problem of setting it up from outside home\.
- **A relay for on/off**is worse on an inverter unit\. Chopping mains or a dry\-contact enable defeats the whole point of modulation, and you lose mode, fan speed and setpoint entirely\. You end up with an expensive on/off switch on a machine designed to modulate\.
- **Replacing the wall controller****with a generic thermosta**t means losing the manufacturer’s protocol, the unit’s own sensors and its diagnostics… \(it’s like on\-off relay\)\.
- [**The official Kumo/Mel Cloud adapters**](https://www.amazon.com/Mitsubishi-Electric-PAC-USWHS002-WF-2-Wireless-Interface/dp/B07VBZRB8T)\. Those are the best alternative but are very expensive \(up to 200$\) and[**is classed as Cloud Polling in Home Assistant’s so**](https://www.home-assistant.io/integrations/melcloud/)**:**1\. Every commands does a round\-trip to Mitsubishi’s servers \(my data leaving my house\); 2\. It needs a MELCloud account and credentials \(it’s now free but who knows the future…\)\.
## 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](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:
- Bidirectional communication between Home Assistant and my wall thermostat\. If something is turned on/off it will appear in both places\.
- Totally local solution\. My data does not go to private servers\.
- Really cheap\. For less than 10 euros\.
- Open source\. The firmware is mantained by the community\. It could improve over time\.
> 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
- [ESP32 board](https://www.amazon.es/dp/B0D8T5XD3P?ref=cm_sw_r_cp_ud_dp_353R1ZYTZER51KFQY39K&social_share=cm_sw_r_cp_ud_dp_353R1ZYTZER51KFQY39K&th=1)
- [JST PA 2\.0 mm 5\-pin pigtail](https://es.aliexpress.com/item/1005006294406922.html): JST PA connector on the CN105 end, standard 2\.54 mm**DuPont female**jumper ends on the ESP32 end\.
- A USB\-C to USB\-C cable to connect my Macbook with the ESP32\.
## 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](https://www.home-assistant.io/integrations/esphome/)then:
- Connect the ESP32 to your laptop via USB\.
- In the add\-on, Create device →`Espressif ESP32\-C6\-DevKitM\-1`\(if you have bought the same board as myself\)
- Give it a name → Configure the Wi\-Fi credentials \(`ssid`and`password\)`once and it automatically writes them to`/config/esphome/secrets\.yaml`
**Now you can use the**[**native ESPHome version**](https://esphome.io/components/climate/mitsubishi_cn105/)
Press enter or click to view image in full size
Screenshot from my ESPHome Builder add\-on- Then you only have to add it and leave everything as default \(it’s pre\-configured if you are using the same board as myself\)\.
- Save and Install :\)
**Or do a custom install of the**[**ESPHome external component**](https://github.com/echavet/MitsubishiCN105ESPHome)
If you have chosen the same board as myself, it’s as easy as copy\-pasting[this pre\-configured YAML](https://gist.github.com/ivgomezarnedo/c84a111dbde1164ba5a4224f952ac441), 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- Save and Install :\)
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](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 │└──────────┴───────────┴─────────────┴────────────────────┘
```
- No need for an external power source, as it already has a 5V line \(yellow\)\.
- Never connect the first cable \(blue\), as it provides 12V and the ESP32 board can’t handle it\.
### 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 portMount the ESP32**OUTSIDE**the metal control box \(it is a[Faraday cage](https://en.wikipedia.org/wiki/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**\.
- **Thermostat:**on/off, mode \(`off`,`cool`,`heat`,`dry`,`fan\_only`,`auto`,`heat\_cool`\) and 6 fan speeds\.
- **Room temperature:**matches the wall controller exactly, while also exposing the temperature as a new sensor in Home Assistant\.
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](https://github.com/echavet/MitsubishiCN105ESPHome)directly, you also get[new features](https://github.com/echavet/MitsubishiCN105Esphome#comparison-with-esphome-native-mitsubishi_cn105)that aren’t available on the official thermostat \(some examples of the most useful ones\):
- **Outside air temperature:**a real outdoor\-temperature sensor\. Reports**only while the unit runs**
- **Energy \(kWh\):**Really useful if you want to monitor your consumption or the energy being used at a given time
- **Error code**— human\-readable \(`No Error`\), not a raw number
### 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\.