Skip to content

Error CH03 #114

@pavolholes

Description

@pavolholes

Hi, I bought four pieces of hardware-tiny from one community member and I've connected it to the:
Outdoor unit multi split: LG MU2R15.U13
Indoor units: LG H09S1DA.NS1 and LG H12S1D.NS1

Logs are from the H09S1DA.NS1. The other unit (H12S1D.NS1) connected to the same outdoor unit is now communicating with the other ESPHome controller without any issues.
I have the same configuration of the units twice but the other two hardware-tiny seems to have hardware issue with TJA1027 so I'm waiting for to replace it.

After some time the indoor unit goes into CH03 error and stops communicating with the controller. Then I can't do anything with the unit to fix that:

  • it doesn't respond to the IR remote controller
  • it doesn't respond to commands from the esphome controller
  • it doesn't respond to the power button on the unit.
    I have to turn of the circuit breaker for the outdoor unit to hard-reboot the indoor unit then it communicates with the ESPHome controller without any issues for some time.
    Note: I don't have any other wired controller than this ESPHome and IR remote controll.

Screenshot from yesterday when it happened:

Image

Attached is the Debug log from current time. I don't have a log from time when that happened (yesterday 14:12). If the log from exact time when that happens is needed I can try to start the syslog and collect the logs from controller there.

20250617-logs_pracovna-klima_logs.txt

These lines are repeating now:

[08:41:56][D][lg-controller:1358]: update
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:41:56][D][lg-controller:950]: received CC.00.00.00.00.01.00.08.00.3C.00.08.4C (13)
[08:42:02][D][lg-controller:1358]: update

Configuration validation (I'm using a lot of includes so this is the combined result):

INFO ESPHome 2025.5.1
INFO Reading configuration /config/pracovna-klima.yaml...
INFO Updating https://github.com/JanM321/esphome-lg-controller.git@None
INFO Detected timezone 'Europe/Bratislava'
substitutions:
  common_comment: Common v0.10
  common_deviceSpecific_comment: lg_airconditioner v0.1
  temperature_sensor_entity_id: sensor.pracovna_multisenzor_temperature
  fahrenheit: 'false'
  is_slave_controller: 'false'
  device_name: pracovna-klima
  friendly_name: Pracovna Klima
  room: Pracovna
  project_name: pavolholes.Pracovna Klima
  project_version: '0.1'
  device_type: ESP32 WROOM
  i2c_sda: GPIO22
  i2c_scl: GPIO21
  uart_ld2410_tx: GPIO17
  uart_ld2410_rx: GPIO16
esphome:
  name: pracovna-klima
  friendly_name: Pracovna Klima
  comment: ESP32 WROOM | lg_airconditioner v0.1 | Common v0.10
  project:
    name: pavolholes.Pracovna Klima
    version: '0.1'
  min_version: 2025.5.1
  build_path: build/pracovna-klima
  area: ''
  platformio_options: {}
  includes: []
  libraries: []
  name_add_mac_suffix: false
  debug_scheduler: false
esp32:
  board: nodemcu-32s
  framework:
    version: 5.1.6
    sdkconfig_options: {}
    advanced:
      ignore_efuse_custom_mac: false
    components: []
    platform_version: https://github.com/pioarduino/platform-espressif32.git#51.03.07
    source: pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v5.1.6/esp-idf-v5.1.6.zip
    type: esp-idf
  flash_size: 4MB
  variant: ESP32
  cpu_frequency: 160MHZ
wifi:
  fast_connect: true
  reboot_timeout: 1h
  ap:
    ssid: AP
    password: <REDACTED>
    ap_timeout: 1min
  on_connect:
    then:
    - logger.log:
        format: '[WIFI] Connected to wifi.'
        level: INFO
        tag: main
        args: []
  on_disconnect:
    then:
    - logger.log:
        format: '[WIFI] Disconneted from wifi.'
        level: WARN
        tag: main
        args: []
  manual_ip:
    static_ip: 192.168.2.231
    gateway: 192.168.2.1
    subnet: 255.255.255.0
    dns1: 0.0.0.0
    dns2: 0.0.0.0
  domain: .local
  power_save_mode: LIGHT
  enable_btm: false
  enable_rrm: false
  passive_scan: false
  enable_on_boot: true
  networks:
  - ssid: PI_NoT
    password: <REDACTED>
    priority: 0.0
  use_address: 192.168.2.231
api:
  reboot_timeout: 1h
  encryption:
    key: <REDACTED>
  on_client_connected:
    then:
    - logger.log:
        format: '[API] Client [%s] connected to API with IP [%s]'
        level: INFO
        args:
        - !lambda |-
          client_info.c_str()
        - !lambda |-
          client_address.c_str()
        tag: main
  on_client_disconnected:
    then:
    - logger.log:
        format: API client disconnected!
        level: WARN
        tag: main
        args: []
  port: 6053
  password: ''
ota:
- platform: esphome
  password: <REDACTED>
  version: 2
  port: 3232
safe_mode:
  num_attempts: 5
  reboot_timeout: 10min
  boot_is_good_after: 1min
  disabled: false
time:
- platform: sntp
  id: sntp_time
  servers:
  - 192.168.2.20
  timezone: CET-1CEST,M3.5.0,M10.5.0/3
  update_interval: 15min
sun:
  latitude: 48.2700039
  longitude: 17.4762098
logger:
  level: VERY_VERBOSE
  logs:
    json: INFO
    sensor: INFO
    sensor.filter: INFO
    adc: INFO
    ntc: INFO
    resistance: INFO
    text_sensor: INFO
    api: INFO
    api.service: INFO
    api.connection: INFO
    ledc: INFO
    internal_temperature: INFO
    esp32.preferences: INFO
    esp32_ble_tracker: INFO
    esp32_ble: INFO
    bluetooth_proxy: INFO
    i2c: INFO
    i2c.idf: INFO
    ld2410: INFO
    bh1750.sensor: INFO
  baud_rate: 115200
  tx_buffer_size: 512
  deassert_rts_dtr: false
  task_log_buffer_size: 768
  hardware_uart: UART0
text_sensor:
- platform: version
  name: Version
  disabled_by_default: false
  icon: mdi:new-box
  entity_category: diagnostic
  hide_timestamp: false
- platform: wifi_info
  ip_address:
    name: IP
    disabled_by_default: false
    entity_category: diagnostic
    update_interval: 1s
  ssid:
    name: SSID
    disabled_by_default: false
    entity_category: diagnostic
    update_interval: 1s
binary_sensor:
- platform: status
  device_class: connectivity
  name: Status
  disabled_by_default: false
  entity_category: diagnostic
sensor:
- platform: wifi_signal
  name: WiFi Signal
  update_interval: 60s
  disabled_by_default: false
  force_update: false
  unit_of_measurement: dBm
  accuracy_decimals: 0
  device_class: signal_strength
  state_class: measurement
  entity_category: diagnostic
- platform: uptime
  id: sensor_uptime_timestamp
  name: Uptime
  disabled_by_default: false
  force_update: false
  icon: mdi:timer-outline
  accuracy_decimals: 0
  device_class: timestamp
  entity_category: diagnostic
  type: timestamp
- platform: internal_temperature
  name: Internal Temperature
  disabled_by_default: false
  force_update: false
  unit_of_measurement: °C
  accuracy_decimals: 1
  device_class: temperature
  state_class: measurement
  entity_category: diagnostic
  update_interval: 60s
- platform: homeassistant
  id: temp_sensor
  internal: true
  entity_id: sensor.pracovna_multisenzor_temperature
  disabled_by_default: false
  force_update: false
  accuracy_decimals: 1
  name: temp_sensor
button:
- platform: restart
  name: Restart
  disabled_by_default: false
  icon: mdi:restart
  entity_category: config
  device_class: restart
status_led:
  pin:
    number: 2
    ignore_strapping_warning: true
    mode:
      output: true
      input: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
    ignore_pin_validation_error: false
    drive_strength: 20.0
bluetooth_proxy:
  active: true
  cache_services: true
  connection_slots: 3
  connections:
  - {}
  - {}
  - {}
esp32_ble_tracker:
  scan_parameters:
    active: true
    duration: 5min
    interval: 320ms
    window: 30ms
    continuous: true
  max_connections: 3
  software_coexistence: true
external_components:
- source:
    url: https://github.com/JanM321/esphome-lg-controller.git
    type: git
  refresh: 1min
  components:
  - lg_controller
uart:
- id: ac_serial
  tx_pin:
    number: 25
    mode:
      output: true
      input: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
    ignore_pin_validation_error: false
    ignore_strapping_warning: false
    drive_strength: 20.0
  rx_pin:
    number: 26
    allow_other_uses: true
    mode:
      input: true
      output: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
    ignore_pin_validation_error: false
    ignore_strapping_warning: false
    drive_strength: 20.0
  baud_rate: 104
  rx_buffer_size: 256
  stop_bits: 1
  data_bits: 8
  parity: NONE
climate:
- platform: lg_controller
  name: ''
  uart_id: ac_serial
  rx_pin:
    number: 26
    allow_other_uses: true
    mode:
      input: true
      output: false
      open_drain: false
      pullup: false
      pulldown: false
    inverted: false
    ignore_pin_validation_error: false
    ignore_strapping_warning: false
    drive_strength: 20.0
  fahrenheit: false
  is_slave_controller: false
  temperature_sensor: temp_sensor
  vane1:
    name: Airflow 1 Up/Down
    id: vane_position_1
    icon: mdi:arrow-up-down
    disabled_by_default: false
  vane2:
    name: Airflow 2 Up/Down
    id: vane_position_2
    icon: mdi:arrow-up-down
    disabled_by_default: false
  vane3:
    name: Airflow 3 Up/Down
    id: vane_position_3
    icon: mdi:arrow-up-down
    disabled_by_default: false
  vane4:
    name: Airflow 4 Up/Down
    id: vane_position_4
    icon: mdi:arrow-up-down
    disabled_by_default: false
  overheating:
    name: Over Heating
    id: overheating
    icon: mdi:heating-coil
    disabled_by_default: false
  fan_speed_slow:
    name: Fan Speed Slow
    id: fan_speed_slow
    icon: mdi:fan-chevron-down
    mode: BOX
    disabled_by_default: false
  fan_speed_low:
    name: Fan Speed Low
    id: fan_speed_low
    icon: mdi:fan-speed-1
    mode: BOX
    disabled_by_default: false
  fan_speed_medium:
    name: Fan Speed Medium
    id: fan_speed_medium
    icon: mdi:fan-speed-2
    mode: BOX
    disabled_by_default: false
  fan_speed_high:
    name: Fan Speed High
    id: fan_speed_high
    icon: mdi:fan-speed-3
    mode: BOX
    disabled_by_default: false
  sleep_timer:
    name: Sleep Timer (minutes)
    id: sleep_timer
    icon: mdi:timer-outline
    mode: BOX
    disabled_by_default: false
  error_code:
    name: Error Code
    id: error_code
    icon: mdi:alert-circle-outline
    disabled_by_default: false
    force_update: false
  pipe_temp_in:
    name: Pipe Temperature In
    id: pipe_temperature_in
    icon: mdi:thermometer
    unit_of_measurement: °C
    disabled_by_default: false
    force_update: false
  pipe_temp_mid:
    name: Pipe Temperature Mid
    id: pipe_temperature_mid
    icon: mdi:thermometer
    unit_of_measurement: °C
    disabled_by_default: false
    force_update: false
  pipe_temp_out:
    name: Pipe Temperature Out
    id: pipe_temperature_out
    icon: mdi:thermometer
    unit_of_measurement: °C
    disabled_by_default: false
    force_update: false
  defrost:
    name: Defrost
    id: defrost
    icon: mdi:snowflake-melt
    disabled_by_default: false
  preheat:
    name: Preheat
    id: preheat
    icon: mdi:heat-wave
    disabled_by_default: false
  outdoor:
    name: Outdoor Unit
    id: outdoor
    icon: mdi:fan
    disabled_by_default: false
  auto_dry_active:
    name: Auto Dry Active
    id: auto_dry_active
    icon: mdi:fan-clock
    disabled_by_default: false
  purifier:
    name: Air Purifier
    id: air_purifier
    icon: mdi:pine-tree
    disabled_by_default: false
    restore_mode: ALWAYS_OFF
  internal_thermistor:
    name: Internal Thermistor
    id: internal_thermistor
    icon: mdi:thermometer
    disabled_by_default: false
    restore_mode: ALWAYS_OFF
  auto_dry:
    name: Auto Dry
    id: auto_dry
    icon: mdi:fan-clock
    disabled_by_default: false
    restore_mode: ALWAYS_OFF
  disabled_by_default: false
  visual: {}
number: []
switch: []
select: []

INFO Configuration is valid!

Thank you!
Pavol

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions