I don’t have this type of pull down menus. If I enter IP adress I can select workmode as below
Hi,
if someone need inspiration for the LG Therma V integration.
Currently its only the yaml file for the heatpump.
BR
Basti
Nice, thanks!
The heat pump is part of test setup, using multiple heating units. After wasting time on the UI and reading forums, I’ve asked ChaptGPT, after a small issue with indentation it wrote the following lines for me to create a schedule. Works great!
automation:
- alias: "Turn On LG Therma V Weekdays"
trigger:
- platform: time
at: "04:00:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: switch.turn_on
entity_id: switch.lg_therma_v_verwarming # Replace with your actual switch entity ID
- alias: "Turn Off LG Therma V Weekdays"
trigger:
- platform: time
at: "18:00:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: switch.turn_off
entity_id: switch.lg_therma_v_verwarming # Replace with your actual switch entity ID
- alias: "Turn Off LG Therma V at Midnight"
trigger:
- platform: time
at: "00:00:00"
action:
- service: switch.turn_off
entity_id: switch.lg_therma_v_verwarming # Replace with your actual switch entity ID
Hello. I see I am not the only one having issues with the LG Therma V modbus integration. I am seriously tearing my hair out with this. I have tried every combination from all the advice I have seen, and I still continue to see the same error, and I have never seen a response coming from the HP “[homeassistant.components.modbus.modbus] Pymodbus: waveshare1: Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response”
I have stripped down my modbus yaml to the bear minimum to read one item. I have tried various combinations of the dip switches (Switch 1, 1 and 2), and Modbus addresses etc.
In my manual (for LG HU121/HN161) I see this for the option switch 1 :
I have also tried some Modbus scanning software, but all show timeout as if there is no signal at all from the heat pump (I can connect to the Waveshare module via TCP)
Any pointers at all would be greatly received!!
Thanks a lot
In my case the firmware was out of date, I tried everything and modbus was not working.
It talked with the LG directly. An engineer came to upgrade the FW and solve the issue.
P.S He told me he just upgraded the FW but I remember that he replaced also something on the PCB. Free of charge!
Thanks for the heads up. Quite annoying if this is the case, but I suspect it might be. Do you have the details for contacting LG directly please?
I’m sorry to hear that, it’s so annoying when you try everything with no result…
Have you ever tried to connect another modbus device? Just to make 100% sure you have that part up and running?
For me that was what helped me the most the end.
Hi Peter,
Do you have a picture of how you mounted the waveshare modbus in you LG therma V heatpump?
I am interested how you managers the powersupply? Dit you use the powersupply of the LG?
By any chance, can someone please verify pitch of the jst connector for wifi module. It is hard for me to measure it, and this heatpump is not even at my home, so I cannpt easily just try if is is 1.5 or 2.0mm
I’ve got the LG Therma V modbus connection running for a while now and all seemed to be fine.
Except for… a couple of days ago, I suddenly lost an entity (sensor.water_outlet_temp)
I have not changed anything in the modbus.yaml file.
When looking in settings/device & services/entities, the entity doesn’t show up either.
This is the content of the modbus.yaml file for both in and out temp:
- name: water_inlet_temp
scale: 0.1
precision: 1
scan_interval: 5
address: 2
slave: 1
unit_of_measurement: °C
input_type: input
- name: water_outlet_temp
scale: 0.1
precision: 1
scan_interval: 5
address: 3
slave: 1
unit_of_measurement: °C
input_type: input
Is there anybody else who noticed this?
I can’t imagine it’s something on the LG side as that’s not being updated (and I’ve reset the heatpump to make sure it wasn’t some sort of glitch) but whatever I do, the value is gone.
It does show on the remote control panel, so the sensor in the LG Therma is functional… I just can’t get my head around the sensor disappearing all of a sudden.
Anyone else seen this? Any solution?
Same here!
I’ve just opened a new topic here, not realizing you have same problem!
The issue is that same registar is used by your climate enitity as well, showing you outlet temp from heating pump. If you temporarily disable climate entity in modbus configuration you will notice that sensor will start working again!
Meaning there is an issue accessing same register twice. That came from new 2024.3 version.
BR,
Vuk
I’ve brought up an issue here, unfortunatelly the developer hasn’t been very helpful : Lost Modbus Sensor after upgrade to Core 2024.3 · Issue #112607 · home-assistant/core · GitHub
Would anyone be able to provide guidance on configuring this using “automation”?
I’m having the same issue, and to be honest I’m not experienced enough to know what do change.
I was using this yaml Mastering Modbus: Heat Pump Integration with Home Assistant – Rod McBain
are there any better templates anywhere?
Hello everyone,
I think I can ask here without starting a new topic.
I have Therma V and from FEB this year I am using HA and modbus integration to control my hetapump. So, beginner. Since then I managed to establish a desent control over my pump but still I am missing some parts. For example control pump when it is in AI mode. As you probably know when heat pump works in this mode it actually doesn’t track the whater temp, it is looking on shifting whole heating curve defined in pump it self in range from -5 to 5.
In modbus that reffers in holding registar, address 4:
I have defined input_number to use slider between -5 to 5 values and send that to modbus register using automation, triggered by input_number. Something like this:
sequence:
- service: modbus.write_register
data_template:
address: 4
slave: 1
hub: lg_heatpump
value: "{{ trigger.to_state.state | int(0) }}"
Everything is fine if I send positive value (from 0 to 5). It is written in register as expected. But I realized negative values cannot be written in modbus register like -5, -4, end so on. I need to use upper half of 16 bit register, for example if I want to set this value for -3 I need to send 65533, for -4 I need to send 65532, and so on.
I’ve tested this manually and it works fine, but I cannot make it work automatically with input_number and automation. If I move slider to -3 to send 65533 value to registar.
I would need help in defining variables or some kind of matching for negative values from input_number (slider) to send 65533, 65534 values to registar.
Anyone of you have a solution for this or any idea how to get it work? If anyone is using AI mode or have climate configure to use this mode with temp shifter instead of water temperatures?
I am using custom climate template to definte my thermostat for hp. This is how it looks like today
Any help highly appreciated. Thanks!!
did sameone use D1 mini and TTL to RS485 module for HA modbus control
No experience with that one, but this one: https://www.waveshare.com/wiki/2-CH_RS485_HAT
works very well with HA, you can make 2 separate busses as below
modbus:
-
name: “WSHAT01”
type: serial
port: /dev/ttySC0
baudrate: 9600
bytesize: 8
method: rtu
parity: E
stopbits: 1
sensors: -
name: “WSHAT02”
type: serial
port: /dev/ttySC1
baudrate: 38400
bytesize: 8
method: rtu
parity: N #standard
stopbits: 2 #standard
sensors:
esphome:
name: toplotna-gretje-lg
friendly_name: Toplotna gretje LG
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "50IYfJkXObgARYPxFoV7g+gPlPlEOaxB4mGb3b+H+nk="
ota:
password: "f2cf769d81719c643f798f0da83f79f7"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Optional manual IP
manual_ip:
static_ip: 192.168.0.65
gateway: 192.168.0.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Toplotna-Gretje-Lg"
password: "D8OwjxSVKAcc"
captive_portal:
- uart:
id: mod_bus
tx_pin: GPIO 1
rx_pin: GPIO 3
baud_rate: 9600
stop_bits: 1
parity: NONE
binary_sensors:
- name: "lg_therma_heating_mode"
address: 0
scan_interval: 60
slave: 1
input_type: coil
- name: "lg_therma_flow_too_low"
address: 0
scan_interval: 60
slave: 1
input_type: discrete_input
- name: "lg_therma_pump_status"
address: 1
scan_interval: 10
slave: 1
input_type: discrete_input
device_class: running
- name: "lg_therma_compressor_status"
address: 3
scan_interval: 10
slave: 1
input_type: discrete_input
device_class: running
- name: "lg_therma_defrost_status"
address: 4
scan_interval: 60
slave: 1
input_type: discrete_input
device_class: running
- name: "lg_therma_dhw_status"
address: 5
scan_interval: 60
slave: 1
input_type: discrete_input
device_class: running
- name: "lg_therma_disinfect_status"
address: 6
scan_interval: 60
slave: 1
input_type: discrete_input
device_class: running
- name: "lg_therma_silent_status"
address: 7
scan_interval: 10
slave: 1
input_type: discrete_input
- name: "lg_therma_error_status"
address: 13
scan_interval: 60
slave: 1
input_type: discrete_input
device_class: problem
sensors:
- name: "lg_therma_outlet_temp"
unique_id: "lg_therma_outlet_temp"
scan_interval: 10
address: 3
slave: 1
input_type: input
scale: 0.1
device_class: temperature
unit_of_measurement: "°C"
precision: 1
- name: "lg_therma_inlet_temp"
unique_id: "lg_therma_inlet_temp"
scan_interval: 10
address: 2
slave: 1
input_type: input
scale: 0.1
device_class: temperature
unit_of_measurement: "°C"
precision: 1
- name: "lg_therma_flow_rate"
unique_id: "lg_therma_flow_rate"
scan_interval: 10
address: 8
slave: 1
input_type: input
scale: 0.1
unit_of_measurement: "l/min"
precision: 1
zero_suppress: 5
- name: "lg_therma_outdoor_air_temp"
unique_id: "lg_therma_outdoor_air_temp"
scan_interval: 10
address: 12
slave: 1
input_type: input
scale: 0.1
device_class: temperature
unit_of_measurement: "°C"
precision: 1
- name: "lg_therma_compressor_rpm"
unique_id: "lg_therma_compressor_rpm"
scale: 60
precision: 0.1
scan_interval: 10
address: 24
slave: 1
unit_of_measurement: rpm
input_type: input
- name: "lg_therma_evaporator_pressure" # Dampfdruck Kondensator
unique_id: "lg_therma_evaporator_pressure"
address: 22
scan_interval: 60
unit_of_measurement: Bar
slave: 1
input_type: input
- name: "lg_therma_compressor_pressure" # Dampfdruck Verdampfer
unique_id: "lg_therma_compressor_pressure"
address: 23
scan_interval: 60
unit_of_measurement: Bar
slave: 1
input_type: input
switches:
- name: "lg_therma_power"
slave: 1
address: 0
write_type: coil
command_on: 1
command_off: 0
verify:
input_type: coil
address: 0
state_on: 1
state_off: 0
- name: "lg_therma_silent_mode"
slave: 1
address: 2
write_type: coil
command_on: 1
command_off: 0
verify:
input_type: coil
address: 2
state_on: 1
state_off: 0
climates:
- name: "lg_therma_climate_control"
address: 3
slave: 1
input_type: input
max_temp: 50
min_temp: 15
offset: 0
precision: 1
scale: 0.1
target_temp_register: 2
temp_step: 1
temperature_unit: C
#hvac_onoff_register: 0
write_registers: true
hvac_mode_register:
address: 0
values:
state_cool: 0
state_heat: 4
Please help. Uart,modbus dont work. Error in captive portal. I have D1 mini and ttl rs485 on tx/rx pins
have sameone update the yaml for new version because i see only binars status
Did you figure this out?
i have resolved. The yaml from youtuber works normaly. My biggest problem was the wifi modbus,strange ports or setting on. My Cisco WLC was blocking the ports… So i buy the Waveshare rj45 poe and now works normaly.
I must just identify what kind the DHW 2pin senzor is for water tank,i wont pay 50€ fot maby ntc senzor