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
Did anyone manage to connect PENKTH000 so I have consumption info in LG controller AND at the same time rs485 interface to read and maybe control the unit?
If so how exactly did you connect it? and did you set thermaV unit switch to master or slave? https://community-assets.home-assistant.io/original/4X/e/8/9/e8918e7d19888b3a22d68edec155b77a8a475ec6.png
Ideally if rs485 electrical meter connected on the same bus and still working, but that is just nice to have.
HM123M U33
water flow sensor not working on this modbus. Have flow rate 0
- name: lg_current_flow_rate
scale: 0.1
precision: 1
scan_interval: 15
address: 8
slave: 1
zero_suppress: 5
unit_of_measurement: l/min
input_type: input
Hello, I was wondering if we can have the KW consuption, does anyone knows?
hey can you share the card at the bottom that you are using?