Midea branded AC’s with ESPhome (no cloud)

edit: on a whim, I unplugged it and plugged it back in and it’s working now. I did try killing power before and that didn’t work. I think it was not plugged in all of the way…

Brand: MRCOOL
Model ID: DIY-24-HP-WMAH-230C25
Year: 2022
Market: US

It is not working currently. My esp is getting power from the mini-split and is connecting to my home assistant server. But, it’s not able to communicate with the mini-split. The ESPHome log for the device looks like the following in an infinite loop:

21:25:49	[D]	[ApplianceBase:139]	

Response timeout...

21:25:49	[D]	[ApplianceBase:154]	

Destroying the request...

21:25:49	[D]	[AirConditioner:178]	

Enqueuing a GET_STATUS(0x41) request...

21:25:49	[D]	[ApplianceBase:173]	

Enqueuing the request...

21:25:49	[D]	[ApplianceBase:075]	

Getting and sending a request from the queue...

21:25:50	[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 E9 42 B0 

21:25:51	[D]	[ApplianceBase:139]	

Response timeout...

21:25:51	[D]	[ApplianceBase:146]	

Sending request again. Attempts left: 2...

21:25: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 00 00 00 00 03 E9 42 B0 

21:25:53	[D]	[ApplianceBase:139]	

Response timeout...

21:25:53	[D]	[ApplianceBase:146]	

Sending request again. Attempts left: 1...

21:25:53	[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 E9 42 B0 

21:25:55	[D]	[ApplianceBase:139]	

Response timeout...

21:25:55	[D]	[ApplianceBase:154]	

Destroying the request...

21:25:55	[D]	[AirConditioner:178]	

Enqueuing a GET_STATUS(0x41) request...

21:25:55	[D]	[ApplianceBase:173]	

Enqueuing the request...

21:25:55	[D]	[ApplianceBase:075]	

Getting and sending a request from the queue...

21:25: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 EA A0 51 

21:25:57	[D]	[ApplianceBase:139]	

Response timeout...

21:25:57	[D]	[ApplianceBase:146]	

Sending request again. Attempts left: 2...

21:25:57	[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 EA A0 51 

21:25:58	[D]	[AirConditioner:132]	

Enqueuing a GET_POWERUSAGE(0x41) request...

21:25:58	[D]	[ApplianceBase:173]	

Enqueuing the request...

The yaml configuration looks like this:

esphome:
  name: garage-mini-split
  platform: ESP8266
  board: esp12e

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Garage-Mini-Split"
    password: "REDACTED"

captive_portal:

# Enable logging
logger:
  baud_rate: 0

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

ota:
  password: "REDACTED"

uart:
  tx_pin: 1
  rx_pin: 3
  baud_rate: 9600
  
  
climate:
  - platform: midea
    name: Garage Mini Split     # Use a unique name.
    period: 1s                  # Optional
    timeout: 2s                 # Optional
    num_attempts: 3             # Optional
    autoconf: true              # Autoconfigure most options.
    beeper: true                # Beep on commands.
    visual:                     # Optional. Example of visual settings override.
      min_temperature: 17 °C    # min: 17
      max_temperature: 30 °C    # max: 30
      temperature_step: 0.5 °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
    custom_fan_modes:
      - SILENT
      - TURBO
    supported_presets:          # All capabilities in this section detected by autoconf.
      - ECO
      - BOOST
      - SLEEP                   # This capability is always used.
    custom_presets:             # All capabilities in this section detected by autoconf.
      - FREEZE_PROTECTION
    supported_swing_modes:
      - VERTICAL                # This capability is always used.
      - HORIZONTAL
      - BOTH
    outdoor_temperature:        # Optional. Outdoor temperature sensor (may display incorrect values after long inactivity).
      name: Temp
    power_usage:                # Optional. Power usage sensor (only for devices that support this feature).
      name: Power
    humidity_setpoint:          # Optional. Indoor humidity sensor (only for devices that support this feature).
      name: Humidity


web_server:
  port: 80

I have a feeling that since it’s a new model then the confirmed to work ones on this list; they might have blocked this or something… Another thing that may be of note, is that I used the dongle that came with it at first. So, maybe it received a firmware update if it would have even worked in the first place.