Midea branded AC’s with ESPhome (no cloud)

Could it be that the lowest possible temperature is 18?
When you disconnect the esp, what temperature range you can use with IR remote?

With the remote and the Midea App you can set the temperature down to 16. With espHome I can set 16 if I set the target temp to 17 in home assistant. I tried changing the min_temperature to 16 in the visual section but it has the same behavior.

I’m so excited to do this thank you for all the work!!! I have a possibly dumb question, I have a Mr Cool diy 12k and I’m wondering if I can use an esp32 instead of an esp-01 since I have a few extra 32s. Would it be more trouble then it’s worth? Will I still need a logic level converter?

Should be fine, esp32 is basically a newer and better version of the esp8266….

and yes, you’d still need the level shifter,
Esp’s are 3,3volt while AC is 5v.
Chance is it would work, but it could also damage the AC, so i wouldn’t take the risk :wink:

1 Like

I’ll check mine I’m getting the same thing!!!

@8bitbrett taking the support conversion here…
Can you post the logs from esp module?

Thank you! It was a bad adapter so It works now, although now I’m trying to add the IR transmitter. I soldered it in directly and it seems that’s not the right way of doing it according to some pictures, is there a place I can see how it needs to be soldered?

Is the Tindie store dead?

I was going to order from there, but it doesn’t seem available. Then I went to get the parts made at JLCPCB, but they don’t have stock in a few parts so I cannot get the board made there either.

I love the design of the integrated PCB and I think it will work best in my AC compared to a esp-01 strapped to a converter board.

Were you able to order from jlcpcb fully assembled board?

I got follow-me working via an LED but when it sends the signal it also switches my A/C (Midea u-shaped window ac) into Celsius mode. I live in the US so I usually have it in Fahrenheit mode. When using follow-me on the factory remote, it of course doesn’t do this but even if I switch the remote itself into Celcius (only the remote, not the unit) it doesn’t change the mode on the unit when temperature updates are sent. I think that with each follow-me command being sent by ESPHome it’s also sending a command to switch it into Celsius. Can someone tell me if this is how it’s supposed to work?

This is how I have it set up in my YAML

sensor:
  - platform: homeassistant
    name: "Bedroom Temperature Sensor"
    entity_id: sensor.lumi_lumi_weather_06a0bf01_temperature   # Sensor from HASS
    internal: true
    filters:
      - throttle: 10s
      - heartbeat: 5s             # Maximum interval between updates.
      - debounce: 1s
    on_value:
      midea_ac.follow_me:
        temperature: !lambda "return (round)((x-32)/1.8);"

        beeper: false               # Optional. Beep on update.

I notice that as well. Didn’t see it at first as the ESPHome integration is working well and had no need to go to the unit. @dudanov is looking into it.

1 Like

I got this ESP to USB module, flashed it with esphome and connected to my Midea AC, but it doesn’t seem to work: AC always shown as off. Swapping rt and tx, as was suggested in this thread, didn’t help.
Any tips on what could be wrong?

esphome:
  name: midea-ac-workroom

esp8266:
  board: esp01_1m

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: "---"

ota:
  password: "---"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Midea-Ac-Workroom"
    password: !secret wifi_password
    
# UART settings for Midea dongle (required)
uart:
  tx_pin: 1         # hardware dependant
  rx_pin: 3         # hardware dependant
  baud_rate: 9600
      
climate:
  - platform: midea
    name: midea-ac-workroom     # Use a unique name.
#    transmitter_id:           # Optional. Add this option to use IR transmitter.
    period: 2s                  # Optional
    timeout: 4s                 # Optional
    num_attempts: 3             # Optional
    autoconf: true              # Autoconfigure most options.
    beeper: true                # Beep on commands.
    visual:                     # Optional. Example of visual settings override.
      min_temperature: 16 °C    # min: 17
      max_temperature: 30 °C    # max: 30
      temperature_step: 1 °C  # min: 0.5
    supported_modes:            # All capabilities in this section detected by autoconf.
      - FAN_ONLY                # This capability is always used.
      - HEAT_COOL
      - COOL
      - HEAT
      - DRY
[13:13:37][D][ApplianceBase:139]: Response timeout...
[13:13:37][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[13:13:38][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 4B 51 3F 
[13:13:40][D][ApplianceBase:129]: Enqueuing a DEVICE_NETWORK(0x0D) notification...
[13:13:40][D][ApplianceBase:173]: Enqueuing the request...
[13:13:40][D][AirConditioner:132]: Enqueuing a GET_POWERUSAGE(0x41) request...
[13:13:40][D][ApplianceBase:173]: Enqueuing the request...
[13:13:41][D][ApplianceBase:139]: Response timeout...
[13:13:41][D][ApplianceBase:154]: Destroying the request...
[13:13:41][D][ApplianceBase:075]: Getting and sending a request from the queue...
[13:13:42][D][ApplianceBase:162]: TX: AA 1F AC B3 00 00 00 00 00 0D 01 01 03 14 58 A8 C0 FF 00 00 00 00 00 00 00 00 00 00 00 00 93 0A 
[13:13:42][D][ApplianceBase:154]: Destroying the request...
[13:13:43][D][ApplianceBase:075]: Getting and sending a request from the queue...
[13:13:44][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 4C F2 B8 
[13:13:47][D][ApplianceBase:139]: Response timeout...
[13:13:48][D][ApplianceBase:146]: Sending request again. Attempts left: 2...
[13:13:48][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 4C F2 B8 
[13:13:51][D][ApplianceBase:139]: Response timeout...
[13:13:52][D][ApplianceBase:146]: Sending request again. Attempts left: 1...
[13:13:52][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 4C F2 B8 
[13:13:55][D][ApplianceBase:139]: Response timeout...
[13:13:55][D][ApplianceBase:154]: Destroying the request...
[13:13:56][D][AirConditioner:178]: Enqueuing a GET_STATUS(0x41) request...
[13:13:56][D][ApplianceBase:173]: Enqueuing the request...
[13:13:56][D][ApplianceBase:075]: Getting and sending a request from the queue...
[13:13:56][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 4D 8C 02 

I noticed in the log there is no RX….

this is mine:

if swapping TX/RX didn’t help, then it could be:

  • loose cable/bad connection
  • faulty level converter (but i see toy didn’t use one?)

oh… hold on

note that the uart is NOT an USB device, you need to use serial over GPIO (including level shifter)

Yeah, it’s not an USB device, it’s detected as a com port, so I guess that’s exactly what I needed. But I may be wrong.
Anyway, I connected NodeMCU to the AC and it works fine. So there must be something wrong with this module.
Any idea if this one will work?


This picture shows a usb port. This usb port is used to flash the esp8266 unit and therefore recognized and installed as a serial interface on the host machine; nevertheless this usb port is a usb port and not a serial port…

and yes, esp12E/F should work…and it looks like the picture you showed has a build in level shifter :+1:

1 Like

So how do you flash that esp12g board? Or what Is the recomended adapter that Istl trasy made, available or can be fully build o jlcpcb?

See post#1
something like this

I feel really stupid right now. I do understand AC uses USB connector, but for serial communication, no issue there, I can plug to header on AC board and get rid of the confusing usb adapter.

so this adapter creates 5v and 3.3v from esp01 ESP8266 module

then the module itself

then I should be able to progrram the module using this

then connect it to header on AC board using this

and done no soldering required?

Seems quite easy. But just to verify - apart from the now unavailable https://github.com/dudanov/iot-uni-dongle there is no single board option, right?

btw i’m creating this for harier ac, not any of the midea brands, but this is much more active.

also all of this is available on allegro, that is quite nice so no months as on ali

Yeah, that sums it up quite well…

The level shifter is used to supply 3.3v to the esp and also converts the 3.3v IO back to 5v.

And i think the esp12 you posted can be used, but you need to connect the serial to GPIO

and then these need to be shifted again :thinking:
Not too difficult, but does require some soldering

With the esp01 with level shifter there was no need to do any soldering so it was the easiest and fastest and cheapest way to try it out :yum: