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)