LG AC Wired Controller integration via ESPHome/ESP32

Have you tried it? This was my understanding as well. You just have to change the is_slave_controller field to “true” in template.yaml before flashing the firmware. Also, the 3 wires must be shared with the other thermostat.

I haven’t tried it yet, but I will confirm once I get the ESP32 devkit.

I had to order extra tiny PCBs as well. I am shipping from Spain to anywhere in the EU for 12€ plus shipping. PM me if you are interested.

I did try it and it seemed to work fine. I switched fairly quickly to using it as my primary controller to see what was different.

Of note:
I did not get in/out/mid temperatures until I made my esphome the primary
The fan speed configuration went away after I made it primary
I think the LG controller as primary made the system stick to the schedule I had programmed (I would use the esphome to switch modes and it would sometimes ‘pop’ back to what was scheduled… I didn’t debug this much, I could be mistaken what was going on.

If anyone still has a spare PCB and is willing to ship within EU please let me know. Thanks!

I have 3 spare PCBs left. They where manufactured without C1 and without the 2 pin sockets as these were out of stock. I’ve purchased the C1 separately and soldered it to the PCBs after receiving them.
The 2 sockets will have to be ordered separately and soldered to the PCB, but that’s not difficult.
I’m living in Germany.

Aussie here. I want to get a board made… anyone else wanting one that might be Aussie as well?

I originally tried to smarten up my LG ducted by using this on instructables, but even with the authors help I just didn’t get it working.

Not sure if any info he has would help this project.

1 Like

If you still have these three tiles, I would be interested, I live in Poland. And I speak German.

Let’s say I need to install this as slave (my “indoor” unit is actually outside and it sends the air inside via ducts so I need to be able to use the PREMBT temp sensor). Do I just splice the cables that go to the PREMBT and install this in parallel?

Yes. You could also replace the PREMTB completely because the controller can use a Home Assistant temperature sensor.

1 Like

@JanM321 Hello! I miss the Airflow up/down setting from 0-6 for up to 4 vanes entities!

this is my configuration.yaml
substitutions:

Unique device ID in HA

deviceid: “clima_lg_etaj” # XXX

Unique device name in HA (sensor names will be prefixed by this name)

devicename: “clima-lg-etaj” # XXX

The input temperature sensor in HA.

temperature_sensor_entity_id: sensor.temp_umi_0_6 # XXX

Set to “true” if the temperature sensor and Home Assistant use Fahrenheit instead of Celsius.

fahrenheit: “false” # XXX

If multiple controllers are connected to a single indoor unit, only one of them should be

configured as “master controller”. Slave mode is a new and experimental feature for this

ESPHome controller and might not work well.

If you’re connecting a single controller, this should be set to “false”.

is_slave_controller: “false”

esphome:
name: clima-lg-etaj
friendly_name: Clima LG Etaj

esp32:
board: esp32dev
framework:
type: arduino

Enable logging

logger:
level: DEBUG

Enable Home Assistant API

api:
encryption:
key: “”

ota:
platform: esphome
password: “”

wifi:
reboot_timeout: 5min
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: true

mac address E0:5A:1B:5F:9F:6C

manual_ip:
static_ip: 192.168.88.35
gateway: 192.168.88.1
subnet: 255.255.255.0

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: “Clima-Lg-Etaj Fallback Hotspot”
password: “”

captive_portal:

uart:

  • id: ac_serial
    tx_pin: GPIO25
    rx_pin:
    number: GPIO26 # Keep in sync with rx_pin below.
    allow_other_uses: true
    baud_rate: 104

sensor:

  • id: temp_sensor
    platform: homeassistant
    internal: true
    entity_id: ${temperature_sensor_entity_id}
  • platform: uptime
    name: Uptime

external_components:

  • source: components
    components: [lg_controller]

climate:

  • platform: lg_controller
    name: “”
    id: ${deviceid}
    uart_id: ac_serial
    rx_pin:
    number: GPIO26 # Keep in sync with rx_pin above.
    allow_other_uses: true
    fahrenheit: ${fahrenheit}
    is_slave_controller: ${is_slave_controller}
    temperature_sensor: temp_sensor
    vane1:
    name: Airflow 1 Up/Down
    id: vane_position_1
    icon: mdi:arrow-up-down
    vane2:
    name: Airflow 2 Up/Down
    id: vane_position_2
    icon: mdi:arrow-up-down
    vane3:
    name: Airflow 3 Up/Down
    id: vane_position_3
    icon: mdi:arrow-up-down
    vane4:
    name: Airflow 4 Up/Down
    id: vane_position_4
    icon: mdi:arrow-up-down
    overheating:
    name: Over Heating
    id: overheating
    icon: mdi:heating-coil
    fan_speed_slow:
    name: Fan Speed Slow
    id: fan_speed_slow
    icon: mdi:fan-chevron-down
    mode: box
    fan_speed_low:
    name: Fan Speed Low
    id: fan_speed_low
    icon: mdi:fan-speed-1
    mode: box
    fan_speed_medium:
    name: Fan Speed Medium
    id: fan_speed_medium
    icon: mdi:fan-speed-2
    mode: box
    fan_speed_high:
    name: Fan Speed High
    id: fan_speed_high
    icon: mdi:fan-speed-3
    mode: box
    sleep_timer:
    name: “Sleep Timer (minutes)”
    id: sleep_timer
    icon: mdi:timer-outline
    mode: box
    error_code:
    name: Error Code
    id: error_code
    icon: mdi:alert-circle-outline
    pipe_temp_in:
    name: Pipe Temperature In
    id: pipe_temperature_in
    icon: mdi:thermometer
    unit_of_measurement: “°C”
    pipe_temp_mid:
    name: Pipe Temperature Mid
    id: pipe_temperature_mid
    icon: mdi:thermometer
    unit_of_measurement: “°C”
    pipe_temp_out:
    name: Pipe Temperature Out
    id: pipe_temperature_out
    icon: mdi:thermometer
    unit_of_measurement: “°C”
    defrost:
    name: Defrost
    id: defrost
    icon: mdi:snowflake-melt
    preheat:
    name: Preheat
    id: preheat
    icon: mdi:heat-wave
    outdoor:
    name: Outdoor Unit
    id: outdoor
    icon: mdi:fan
    auto_dry_active:
    name: Auto Dry Active
    id: auto_dry_active
    icon: mdi:fan-clock
    purifier:
    name: Air Purifier
    id: air_purifier
    icon: mdi:pine-tree
    internal_thermistor:
    name: Internal Thermistor
    id: internal_thermistor
    icon: mdi:thermometer
    auto_dry:
    name: Auto Dry
    id: auto_dry
    icon: mdi:fan-clock

These from swing mode work perfectly!
image

Hello! I miss the Airflow up/down setting from 0-6 for up to 4 vanes entities!

What’s your indoor unit model? Some (older?) units unfortunately don’t let a wired controller change the vane setting and the ESPHome controller then hides the setting from Home Assistant. There’s some discussion on a previous report here:

Vane control issue · Issue #53 · JanM321/esphome-lg-controller · GitHub

Unit model A12LL NSN (ASNW126NRR0)

So I ordered tiny PCBs and I was wondering if it would be possible to connect it to the AC with dupont wires. These jst-xh male-male don’t seem to be too common.

Also would ESP-WROOM-32U have better range than the one with printed antenna? I got an antenna from an old 2.4GHz router with U.FL connector that seems to fit well inside the AC unit. The integrated wifi module in the AC sometimes drops from the network as I have to run the 2.4GHz wifi power low not to interfere with zigbee and bluetooth too much

Hello everyone. I have a mini split S09AWN-NM14. Kinda not sure if this can be used for my unit since I dont have a wired controller but on an IR remote.

Can anyone please clarify if I can use it please

Thanks

It’s hard to say. The controller is known to work with S09ET units but I don’t know how similar they are to your S09AWN. You could check if the unit has a green CN-REMO connector.

Ok will try to crack it open this week. Do any of you have a spare board/unit you can send me. I am good to pay if so. I am in Australia.

Update: Ok I do have the green connector.

So I assume no access to tx and rx and this is why its got to be a little complicated?