TapHome

Nibe F1245

Modbus RTU
Submitted by
Last updated: 03. 2026
Nibe F1245

The Nibe F1245 is a ground source heat pump that communicates with TapHome via Modbus RTU over RS-485. Communication requires the NIBE MODBUS 40 accessory — an external RS-485 interface module that plugs into the heat pump’s internal bus. The template reads holding registers in the 40xxx range (sensors and status) and writes to the 47xxx range (settings and control), using 9600 baud, 8N1, with a default Slave ID of 1.

The F1145 and F1245 share the same register set and are interchangeable from a Modbus perspective.

Hardware connection

MODBUS 40 accessory

The Nibe F1245 does not have built-in Modbus support. An external MODBUS 40 accessory (sold separately) is required. This module connects to the heat pump’s internal communication bus and exposes an RS-485 interface for external Modbus RTU masters such as TapHome Core.

Connect the MODBUS 40 RS-485 terminals to TapHome Core:

  • A+ on MODBUS 40 to A+ on TapHome RS-485
  • B- on MODBUS 40 to B- on TapHome RS-485
  • GND to GND on TapHome

The GND wire must be connected between the MODBUS 40 and TapHome Core. Without proper grounding, communication may be unreliable, especially over longer cable runs.

Communication parameters
ParameterValue
ProtocolModbus RTU
Baud rate9600
Data bits8
ParityNone
Stop bits1
Slave ID1 (configurable)

Configuration

Enabling Modbus communication
  1. Install the MODBUS 40 accessory into the heat pump according to the NIBE installation guide
  2. The accessory should be automatically detected by the heat pump
  3. Verify the Slave ID setting — default is 1, configurable if multiple units share the bus
  4. In TapHome, add a new Modbus RTU device using the IP address of the RS-485 gateway (if using a TCP-to-serial converter) or configure the direct serial connection

The S-series heat pumps (S1155, S1255) have built-in Modbus TCP on port 502, activated via menu 7.5.9. The F1245 does not have this feature — the MODBUS 40 accessory is the only supported communication path.

If the Slave ID is changed from the default (1), update the corresponding parameter in the TapHome template import settings.

Device capabilities

Operating mode control

The template provides full control over the heat pump’s operating mode:

  • Mode — selects between Auto, Manual, and Additive Heating Only. In Auto mode, the heat pump manages heating and cooling demand automatically. Manual mode allows direct control, and Additive Heating Only disables the compressor and relies solely on the auxiliary electric heater.
  • Allow Heating — enables or disables additive and manual heating
  • Allow Cooling — enables or disables cooling mode with manual and additive heating
Hot water management

Hot water control is the most detailed part of the template, offering three thermostat modes and a mode selector:

  • Hot Water Mode — switches between Economy (0), Normal (1), and Luxury (2). Each mode has its own temperature setpoints. Service actions allow configuring start and stop temperatures for each mode directly from TapHome (range 5-70 °C).
  • Hot Water Luxury — thermostat reading the BT6 current hot water temperature and controlling the luxury-mode start/stop setpoints. The Delta service attribute shows the difference between start and stop temperatures.
  • Hot Water Normal — same as Luxury but for the normal-mode setpoints.
  • Hot Water Economy — same as Luxury but for the economy-mode setpoints.
  • Hot Water Production — master switch to enable or disable domestic hot water production entirely.
Temperature monitoring

The template includes five temperature sensors, all reading from holding registers with automatic divide-by-10 conversion to °C:

  • Outdoor Temperature — BT1 outdoor sensor, with service attributes for the hourly average and long-term average
  • Supply Temperature S1 — BT2 supply line temperature for climate system S1
  • Return Temperature — BT3 return line temperature
  • Room Temperature — BM1 BT50 wireless room temperature sensor
  • Hot Water Economy/Normal/Luxury — each thermostat also reads the current BT6 hot water load temperature
Environmental sensors
  • Humidity — BM1 humidity sensor reading in %RH (values above 100% are filtered as invalid). A service attribute shows the adjusted humidity from the +Adjust accessory.
  • Pressure — BM1 pressure sensor converted from kPa to bar (values below -30 bar are filtered as invalid)
Compressor and system status
  • Compressor Status — binary on/off indicator from the compressor contact. A service attribute provides detailed state information: Stopped (20), Starting (40), Running (60), or Stopping (100).
  • Cooling Status — indicates whether the system is in cooling mode. A service attribute reports whether freeze protection is currently active.
  • Current Fan Speed — reads the current fan speed as a percentage
  • Pump HW Speed — hot water circulation pump speed control (read and write)
Additional capabilities

The Nibe F1245 exposes a wide range of additional registers not yet included in the template. Key capabilities include brine inlet/outlet temperatures (BT10, BT11) for ground loop monitoring, condenser and hot gas temperatures for compressor health tracking, refrigerant circuit sensors (liquid line, suction gas), wired room temperature (BT50), flow rate measurement (BF1), three-phase current monitoring (BE1-BE3), degree minutes for smart heating control, and energy metering for hot water and heating. These can be added in a future template update.

The Degree Minutes register (H:40940) is a commonly used control parameter for advanced heating automation. It can be added as a custom Modbus device in TapHome using register H40940, data type s32 (two consecutive registers), with a scale factor of 10.

Troubleshooting

No communication with the heat pump
  1. Verify that the MODBUS 40 accessory is correctly installed and detected by the heat pump
  2. Check RS-485 wiring: A+ to A+, B- to B-, GND connected
  3. Confirm communication parameters: 9600 baud, 8N1, Slave ID 1
  4. If using a TCP-to-serial converter, verify the converter is online and correctly configured
Temperature readings show incorrect values

All temperature registers use a scale factor of 10 (raw value divided by 10). If readings appear 10x too high, verify the conversion is correctly configured in TapHome. Some registers also include NaN guards — values outside expected ranges are treated as invalid.

Hot water setpoints not taking effect

The hot water thermostat writes to paired start/stop registers. Verify the correct Hot Water Mode is selected (Economy, Normal, or Luxury) before adjusting temperatures. The write sets the start temperature directly and calculates the stop temperature using the Delta parameter.

Register 43xxx values not updating

Some registers in the 43xxx range (compressor status, cooling status, fan speed) are not documented in the official NIBE register map — they are derived from community sources. If these registers return errors, the heat pump firmware version may not support them.

Available devices

Nibe F1245 Module
Additive Heating (Manual) Switch

Enables or disables the auxiliary electric heater in manual mode

Register: H:47370 Uint16

Additive Heating (Manual)

Read switch state
MODBUSR(H, 47370, Uint16);
Write switch state
MODBUSW(H, 47370, Uint16, St);
Allow Cooling Switch

Permits the heat pump to operate in cooling mode

Register: H:47372 Uint16

Allow Cooling

Read switch state
MODBUSR(H, 47372, Uint16)
Write switch state
MODBUSW(H, 47372, Uint16, St)
Allow Heating Switch

Permits additive and manual heating operation

Register: H:47371 Uint16

Allow Heating

Read switch state
MODBUSR(H, 47371, Uint16)
Write switch state
MODBUSW(H, 47371,Uint16, St)
Compressor Status Reed Contact Read-only

Compressor on/off indicator with detailed state — Stopped, Starting, Running, Stopping

Register: H:43435 Uint16
Service Attributes
Compressor Status

Compressor Status

Read
MODBUSR(H, 43435, Uint16);
Service Attributes
Compressor Status
SWITCH(MODBUSR(H, 43427, Uint16), 20, "Stopped", 40,  "Starting", 60,  "Running", 100,  "Stopping", "Error")
Cooling Status Reed Contact Read-only

Cooling mode indicator with freeze protection monitoring

Register: H:43024 Uint16 numeric
Service Attributes
Freeze Protection

Cooling Status

Read
var reg := MODBUSR(H, 43024, Uint16);
IF(reg > 2, nan, reg);
Service Attributes
Freeze Protection
IF(MODBUSR(H, 43013, Uint16) = 1, "Active", "Not Active");
Current Fan Speed Dimmer Read-only
Register: H:43108 (implicit) Int16 Unit: % numeric

Current Fan Speed

Read level
MODBUSR(H, 43108, Int16) / 10
Hot Water Economy Thermostat

Economy-mode hot water thermostat — current temperature and adjustable start/stop setpoints for lower energy consumption

Register: H:40014H:47045 Int16 Unit: °C numeric
Service Attributes
Delta (Max - Min)

Hot Water Economy

Read temperature
MODBUSR(H, 40014, Int16) / 10
Read desired temperature
MODBUSR(H, 47045, Int16) / 10
Write desired temperature
MODBUSW(H, 47045, Int16, Se * 10);
MODBUSW(H, 47049, Int16, (Se + Delta) * 10);
Service Attributes
Delta (Max - Min)
Delta
Hot Water Luxury Thermostat

Luxury-mode hot water thermostat — current temperature and adjustable start/stop setpoints for higher comfort

Register: H:40014H:47043 Int16 Unit: °C numeric
Service Attributes
Delta (Max - Min)

Hot Water Luxury

Read temperature
MODBUSR(H, 40014, Int16) / 10
Read desired temperature
MODBUSR(H, 47043, Int16) / 10
Write desired temperature
MODBUSW(H, 47043, Int16, Se * 10);
MODBUSW(H, 47047, Int16, (Se + Delta) * 10);
Service Attributes
Delta (Max - Min)
Delta
Hot Water Mode Multi-value Switch

Hot water mode selector — Economy (lower energy), Normal, Luxury (higher comfort) with configurable start/stop temperatures per mode

Register: H:47041 Int16 numeric
Values / States: Economy · Normal · Luxury
Service Actions
Luxury Set Up
Normal Set Up
Economy Set Up

Hot Water Mode

Read switch state
MODBUSR(H, 47041, Int16)
Write switch state
MODBUSW(H, 47041, Int16, Mu)
Service Attributes
HW Luxury Start
MODBUSR(H, 47043, Int16)/10 + " °C";
HW Luxury Stop
MODBUSR(H, 47047, Int16)/10 + " °C";
HW Normal Start
MODBUSR(H, 47044, Int16)/10 + " °C";
HW Normal Stop
MODBUSR(H, 47048, Int16)/10 + " °C";
HW Economy Start
MODBUSR(H, 47045, Int16)/10 + " °C";
HW Economy Stop
MODBUSR(H, 47049, Int16)/10 + " °C";
Service Actions
Luxury Set Up
Parameters: Stop Temperature (5–70 stop), Start Temperature (5–70 start)
MODBUSW(H, 47043, Int16, start*10);
MODBUSW(H, 47047, Int16, stop*10);
Normal Set Up
Parameters: Stop Temperature (5–70 stop), Start Temperature (5–70 start)
MODBUSW(H, 47044, Int16, start*10);
MODBUSW(H, 47048, Int16, stop*10);
Economy Set Up
Parameters: Stop Temperature (5–70 stop), Start Temperature (5–70 start)
MODBUSW(H, 47045, Int16, start*10);
MODBUSW(H, 47049, Int16, stop*10);
Hot Water Normal Thermostat

Normal-mode hot water thermostat — current temperature and adjustable start/stop setpoints

Register: H:40014H:47044 Int16 Unit: °C numeric
Service Attributes
Delta (Max - Min)

Hot Water Normal

Read temperature
MODBUSR(H, 40014, Int16) / 10
Read desired temperature
MODBUSR(H, 47044, Int16) / 10
Write desired temperature
MODBUSW(H, 47044, Int16, Se * 10);
MODBUSW(H, 47048, Int16, (Se + Delta) * 10);
Service Attributes
Delta (Max - Min)
Delta
Hot Water Production Switch

Master switch to enable or disable domestic hot water production

Register: H:47387 Bool

Hot Water Production

Read switch state
MODBUSR(H, 47387
, Bool)
Write switch state
MODBUSW(H, 47387
, Bool, St)
Humidity Variable Read-only

Indoor humidity from BM1 wireless sensor module (%RH)

Register: H:40834 Uint16 Unit: % numeric
Service Attributes
Humidity

Humidity

Read
var reg  := MODBUSR(H, 40834, Uint16)/10;
if(reg > 1000, nan, reg);
Service Attributes
Humidity
var reg := MODBUSR(H, 40873, int16)/10;
if(reg < -100, nan, reg + " %RH");
Mode Multi-value Switch

Operating mode selector — Auto, Manual, Additive Heating Only

Register: H:47570 Uint16 numeric
Values / States: Auto · Manual · Additive Heating Only

Mode

Read switch state
MODBUSR(H, 47570, Uint16)
Write switch state
MODBUSW(H, 47570, Uint16, Mu);
Outdoor Temperature Temperature Sensor Read-only
Register: H:40004 (implicit) Int16 Unit: °C numeric
Service Attributes
Average Hourly Outdoor Temperature
Outdoor Temperature Average

Outdoor Temperature

Read temperature
MODBUSR(H, 40004, Int16) / 10
Service Attributes
Average Hourly Outdoor Temperature
MODBUSR(H, 40185, Int16)/10 + " °C"
Outdoor Temperature Average
MODBUSR(H, 40067, Int16)/10 + " °C"
Pressure Variable Read-only

System pressure from BM1 sensor module, displayed in bar

Register: H:40857 Int16 Unit: bar numeric

Pressure

Read
var reg := MODBUSR(H, 40857, Int16)/10 * 0.01;
IF(reg < -30, nan, reg)
Pump HW Speed Dimmer

Hot water circulation pump speed control (%)

Register: H:47413 (implicit) Int16 Unit: % numeric

Pump HW Speed

Read level
MODBUSR(H, 47413
, Int16) / 100
Write level
MODBUSW(H, 47413
, Int16, Le * 100)
Return Temperature Temperature Sensor Read-only
Register: H:40012 (implicit) Int16 Unit: °C numeric

Return Temperature

Read temperature
MODBUSR(H, 40012, Int16) / 10
Room Temperature Temperature Sensor Read-only

Room temperature from BM1 BT50 wireless sensor module

Register: H:40856 (implicit) Int16 Unit: °C numeric

Room Temperature

Read temperature
var reg := MODBUSR(H, 40856, Int16) / 10;
if(reg < -100, nan, reg);
Supply Temperature S1 Temperature Sensor Read-only

Supply line temperature for climate system S1

Register: H:40008 (implicit) Int16 Unit: °C numeric

Supply Temperature S1

Read temperature
MODBUSR(H, 40008, Int16) / 10
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (16)
  • H:40013 Hot Water Top (BT7) — Top of hot water tank temperature — important for hot water status monitoring
  • H:40015 Brine In Temperature (BT10) — Ground loop brine inlet temperature — key ground source heat pump metric
  • H:40016 Brine Out Temperature (BT11) — Ground loop brine outlet temperature — paired with BT10 for COP estimation
  • H:40017 Condenser Out Temperature (BT12) — Condenser output temperature
  • H:40018 Hot Gas Temperature (BT14) — Discharge / hot gas temperature — compressor health indicator
  • H:40019 Liquid Line Temperature (BT15) — Refrigerant liquid line temperature
  • H:40022 Suction Gas Temperature (BT17) — Compressor suction gas temperature
  • H:40033 Room Temperature S1 (BT50) — Room temperature from wired BT50 sensor (alternative to BM1 wireless used in template)
  • H:40067 BT1 Outdoor Temperature Average — Already used as service attribute on Outdoor Temperature device — could be standalone
  • H:40072 Flow Sensor (BF1) — Heating medium flow rate in l/min — useful for COP calculations
  • H:40079 Current Phase 3 (BE3) — Electrical current measurement phase 3
  • H:40081 Current Phase 2 (BE2) — Electrical current measurement phase 2
  • H:40083 Current Phase 1 (BE1) — Electrical current measurement phase 1
  • H:40940 Degree Minutes (32 bit) — Degree minutes R/W — main heat demand indicator, commonly used for smart control
  • H:42437 Heat Meter - HW Cpr and Add - Total — Hot water energy metering (compressor + additive) — kWh
  • H:42439 Heat Meter - Heat Cpr and Add - Total — Heating energy metering (compressor + additive) — kWh

Sources