Midea branded AC’s with ESPhome (no cloud)

Similar board with automatic direction.
Wiring is this…image attached.
Heatpump X - RS485 A
Heatpump Y - RS485 B
Heatpump E(GND) - RS485 GND, TLL GND, ESP GND
Heatpump 5V - ESP 5V

ESP TX(GPIO1) - RS485 TLL RXD
ESP RX(GPIO3) - RS485 TLL TXD
ESP 3V3 - RS485 TLL VCC

With this wiring and config, RXD LED on RS485 board blinks in sync with the error.


I’m not quite sure how esphome handles uart on esp8266 (I have always used Esp32 for serial).
You use hardware serial pins 1&3, that are shared with usb.
Have a look at esphome documentation, it’s basically saying that for esp8266 softwareserial is used instead…maybe you have better understanding.

What about your baudrate 4800, is it same with exciton?

edit: I guess it’s ok when you don’t use usb for logging. I would define uart pins
tx_pin: GPIO1 instead of TX to be clear.

I have tried that, same result.

UPDATE: I switched over to different GPIO ports using software serial and communication is now working. I have control of the unit, the last thing to solve now is that home assistant shows farenheit, but the unit is displaying celsius. @exciton is there somewhere to change that? If I send something from the wireless remote, it will switch to F, but anytime I use Home Assistant the units display goes to C.

1 Like

Should be able to comment out there command which converts to Celcius. Mine defaults to Fahrenheit too, but I stumbled across the way to switch it with that command.

have you had any luck finding information on this? I can’t find anything on my end

Such a long and interesting thread!

Has anyone been able to just use an IR transmitter with SMARTLIGHT SLWF-01 Pro v1.1 to report the temperature and turn on/off the LED screen?

This toggle is not working without an IR tx

switch:
  - platform: template
    name: Display Toggle
    icon: mdi:theme-light-dark
    turn_on_action:
      midea_ac.display_toggle:

I am getting the following the log:

17:34:23	[D]	[switch:012]	
'Display Toggle' Turning ON.
17:34:23	[W]	[midea:148]	
Action needs remote_transmitter component

Any help would be much appreciated! Thank you.

EDIT:

Is it as simple as what’s documented on another thread (see image below)? is the IR signal going to work if the IR transmitter is enclosed with the USB stick?

Hello. Why don’t you get urself the dudanov dongle?
He is not selling it anymore but I just downloaded his files and went to the board printing page refers to and got 5 dongles with all the smd parts for 20 bucks shipped, even still have some extra since I only have 2 units.
Plugged in and everything works, even follow me via xiaomi ble room thermometer.

Hello all.
I am using Mr cools midea clone with dudanovs USB stick and everything works like a charm.
And the thermostat that is available for it is also ok…
But how can one add a feature to it?
I find almost everything by default on the thermostat but not the toggle display to turn of the very bright temperature display on the unit.
On the device config page in esphome is this function working.
So can I somehow add this to the thermostats view or could I make a switch and somehow group it with the thermostat?
Thx for any thoughts

I bought the SMARTLIGHT SLWF-01 Pro v1.1 before knowing that some features were IR only.

I was hoping to not have to mess with with the minisplit board itself and just solder an IR transmitter to the SLWF-01. Do you know if that’s gonna work?

You should be able to pair this device locally via Matter without having to install the app of Midea. There is probably a QR code on the side of your device?

If you end up going to make yourself a dongle with local ESPHome control, I will happily buy your Matter dongle + QR code, as I accidentally bought one with the old stick and I want to test the Matter part.

Paulus
~Founder Home Assistant

1 Like

Are you still using your SK-109 dongle? Can I use it to test this AC via Matter in Home Assistant?

Paulus
~Founder Home Assistant

So I commented out those lines. It didnt change anything. I did however discover something strange going on. If I use the remote and set the display to F the numbers coming back to HA are in C in the logs but in the range of 197-221C where 197 corresponds to 62F and 221 to 86F. I then confirmed if I force one of these temp values back to the A/C using the on control lambda function, using 200C which corresponds to 65F then the A/C displays 65F. WTH? Complicating it more is that HA then converts that high number back to F so the dashboard says like 401F.

Can anyone help decipher this one? Is there some way to intercept and add offsets to the data to and from the esp?

Has anyone tried to connect any of the midea breezeless ac-s with floor mounted indoor unit?
i am looking into getting MFA2U-12HRFNX / MOX230-12HFN8, which does say optional Wi-Fi support, to which i assume could wire an esp.
of course, if it is somewhat of a given that i will get at least basic control over it, i will buy it regardless and report back :slight_smile:

I doubt I’ll ever use it again so you may have it. I did use it once to connect the a/c to Homekit via Matter before my ESPHome dongle showed up and it worked.

1 Like

After some testing using a kill-a-watt, it seems that the power consumption is accurate as long as the compressor isn’t working. For some reason when the compressor is running it’s roughly 1/3 of the actual value. I asked ChatGPT for assistance and this is what it suggested and so far is working great.

climate:
  - platform: midea
    name: "Upstairs Hallway A/C"
    period: 1s
    timeout: 2s
    num_attempts: 3
    autoconf: true
    beeper: false
    visual:
      min_temperature: 17 °C
      max_temperature: 30 °C
      temperature_step: 0.5 °C
    outdoor_temperature:
      name: "Outside Temp"
    power_usage:
      name: "Uncorrected Power Consumption"
      id: uncorrected_power_consumption

sensor:
  - platform: template
    name: "Corrected Power Consumption"
    unit_of_measurement: "W"
    lambda: |-
      if (id(uncorrected_power_consumption).state <= 15) {
        // When only the fan is running, no correction needed
        return id(uncorrected_power_consumption).state;
      } else {
        // When the compressor is running, apply correction factor
        return id(uncorrected_power_consumption).state * 3.33;
      }
    update_interval: 30s
    accuracy_decimals: 1

I think so. The SLWF-01 appears to expose GPIO and power pads for this purpose, but I think you’re not going to be able to drive the LED directly from the GPIO pad and you’ll need to use a transistor, so it wont be as simple as soldering two wires but I think it should work. I plan on doing this to mine one of these days.

Mostly because I have all the bits here already (except that plug). And because I didn’t want to wait. Even though of course DIY will somehow end up taking me even longer in the end. :smiley:

Search in your HA instance, maybe you missed it. I don’t think it will be part of the thermostat, but I don’t have anything working yet so I’m not sure. But search for a separate switch. And/or check your YAML config and make sure it’s enabled (or at least get the name to search in HA for). Other than that, maybe it’s not supported or a bug, but I would double (triple) check everything before assuming that.

Indeed, there is a QR code on the opposite side of the dongle. I was wondering if I could do something like that without Midea’s app. Neat!

Unfortunately no Matter here (yet), we are still primarily Zigbee. Although honestly the promise of local control might be enough motivation to dip my toe in the water, finally!

I see the other guy replied to you already. If you don’t connect with him, maybe I will send it to you. Although as I said, all of a sudden I am intrigued about Matter! :smiley: We will see what happens.

At some point in my research, I did notice that, in the parent generic ESPHome climate component it says:

In ESPHome, °C is assumed for all temperature values. Some platforms allow conversion or setting in °F, this is specified separately.

Perhaps a clue?


My project progressed a little. I found some 2.0 mm headers I had laying around, pulled the pins out with pliers and stuck them in (they fit). I then used some 2.0 mm to regular pin pitch duPont adapters I had also acquired for some other project. I used a little clear tape to help keep it together:

Then I spent the better part of 2 days studying ESPHome and thinking about my device and entity naming conventions. :smiley:

This will save you so much time in the future, you could have spent two weeks and it would still be worth it! :laughing: Assuming you came up with a good naming convention in the end… :rofl: :rofl:

1 Like

but I think you’re not going to be able to drive the LED directly from the GPIO pad and you’ll need to use a transistor, so it wont be as simple as soldering two wires but I think it should work

What’s making you think that? I ordered those IR transmitter and some jumper wires and will give it a shot when everything arrives.

Please keep us posted if you happen to try before I do.