TapHome

Ecoforest HP24

Modbus RTU
Submitted by
Last updated: 03. 2026

The Ecoforest HP24 template connects Ecoforest ecoGEO and ecoAIR heat pumps to TapHome via Modbus RTU over the RS-485 BMS2 port. The template provides comprehensive monitoring of temperatures, production mode statuses, compressor diagnostics, power output, setpoints, and operation program.

The heat pump controller (Carel pCOOEM+) has two RS-485 ports: BMS1 (requires optional serial card) and BMS2 (available by default). Communication uses Slave ID 17 by default for heat pumps.

Important — Slave ID

The default Modbus Slave ID for Ecoforest heat pumps is 17 (not 1). When importing the template in TapHome, change the Slave ID parameter from the default value of 1 to 17 (or your configured address).

Hardware connection

Controller overview

The Ecoforest heat pump uses a Carel pCOOEM+ controller board. The BMS2 port (leftmost connector group) is the primary RS-485 interface for Modbus RTU communication and is available by default — no additional hardware is needed.

Carel pCOOEM+ controller board — BMS2 and FieldBus1 on the left, BMS1 Serial Card and pLAN in the center, FieldBus2 on the right

Connectors (left to right):

  • BMS2 (far left) — Primary RS-485 Modbus port (Tx/Rx-, Tx/Rx+, GND) — available by default
  • FieldBus1 (left) — Internal communication
  • BMS1 / Serial Card (center-left) — Secondary RS-485 port — requires optional serial connection card
  • pLAN (center) — Controller area network
  • FieldBus2 (far right) — Internal communication
Technical specifications
  • Communication port: BMS2 (RS-485)
  • Protocol: Modbus RTU (holding registers, function code 0x03 / 0x06 / 0x10)
  • Baud rate: 19200
  • Parity: None
  • Stop bits: 2
  • Data bits: 8
  • Default Slave ID: 17 (heat pump)
RS-485 wiring (BMS2 port)

Connect using a 3-wire shielded twisted pair cable:

  • Tx/Rx+ (pin A+) on BMS2 –> A+/D+ on TapHome RS-485
  • Tx/Rx- (pin B-) on BMS2 –> B-/D- on TapHome RS-485
  • GND on BMS2 –> GND on TapHome power supply (mandatory)

Cable specification:

  • Type: shielded 3-wire twisted pair
  • Shield connected to earth to avoid interference
  • Do not install the cable parallel to power cabling

Important — Grounding and cable

Use shielded 3-wire twisted pair cables only. Connect the cable shield to earth. Do not run the RS-485 cable parallel to power cabling. The GND wire must be connected between the heat pump controller and TapHome.

Enabling Modbus communication

Before TapHome can communicate with the Ecoforest heat pump, BUS control must be enabled in the heat pump installer menu. This is a two-step process: configuring the BMS2 port and enabling BUS remote control.

Step 1 — Verify BMS2 port configuration

Navigate to the BMS2 configuration screen in the installer menu:

  1. Go to Installer menu –> c. Installation (page 6/8)
  2. Select f. Remote control
  3. Scroll to page 3/3 of Remote control
  4. Select c. BUS Control
  5. Verify the BMS2 configuration shows:
    • Protocol: MB Extended
    • Baudrate: 19200
    • Stop bits: 2
    • Parity: None
    • Address: 17
Ecoforest installer menu navigation — Installer menu → Installation (page 6/8) → f.Remote control → page 3/3 → c.BUS Control → BMS2 configuration: Protocol MB Extended, Baudrate 19200, Stop bits 2, Parity None, Address 17
Step 2 — Enable BUS remote control

BUS control must be explicitly enabled for the heat pump to accept Modbus commands:

  1. Go to Installer menu –> c. Installation (page 6/8)
  2. Select f. Remote control
  3. Scroll to page 3/3 of Remote control
  4. Select c. BUS Control
  5. In the BMS remote control screen, check the Enable checkbox
Ecoforest installer menu navigation — Installer menu → Installation (page 6/8) → f.Remote control → page 3/3 → c.BUS Control → BMS remote control with Enable checkbox checked

BUS Control is option c on page 3/3 of the Remote control submenu. Pages 1/3 and 2/3 contain EVU/SG Control and Services Control — scroll past them to reach BUS Control.

Device capabilities

Temperature monitoring

The template provides extensive temperature monitoring across the heat pump’s hydraulic circuits and refrigerant cycle:

Hydraulic circuit temperatures (all /10 conversion, °C):

  • Outdoor Temperature (H:2080) — ambient outdoor temperature, with freeze/overheat security alerts
  • Primary Circuit Inlet Temperature (H:2082) — source-side water inlet
  • Primary Circuit Outlet Temperature (H:2081) — source-side water outlet
  • Secondary Circuit Inlet Temperature (H:2085) — load-side water inlet
  • Secondary Circuit Outlet Temperature (H:2084) — load-side water outlet
  • Heating Buffer Tank Temperature (H:2132) — heating buffer tank
  • Cooling Buffer Tank Temperature (H:2133) — cooling buffer tank
  • DHW Tank Temperature (H:2130) — domestic hot water tank
  • DHW Recirculation Temperature (H:2131) — DHW recirculation loop

Refrigerant cycle temperatures (all /10 conversion except evaporation, °C):

  • Compressor Suction Temperature (H:2092) — refrigerant suction line
  • Compressor Discharge Temperature (H:2095) — compressor discharge / scroll
  • Superheat (H:2096) — refrigerant superheat (suction minus evaporation)
  • Inverter Temperature (H:2097) — compressor inverter electronics
  • Evaporation Temperature (H:2098) — refrigerant evaporation (uses /100 in template)
  • Condensing Temperature (H:2099) — refrigerant condensing
Setpoint monitoring

The template reads current setpoints for all services (all /10 conversion, °C):

  • DHW Setpoint (H:2150) — domestic hot water target temperature
  • Buffer Heating Setpoint (H:2152) — heating buffer tank target
  • Buffer Cooling Setpoint (H:2153) — cooling buffer tank target
  • HTR Setpoint (H:2154) — High Temperature Radiator circuit target
  • Group 1 Heating Setpoint (H:2155) — zone 1 heating target
  • Group 1 Cooling Setpoint (H:2156) — zone 1 cooling target

The setpoint registers are read-only in this template. To write setpoints via Modbus, use the corresponding write registers (H:2720 for DHW, H:2722 for buffer heating, etc.) which require enabling the BUS control for each service first. These can be added as custom Modbus devices in TapHome.

Production mode statuses

Binary status indicators showing which services are currently active:

  • DHW Production Mode (H:2030) — domestic hot water production running
  • Heating Production Mode (H:2031) — heating production running
  • Active Cooling Mode (H:2032) — active cooling production running
  • Passive Cooling Mode (H:2033) — passive (free) cooling running
  • Pool Production Mode (H:2034) — pool heating running
  • Anti-Freeze Mode (C:2035) — anti-freeze protection active
  • Dry Floor Mode (C:2036) — floor drying program active
  • Integrated Auxiliary Heater (Aux 1) (C:2046) — electric backup heater active
  • External Auxiliary Heater (Aux 2) (C:2047) — external auxiliary heater active
Heat pump status and operation program
  • Heat Pump Status (H:2045) — multi-value switch: OFF (0), ON (1), EMERGENCY (2)
  • Operation Program (H:2044) — multi-value switch: Winter (0), Summer (1), Combined (2)

These are read-only in the current template. To write the heat pump status or operation program, use the write registers H:2700 (status) and H:2701 (program) with different value mappings: write 1=OFF, 2=ON, 3=Emergency for status; write 1=Winter, 2=Summer, 3=Combined for program.

Power monitoring

The template monitors instantaneous power output for each service (all /1000 conversion):

  • Instantaneous Power (H:2186) — total heating power
  • Heating Power (H:2187) — heating service power
  • DHW Power (H:2188) — DHW service power
  • Total Cooling Power (H:2190) — total cooling power
  • Active Cooling Power (H:2191) — active cooling service power
  • Passive Cooling Power (H:2192) — passive cooling service power
Energy metering
  • Total Electric Consumption (H:2193) — total instantaneous electric consumption
  • Surplus Electric Consumption (H:2194) — electric consumption during surplus (photovoltaic) mode
Compressor diagnostics
  • Compressor Starts (H:2103 + H:2104) — total compressor start count (high × 1000 + low)
  • Compressor Operating Hours (H:2105 + H:2106) — total compressor runtime in hours (high × 1000 + low)
Pressure monitoring

Three pressure sensors are included but require manual readscript configuration after import:

  • Primary Circuit Pressure (H:2083) — source-side water pressure
  • Secondary Circuit Pressure (H:2086) — load-side water pressure
  • Compressor Suction Pressure (H:2093) — refrigerant suction pressure
  • Compressor Discharge Pressure (H:2094) — refrigerant discharge pressure

The pressure devices are imported as ModbusAnalogInput without readscripts. To enable them, add the following readscript in TapHome service settings: MODBUSR(H, <address>, Int16) / 10 where <address> is the register address (e.g. 2083 for primary circuit pressure). The result is in bar.

Service diagnostics

The module exposes eight service attributes for monitoring:

  • Heat Pump Time — formatted timestamp from registers H:2000–H:2004
  • Software Platform — platform identifier (ESO22, AWD24, WWD24, WWC24)
  • Product Range — product type (HP, PS, EM, SM)
  • Software Version — firmware version string
  • Compilation Type Letter — subversion letter (A–Z)
  • Software Version (Build) — build number
  • HP Model / ODU Model — decoded model code from registers H:2010–H:2015
  • Device Role — installation role (Stand alone, Block master, Block slave, Supervisor, etc.)
Additional capabilities

The Ecoforest API BUS Client manual documents additional write registers not included in this template, including heat pump ON/OFF control (H:2700), operation program selection (H:2701), service demand management (H:2705–H:2715), setpoint control (H:2720–H:2731), zone ambient terminal control (H:2750–H:2759), alarm management (H:2074), compressor speed limiting (H:2765), and surplus/PV management (H:2775–H:2778). Energy meter registers (H:2200+) provide daily, monthly and annual energy counters. These can be added in a future template update or as custom Modbus devices.

Troubleshooting

No Modbus communication
  1. Verify BUS control is enabled: Installer menu –> Installation –> Remote control –> BUS Control –> Enable must be checked
  2. Check BMS2 port settings: Protocol must be “MB Extended”, baud rate 19200, parity None, 2 stop bits
  3. Verify Slave ID: Default is 17 for heat pumps — ensure TapHome is configured with the correct address
  4. Check RS-485 cables:
    • Tx/Rx+ correctly connected to A+/D+ on TapHome
    • Tx/Rx- correctly connected to B-/D- on TapHome
    • GND connected to TapHome power supply ground — most common issue
  5. Use shielded twisted pair cable, shield connected to earth
Pressure readings not working

The pressure devices (Primary Circuit Pressure, Secondary Circuit Pressure, Compressor Suction/Discharge Pressure) are imported without readscripts. Add the readscript manually in TapHome:

  1. Open the device in TapHome service settings
  2. Add ReadScript: MODBUSR(H, <register>, Int16) / 10
  3. Values are in bar (manometric)
Incorrect temperature readings
  • Most temperatures use /10 conversion (gain 0.1 per source docs)
  • The Evaporation Temperature uses /100 in the template — if readings seem incorrect, try changing to /10
  • The duplicate Heating Buffer Tank Temperature entry uses /100 instead of /10 — use the primary entry with /10 conversion
Power readings incorrect

The template uses a fixed /1000 conversion for power registers, but the actual conversion depends on the power units register H:2185 (10=W, 20=kW, 30=MW). Verify the power units setting on your heat pump. If the heat pump reports power in W (value 10 at H:2185), the /1000 conversion is correct. For kW (value 20), readings will be 10x too large.

Available devices

Ecoforest HP24 Module
Service Attributes
Heat Pump Timereads H:2000–H:2004 (year/month/day/hour/minute) and formats as \'YYYY/MM/DD HH:MM\' timestamp
Software Platformreads H:2005 (Int16); maps to platform name: 7=ESO22, 12=AWD24, 13=WWD24, 14=WWC24
Product Rangereads H:2006 (Int16); maps to product type: 1=HP, 2=PS, 3=EM, 4=SM
Software Versionreads H:2007 (Int16); formats as \'V0XX\' version string
Compilation Type Letterreads H:2008 (Int16); maps 1–26 to A–Z subversion letter
Software Version (Build)reads H:2009 (Int16); build number as string
HP Model / ODU Modelreads H:2010–H:2015 (6 × Int16); decodes model code digits to character string
Device Rolereads H:2026 (Int16); 0=None, 1=Individual master/Stand alone, 2=ecoGEO block master, 3=Block slave, 4=Supervisor, 5=Individual slave, 6=ecoAIR block master

HP24

Service Attributes
Heat pump time
var year := "20" + tostring(modbusr(H, 2000, int16));
var month := tostring(modbusr(H, 2001, int16));
var day := tostring(modbusr(H, 2002, int16));
var hour := tostring(modbusr(H, 2003, int16));
var minute := tostring(modbusr(H, 2004, int16));

if length(month) <= 1
	month := "0" + month;
end

if length(day) <= 1
	day := "0" + day;
end

if length(hour) <= 1
	hour := "0" + hour;
end

if length(minute) <= 1
	minute := "0" + minute;
end
return(
	year
	+ "/"
	+ month
	+ "/"
	+ day
	+ " "
	+ hour
	+ ":"
	+ minute
);
Software platform
SWITCH( modbusr(H, 2005, int16), 
	7, return("ESO22"),
	12, return("AWD24"),
	13, return("WWD24"),
	14, return("WWC24"),
	NaN
);
Product range
SWITCH( MODBUSR(H, 2006, int16),
	1, return("HP"),
	2, return("PS"),
	3, return("EM"),
	4, return("SM"),
	NaN
);
Software version
return(
	"V0" +
	tostring(modbusr(H, 2007, int16))
);
Compilation type letter (subversion)
switch(modbusr(H, 2008, int16),
  1, "A",
  2, "B",
  3, "C",
  4, "D",
  5, "E",
  6, "F",
  7, "G",
  8, "H",
  9, "I",
  10, "J",
  11, "K",
  12, "L",
  13, "M",
  14, "N",
  15, "O",
  16, "P",
  17, "Q",
  18, "R",
  19, "S",
  20, "T",
  21, "U",
  22, "V",
  23, "W",
  24, "X",
  25, "Y",
  26, "Z",
  ""
);
Software version
return(
	tostring(modbusr(H, 2009, int16))
);
HP model/ODU model
var model := {
	modbusr(H, 2010, int16),
	modbusr(H, 2011, int16),
	modbusr(H, 2012, int16),
	modbusr(H, 2013, int16),
	modbusr(H, 2014, int16),
	modbusr(H, 2015, int16),
};

int i := 0;
string res := "";
while i < length(model)
	switch( getat(model, i),
		12, res := append(res, "B"),
		13, res := append(res, "C"),
		14, res := append(res, "D"),
		15, res := append(res, "E"),
		res := append(res, "*")
	);
	i := i + 1;
loop
return(res);
Device role
switch(modbusr(H, 2026, int16),
	0, return("None"),
	1, return("Individual master (IDU)/Stand alone"),
	2, return("ecoGEO block master"),
	3, return("Block slave"),
	4, return("Supervisor"),
	5, return("Individual slave"),
	6, return("ecoAIR block master"),
	NaN
);
Active Cooling Mode Reed Contact Read-only

Active cooling production status — ON when compressor cooling is running

Register: H:2032 Bool

Active Cooling Mode

Read
MODBUSR(H, 2032, Bool)
Active Cooling Power Variable Read-only

Instantaneous active cooling service power output

Register: H:2191 Int16 Unit: kW numeric

Active Cooling Power

Read
MODBUSR(H, 2191, Int16) / 1000
Anti-Freeze Mode Reed Contact Read-only

Anti-freeze protection status — ON when freeze protection is active

Register: C:2035 Bool

Anti-Freeze Mode

Read
MODBUSR(C, 2035, Bool)
Buffer Cooling Setpoint Temperature Sensor Read-only

Current cooling buffer tank target temperature

Register: H:2153 Int16 Unit: °C numeric

Buffer Cooling Setpoint

Read temperature
MODBUSR(H, 2153, Int16) / 10
Buffer Heating Setpoint Temperature Sensor Read-only

Current heating buffer tank target temperature

Register: H:2152 Int16 Unit: °C numeric

Buffer Heating Setpoint

Read temperature
MODBUSR(H, 2152, Int16) / 10
Compressor Discharge Pressure Analog Input Read-only

Refrigerant discharge pressure — requires manual readscript configuration

Register: H:2094 Int16 Unit: bar numeric

Compressor Discharge Pressure

Read input level
MODBUSR(H, 2094, Int16) / 100
Compressor Discharge Temperature Temperature Sensor Read-only

Compressor discharge / scroll temperature

Register: H:2095 Int16 Unit: °C numeric

Compressor Discharge Temperature

Read temperature
MODBUSR(H, 2095, Int16) / 10
Compressor Operating Hours Variable Read-only

Total compressor runtime in hours (two-register composite value)

Register: H:2105+H:2106 Int16 Unit: hours numeric

Compressor Operating Hours

Read
MODBUSR(H, 2105, Int16) * 1000 + MODBUSR(H, 2106, Int16)
Compressor Starts Variable Read-only

Total compressor start count (two-register composite value)

Register: H:2103+H:2104 Int16 Unit: count numeric

Compressor Starts

Read
MODBUSR(H, 2103, Int16) * 1000 + MODBUSR(H, 2104, Int16)
Compressor Suction Pressure Analog Input Read-only

Refrigerant suction pressure — requires manual readscript configuration

Register: H:2093 Int16 Unit: bar numeric

Compressor Suction Pressure

Read input level
MODBUSR(H, 2093, Int16) / 100
Compressor Suction Temperature Temperature Sensor Read-only

Refrigerant suction line temperature

Register: H:2092 Int16 Unit: °C numeric

Compressor Suction Temperature

Read temperature
MODBUSR(H, 2092, Int16) / 10
Condensing Temperature Temperature Sensor Read-only

Refrigerant condensing temperature

Register: H:2099 Int16 Unit: °C numeric

Condensing Temperature

Read temperature
MODBUSR(H, 2099, Int16) / 10
Cooling Buffer Tank Temperature Temperature Sensor Read-only

Cooling buffer tank water temperature

Register: H:2133 Int16 Unit: °C numeric

Cooling Buffer Tank Temperature

Read temperature
MODBUSR(H, 2133, Int16) / 10
Cooling Buffer Tank Temperature (duplicate) Temperature Sensor Read-only

Duplicate of Cooling Buffer Tank Temperature — same register H:2133

Register: H:2133 Int16 Unit: °C numeric

Cooling Buffer Tank Temperature (duplicate)

Read temperature
MODBUSR(H, 2133, Int16) / 10
DHW Production Mode Reed Contact Read-only

Domestic hot water production status — ON when DHW is being heated

Register: H:2030 Bool

DHW Production Mode

Read
MODBUSR(H, 2030, Bool)
DHW Recirculation Temperature Temperature Sensor Read-only

Domestic hot water recirculation loop temperature

Register: H:2131 Int16 Unit: °C numeric

DHW Recirculation Temperature

Read temperature
MODBUSR(H, 2131, Int16) / 10
DHW Power Variable Read-only

Instantaneous DHW service power output

Register: H:2188 Int16 Unit: kW numeric

DHW Power

Read
MODBUSR(H, 2188, Int16) / 1000
DHW Setpoint Temperature Sensor Read-only

Current domestic hot water target temperature

Register: H:2150 Int16 Unit: °C numeric

DHW Setpoint

Read temperature
MODBUSR(H, 2150, Int16) / 10
DHW Tank Temperature Temperature Sensor Read-only

Domestic hot water tank temperature

Register: H:2130 Int16 Unit: °C numeric

DHW Tank Temperature

Read temperature
MODBUSR(H, 2130, Int16) / 10
Dry Floor Mode Reed Contact Read-only

Floor drying program status — ON when floor drying is active

Register: C:2036 Bool

Dry Floor Mode

Read
MODBUSR(C, 2036, Bool)
Surplus Electric Consumption Electricity Meter Read-only

Electric consumption during surplus (photovoltaic) mode

Register: H:2194 Int16 Unit: kW numeric

Surplus Electric Consumption

Read demand
MODBUSR(H, 2194, Int16) / 1000
Evaporation Temperature Temperature Sensor Read-only

Refrigerant evaporation temperature

Register: H:2098 Int16 Unit: °C numeric

Evaporation Temperature

Read temperature
MODBUSR(H, 2098, Int16) / 100
External Auxiliary Heater (Aux 2) Reed Contact Read-only

Generic external auxiliary heater status

Register: C:2047 Bool

External Auxiliary Heater (Aux 2)

Read
MODBUSR(C, 2047, Bool)
Group 1 Cooling Setpoint Temperature Sensor Read-only

Final cooling setpoint for zone group 1

Register: H:2156 Int16 Unit: °C numeric

Group 1 Cooling Setpoint

Read temperature
MODBUSR(H, 2156, Int16) / 10
Group 1 Heating Setpoint Temperature Sensor Read-only

Final heating setpoint for zone group 1

Register: H:2155 Int16 Unit: °C numeric

Group 1 Heating Setpoint

Read temperature
MODBUSR(H, 2155, Int16) / 10
Heat Pump Status Multi-value Switch Read-only

Heat pump operating state — OFF, ON, or EMERGENCY

Register: H:2045 Int16 multi-value
Values / States: OFF · ON · EMERGENCY

Heat Pump Status

Read switch state
MODBUSR(H, 2045, Int16)
Heating Buffer Tank Temperature Temperature Sensor Read-only

Heating buffer tank water temperature

Register: H:2132 Int16 Unit: °C numeric

Heating Buffer Tank Temperature

Read temperature
MODBUSR(H, 2132, Int16) / 10
Heating Buffer Tank Temperature (duplicate) Temperature Sensor Read-only

Duplicate with incorrect /100 conversion — use primary entry instead

Register: H:2132 Int16 Unit: °C numeric

Heating Buffer Tank Temperature (duplicate)

Read temperature
MODBUSR(H, 2132, Int16) / 100
Heating Production Mode Reed Contact Read-only

Heating production status — ON when heating is running

Register: H:2031 Bool

Heating Production Mode

Read
MODBUSR(H, 2031, Bool)
Heating Power Variable Read-only

Instantaneous heating service power output

Register: H:2187 Int16 Unit: kW numeric

Heating Power

Read
MODBUSR(H, 2187, Int16) / 1000
HTR Setpoint Temperature Sensor Read-only

High Temperature Radiator circuit target temperature

Register: H:2154 Int16 Unit: °C numeric

HTR Setpoint

Read temperature
MODBUSR(H, 2154, Int16) / 10
Instantaneous Power Variable Read-only

Total instantaneous heating power output

Register: H:2186 Int16 Unit: kW numeric

Instantaneous Power

Read
MODBUSR(H, 2186, Int16) / 1000
Integrated Auxiliary Heater (Aux 1) Reed Contact Read-only

Integrated electric backup heater status

Register: C:2046 Bool

Integrated Auxiliary Heater (Aux 1)

Read
MODBUSR(C, 2046, Bool)
Inverter Temperature Temperature Sensor Read-only

Compressor inverter electronics temperature

Register: H:2097 Int16 Unit: °C numeric

Inverter Temperature

Read temperature
MODBUSR(H, 2097, Int16) / 10
Operation Program Multi-value Switch Read-only

Heat pump operation program — Winter, Summer, or Combined

Register: H:2044 Int16 multi-value
Values / States: Winter · Summer · Combined

Operation Program

Read switch state
MODBUSR(H, 2044, Int16)
Outdoor Temperature Temperature Sensor Read-only

Ambient outdoor temperature with freeze/overheat security alerts

Register: H:2080 Int16 Unit: °C numeric

Outdoor Temperature

Read temperature
MODBUSR(H, 2080, Int16) / 10
Passive Cooling Mode Reed Contact Read-only

Passive (free) cooling production status — cooling without compressor

Register: H:2033 Bool

Passive Cooling Mode

Read
MODBUSR(H, 2033, Bool)
Passive Cooling Power Variable Read-only

Instantaneous passive cooling service power output

Register: H:2192 Int16 Unit: kW numeric

Passive Cooling Power

Read
MODBUSR(H, 2192, Int16) / 1000
Pool Production Mode Reed Contact Read-only

Pool heating production status — ON when pool is being heated

Register: H:2034 Bool

Pool Production Mode

Read
MODBUSR(H, 2034, Bool)
Dashboard Variable Variable Read-only

Ecoforest dashboard device variable — firmware-specific diagnostic value

Register: H:6148 Int16 numeric

Dashboard Variable

Read
MODBUSR(H, 6148, Int16)
Primary Circuit Inlet Temperature Temperature Sensor Read-only

Source-side circuit water inlet temperature

Register: H:2082 Int16 Unit: °C numeric

Primary Circuit Inlet Temperature

Read temperature
MODBUSR(H, 2082, Int16) / 10
Primary Circuit Outlet Temperature Temperature Sensor Read-only

Source-side circuit water outlet temperature

Register: A:2081 Int16 Unit: °C numeric

Primary Circuit Outlet Temperature

Read temperature
MODBUSR(A, 2081, Int16) / 10
Primary Circuit Pressure Analog Input Read-only

Source-side circuit water pressure — requires manual readscript configuration

Register: H:2083 Int16 Unit: bar numeric

Primary Circuit Pressure

Read input level
MODBUSR(H, 2083, Int16) / 100
Secondary Circuit Inlet Temperature Temperature Sensor Read-only

Load-side circuit water inlet temperature

Register: H:2085 Int16 Unit: °C numeric

Secondary Circuit Inlet Temperature

Read temperature
MODBUSR(H, 2085, Int16) / 10
Secondary Circuit Outlet Temperature Temperature Sensor Read-only

Load-side circuit water outlet temperature

Register: H:2084 Int16 Unit: °C numeric

Secondary Circuit Outlet Temperature

Read temperature
MODBUSR(H, 2084, Int16) / 10
Secondary Circuit Pressure Analog Input Read-only

Load-side circuit water pressure — requires manual readscript configuration

Register: H:2086 Int16 Unit: bar numeric

Secondary Circuit Pressure

Read input level
MODBUSR(H, 2086, Int16) / 100
Superheat Temperature Sensor Read-only

Refrigerant superheat (suction temperature minus evaporation temperature)

Register: H:2096 Int16 Unit: °C numeric

Superheat

Read temperature
MODBUSR(H, 2096, Int16) / 10
Total Cooling Power Variable Read-only

Total instantaneous cooling power output

Register: H:2190 Int16 Unit: kW numeric

Total Cooling Power

Read
MODBUSR(H, 2190, Int16) / 1000
Total Electric Consumption Electricity Meter Read-only

Total instantaneous electric consumption

Register: H:2193 Int16 numeric

Total Electric Consumption

Read demand
MODBUSR(H, 2193, Int16)
DHW Tank Temperature (Slovak duplicate) Temperature Sensor Read-only

Duplicate of DHW Tank Temperature with Slovak name — same register H:2130

Register: H:2130 Int16 Unit: °C numeric

DHW Tank Temperature (Slovak duplicate)

Read temperature
MODBUSR(H, 2130, Int16) / 10
Connection: Modbus RTU • 19200 baud• 8N2 • Slave ID: $[SlaveId]
Possible improvements (17)
  • H:2700 Heat Pump Status (Write) — Write HP status: 1=OFF, 2=ON, 3=Emergency. Template reads status (H:2045) but has no write — critical ON/OFF control missing
  • H:2701 Operation Program (Write) — Write operation program: 1=Winter, 2=Summer, 3=Combined. Template reads program (H:2044) but has no write
  • H:2705 DHW BUS Control — Enable/disable DHW setpoint control by BUS: 0=No BUS, 1=Setpoint/Offset by BUS
  • H:2720 DHW Setpoint (Write) — Write DHW setpoint 10.0–82.0°C (gain 0.1). Requires DHW BUS control (H:2705) enabled first
  • H:2722 Buffer Heating Setpoint (Write) — Write buffer heating setpoint (gain 0.1). Requires heating buffer BUS control (H:2713) enabled
  • H:2723 Buffer Cooling Setpoint (Write) — Write buffer cooling setpoint (gain 0.1). Requires cooling buffer BUS control (H:2714) enabled
  • H:2708 Group 1 Demand — Zone 1 heating/cooling demand with setpoint mode: 0=No demand, 1=Heat+setpoint, 2=Cool+setpoint, 11=Heat from HP, 12=Cool from HP
  • H:2730 Group 1 Heating Setpoint (Write) — Write group 1 heating setpoint (gain 0.1)
  • H:2750 Zone 1 BUS Terminal ON/OFF — Enable/disable zone 1 terminal: 0=OFF, 1=ON. Zones 1–5 available (H:2750–H:2754)
  • H:2755 Zone 1 Ambient Temperature Setpoint — Write zone 1 ambient setpoint 5.0–35.0°C (gain 0.1). Zones 1–5 available (H:2755–H:2759)
  • H:2065 Alarm Level — 0=No alarm, 1=Active, 2=Active+recurrence, 3=Recurrent, 4=Long time, 5=Lock-down
  • H:2066 Lock Alarm Code — Alarm code causing lockdown. Together with H:2067–H:2073 provides full alarm diagnostics
  • H:2074 Reset Alarm by BUS — Write 1 to reset recurrence alarm. WARNING: resetting without fixing cause can damage equipment
  • H:2185 Instantaneous Power Units — 10=W, 20=kW, 30=MW — determines units for power registers H:2186–H:2194. Template hardcodes /1000 without reading this
  • H:2200 Current Day Energy Units — 10=Wh, 20=kWh, 30=MWh — followed by daily energy counters H:2201–H:2211 for DHW, heating, pool, cooling, consumption
  • H:2775 Surplus Control by BUS — Enable/disable e-Manager surplus control: 0=OFF, 1=ON. For PV surplus management
  • H:2765 Maximum Compressor Reference — Write max compressor reference 0–100.0% (gain 0.1) — limits compressor speed

Sources

  • Ecoforest Modbus Variables List HP24 V01.00
    2026-03-20
    PDF
  • Ecoforest APIs BUS CLIENT MANUAL V03 (HP24_V01.02)
    2026-03-20
    PDF
  • EcoForest Modbus Registers — GitHub Community (ESPHome)
    github.com 2026-03-20