TapHome

LG ThermaV (2021+)

Modbus RTU
Submitted by
Last updated: 03. 2026
LG ThermaV (2021+)

The LG ThermaV (2021+ models) is an air-to-water heat pump that communicates with TapHome via Modbus RTU over RS-485. The template provides heating/cooling mode control, domestic hot water (DHW) on/off switching, five temperature sensors (water inlet, water outlet, room air, DHW tank, solar collector), and two target temperature setpoints for space heating and DHW.

The heat pump connects directly to TapHome Core via RS-485 without requiring the PMBUSB00A Modbus gateway — the outdoor unit has a built-in Modbus RTU slave interface.

Hardware connection

RS-485 wiring

Connect the RS-485 A and B signal lines from the outdoor unit PCB to TapHome Core:

  • A (RS-485+) → A+/D+ on TapHome RS-485
  • B (RS-485-) → B-/D- on TapHome RS-485

Use shielded twisted pair cable for the A/B signal lines.

Important — Register type swap in LG documentation

The official LG installation manual has the holding register and input register function codes swapped. What the manual labels as “Holding register (0x03)” is actually an input register, and vice versa. Community sources have confirmed and corrected this. The TapHome template uses the correct register addresses.

Technical specifications
  • Protocol: Modbus RTU Slave, RS-485
  • Baud rate: 9600, no parity, 1 stop bit, 8 data bits
  • Default Slave ID: 1 (configurable via thermostat display)

Configuration

Enabling Modbus communication

Modbus communication must be enabled via the DIP switch SW1 located inside the outdoor unit:

  1. Power off the outdoor unit
  2. Open the outdoor unit electrical panel
  3. Locate DIP switch SW1 on the PCB
  4. Set the following DIP switch positions:
    • DIP 1: ON — enables Modbus interface
    • DIP 2: ON — slave mode
  5. On SW2, set DIP 1: ON — slave designation
  6. Power on the outdoor unit
Slave ID configuration

The default Slave ID is 1. To change it, navigate to the thermostat display settings. When importing the template in TapHome, enter the matching Slave ID in the import parameters.

The Slave ID can also be set to 2 on some model variants. If communication fails with Slave ID 1, try Slave ID 2.

Modbus settings in TapHome

Configure the TapHome Modbus RTU module with:

  • Baud rate: 9600
  • Parity: None
  • Stop bits: 1
  • Data bits: 8
  • Slave ID: 1 (or as configured on the heat pump)

Device capabilities

Heating and cooling mode

Heating & Cooling Mode (C:0 + H:0) — a combined multi-value switch that controls both the power state and operation mode of the heat pump. The switch reads coil register C:0 for the on/off state and holding register H:0 for the active mode.

Available modes:

ValueModeDescription
OffStopHeat pump turned off (C:0 = 0)
AutoAutomaticAutomatic heating/cooling selection (H:0 = 3)
HeatingHeatingSpace heating mode (H:0 = 4)
CoolingCoolingSpace cooling mode (H:0 = 0)

The write logic handles the power state transition: when switching from Off to any mode, the template first enables the operate coil (C:0 = 1) before setting the operation mode.

Domestic hot water control

DHW On/Off (C:1) — enables or disables domestic hot water production. This is a simple on/off switch using coil register 1. When enabled, the heat pump heats the DHW tank to the target temperature.

Temperature monitoring

The template provides five temperature sensors, all using automatic /10 conversion (raw register value divided by 10 to get °C):

  • Water Inlet Temperature (Input 2) — water temperature entering the heat pump from the heating system
  • Water Outlet Temperature (Input 3) — water temperature leaving the heat pump to the heating system
  • Room Temperature (Input 7) — room air temperature from heating circuit 1, polled every 15 seconds
  • DHW Tank Temperature (Input 5) — domestic hot water tank temperature
  • Solar Collector Temperature (Input 6) — solar collector temperature, available only on AWHP models with a solar collector installation, polled every 15 seconds
Target temperature setpoints

Two temperature setpoints allow direct control from TapHome:

  • Target Temperature (Circuit 1) (H:2) — heating/cooling target temperature for the primary heating circuit. Range 30–50°C for heating. The register uses Int16 with /10 scaling (value × 10 for write, /10 for read).
  • DHW Target Temperature (H:1) — domestic hot water target temperature. Range 45–60°C. Uses the same /10 scaling.

The target temperature setpoints can be adjusted directly from TapHome and will be reflected on the heat pump thermostat display.

Additional capabilities

The LG ThermaV heat pump also supports silent mode (reduced outdoor unit noise), DHW tank disinfection (anti-legionella cycle), emergency stop, and emergency operation (backup heater only) via additional coil registers. The system provides extensive read-only status information through discrete input registers, including water flow, compressor, defrost cycle, DHW heating, solar pump, and backup heater status. Additional sensor registers for outdoor air temperature, water pressure, compressor RPM, and refrigerant pressures are available. A second heating circuit with independent target temperature is also supported. These can be added in a future template update.

Troubleshooting

No Modbus communication
  1. Verify DIP switches: Confirm SW1 DIP 1 and DIP 2 are both ON, and SW2 DIP 1 is ON
  2. Check RS-485 cables: Ensure A and B are correctly connected and not swapped
  3. Confirm Slave ID: Default is 1 — verify TapHome import parameter matches the heat pump setting
  4. Check baud rate: Must be 9600 baud, no parity, 1 stop bit in TapHome
Register type confusion

The official LG installation manual has holding and input register function codes swapped. The TapHome template already uses the correct (community-verified) register addresses. If referencing the LG manual directly, swap the register types.

Temperature readings showing incorrect values

All temperature registers use a scale factor of 0.1 (divide by 10). If raw values appear in TapHome, verify the template is correctly imported with the /10 conversion scripts.

Communication intermittent or unstable
  • Some LG ThermaV model variants or firmware versions have limited Modbus support
  • USB RS-485 adapters must explicitly support Modbus RTU protocol
  • “Cleanup recv buffer before send” errors indicate configuration issues — verify baud rate and parity settings

Available devices

LG ThermaV Module
Heating & Cooling Mode Multi-value Switch

Combined power and operation mode switch — Off, Auto, Heating, Cooling

Register: C:0, H:0 Bool + Int16 multi-value
Values / States: Off · Auto · Heating · Cooling · Heating

Heating & Cooling Mode

Read switch state
var operate := MODBUSR(C, 0, Bool);
var operateMode := MODBUSR(H, 0, Int16);

if operate = 0
    return(0); # off
else
    if operateMode = 3 
        return(1); # auto
    elseif operateMode = 4 
        return(2); # heating
    elseif operateMode = 0 
        return(3); # cooling
    else
        return(NaN);
    end
end
Write switch state
var operate := MODBUSR(C, 0, Bool);
var operateMode := Mu;

if operate = 0 and operateMode > 0
    MODBUSW(C, 0, Bool, 1); # turn on
end

if operateMode = 0
    MODBUSW(C, 0, Bool, 0); # off
elseif operateMode = 1 
    MODBUSW(H, 0, Int16, 3); # auto
elseif operateMode = 2 
    MODBUSW(H, 0, Int16, 4); # heating
elseif operateMode = 3 
    MODBUSW(H, 0, Int16, 0); # cooling
else
    # magic happened
end
DHW On/Off Switch

Enables or disables domestic hot water production

Register: C:1 Bool

DHW On/Off

Read switch state
MODBUSR(C, 1, Bool)
Write switch state
MODBUSW(C, 1, Bool, St)
Water Inlet Temperature Temperature Sensor Read-only
Register: implicit (Input 2) Temperature Unit: °C numeric

Water Inlet Temperature

Read temperature
MODBUSR(A, 3, Int16)/10
Water Outlet Temperature Temperature Sensor Read-only
Register: implicit (Input 3) Temperature Unit: °C numeric

Water Outlet Temperature

Read temperature
MODBUSR(A, 4, Int16)/10
Room Temperature Temperature Sensor Read-only
Register: implicit (Input 7) Temperature Unit: °C numeric

Room Temperature

Read temperature
MODBUSR(A, 2, Int16)/10
DHW Tank Temperature Temperature Sensor Read-only

Domestic hot water tank temperature

Register: implicit (Input 5) Temperature Unit: °C numeric

DHW Tank Temperature

Read temperature
MODBUSR(A, 5, Int16)/10
Solar Collector Temperature Temperature Sensor Read-only

Solar collector temperature — available on AWHP models with solar installation only

Register: implicit (Input 6) Temperature Unit: °C numeric

Solar Collector Temperature

Read temperature
MODBUSR(A, 6, Int16)/10
Target Temperature (Circuit 1) Variable

Heating/cooling target temperature setpoint for the primary circuit (30–50°C)

Register: H:2 Int16 Unit: °C numeric

Target Temperature (Circuit 1)

Read
MODBUSR(H, 2, Int16)/10
Write
MODBUSW(H, 2, Int16, Va * 10)
DHW Target Temperature Variable

Domestic hot water target temperature setpoint (45–60°C)

Register: H:1 Int16 Unit: °C numeric

DHW Target Temperature

Read
MODBUSR(H, 1, Int16)/10
Write
MODBUSW(H, 1, Int16, Va * 10)
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (20)
  • C:2 Silent Mode — Coil 2 — 0=Off, 1=On; reduces outdoor unit noise at night
  • C:3 DHW Disinfection — Coil 3 — triggers anti-legionella tank disinfection cycle
  • C:4 Emergency Stop — Coil 4 — emergency stop of heat pump operation
  • C:5 Emergency Operation — Coil 5 — triggers emergency operation (backup heater only)
  • H:0 (Control Method) Control Method — Holding 1 in community sources — 0=Water outlet, 1=Water inlet, 2=Room air temperature control
  • H:4 Shift Value Auto Mode (Circuit 1) — Auto mode temperature shift -5 to +5 K for circuit 1
  • H:5 Target Temperature (Circuit 2) — Heating/cooling setpoint for second heating circuit, range 20–40°C, scale 0.1
  • H:7 Shift Value Auto Mode (Circuit 2) — Auto mode temperature shift -5 to +5 K for circuit 2
  • Input 0 Error Code — Error code register — 0=no error, other values reference LG error table
  • Input 1 ODU Operation Cycle — Outdoor unit operation cycle counter
  • Input 4 Backup Heater Outlet Temperature — Backup heater outlet temperature, scale 0.1 °C
  • Input 8 Current Flow Rate — Water flow rate in L/min, scale 0.1
  • Input 9 Flow Temperature (Circuit 2) — Flow temperature for second heating circuit, scale 0.1 °C
  • Input 10 Room Air Temperature (Circuit 2) — Room air temperature from circuit 2, scale 0.1 °C
  • Input 12 Outdoor Air Temperature — Outdoor ambient air temperature, scale 0.1 °C
  • Input 13 Water Pressure — System water pressure in bar, scale 0.1
  • Input 22 High Pressure — Refrigerant high-side pressure in bar
  • Input 23 Low Pressure — Refrigerant low-side pressure in bar
  • Input 24 Compressor RPM — Compressor speed, raw value × 60 = RPM
  • Discrete 0–16 Status Registers (17 discrete inputs) — Water flow, water pump, compressor, defrost, DHW heating, silent mode, cooling, solar pump, backup heater steps, error status, emergency operation availability, mix pump — all binary read-only status flags

Sources

  • LG PMBUSB00A Modbus RTU Gateway — Register Map
    www.lg.com 2026-03-18
    PDF
  • LG ThermaV Modbus Setup Guide — DIP switches, register corrections
  • Home Assistant LG ThermaV Modbus Integration — Complete register map
    github.com 2026-03-18