ESP Haier: Haier Air Conditioner + ESP Home + Wemos D1 mini

Which esp32 board to buy?
Can you post some links pls.

Soldering connections on esp32 board are the same to 8266 board?

I am using this:

and this:

But these are quite expansive. You can use any other supported by ESPhome, like this: https://www.aliexpress.com/item/1005006336964908.html
Soldering is the same (it is always the same :smile:) but you need to use of course proper pins which depend on the board you will select. Check pinouts.

1 Like

Atom S3U is with USB A.
Can that USB a connector be used for uart?

Short answer yes. Keep in mind not all ESP32 boards with USB A can be used. But ESP32-S3 chips have built-in USB, so if the board is using this feature we can reprogram ESP with ESPHome to use UART for the same USB A connector. For Atom S3U I can confirm that is working. Here you can find a sample configuration for this board: Haier AS25S2SF2FA-2 with M5Stamp C3 · Issue #40 · paveldn/haier-esphome · GitHub

1 Like

Also added this answer to my “Frequently Asked Questions” page :haier-esphome/docs/faq.rst at f04cca5378ff6987e1746c40ef2bba80f32555c1 · paveldn/haier-esphome · GitHub

1 Like

Can you look my code if it is ok for Atom S3U

substitutions:
  name: esphome-web-12eac8
  friendly_name: Haier AC
  uart_id: ac_port

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  min_version: 2024.6.0
  name_add_mac_suffix: false
  platformio_options:
    board_build.flash_mode: dio
  project:
    name: esphome.web
    version: '1.0'

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:
  level: DEBUG

# Allow Over-The-Air updates
ota:
- platform: esphome

# Allow provisioning Wi-Fi via serial
#improv_serial:

wifi:
  # Set up a wifi access point
  ap: {}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
#esp32_improv:
#  authorizer: none

# To have a "next url" for improv serial
web_server:

# Haier AC

uart:
  baud_rate: 9600
  tx_pin: 19
  rx_pin: 20
  id: ${uart_id}

api:
  services:
    - service: turn_on
      then:
      - climate.haier.power_on: haier_ac
    - service: turn_off
      then:
      - climate.haier.power_off: haier_ac

climate:
  - platform: haier
    id: haier_ac
    protocol: smartAir2
    name: Haier SmartAir2 Climate
    uart_id: ${uart_id}
    alternative_swing_control: true
    wifi_signal: true
    visual:
      min_temperature: 16 °C
      max_temperature: 30 °C
      temperature_step: 1 °C
    supported_modes:
      - 'OFF'
      - HEAT_COOL
      - COOL
      - HEAT
      - DRY
      - FAN_ONLY
    supported_swing_modes:
      - 'OFF'
      - VERTICAL
    #  - HORIZONTAL
    #  - BOTH
    supported_presets:
    #  - BOOST
    #  - COMFORT
    #  - AWAY

switch:
  - platform: template
    id: haier_ac_health_mode
    name: Haier SmartAir2 Climate health mode
    icon: mdi:leaf
    restore_mode: RESTORE_DEFAULT_OFF
    lambda: |-
      return id(haier_ac).get_health_mode();
    turn_on_action:
      climate.haier.health_on: haier_ac
    turn_off_action:
      climate.haier.health_off: haier_ac
  - platform: template
    id: haier_ac_display_switch
    name: Haier SmartAir2 Climate display
    icon: mdi:led-on
    entity_category: config
    restore_mode: RESTORE_DEFAULT_ON
    lambda: |-
      return id(haier_ac).get_display_state();
    turn_on_action:
      climate.haier.display_on: haier_ac
    turn_off_action:
      climate.haier.display_off: haier_ac

I suppose your supported_presets will give an error during yaml validation
If you want empty presets use it like this:

...
    supported_presets: []
...

Everything else looks OK. It should work I think. Of course, you never know until you try.

Validation went without a problem.
How can I set /edit this presets?
If I enable presets in yaml they do nothing on pres/change in Home Assistant.
Not sure if I need this:
esp32_improv:
authorizer: none
I’m sure I don’t need bluetooth, microphone and ir

If you don’t know what it is - you definitely don’t need it. Just remove this section it have nothing to do with Haier AC

Did you put Atom S3U in air conditioner with or without plastic cover?
Atom S3U with plastic cover is little to deep.
It go inside but with little more force than expecteed.

EDIT:
Without plastic cover is much better.
I hope that way is ok

Yes, I am also using it without a cover.

1 Like

Just to confirm that everything is working properly with Atom S3U and the settings from this post.

Tnx @paveldn

1 Like