Midea branded AC’s with ESPhome (no cloud)

@VitalyZ thanks so much for your help. I received my dongle, flashed with ESPHome and got my Midea U working with HA finally!

I’m in the US so I have Home Assistant set to Imperial units. Its a little funky with Fahrenheit because I assume the frontend is converting from everything from Celsius, but its working great.

For anyone out there using Fahrenheit and your display on the unit is stuck on Celsius: I was stuck for a while thinking I’d need to send a command or something from the dongle. It turns out you can switch the display on the device by holding the temperature up and down buttons for a few seconds to switch between °C and °F.

Can confirm that too. Did it with D1 mini and a converter with software UART.
Only thing to note is I had to create the yaml in esphome, upload it to the d1 mini, delete the yaml and recreate it and upload again.
If I didn’t do that, the D1 wouldn’t get a response. Don’t know why, but the double-flash did the trick.

1 Like

@Makis I changed the threads and marked you, so you get notified. :slight_smile:

What is wrong with your unit, something not working?

Since it now seems that the flashed drive works consistently and it’s only whether a particular a/c supports it or not, should we change the first post to a how-to for any newcomer to do it easy?
For eg. use a particular ESP and a particular ttl-uart (I’ve read 1 or 2 didn’t work) or order a readymade one from jlcpcb (or a member that stocks)
Flash it, remove the yaml from esphome, add it again and reflash it (it happened on 2 or 3 members here, me included).
What configuration options can be added for supported features.
I believe it would be a “clean” way for other members to directly go and do the job than searching through all the posts.
And for the supported models, it already has another post which you already referenced.

I have been maintaining the first topic, updating the contents, removing incorrect/outdated info etc…
But I agree i still have to update the parameters….
so…it will be done :+1:t4:

[edit: Done :yum:)

2 Likes

with suipport of additiona sensors Any Support for Midea A/C? - #442 by sergge

s-l500

1 Like

Is “dudanov:midea-climate-support” still the correct string to be put on esp_version that references this doc (with autoconfiguration enabled)

esphome-docs/midea_ac.rst at 2219171d8ea9f52239cf460b1ca90ac2bc923ce9 · dudanov/esphome-docs · GitHub ?

Because when I put that on the esp_version field, the addon doesn’t even start.

No, it isn’t. :slight_smile: This is fully integrated in ESPHome, no need for specific versions anymore. :slight_smile:

Where did you get that? In the first post it is already changed. Could you please point to this, so someone can change it? Thanks. :slight_smile:

Right now you just need to setup ESPHome (standard version) and use the Midea climate component, see here in the ESPHome documentation.

Oh, it’s just that sice this link:

is mentioned on the first post, and since it has more options than the ones present on esphome (like autoconfig, the ability to disable heat mode on units that don’t utilize them or the use of the IR_TSOP on dudanov’s midea dongle), I thought that the esphome documentation was old or not related to this thread. Because I am currently using the config mentiones on esphome, but I wanted to add those extra features.

By the way, you can add this midea unit to the supported list:

Manufacturer: Midea
Model ID: MAS12C1BFH
Year: 2018
Market: MX

!

Done! :slight_smile:

What you’re experiencing here, is that the link you posted is the development branch of Dudanov. He is the code owner of the ESPHome-Midea-Climate-Component. That means, what you see there, is what you get with one of the next releases from ESPHome (standard version).

Stick with the ESPHome version and just wait until these changes come up in ESPHome. If you want to be ahead, use the ESPHome-dev-branch, not Dudanovs. It would be a nightmare to support all these different versions. :wink:

Dudanov is kind enough to provide some special versions for specific problems or use cases that have come up, that would be a reason to use one these specific versions from his repository. Use these if Dudanov asks you to do so for testing purposes. :slight_smile: Otherwise, as I said, I highly recommend to stick with the ESPHome standard or dev branches/versions.

1 Like

Hallo, I,m trying to integrate a Carrier 42qhg009d8s who mounts a 16022000020169 logic board, shared by some other supported ACs, but I’m having some troubles generating the ESPhome configuration file below

esphome:
  name: midea-disimpegno
  platform: ESP8266
  board: d1_mini

# Enable logging
logger:
  baud_rate: 0

captive_portal:
# Enable Home Assistant API
api:

ota:
  password: "flying"

wifi:
  ssid: "foo"
  password: "bar"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Midea-Disimpegno"
    password: ""


# UART settings for Midea dongle (required)
uart:
  tx_pin: 1
  rx_pin: 3
  baud_rate: 9600
  
# Optional (if you want modify settings)
midea_dongle:
  strength_icon: true 

# Main settings
climate:
  - platform: midea_ac
    name: Condizionatore Disimpegno    # Use a unique name.
    beeper: true                # Beep on commands.
    visual:                     # Optional. Example of visual settings override.
    autoconf: true              # Autoconfigure most options.
      min_temperature: 16 °C    # min: 16b
      max_temperature: 30 °C    # max: 30
      temperature_step: 0.5 °C  # min: 0.5
    outdoor_temperature:  # Optional. Create outdoor unit temperature sensor (may display incorrect values after long inactivity).
      name: Temperatura Unità Esterna
    power_usage:                # Optional. Power usage sensor (only for devices that support this feature).
      name: Consumo Condizionatore Disimpegno 
    humidity_setpoint:          # Optional. Indoor humidity sensor (only for devices that support this feature).
      name: Umidità Condizionatore Disimpegno


because

    autoconf: true              # Autoconfigure most options.

causes this error/warning

INFO Reading configuration /config/esphome/midea-disimpegno.yaml...
Failed config

climate.midea_ac: [source /config/esphome/midea-disimpegno.yaml:39]
  platform: midea_ac
  name: condizionatore disimpegno
  beeper: True
  visual: 
    min_temperature: 16 °C
    max_temperature: 30 °C
    temperature_step: 0.5 °C
  
  [autoconf] is an invalid option for [climate.midea_ac]. Please check the indentation.
  autoconf: True [source /config/esphome/midea-disimpegno.yaml:46]
  outdoor_temperature: 
    name: Temperatura Unità esterna
  power_usage: 
    name: Consumo Condizionatore Disimpegno
  humidity_setpoint: 
    name: Umidità condizionatore Disimpegno

preventing the building.

Also removing

    autoconf: true              # Autoconfigure most options.

and adding

    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.

also causates and error

INFO Reading configuration /config/esphome/midea-disimpegno.yaml...
Failed config

climate.midea_ac: [source /config/esphome/midea-disimpegno.yaml:39]
  platform: midea_ac
  name: condizionatore disimpegno
  beeper: True
  visual: 
    min_temperature: 16 °C
    max_temperature: 30 °C
    temperature_step: 0.5 °C
  
  [supported_modes] is an invalid option for [climate.midea_ac]. Please check the indentation.
  supported_modes:  [source /config/esphome/midea-disimpegno.yaml:47]
    - FAN_ONLY
    - HEAT_COOL
    - COOL
    - HEAT
    - DRY
  custom_fan_modes: 
    - SILENT
    - TURBO
  
  [supported_presets] is an invalid option for [climate.midea_ac]. Did you mean [custom_presets]?
  supported_presets:  [source /config/esphome/midea-disimpegno.yaml:56]
    - ECO
    - BOOST
    - SLEEP
  custom_presets: 
    - FREEZE_PROTECTION
  
  [supported_swing_modes] is an invalid option for [climate.midea_ac]. Please check the indentation.
  supported_swing_modes:  [source /config/esphome/midea-disimpegno.yaml:62]
    - VERTICAL
    - HORIZONTAL
    - BOTH
  outdoor_temperature: 
    name: Temperatura Unità esterna
  power_usage: 
    name: Consumo Condizionatore Disimpegno
  humidity_setpoint: 
    name: Umidità condizionatore Disimpegno

I’m sure that I’m drowning in an inch of water, but I hope you can forgive me and helping to get out of the puddle :smile:

I’m getting the feeling, you’re working with some kind of wrong documentation. I can’t find either of your used modes. :wink:

According to the documentation, see here, you can’t use supported_modes or autoconfig. And for what it’s worth, just try with the basic settings and add things like modes or fan_modes after everything else is working.

Something like this and see what happens:

esphome:
  name: midea-disimpegno
  platform: ESP8266
  board: d1_mini

# Enable logging
logger:
  baud_rate: 0

captive_portal:
# Enable Home Assistant API
api:

ota:
  password: "flying"

wifi:
  ssid: "foo"
  password: "bar"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Midea-Disimpegno"
    password: ""


# UART settings for Midea dongle (required)
uart:
  tx_pin: 1
  rx_pin: 3
  baud_rate: 9600
  
# Optional (if you want modify settings)
midea_dongle:
  strength_icon: true 

# Main settings
climate:
  - platform: midea_ac
    name: Condizionatore Disimpegno    # Use a unique name.
    beeper: true                # Beep on commands.

If this works, try adding the things you need. Normally all the things that are needed are discovered automatically, so no need to add the fan_modes. These settings are mostly, if something isn’t working out-of-the-box, but standard users as we all are won’t need these at all. :slight_smile:

EDIT: corrected link to documentation

2 Likes

Your visual need to be as it is with spacing, you put autoconf in wrong place.

  autoconf: true   
  visual: 
    min_temperature: 16 °C
    max_temperature: 30 °C
    temperature_step: 0.5 °C
  

EDIT: But I don’t see it in Docs on Midea Air Conditioner — ESPHome

1 Like

sorry, I used to refer to the github documentation hoping it was correct.

I confirm that your configuration version can be builded, so do you think the AC can works without adding any other parameters?

Oh shit, i had a mistake doing the copy paste to the forum :smiley:

I’m confused about your link, because I think that It takes to the HA webUI…

AC works without any other parameters. This is what I use


climate:
  - platform: midea_ac
    name: "My Midea AC"
    visual:
      min_temperature: 18 °C
      max_temperature: 32 °C
      temperature_step: 0.5 °C
    beeper: true
    swing_horizontal: true
    swing_both: true
    outdoor_temperature:
      name: "Temp"
    power_usage:
      name: "Power"
    humidity_setpoint:
      name: "Hum"

But it works without extra configs.

1 Like

I take advantage of the opportunity to ask if the sensors name are for exposing to HA, so being editable, or used internally by ESPhome, so being unchangeable.
I find it difficult to understand the relative documentation section

Sorry, link to documentation was wrong, I corrected it in the post above, and here it is:

What you used is the development version of the documentation, this is only for developing purposes as there may be some things described, that won’t work in the stable version of ESPHome. What you found is the version that may be upload and reviewed to ESPHome, but it is not final, it just fits the code from the specific branch. For users the ESPHome documentation is the place to go. :slight_smile:

And for the short code I posted, yes, that should work out-of-the-box. Mine isn’t longer and it’s working great. The point is, get it running, and afterwards see (in HA), what functions are missing.
Then check if they are supported (see documentation), and if they are, but not shown, set the parameters manually in the file.
If they are not supported, you can start a feature request by adding an issue on Github or you ask in the telegram group.

As I said, mine is working out-of-the-box without any additional settings. I just changed the behaviour in the frontend, because I’ll never ever use the “heating” from my A/C. So I disabled it. But otherwise it’s just the standard. :slight_smile:

Let us know how it works out for you. Oh and while you’re at it, please add your model to the list of supported models, that you can find here.

. Thanks! :slight_smile:

1 Like

The names are for HA, internally ESPHome uses id. :slight_smile:

1 Like

This overlapping of documentations it’s like a jungle :slight_smile:

Thanks to have it posted, It’s a great reference

I’m starting to follow this building pathway :wink:

You disabled the heating because you live in a low latitude?

I’ll do it when I’ll could be sure that my AC can running…

So I’ll modify it…