Skip to content
HN On Hacker News ↗

How I Added a Non-Wi-Fi Mitsubishi AC to Home Assistant

▲ 201 points • 105 comments • by ichacas • 4w ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this text is a mix of AI and human-written content.

21 %

AI likelihood · overall

Mixed
90% human-written 10% AI-generated
SEGMENTS · HUMAN 3 of 5
SEGMENTS · AI 1 of 5
WORD COUNT 1,161
PEAK AI % 79% · §2
Analyzed
Sep 13
backend: pangram/v3.3
Segments scanned
5 windows
avg 232 words each
Distribution
90 / 10%
human / AI fraction
Verdict
Mixed
Pangram v3.3

Article text · 1,161 words · 5 segments analyzed

Human AI-generated
§1 Human · 9%

6 min read2 days ago--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 sizeMy 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 SynologyHome 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 wantedTo be able to turn it off/on using my mobile phoneTo 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 discardedAn 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.

§2 AI · 79%

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 thermostat 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.

§3 Human · 16%

Those are the best alternative but are very expensive (up to 200$) and is classed as Cloud Polling in Home Assistant’s so: 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 solutionIt’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 sizehttps://github.com/echavet/MitsubishiCN105Esphome#when-to-use-whichSame 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.

§4 Mixed · 58%

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….

§5 Human · 18%

And it works alongside the wall controller rather than replacing it.Hardware usedESP32 boardJST PA 2.0 mm 5-pin pigtail: 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 itHow to configure the ESP32A 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: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.yamlNow you can use the native ESPHome versionPress enter or click to view image in full sizeScreenshot from my ESPHome Builder add-onThen 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 componentIf 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 sizeEditor of the device in ESPHome builderSave 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 pinoutFrom the official docs: https://esphome.io/components/climate/mitsubishi_cn105/#cn105-pinoutIn 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 itFirst, 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 sizeMy ESP32 connected to my AC board in the CN105 portMount the ESP32 OUTSIDE the metal control box (it is a Faraday cage).Home Assistant integrationYou 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 directly, you also get new features 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 runsEnergy (kWh): Really useful if you want to monitor your consumption or the energy being used at a given timeError code — human-readable (No Error), not a raw numberTLDRA 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.