LG Therma-V - Modbus - ESPHome

If I’m here, it’s because I need help.

Until now, I’ve managed my ThermaV using:

https://community.home-assistant.io/t/lg-therma-v-heat-pump-modbus-control/496233/14

Today, I want to take it a step further, eliminating the cables.

I connected everything according to the following diagram:

image

I’m trying with this code

`
esphome:
name: thermav
friendly_name: ThermaV

esp8266:
board: esp01_1m

board: esp12e

web_server:
port: 80

Enable logging

logger:

Enable Home Assistant API

api:
encryption:
key: “dpikk/FwBH1bIuxr9+ICdjEQ8Hkt99Y4NTPtgOIjqJs=”

ota:

  • platform: esphome
    password: “ba1c68503c956312fb5dd7347c219d45”

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

manual_ip:
static_ip: 192.168.1.215
gateway: 192.168.1.1
subnet: 255.255.255.0

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

ap:
ssid: “Thermav-Modbus Fallback Hotspot”
password: “pRHTh2LP6EUq”

captive_portal:

uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
id: uart_bus
stop_bits: 1
data_bits: 8
parity: NONE

modbus:
id: modbus1
uart_id: uart_bus
send_wait_time: 500ms

modbus_controller:

  • id: modbus_device
    address: 0x1 # Set to the Modbus address I confirmed works with the RS485 to USB
    modbus_id: modbus1
    setup_priority: -10
    update_interval: 30s # Adjust the polling interval as needed

sensor:

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: “T °C Set”
    register_type: holding
    address: 0x24 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: “MODE”
    register_type: holding
    address: 0x26 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: “Errore”
    register_type: read
    address: 0x10 ## address of the register inside the Modbus slave device
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "°C Evaporatore "
    register_type: holding
    address: 0x11 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "°C Esterno "
    register_type: holding
    address: 0x12 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "°C Scambiatore "
    register_type: holding
    address: 0x14 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "°C Ritorno "
    register_type: holding
    address: 0x15 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "°C Mandata "
    register_type: holding
    address: 0x16 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°C”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: “Frequenza”
    register_type: holding
    address: 0x20 ## address of the register inside the Modbus slave device
    unit_of_measurement: “°Hz”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Hp R32 "
    register_type: holding
    address: 0x20 ## address of the register inside the Modbus slave device
    unit_of_measurement: “Kpa”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Lp R32 "
    register_type: holding
    address: 0x21 ## address of the register inside the Modbus slave device
    unit_of_measurement: “Kpa”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Silent "
    register_type: coil
    address: 0x2 ## address of the register inside the Modbus slave device
    unit_of_measurement: “Kpa”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Compressore "
    register_type: coil
    address: 0x3 ## address of the register inside the Modbus slave device
    unit_of_measurement: “Kpa”
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Circolatore "
    register_type: coil
    address: 0x4 ## address of the register inside the Modbus slave device
    unit_of_measurement: “Kpa”
    value_type: U_WORD
    `

Unfortunately it doesn’t work and the log returns :

'[17:34:17][C][captive_portal:089]: Captive Portal:
[17:34:17][C][web_server:285]: Web Server:
[17:34:17][C][web_server:285]: Address: 192.168.1.215:80
[17:34:17][C][esphome.ota:073]: Over-The-Air updates
[17:34:17][C][esphome.ota:073]: Address: 192.168.1.215:8266
[17:34:17][C][esphome.ota:073]: Version: 2
[17:34:17][C][esphome.ota:080]: Password configured
[17:34:17][C][safe_mode:018]: Safe Mode:
[17:34:18][C][safe_mode:019]: Boot considered successful after 60 seconds
[17:34:18][C][safe_mode:019]: Invoke after 10 boot attempts
[17:34:18][C][safe_mode:019]: Remain for 300 seconds
[17:34:18][C][api:182]: API Server:
[17:34:18][C][api:182]: Address: 192.168.1.215:6053
[17:34:18][C][api:187]: Using noise encryption: YES
[17:34:18][C][mdns:122]: mDNS:
[17:34:18][C][mdns:122]: Hostname: thermav
[17:34:18][C][modbus_controller:349]: ModbusController:
[17:34:18][C][modbus_controller:349]: Address: 0x01
[17:34:18][C][modbus_controller:349]: Max Command Retries: 4
[17:34:18][C][modbus_controller:349]: Offline Skip Updates: 0
[17:34:18][D][modbus_controller:039]: Modbus command to device=1 register=0x24 no response received - removed from send queue
[17:34:21][D][modbus_controller:039]: Modbus command to device=1 register=0x26 no response received - removed from send queue
[17:34:23][D][modbus_controller:039]: Modbus command to device=1 register=0x10 no response received - removed from send queue

can anyone find the mistake

First of all Esp8266 is not 5V device, you are abusing it powering the converter at 5V (getting 5V on serial pin).
You are also using logger, which is spamming the serial line with logs.
Disable serial logging:

logger:
  baud_rate: 0

Neither that guarantees working serial connection with all esp8266 boards, some of them have rx/tx pins bonded to USB way that they are not usable.
You could configure uart to alternative pins:

uart:
tx_pin: GPIO15
rx_pin: GPIO13

Or make your life easier and use esp32.

And edit your post using code tags for your yaml. The way you posted it is not readable!