---
title: "alpha innotec Luxtronik 2.1 Smart Home Interface (SHI)"
description: "alpha innotec Luxtronik 2.1 heat pump over Modbus TCP via the built-in SHI: temperatures, DHW and heating setpoints, power limit and energy. No gateway."
url: "https://taphome.com/en/compatibility/alpha-innotec-luxtronik-2-1-shi/"
language: en
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["modbus-tcp","heat-pump","hvac","ethernet","hot-water","energy-monitoring","power-limitation","smart-grid"]
  questions: ["How to integrate an alpha innotec Luxtronik 2.1 heat pump with TapHome?","What does the alpha innotec Luxtronik 2.1 SHI TapHome template read and control?","How to connect the Luxtronik 2.1 controller via Modbus TCP to TapHome?","How to enable the Smart Home Interface (ModBus TCP) on the Luxtronik 2.1?","How to set a static IP address or DHCP on the Luxtronik 2.1 controller?","Why does the Luxtronik SHI status show Standby?","Why should Smart Grid be deactivated when SHI is used on the Luxtronik 2.1?","How to limit the power consumption of an alpha innotec heat pump from TapHome?"]
---

# alpha innotec Luxtronik 2.1 Smart Home Interface (SHI)

Communication: Modbus TCP

> Network address
> 
> TapHome reaches this device at the address entered on import. Give the device a fixed address — an IP reservation in the router, or its mDNS name if it supports one — otherwise the integration stops working when the router changes the address.
> 
> [Network Preparation](https://taphome.com/en/docs/setup/network-preparation/)

## Integration guide

The alpha innotec Smart Home Interface (SHI) is a software interface built into the Luxtronik 2.1 heating and heat pump controller. It lets an energy management or smart home system read and write selected setpoints and parameters of the heat pump over Modbus TCP on port 502 — no extra hardware module is needed, only an Ethernet connection to the controller and the interface switched on in its menu.

This community template is built for a typical installation with one mixing circuit (MC1). It reads the system temperatures, controls the domestic hot water (DHW) and heating setpoints, blocks heating or DHW on demand, limits the power consumption of the heat pump (Smart Grid / §14a EnWG) and shows electrical and thermal energy.

## Hardware connection

The network socket is the left socket at the bottom of the Luxtronik control unit (its exact position depends on the heat pump variant). A screened network cable, category 6, has to be laid through the unit during the electrical connection work; its RJ45 plug goes into this left socket. The other end connects to the same local network as the TapHome Core.

> [!WARNING]
> alpha innotec recommends protecting the controller against attacks and unauthorised access with a router or firewall and, in company or municipal networks, using a separate local network or VLAN. Modbus TCP is an older protocol with a low level of security — do not open port 502 to the internet; incoming connections from the internet are not required. Keep the controller software up to date.

## Configuration

All settings are made on the controller display in the program area **Service → Control panel**. Some menu entries are only visible or adjustable with installer or customer service data access. If the entries below are not offered, raise the data access to **Installer** with the numeric code in the **Service** program area ("Determine data access" in the controller operating manual), and reset it to **User** after the work is finished.

### Network settings

The controller must have a fixed address in the local network, because TapHome connects to it by IP address.

1. Open **Service → Control panel → DHCP**.
2. Choose one of the options:
   - **Client** — the controller obtains its address from the DHCP server (router). In that case create a DHCP reservation for the controller in the router, so the address does not change.
   - **Off** — the address is set manually. Then open **Control panel → IP-address** and enter **IP**, **subnetmask**, **broadcast**, **gateway**, **DNS 1** and **DNS 2** according to the local network, and save. The IP address must lie in the range of the network (for example gateway 192.168.2.1 and mask 255.255.255.0 allow 192.168.2.2 to 192.168.2.254, if not used by another device).
3. Read the IP address of the controller on the **IP-address** screen and note it for TapHome.

When DHCP is set to **Client** (or **Server**), the values on the **IP-address** screen can only be read; they can be edited only with DHCP **Off**. Switching the DHCP option to **Server** or to **Off** always requires a restart (reset) of the controller.

![Luxtronik 2.1 network settings: DHCP client option and IP address screen with IP, subnet mask, broadcast, gateway and DNS entries](https://taphome.com/images/compatibility/alpha-innotec-luxtronik-2-1-shi/setup-network-ip_hu_83d0acf47b19a09e.jpg)

### Enabling the Smart Home Interface (Modbus TCP)

1. Open **Service → Control panel → Connectivity → Smart Home Interface**.
2. Select **Settings** and set **ModBus TCP** to **On**.
3. Confirm with the check mark to save the setting.

> [!WARNING]
> alpha innotec instructs to deactivate the **Smart Grid** function of the controller when SHI is used — otherwise both functions may influence each other. Only one system should write to the SHI: when several SHI participants write the same data point, the controller reports error 816 and keeps SHI deactivated as long as the error is present.

![Luxtronik 2.1 menu path Connectivity, Smart Home Interface, Settings with ModBus TCP set to On, plus status and received data screens](https://taphome.com/images/compatibility/alpha-innotec-luxtronik-2-1-shi/setup-shi-activation_hu_23dee1218e729dfe.jpg)

The SHI menu is available in Luxtronik 2.1 software V3.90 and later. The overall heating mode and the extra DHW function used by this template need software V3.92 or later — update the controller software first if it is older.

### Checking the connection on the controller

Under **Smart Home Interface → status**, the **ModBus TCP** line shows the state of the interface:

| Status | Meaning |
|---|---|
| Off | SHI is deactivated |
| Standby | SHI is activated, but no read or write has been detected for at least 10 minutes |
| Active | SHI is activated and a read or write was detected within the last 10 minutes |

**Smart Home Interface → Received data** lists every setpoint and parameter written via SHI (heating mode, heating setpoint and offset, DHW mode, setpoint and offset…). Values that have not been written or have been reset show `---`. While SHI is active and a value has been written, an SHI symbol appears on the navigation screen of the controller; selecting it opens the received data overview.

### Connection parameters

| Parameter | Value |
|---|---|
| Protocol | Modbus TCP |
| TCP port | 502 |
| IP address | address of the controller (see Network settings) |
| Modbus slave ID | 1 (template default) |

In TapHome, add the module from this template and enter the controller's IP address and Modbus slave ID.

## Device capabilities

### System status and diagnostics

The module decodes the operating state of the heat pump (heating, DHW, standby and others) and the active heat generators — compressors VD1 and VD2 and auxiliary heaters ZWE1 to ZWE3. A controller error number is shown as an error on the module. Heating and DHW demand, enabled functions, the states of the brine pump and the heating, MC1 and DHW circulation pumps, the software version and operating hours are available as module attributes.

### Temperatures

Separate temperature sensors show the return temperature and its setpoint, the return temperature at the buffer tank, the flow temperature, the outdoor temperature and its 24-hour average, and the heat source inlet and outlet temperatures (brine or air).

### Domestic hot water

- **DHW thermostat** — current DHW temperature and setpoint; the setpoint can be written from TapHome. Minimum and maximum DHW temperature are attributes.
- **DHW control mode** — how TapHome influences DHW: no influence, setpoint, temperature offset or operating level. To write the DHW setpoint, set this mode to **Setpoint** first.
- **DHW block** — temporarily stops DHW heating, for example during an expensive electricity tariff.
- **Extra DHW** — starts a one-time DHW heating; the controller switches the function off by itself when it ends. Target temperature, duration and remaining time are attributes.

### Heating

- **Heating control mode** — how TapHome influences the return temperature of the heating circuit: no influence, return setpoint, temperature offset or operating level. It applies only when the overall heating mode is set to individual (per circuit).
- **Overall heating mode** — individual control per circuit, a global offset or a global operating level for all circuits at once.
- **Heating block** — prevents heating operation.

### Mixing circuit MC1

- **MC1 flow thermostat** — current and target flow temperature of mixing circuit MC1; the setpoint can be written from TapHome. Minimum and maximum flow temperature are attributes.
- **MC1 control mode** — no influence, flow setpoint, temperature offset or operating level.

### Energy

- **Electrical energy** — total electrical energy consumed and current electrical power input.
- **Heating thermal energy** — heat output and thermal energy delivered for heating. Electrical energy for heating and DHW, thermal energy for DHW, total thermal energy and the predicted minimum power input are attributes.

### Power limitation (Smart Grid / §14a)

The **Power limit** switch selects the limitation mode:

- **No limit** — normal operation.
- **Soft limit** (for example PV surplus) — the heat pump tries to stay below the set power; when heating or DHW falls below its limit temperature, it ignores the limit.
- **Hard limit** — limitation according to §14a of the German Energy Industry Act (EnWG).

The limit value (0–30 kW) is set with the **Set power limit** action. The current limit and the EVU1 and EVU2 signals are attributes.

> [!TIP]
> TapHome polls the controller continuously, which keeps the SHI status **Active**. The **Received data** menu on the controller shows which written values are currently applied.

## Troubleshooting

**No data in TapHome**
- Check that the controller is connected to the network and that the IP address in TapHome matches the **IP-address** screen.
- Check that **ModBus TCP** is set to **On** in **Smart Home Interface → Settings**.
- Check the slave ID in TapHome and that port 502 is not blocked by a firewall between TapHome and the controller.

**SHI status shows Standby**
- No read or write has reached the controller for 10 minutes — check the network connection and that the TapHome module is running.

**Written setpoints are not applied or return to default values**
- Open **Received data** — a value shown as `---` has not been written or has been reset.
- Check that the matching control mode (DHW, heating or MC1) is set to **Setpoint** before writing a temperature.
- Check that the Smart Grid function of the controller is deactivated.

**Error 816 on the controller**
- Several SHI participants write the same data point. Leave only one system writing to SHI; SHI stays deactivated while the error is present.

**DHW temperature shows 75.0 °C**
- This substitute value appears when the DHW sensor has failed, or when the system uses a thermostat input instead of a sensor. With a thermostat input, ignore this value.

**A value reads 32767**
- 32767 means that the register or function is not available — for example the function is not configured, the controller is switched off, or another mode has to be set first. The device then shows invalid data.

## Available devices 20

These devices appear in TapHome after import.

Luxtronik 2.1 SHI Module

Service Attributes

|                                      |
|--------------------------------------|
| Stav systemu                         |
| Pozadavek topeni                     |
| Pozadavek TUV                        |
| Topeni povoleno                      |
| TUV povoleno                         |
| Mixovaci okruh MC1 — topeni povoleno |
| Pumpa solanky                        |
| Obehova pumpa MC1                    |
| Obehova pumpa topeniho okruhu        |
| Obehova pumpa TUV                    |
| Verze softwaru                       |
| Provozni hodiny TC                   |
| Provozni hodiny topeni               |
| Provozni hodiny TUV                  |

Service Actions

|                        |
|------------------------|
| Nastavit limit prikonu |

Read (module)

```taphome
VAR err := MODBUSR(A, 10201, UInt16);
IF(err != 0) ADDERROR(1, "Chyba systemu c. " + TOSTRING(err)); END
VAR state := MODBUSR(A, 10002, UInt16);
IF(state = 0) ADDINFO(0, "Stav: Vypnuto"); END
IF(state = 1) ADDINFO(1, "Stav: Topeni"); END
IF(state = 2) ADDINFO(2, "Stav: TUV"); END
IF(state = 3) ADDINFO(3, "Stav: Ohrev MVS"); END
IF(state = 5) ADDINFO(5, "Stav: Pohotovost"); END
IF(state = 7) ADDINFO(7, "Stav: Externi zdroj"); END
VAR gen := MODBUSR(A, 10000, UInt16);
IF(GETBIT(gen, 0)) ADDINFO(10, "Aktivni zdroj: VD1"); END
IF(GETBIT(gen, 1)) ADDINFO(11, "Aktivni zdroj: VD2"); END
IF(GETBIT(gen, 2)) ADDINFO(12, "Aktivni zdroj: ZWE1"); END
IF(GETBIT(gen, 3)) ADDINFO(13, "Aktivni zdroj: ZWE2"); END
IF(GETBIT(gen, 4)) ADDINFO(14, "Aktivni zdroj: ZWE3"); END
```

Service Attributes

Stav systemu

```taphome
SWITCH(MODBUSR(A, 10002, UInt16), 0, "Vypnuto", 1, "Topeni", 2, "TUV", 3, "Ohrev MVS", 4, "Chlazeni", 5, "Pohotovost", 6, "Pasivni chlazeni", 7, "Externi zdroj", "Neznamy")
```

Pozadavek topeni

```taphome
IF(MODBUSR(A, 10003, UInt16) != 0, "Aktivni", "Neaktivni")
```

Pozadavek TUV

```taphome
IF(MODBUSR(A, 10004, UInt16) != 0, "Aktivni", "Neaktivni")
```

Topeni povoleno

```taphome
IF(MODBUSR(D, 10000, Bool), "Ano", "Ne")
```

TUV povoleno

```taphome
IF(MODBUSR(D, 10001, Bool), "Ano", "Ne")
```

Mixovaci okruh MC1 — topeni povoleno

```taphome
IF(MODBUSR(D, 10006, Bool), "Ano", "Ne")
```

Pumpa solanky

```taphome
IF(MODBUSR(A, 10350, UInt16) != 0, "Bezi", "Stoji")
```

Obehova pumpa MC1

```taphome
IF(MODBUSR(A, 10351, UInt16) != 0, "Bezi", "Stoji")
```

Obehova pumpa topeniho okruhu

```taphome
IF(MODBUSR(A, 10354, UInt16) != 0, "Bezi", "Stoji")
```

Obehova pumpa TUV

```taphome
IF(MODBUSR(A, 10355, UInt16) != 0, "Bezi", "Stoji")
```

Verze softwaru

```taphome
"V" + TOSTRING(MODBUSR(A, 10400, UInt16)) + "." + TOSTRING(MODBUSR(A, 10401, UInt16)) + "." + TOSTRING(MODBUSR(A, 10402, UInt16))
```

Provozni hodiny TC

```taphome
TOSTRING(MODBUSR(A, 10404, UInt32)) + " h"
```

Provozni hodiny topeni

```taphome
TOSTRING(MODBUSR(A, 10406, UInt32)) + " h"
```

Provozni hodiny TUV

```taphome
TOSTRING(MODBUSR(A, 10408, UInt32)) + " h"
```

Service Actions

Nastavit limit prikonu

Parameters: Limit (0–30 Lim)

```taphome
MODBUSWNE(SH, 10041, UInt16, Lim * 10);
```

Teplota zpetneho potrubi Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10100, UInt16) / 10
```

Zadana teplota zpetneho potrubi Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10101, UInt16) / 10
```

Teplota akumulacniho zasobiku (zpetna) Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10102, UInt16) / 10
```

Teplota primarnich potrubi (flow) Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10105, UInt16) / 10
```

Venkovni teplota Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10108, Int16) / 10
```

Prumerna venkovni teplota (24 h) Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10109, Int16) / 10
```

Teplota vstupu zdroje tepla Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10110, Int16) / 10
```

Teplota vystupu zdroje tepla Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 10111, Int16) / 10
```

Teple uzit. voda — regulace Thermostat

Service Attributes

|                  |
|------------------|
| Min. teplota TUV |
| Max. teplota TUV |

Read temperature

```taphome
MODBUSR(A, 10120, Int16) / 10
```

Read desired temperature

```taphome
MODBUSR(A, 10121, UInt16) / 10
```

Write desired temperature

```taphome
MODBUSWNE(SH, 10006, UInt16, Se * 10)
```

Service Attributes

Min. teplota TUV

```taphome
TOSTRING(MODBUSR(A, 10122, Int16) / 10, "F1") + " °C"
```

Max. teplota TUV

```taphome
TOSTRING(MODBUSR(A, 10123, Int16) / 10, "F1") + " °C"
```

Rezim nastaveni TUV Multi-value Switch

Values / States: Bez vlivu · Zadana teplota · Teplotni offset · Uroven provozu

Read switch state

```taphome
MODBUSR(H, 10005, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10005, UInt16, Mu)
```

Blokace TUV Switch

Values / States: Zablokováno · Normální provoz

Read switch state

```taphome
MODBUSR(H, 10051, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10051, UInt16, St)
```

Mimorizadny ohrev TUV Switch

Values / States: Zapnuto · Vypnuto

Read switch state

```taphome
MODBUSR(H, 10071, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10071, UInt16, St)
```

Service Attributes

Cilova teplota mimoradneho TUV

```taphome
TOSTRING(MODBUSR(A, 10500, Int16) / 10, "F1") + " °C"
```

Trvani mimoradneho TUV

```taphome
TOSTRING(MODBUSR(A, 10501, Int16)) + " min"
```

Zbyvajici cas TUV

```taphome
TOSTRING(MODBUSR(A, 10502, Int16)) + " min"
```

Rezim nastaveni topeni Multi-value Switch

Values / States: Bez vlivu · Zadana zpetna teplota · Teplotni offset · Uroven provozu

Read switch state

```taphome
MODBUSR(H, 10000, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10000, UInt16, Mu)
```

Topeni — celkovy rezim Multi-value Switch

Values / States: Individualni (dle okruhu) · Globalni offset · Globalni uroven

Read switch state

```taphome
MODBUSR(H, 10065, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10065, UInt16, Mu)
```

Blokace topeni Switch

Values / States: Zablokováno · Normální provoz

Read switch state

```taphome
MODBUSR(H, 10050, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10050, UInt16, St)
```

Mixovaci okruh MC1 — teplota flow Thermostat

Service Attributes

|                       |
|-----------------------|
| Min. teplota flow MC1 |
| Max. teplota flow MC1 |

Read temperature

```taphome
MODBUSR(A, 10140, Int16) / 10
```

Read desired temperature

```taphome
MODBUSR(A, 10141, Int16) / 10
```

Write desired temperature

```taphome
MODBUSWNE(SH, 10011, UInt16, Se * 10)
```

Service Attributes

Min. teplota flow MC1

```taphome
TOSTRING(MODBUSR(A, 10142, Int16) / 10, "F1") + " °C"
```

Max. teplota flow MC1

```taphome
TOSTRING(MODBUSR(A, 10143, Int16) / 10, "F1") + " °C"
```

Rezim nastaveni MC1 Multi-value Switch

Values / States: Bez vlivu · Zadana teplota flow · Teplotni offset · Uroven provozu

Read switch state

```taphome
MODBUSR(H, 10010, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10010, UInt16, Mu)
```

Spotrebovana elektricka energie Electricity Meter

Read total consumption

```taphome
MODBUSR(A, 10310, Int32) / 10
```

Read demand

```taphome
MODBUSR(A, 10301, UInt16) / 10
```

Tepelna energie — topeni Electricity Meter

Service Attributes

|                               |
|-------------------------------|
| Spotreba el. energie — topeni |
| Spotreba el. energie — TUV    |
| Tepelna energie — TUV         |
| Tepelna energie celkem        |
| Predikce min. prikonu         |

Read total consumption

```taphome
MODBUSR(A, 10322, Int32) / 10
```

Read demand

```taphome
MODBUSR(A, 10300, Int16) / 10
```

Service Attributes

Spotreba el. energie — topeni

```taphome
TOSTRING(MODBUSR(A, 10312, Int32) / 10, "F1") + " kWh"
```

Spotreba el. energie — TUV

```taphome
TOSTRING(MODBUSR(A, 10314, Int32) / 10, "F1") + " kWh"
```

Tepelna energie — TUV

```taphome
TOSTRING(MODBUSR(A, 10324, Int32) / 10, "F1") + " kWh"
```

Tepelna energie celkem

```taphome
TOSTRING(MODBUSR(A, 10320, Int32) / 10, "F1") + " kWh"
```

Predikce min. prikonu

```taphome
TOSTRING(MODBUSR(A, 10302, UInt16) / 10, "F1") + " kW"
```

Limit prikonu (Smart Grid / EVU) Multi-value Switch

Values / States: Bez omezeni · Mekke omezeni (FV prebytky) · Tvrde omezeni (§14a)

Service Actions

|                        |
|------------------------|
| Nastavit limit prikonu |

Read switch state

```taphome
MODBUSR(H, 10040, UInt16)
```

Write switch state

```taphome
MODBUSW(SH, 10040, UInt16, Mu)
```

Service Attributes

Aktualni limit prikonu

```taphome
TOSTRING(MODBUSR(H, 10041, UInt16) / 10, "F1") + " kW"
```

Signal EVU1

```taphome
TOSTRING(MODBUSR(A, 10360, UInt16))
```

Signal EVU2

```taphome
TOSTRING(MODBUSR(A, 10361, UInt16))
```

Service Actions

Nastavit limit prikonu

Parameters: Limit kW (0–30 Lim)

```taphome
MODBUSWNE(SH, 10041, UInt16, Lim * 10);
```

**Connection:** Modbus TCP • Slave ID: $\[SlaveId]

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default         |
|------------------|-----------------|
| IP adresa        | `192.168.1.116` |
| Modbus Slave ID  | `1`             |

## Related Documentation

- [Modbus Integration](https://taphome.com/en/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/en/docs/integration/modbus/)
- [Simple configuration using templates](https://taphome.com/en/docs/integration/modbus/templates/)
- [Modbus scripts and prefetch](https://taphome.com/en/docs/script/modbus-scripts/)
- [Modbus functions](https://taphome.com/en/docs/script/modbus/)
- [Modbus data types](https://taphome.com/en/docs/script/modbus-data-types/)

