Midea branded AC’s with ESPhome (no cloud)

Hi guys, I am using LWF-01pro dongle and it’s great. Only one thing does not work - Humidity sensor.
Does anybody know if there is a solution for that?
My A/C definitely have humidity sensor.
Thanks!

Hi @Jozsi_Csoka What is the KJR-120 HMI? can you share how exactly the it is connected to your heat pump unit and how to HA/ESPhome?

I am sinking tens and tens of hours to connect mine to HA but there is just so little info out there. I have a controller which seems to be identical to the KJR-120N and it connects to my AC unit via two proprietary HA/HB wires. Is your KJR-120 HMI connected that way too?

Hi All! I just got a Clivet Heatpump Edge Evo 2.0 14.1 installed and since this is also a Midea brand I was wondering if anyone has had success with heat pumps as well?

Hi Tom,

You can find multiple posts in this topic about heatpumps. If you are looking for an Esphome based solution, my GitHub project can help you: GitHub - Mosibi/Midea-heat-pump-ESPHome

What do you mean with:

Previously the Bosch dongle are worked on this type also, but unfortunately not working with Wemos D1 Mini configuration

@sirszabo ? Did you have this working e.g. with an esp32? I have the same problem of not receiving any RX data.

hey! Thanks for pointing me to your son’s controller. I had contact with Sven and ordered it today!

Nice! Have fun with it.

@Mosibi @haute12345
I’d also like to use thermostat to control the heatpump like @haute12345 mentioned, but the main problem is to have ability to change the mode from water flow temp control to the room Ta control. This is made by changing register 210 bit 4. But here comes the issue: when this bit is changed alone the others unwanted changes occur: register 211 bits: 3 (double zone), 6: (Tw2 sensor) and 210 bits: 10, 12, 13 and 15 are also changing (short story: DWH is disabled with disinfection and pump settings) and from 211 bit 3 error H9 appears (Outlet water for zone 2 temp. sensor Tw2 fault).
So in my thinking to solve this multiple registers has to be writen when changing between water temp control and room Ta control, but I have no idea how to do it in ESPhome. There is From my tests it should be done in 2 diffrent sets.
First when changing from water temp control to room Ta control:
setting reg. 210 bit 4 + 210 bits: 10, 12, 13, 15 to true + 211 bits 3 and 6 to false
Second when changing form room Ta control to water temp. control:
setting reg. 210 bit 4 to false + 210 bits: 10, 12, 13, 15 to true

I hope someone would provide the commands to do so.
Regards

In my config those parameters are not yet settable, what you could do is convert them to switches so that they can be set to On or Off and then create a virtual switch in the esphome configuration that does the right settings.

An other option is that after you configured them to switches in the esphome configuration, that you create a Home Assistant automation that configures the entities like you would.

Btw, have you changed the settings now on the display itself, of do you already use modbus commands to set them?

Hello!
Bit offtopic:
I also have a heat pump, Ferroli branded Omnia 12T 3phase. I wonder if there’s a way to upgrade this to be a 16kW heatpump instead of 12? As I can see the compressor, the main board, the inverter is the very same as in the 16kW model. There is a dip switch on it, that allows selection of 12, 14, or 16 kW model, but it can’t be this easy, can it?

I was using a modbus switch to set reg. 210 bit 4. Other registers was configured as a binary sensors to observe their states. When I use the display everything is set correctly (changes are made in only one submenu nr 5: temp type setting).
I took your advice and changed needed reg. to switches and made a template switch to switch them simultanously but things get messy after. Some are ok like DHW is enabled but double zone gets always active so error H9 comes alive.
I think its related to the note I’ve found in the manual for Clivet hetpump.
image
Earlier I suposed that changing temp control to Ta means that water temp. control is disabled by default thus I can’t find any register that is showing this setting. Now I think that water temp. control must be set to off while changing temp. control to room Ta. It’s doable with the display but how to do it via modbus? Maybe I’m missing something… Do You know any register which is corrsponding to setting 5.1 in the display unit?

Sadly I do not know that. Could it be register 210, bit 2?

For me it’s not 210 bit 2. Here’s what it looks in the water flow temp. control.

Ok. Thanks for checking!

I have tried everything and cannot get this to work. I saw in some previous post that some folks had connection issues with the usb port so I even soldered my uart connection with no luck. And suggestions would be appreciated. I cant seem to get and response from the ac. I just see the tx’s. I’ve tried everything I’ve seem in the previous posts. Switch the rx/tx wires both physically and in the yaml. Tried a different board, same result.

esphome:
  name: garage2
  friendly_name: Garage 2

esp8266:
  board: nodemcuv2

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:

ota:

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage-Ac Fallback Hotspot"
    password: "5mdCQukolgr1"

captive_portal:

web_server:

uart:
  rx_pin: 3
  tx_pin: 1
  baud_rate: 9600

climate:
  - platform: midea
    name: garage2           # Use a unique name.
    period: 1s                  # Optional
    timeout: 2s                 # Optional
    num_attempts: 3             # Optional
    autoconf: true              # Autoconfigure most options.
    beeper: false               # Beep on commands.
    visual:                     # Optional. Example of visual settings override.
      min_temperature: 15       # Note these values are in C
      max_temperature: 30
      temperature_step: 1       # This defaults to 0.5. I don't have a need for half-degree increments....
    supported_swing_modes:      
      - VERTICAL
      - HORIZONTAL
      - BOTH

[19:40:17][W][midea:113]: Failed to get 0xB5 capabilities report. Suggest to disable it in config and manually set your appliance options.
[19:40:17][C][midea:571]: ClimateTraits:
[19:40:17][C][midea:572]:   [x] Visual settings:
[19:40:17][C][midea:573]:       - Min temperature: 15.0
[19:40:17][C][midea:574]:       - Max temperature: 30.0
[19:40:17][C][midea:575]:       - Temperature step:
[19:40:17][C][midea:576]:           Target: 1.0
[19:40:17][C][midea:577]:           Current: 1.0
[19:40:17][C][midea:578]:       - Min humidity: 30
[19:40:17][C][midea:579]:       - Max humidity: 99
[19:40:17][C][midea:581]:   [x] Supports current temperature
[19:40:17][C][midea:601]:   [x] Supported fan modes:
[19:40:17][C][midea:603]:       - AUTO
[19:40:17][C][midea:603]:       - LOW
[19:40:17][C][midea:603]:       - MEDIUM
[19:40:17][C][midea:603]:       - HIGH
[19:40:17][C][midea:621]:   [x] Supported swing modes:
[19:40:17][C][midea:623]:       - OFF
[19:40:17][C][midea:623]:       - BOTH
[19:40:17][C][midea:623]:       - VERTICAL
[19:40:17][C][midea:623]:       - HORIZONTAL
[19:40:17][C][mdns:115]: mDNS:
[19:40:17][C][mdns:116]:   Hostname: garage2
[19:40:17][C][ota:096]: Over-The-Air Updates:
[19:40:17][C][ota:097]:   Address: garage2.local:8266
[19:40:17][C][ota:103]:   OTA version: 2.
[19:40:17][C][api:139]: API Server:
[19:40:17][C][api:140]:   Address: garage2.local:6053
[19:40:17][C][api:144]:   Using noise encryption: NO
[19:40:19][D][ApplianceBase:139]: Response timeout...
[19:40:19][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[19:40:19][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 00 37 A4 
[19:40:21][D][ApplianceBase:139]: Response timeout...
[19:40:21][D][ApplianceBase:154]: Destroying the request...
[19:40:21][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request...
[19:40:21][D][ApplianceBase:173]: Enqueuing the request...
[19:40:21][D][ApplianceBase:075]: Getting and sending a request from the queue...
[19:40:21][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 01 69 71 
[19:40:22][D][AirConditioner:132]: Enqueuing a GET_POWERUSAGE(0x41) request...
[19:40:22][D][ApplianceBase:173]: Enqueuing the request...
[19:40:23][D][ApplianceBase:139]: Response timeout...
[19:40:23][D][ApplianceBase:146]: Sending request again. Attempts left: 2...
[19:40:23][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 01 69 71 
[19:40:25][D][ApplianceBase:139]: Response timeout...
[19:40:25][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[19:40:25][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 01 69 71 
[19:40:27][D][ApplianceBase:139]: Response timeout...
[19:40:27][D][ApplianceBase:154]: Destroying the request...
[19:40:27][D][ApplianceBase:075]: Getting and sending a request from the queue...
[19:40:27][D][ApplianceBase:162]: TX: AA 22 AC 8E 00 00 00 00 00 03 41 21 01 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02 AB 49 
[19:40:29][D][ApplianceBase:139]: Response timeout...
[19:40:29][D][ApplianceBase:146]: Sending request again. Attempts left: 2...
[19:40:29][D][ApplianceBase:162]: TX: AA 22 AC 8E 00 00 00 00 00 03 41 21 01 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02 AB 49 
[19:40:31][D][ApplianceBase:139]: Response timeout...
[19:40:31][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[19:40:31][D][ApplianceBase:162]: TX: AA 22 AC 8E 00 00 00 00 00 03 41 21 01 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02 AB 49 
[19:40:33][D][ApplianceBase:139]: Response timeout...
[19:40:33][D][ApplianceBase:154]: Destroying the request...
[19:40:33][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request...
[19:40:33][D][ApplianceBase:173]: Enqueuing the request...
[19:40:33][D][ApplianceBase:075]: Getting and sending a request from the queue...
[19:40:33][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 03 D5 03 
[19:40:35][D][ApplianceBase:139]: Response timeout...
[19:40:35][D][ApplianceBase:146]: Sending request again. Attempts left: 2...
[19:40:35][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 03 D5 03 
[19:40:37][D][ApplianceBase:139]: Response timeout...
[19:40:37][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[19:40:37][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 03 D5 03 
[19:40:39][D][ApplianceBase:139]: Response timeout...
[19:40:39][D][ApplianceBase:154]: Destroying the request...
[19:40:39][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request...
[19:40:39][D][ApplianceBase:173]: Enqueuing the request...
[19:40:39][D][ApplianceBase:075]: Getting and sending a request from the queue...
[19:40:39][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 04 56 81 
[19:40:41][D][ApplianceBase:139]: Response timeout...
[19:40:41][D][ApplianceBase:146]: Sending request again. Attempts left: 2...
[19:40:41][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 04 56 81 
[19:40:43][D][ApplianceBase:139]: Response timeout...
[19:40:43][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[19:40:43][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 04 56 81 
[19:40:45][D][ApplianceBase:139]: Response timeout...
[19:40:45][D][ApplianceBase:154]: Destroying the request...
[19:40:45][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request...
[19:40:45][D][ApplianceBase:173]: Enqueuing the request...
[19:40:45][D][ApplianceBase:075]: Getting and sending a request from the queue...
[19:40:45][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 05 08 CE 
[19:40:47][D][ApplianceBase:139]: Response timeout...
[19:40:47][D][ApplianceBase:146]: Sending request again. Attempts left: 2...
[19:40:47][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 05 08 CE 
[19:40:49][D][ApplianceBase:139]: Response timeout...
[19:40:49][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[19:40:49][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00 00 00 00 00 03 05 08 CE 
[19:40:51][D][ApplianceBase:139]: Response timeout...
[19:40:51][D][ApplianceBase:154]: Destroying the request...
[19:40:51][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request...
[19:40:51][D][ApplianceBase:173]: Enqueuing the request...
[19:40:51][D][ApplianceBase:075]: Getting and sending a request from the queue...
[19:40:51][D][ApplianceBase:162]: TX: AA 21 AC 8D 00 00 00 00 00 03 41 81 00 FF 03 FF 00 02 00 00 00 00 00 00 00 00

@midtnmike41
Hmm… at first glance it looks OK to me.

I’m not using a NodeMCU myself, but could it be you’re using the wrong pin layout?

I noticed you are using:

uart:
  rx_pin: 3
  tx_pin: 1
  baud_rate: 9600

But I also noticed this (for a wemos/nodemcu):

uart:
 tx_pin: TX
 rx_pin: RX
 baud_rate: 9600

(Which is I believe the pins you should be using :thinking: )

There are also others that use:

uart:
   tx_pin: GPIO17
   rx_pin: GPIO16
   baud_rate: 9600

(but this is for an Adafruit ESP32)

If I look at your photo, D1(GPIO5) and D3(GPIO0) are not connected, but TX/RX are :thinking:
image
I think it is this board you are using, and it uses this pin layout:

|Pin| Function | ESP8266 |
|--- | -------- | ------ | 
|TX  |   TXD    | TXD    |
|RX  |   RXD    | RXD    |
|A0  | AI input | A0     |
|D0  |    IO    | GPIO16 |
|D1  |  IO, SCL | GPIO5  |
|D2  |  IO, SDA | GPIO4  |
|D3  | IO,10kPu | GPIO0  |
|D4  | IO,10kPu | GPIO2  |
|D5  |  IO, SCK | GPIO14 |
|D6  | IO, MISO | GPIO12 |
|D7  | IO, MOSI | GPIO13 |
|D8  | IO,10kPd | GPIO15 |
|G   |  Ground  | GND    |
|5V  |    5V    | 5V     |
|3V3 |   3,3V   | 3,3V   |
|RST |  Reset   | RST    |

So you didn’t try everything :smiley:

If that doesn’t resolve it, I do not have a clue what the issue might be…

PS: I also noted you are not using the recommended level shifter ?
Without it you might damage you AC :wink:

Hi, I would like to make my “unical ag CN10 smart”, I think it is a rebranded model of MIDEA. I don’t know where to start, I would like to try with esp, but I don’t know if my intuition (which is a guess) is right.
Who can help me understand?





@Bobsilvio Looks like a ModBus type ( I see no connectors for a wifi module)…

I have no experience with it, but maybe someone else in the post can help.
(just search this post for modbus)

1 Like

this is mainboard

Yes, it is that easy, this dip switch is the only thing that differentiates the models :sweat_smile:
Just remember to disconnect power before changing any settings in those dip switches.