Mitsubishi AC with Wemos D1 Mini Pro

I use the D1 Mini i.s.o. the Pro version. The commands seem to arrive (Tx Line working) with 6 to 8 seconds delay, but there is no response over MQTT(Rx not working).
I receive the following debug message: “heatpump: update() failed”.
Does someone have any suggestions for me?

Check your soldering.

Check your MQTT setup.

Thanks Nick, but soldering was checked, even with a second cable, a second D1-mini, and even a nodeMCU module.
I also tried the setup with and without the 10k pullup resistors.
MQTT setup is also working since commands from NodeRed arrive at the airco unit (with physical respons) and debug info is received. ON, OFF, Swing, … commands work but with a delay of about 6 seconds. Investigating the library, I found out that this is caused by the serial connection attempts sending the initiation/connection string several times in the SwiCago library, with a delay of 2 seconds. As long as the initiation doesn’t receive an answer, it keeps trying.
Even powering off the main unit, and turning back on doesn’t help.

I also connected an OLED to check some status info. That’s how I found out that “” i.s.o. NULL doesn’t work as empty user/ password for the MQTT broker.
After MQTT was working, I removed the code for the display because I thought the I2C could have some influence. I even removed the code for the RED and BLUE LED control. The D1-Mini just doesn’t react on incomming messages, nor did the nodeMCU module.

Today I put a sniffer on the serial lines. The D1 Mini sends periodically at 2400 and 9600 baud the correct initiation string “fc 5a 01 30 02 ca 01 a8”, but there is NO feedback from the airco-unit.
The wiring should be correct: 2-Gnd, 3-5V, 4-Tx, 5-RX (And PIN 1 not used as it holds 12V).
The unit is type: MSZ-AP35VG, which is normally supported.
I have no further idea of what I could try.

Just to check, pin 5 RX is connected to TX on your D1?

Hi Nick, that’s correct.
I have linked the Tx side of the D1-mini directly to the CN105, and this works perfectly since I also fixed the baudrate to 2400. My MQTT commands from NodeRed arrive correctly and the unit physically responds accoordingly with ON/OFF, VAN changes, …
However the Rx Side doesn’t get any data/signal. I’ve used the 10K + 20K divider as level shifter for 5V to 3,3V.
I suspect that the MSZ-Unit isn’t initiated/recognized correctly, and as such doen’t respond with data since it doesn’t know how.

Good news!
I found the cause of my problem. The Wemos D1 Mini v3.0.0 is the cause that the Tx line from the HP isn’t working because the CH340G on the module pulls the line low or high permanently when the module is powered with 5V. There is no resistor in series with the serial Rx-line between the ESP and the CH340. (see:
I now use an ESP-01 module without serial/usb chip and the setup from SwiCage (, and this works immediately and with a very fast reponse.
So I am curious what type or version of the D1 mini other users are using that works/communicates in two directions …

@mgrondelaers I also had problems with the Wemos D1 mini.
Also switched to the ESP-01 with great results.

I have my three ac working correctly with the Wemos however I have noticed an increase in the noise produced by the board when connecting CN105, Has it happened?

Hi there. I haven’t seen that happen as yet.

Hi, I have a problem with a similar configuration: I have added to my config:

  - platform: nest
  - platform: mitsubishi_mqtt
    name: "Climatizzatore 1P"
    command_topic: "heatpump/set"
    temperature_state_topic: "heatpump/status"
    state_topic: "heatpump"

but when I restarted hassio I didn’t find any new climate (the only one displayed is the Nest, which has always worked and still works correctly).

The Home Assistant log says:

You are using a custom integration for mitsubishi_mqtt which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.


Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/", line 365, in _async_add_entity
    await entity.async_update_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/", line 225, in async_update_ha_state
  File "/usr/src/homeassistant/homeassistant/helpers/", line 248, in _async_write_ha_state
    state = self.state
  File "/usr/src/homeassistant/homeassistant/components/climate/", line 192, in state
    if self.current_operation:
  File "/config/custom_components/mitsubishi_mqtt/", line 173, in current_operation
    return me_to_ha[self._current_operation]
KeyError: None

How can I solve the problem?

Can I use such a sensor along with the esp? This also goes to the cn105

Or any flushmount (paintable) temperature sensor


Yes, but the ac unit reports the temperature.

What do you mean the ac unit reports the temperature? Isn’t there a way to get temperature from external sensors?

Yes of course you can, but I am wondering why you need it when you get a temperature reading from the mitsubishi unit.

I am going to install mitsubishi recessed with ducts, so need a remote sensor as the unit will not be at the cooling location, and want to have a flush mounted sensor that is paintable and not visible at all

What is that?

Yes I understand. There are plenty of temperature sensor integrations in home assistant. But yes, the esp device you use in this setup will have a couple of spare pins to put a sensor on if you want.

Was a typo.

My question was how to implement the code that the esp to use the temperature from a pin input instead of the unit, but not through ha or mqtt, , I am looking that the esp to handle it on its own

Not sure what your aim is here.