Midea branded AC’s with ESPhome (no cloud)

Do you know if I can at least check if iR I’ve soldered is working? As I’ve got Dudanov stick, soldered iR to iR pads on board but cannot get follow me working - how to force stick to send iR commands ? I would use phone camera to see if signal is transmitted so I can dig further what’s the problem. Cheers

Hello everyone…

Does it need to be the special board from dudanov to get this wiring done?
Or is the typical esp8266 board able to do it as well?
Cause dudanovs shop is offline and he is not reacting to emails…

I don’t use dusanov’s iot dongle, i used esp01😉

image

See first post…:thinking:

Hello…i have the same thing…but my question was more about if this can do the follow me wiring to the IR receiver like the dudanovs…
On/off and such is working via wifi/home assistant, but i would love to add follow me and take the follow me temperatur from my xiaomi ble temp/humidity monitor…
Not quite sure yet, how the temp data would get into the ac, but as soon i can wire it in, i might be able to comprehent

Thx !!!

Ah, that is what you mean…

It is possible to use any 8266 board which has free GPIO pins, you only need to know which pin and configure your yaml accordingly.
And the temperature you can get from any HA sensor using a lambda template :wink:

should be something like this:

sensor:
  - platform: homeassistant
    id: frontend_temp
    entity_id: sensor.ble_weighted_avg_temp   # Sensor from HASS
    internal: true
    filters:
      - throttle: 10s
      - heartbeat: 2min             # Maximum interval between updates.
      - debounce: 1s
    on_value:
      midea_ac.follow_me:
        temperature: !lambda "return x;"
        beeper: false               # Optional. Beep on update.

I only can’t test/verify it (as I don’t use the follow_me function myself)

After all the comments, code, script… Has anyone been able to get the SK105 dongle without modification to work with Home assistant using Midea wall cassettes (Aircon) All functions including dry mode?

My Olympia Nexya originally came with a OSK105.
Made a esp01 for it, and it works fine.
But this a split unit…

Hi Andrzej,

Did you manage to get it working? I have an Airwell Heatpump which I probably also going to connect using esphome/modbus, so I am very curious to your progress on this.

Richard.

Hi Jakob,

Any update on this? Can you share some code and or pictures of your setup?

Richard.


Hello, just found this module and was trying to make it work, bit in the end got the error, which seems to be caused by module itself, not the code for esp. Have anyone any ideas, what should I do?

Can you upload your YAML config?

1 Like

I’ve copied it from the esphome and it validates well, so I thought the reason is the component. thanks for the answer btw, there was no notification and I thought nobody’s gonna help me)

esphome:
  name: ac

esp8266:
  board: esp01_1m

# Disable logging over UART (required)
logger:
  baud_rate: 0

# Enable Home Assistant API
api:

ota:

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

# UART settings for Midea dongle (required)
uart:
  tx_pin: 1         # hardware dependant
  rx_pin: 3         # hardware dependant
  baud_rate: 9600
  
# Example configuration entry

# Main settings
climate:
  - platform: midea
    name: Midea Climate         # 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

If anyone has trouble getting the SLWF-01pro to work like I did this is the yaml I ended up getting it to work with:

substitutions:
  node_name: bedroom-heatpump # Use a unique name.
  node_id: bedroom_heatpump    # Use a unique id.
  friendly_node_name: "Bedroom Heatpump"

esphome:
  name: ${node_name}
  comment: ${friendly_node_name}
  platform: ESP8266
  board: esp01_1m
  on_boot:
    priority: 600
    then:
      lambda: id(${node_id}_beeper).turn_on();

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  domain: ".lan"
# Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: ${node_name} " FB"
    password: "fallback"

captive_portal:

# Enable Home Assistant API
api:

# Enable Over The Air updates
ota:

logger:

# Optional, Enable Web server; start internal webserver so it can be used stand-alone
web_server:
  port: 80

# Binary Sensors.
binary_sensor:
  - platform: status
    name: ${friendly_node_name} Connection Status
    id: ${node_id}_connection_status

# Sensors.
sensor:
  - platform: uptime
    name: Uptime Sensor
    id: ${node_id}_uptime_sensor
    icon: mdi:clock-start
    update_interval: 60s
  - platform: wifi_signal
    name: ${friendly_node_name} WiFi Signal
    id: ${node_id}_wifi_signal
    update_interval: 60s


time:
  - platform: sntp
    id: sntp_time
    servers: 
      - "lan.lan"

# Text Sensors.
text_sensor:
  - platform: version
    name: ${friendly_node_name} ESPHome Version
    id: ${node_id}_esphome_version    
  - platform: wifi_info
    ip_address:
      name: ${friendly_node_name} IP Address
      id: ${node_id}_ip_address
      icon: mdi:ip-network

switch:
  - platform: template
    name: ${friendly_node_name} Beeper
    id: ${node_id}_beeper
    icon: mdi:volume-source
    optimistic: true
    turn_on_action:
      midea_ac.beeper_on:
    turn_off_action:
      midea_ac.beeper_off:
  - platform: template
    name: ${friendly_node_name} Boost
    id: ${node_id}_boost
    icon: mdi:car-turbocharger
    optimistic: true
    lambda: return (id(${node_id}_my_climate).preset == ClimatePreset::CLIMATE_PRESET_BOOST);
    turn_on_action:
        - lambda: |-
            auto call = id(${node_id}_my_climate).make_call();
            call.set_preset(ClimatePreset::CLIMATE_PRESET_BOOST);
            call.perform();
    turn_off_action:
        - lambda: |-
            auto call = id(${node_id}_my_climate).make_call();
            call.set_preset(ClimatePreset::CLIMATE_PRESET_NONE);
            call.perform();



button:
  - platform: restart
    id: restart_button
    name: "Restart"  

uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

climate:
  - platform: midea
    id: ${node_id}_my_climate   # Use a unique id
    name: ${friendly_node_name}          # Use a unique name
    autoconf: true
    outdoor_temperature:
      id: ${node_id}_outside_temperature   # Use a unique id
      name: ${friendly_node_name} Outside Temperature

It’s mostly the OPs with some stuff removed and this part changed:

uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

I don’t know if that’s what made it work but it’s my best guess. Couldn’t get it to communicate with the heatpump otherwise

2 Likes

Hello again and sorry for bugging…
To use a free pin on the esp01 board…i looked and we are only using rx/tx, power and gnd on your project here, right?
Would that mean that IO02 os free to use for the follow me command?
Or is the esp01 used in this project booked out and i def need a different esp module with more pins exposed?

Should be available, the only pins used are 1 and 3 as far as i know😉

1 Like

Did anyone have success getting the Follow Me to function? It seems that these AC units rely on turning this ON via the remote to correctly show the room temperature…

I have the SLWF-01pro as it was supplied, but would love to get it managed in HA via ESPhome, can it be flashed via OTA or something and then added that way? Thanks

The ‘follow me’ functionality works only through IR, that is why a IO pin of the esp is connected to the IR (can be wired or with IR transmitter).

PS: it using it myself, so can’t be of much help

I have some other Midea clone heat pump with these connectors.
So which ones will be be the Modbus? AB? H1H2?

(PQ are already connected to outdoor unit)
image

Will test with my setup and your here provided esp32 setup…in case it works, i will share…
Just looked at all the stuff again and hopefully i am not frying my ac haha

By the way…i looked at the code and i am not quiet sure if it needs to be triggered or how to activate the follow me.

remote_transmitter:
  pin: 2                       # For iot-uni-stick.
  carrier_duty_percent: 100%        # 50% for IR LED, 100% for direct connect to TSOP IR receiver output.

sensor:
  - platform: homeassistant
    entity_id: sensor.room_sensor   # Sensor from HASS
    internal: true
    filters:
      - throttle: 10s
      - heartbeat: 2min             # Maximum interval between updates.
      - debounce: 1s
    on_value:
      midea_ac.follow_me:
        temperature: !lambda "return x;"
        beeper: false