Mitsubishi AC with Wemos D1 Mini Pro

I have the exact same air conditioner, and i’m interested in your solution. Do you have complete schematics to know where to connect the pins of the D1 mini to the motherboard of the hj35va ? :blush:

What would happen if you connect both the Wemos D1 and the original WiFi module?

Hey, please remember each configuration might be slightly different,

however I have tried connecting Wemos after the original WiFi module and my Wemos did not start (there is a chance no 5V line is present)

That might be a bad time… and possibly fry the PCB…

It will probably not fry anything since my Wifi module is connected to another connector (CN104)?

I used this configuration with wemos d1 and works very well without hardware modifications

uart:
  id: HP_UART
  baud_rate: 2400
  tx_pin: 1
  rx_pin: 3



external_components:
  - source: github://echavet/MitsubishiCN105ESPHome

# Climate entity configuration
climate:
  - platform: cn105
    name: "My Heat Pump"
    update_interval: 4s

I’ve got a 8 year old Mitsubishi system and have been struggling with kumo cloud this entire time. I want to finally kick it to the curb and use this project.

However I’m confused at what is exactly needed given all the discussion about the various boards, versions etc. I also realize that support varies based on my equipment.

Here’s what I have:

  • Outdoor heat pump: MXZ-5C42NAH2

  • Basement air handler (MVZA36AA4) connected to our central ducting for heating/cooling whole house. Less efficient than mini splits in each major room but less surgery (and money) on our old house to do it this way.

Only except is in our finished attic where our centeal ducting does not go. In that area we have a Wall mounted MFZKA12NA

I would like to avoid MQTT as I do not have any devices that use it so prefer ESP direct to the HA Esphome integration.

  1. What wemo d1 board can I can that will work with minimum setup? I see v3 boards with usb C are readily avail on Amazon and ship quickly but I’ve read mixed messages on whether this would work out of the box with shorting pins or cutting the board. Latest post I read points to these Wemos D1 Mini being the right one. Is that true?

  2. Which harness and connector? I prefer something pre assembled and pre crimped for obvious reasons.

  3. I read something earlier where someone had a 3D printed case for their board which seemed super nice. However they mentioned needing to file parts down to make it fit. does anyone have a link to a more turnkey 3d design that fits these boards?

Anyone? Could use some advice on my last post :pray:

Hi there. I’ve been using the same Wemos D1 Mini Pro’s for more than five years now, and they have worked fine. In 2020 I redid my setup using ESPHome (see the posts around March 2020), and it has worked fine since. I like the simpler setup using ESPHome (no MQTT). Same boards and pigtails. I don’t know about your specific air handlers, but I would think you’ve got a good shot at it being successful. I haven’t used any 3D printed cases - never saw the need. Hope that helps.

I would use m5stack then you dont have to solder the board. And you only have to make the cable fit.

For the cables: I ordered them at AliExpress:
https://www.aliexpress.com/item/1005005562174022.html?spm=a2g0o.order_list.order_list_main.102.1d5b79d24ciKSm&gatewayAdapt=glo2nld

I just tried it with a M5Stack echo lite. And it works great. I even got an BLE temp sensor connected to it.

Which pin configuration?

Can you link to the specific unit? I’m not familiar with the m5stack and for some reason Google is not helping me find it well. Others mentioned an “m5stack echo lite” but I cannot find it :man_shrugging:

Also what do you mean you have to make the cable fit. Is there a different cable needed? Which?

You should order the 5 pins configuration for the CN105 connector

1 Like

I’m thinking of one (perhaps basic) thing: i use xiaomi BLE module as external temperature sensor for my climate. I have homeassistant sensor in my esphome for that purpose: original solution says that i can use this for updating value:

  - platform: homeassistant
    name: "Temperature Sensor From Home Assistant"
    entity_id: sensor.temperature_sensor
    on_value:
      then:
        - lambda: 'id(hp).set_remote_temperature(x);'

But what i’m not sure right now is this:
“on_value” option only sends temperature when value changes, correct? If so, what if temperature doesn’t change for a while? I mean - yaml from echavez has built-in option to go back to internal temperature sensor after a while (30 min.) if ti doesn’t receive anything from external one. How can i “make” sensor to update at least once every 30 minutes to prevent going back to internal sensor?

Why the heck can you only order one max from that seller?!

Until yesterday, I had a perfectly good working version of the code for my MiniSplit. After the 2024.6.1 ESPHome update, I can no longer update this device. I have a total of 6 D1-minis deployed and the other 5 updated perfectly.

Here is my complete code with just redactions where necessary:

substitutions:
  name: d1m-srms
  friendly_name: SR_MiniSplit

esphome:
  name: ${name}

esp8266:
  board: d1_mini

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_key1

# Synch time with Home Assistant
time:
  - platform: homeassistant
    id: homeassistant_time

ota:
  platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: ${name} Fallback Hotspot
    password: !secret wifi_password

  # Optional manual IP
  manual_ip:
    static_ip: ###.###.#.###
    gateway: 192.168.1.1
    subnet: 255.255.255.0

web_server:
  port: 80

captive_portal:

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_username
  password: !secret mqtt_password

external_components:
  - source: github://geoffdavis/esphome-mitsubishiheatpump

# Text sensors with general information.
text_sensor:
  # Expose ESPHome version as sensor.
  - platform: version
    name: ${name} ESPHome Ver
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: ${name} IP
    ssid:
      name: ${name} SSID
    bssid:
      name: ${name} BSSID

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: ${name} Uptime

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: ${name} WiFi Signal
    update_interval: 60s

switch:
  - platform: restart
    name: "D1M-Restart - SRMS"

climate:
  - platform: mitsubishi_heatpump
    name: "${friendly_name}"
    supports:
      mode: [HEAT_COOL, COOL, HEAT, FAN_ONLY]
      fan_mode: [AUTO, LOW, MEDIUM, HIGH]
      swing_mode: ['OFF', VERTICAL, HORIZONTAL]

and lastly the complete error message:

INFO ESPHome 2024.6.1
INFO Reading configuration /config/esphome/d1m-srms.yaml...
INFO Detected timezone 'America/New_York'
INFO Generating C++ source...
Traceback (most recent call last):
  File "/usr/local/bin/esphome", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/esphome/esphome/__main__.py", line 1079, in main
    return run_esphome(sys.argv)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/esphome/esphome/__main__.py", line 1066, in run_esphome
    rc = POST_CONFIG_ACTIONS[args.command](args, config)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/esphome/esphome/__main__.py", line 484, in command_run
    exit_code = write_cpp(config)
                ^^^^^^^^^^^^^^^^^
  File "/esphome/esphome/__main__.py", line 193, in write_cpp
    generate_cpp_contents(config)
  File "/esphome/esphome/__main__.py", line 205, in generate_cpp_contents
    CORE.flush_tasks()
  File "/esphome/esphome/core/__init__.py", line 681, in flush_tasks
    self.event_loop.flush_tasks()
  File "/esphome/esphome/coroutine.py", line 246, in flush_tasks
    next(task.iterator)
  File "/esphome/esphome/__main__.py", line 185, in wrapped
    await coro(conf)
  File "/esphome/esphome/coroutine.py", line 80, in coro
    ret = yield from _flatten_generator(gen)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/esphome/esphome/coroutine.py", line 118, in _flatten_generator
    val = gen.send(to_send)
          ^^^^^^^^^^^^^^^^^
  File "/data/external_components/3b4567cc/components/mitsubishi_heatpump/climate.py", line 66, in to_code
    serial = HARDWARE_UART_TO_SERIAL[config[CONF_HARDWARE_UART]]
             ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'UART0'

It appears to be an error with the external component, but I have not seen any others post an error yet. Has anyone else experienced this or does someone know what I need to do to fix it.

  • Note - The Mini Split still communicates with Home Assistant and I can still control the unit from my dashboard, BUT I’d really like to be able to make updates and stay current, so fixing this is a priority.
    Thanks. Hopefully someone has an answer.
    Art

There is a GitHub Issue for this problem: esphome 2024.6.0 changed the definition of HARDWARE_UART_TO_SERIAL · Issue #152 · geoffdavis/esphome-mitsubishiheatpump · GitHub

In the comments you can find a patched version for the external component:

github://ghisch/esphome-mitsubishiheatpump@patch-1

For me the patched version did work. I hope it will be merged soon.

1 Like

Just want to share that I have been reading comments, made sure I ordered the right parts and got it setup on my Mitsubishi AC today :slight_smile:

To share the link I got them:
D1 Mini: https://www.aliexpress.com/item/32651747570.html?spm=a2g0o.order_list.order_list_main.101.67781802v3BCvC

Make sure to ignore all the v4, v3, Pro versions. Take only the D1 Mini Type C or micro USB versions.
Cloudup
Connector (5P): https://www.aliexpress.com/item/1005002904897793.html?spm=a2g0o.order_list.order_list_main.95.67781802v3BCvC

Guides that I followed:

Used these to flash to the D1 Mini: GitHub - gysmo38/mitsubishi2MQTT: Mitsubishi to MQTT with ESP8266 module + GitHub - SwiCago/HeatPump: Arduino library to control Mitsubishi Heat Pumps via connector cn105

My result (model MSY-GE10VA)
Cloudup
Cloudup
Cloudup
Cloudup
Cloudup
Cloudup