---
title: "Viessmann Vitovent 300-W H32S C400"
description: "Viessmann Vitovent 300-W H32S C400 over Modbus RTU on X15: ventilation stage, bypass, temperatures, humidity. Unplug the LB1 panel; 19200 8E1, address 70."
url: "https://taphome.com/en/compatibility/viessmann-vitovent-300-w-h32s-c400-modbus-rtu/"
language: en
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","air-recovery","heat-recovery-ventilation","hvac","ventilation"]
  questions: ["How to integrate the Viessmann Vitovent 300-W H32S C400 with TapHome?","What does the Viessmann Vitovent 300-W TapHome template control and measure?","How to connect the Vitovent 300-W to TapHome via Modbus RTU on connector X15?","What is the X15 pinout and why is Signal GND required on the Vitovent 300-W?","Can the LB1 control panel stay connected when TapHome controls the Vitovent 300-W?","Which baud rate, parity and slave address does the Vitovent 300-W use?","Why does TapHome show -3276.8 °C for a Vitovent 300-W temperature?","Can the filter counter of the Vitovent 300-W be reset over Modbus?"]
---

# Viessmann Vitovent 300-W H32S C400

Communication: Modbus RTU

## Integration guide

The Viessmann Vitovent 300-W H32S C400 is a central heat recovery ventilation unit for homes, with a counterflow heat exchanger. TapHome communicates with the unit over Modbus RTU on its RS-485 port, connector **X15** on the control board — the same port the unit uses for the LB1 ventilation control panel, the Vitocal/Vitovent connection and Vitoconnect V.

The template sets the ventilation stage, reads the outdoor, supply and extract air temperatures and two humidity sensors, overrides the bypass and shows a counter that the template labels for filter replacement. Viessmann does not publish a Modbus register map for this unit. The registers come from the community reverse-engineering project [hornpa/viessmann-vitovent-modbus](https://github.com/hornpa/viessmann-vitovent-modbus) on GitHub, which tested **one** unit of type H32E C325 (the enthalpy variant), not an H32S C400.

## Hardware connection

> [!WARNING]
> Pull the mains plug of the unit before removing the control board cover and secure it against being plugged back in. Live parts can cause dangerous electric shock. Route low-voltage cables (below 42 V) separately from 230 V cables.

### Connector X15

X15 (item F in the manufacturer's overview, "Anschluss Modbus") is the red 3-pole plug-in terminal on the control board. Pins are counted from the side of the black X16 (24 V) connector:

| Pin | Signal |
|-----|--------|
| 1 | Modbus − (B) |
| 2 | Modbus + (A) |
| 3 | Signal GND |

![Viessmann Vitovent 300-W installation manual page: overview of electrical connections on the control board, including the X15 Modbus connector.](https://taphome.com/images/compatibility/viessmann-vitovent-300-w-h32s-c400-modbus-rtu/connections-overview_hu_5b31e0f01d596daf.jpg)

> [!WARNING]
> Signal GND on pin 3 is mandatory. Run a third wire from X15 pin 3 to the ground reference of the RS-485 master. With only A and B connected, the unit typically does not respond at all, because the reference of its transceiver floats. The LB1 panel gets its ground through the X16 24 V cable, which a third-party master does not have.

Swapping A and B does not damage anything: if the unit does not respond, swap the two wires once.

### Termination jumper X12

X12 is the plug-in jumper for the 120 Ω Modbus termination resistor on the unit side. The community documentation advises leaving it in place.

![Viessmann Vitovent 300-W control board connection and wiring diagram with connectors X01-X19, X12 Modbus termination jumper and X15 Modbus connection.](https://taphome.com/images/compatibility/viessmann-vitovent-300-w-h32s-c400-modbus-rtu/wiring-control-board_hu_fa16ba82346691b5.jpg)

### Only one Modbus master on X15

The unit accepts only one Modbus master. The LB1 control panel, the Vitocal heat pump link, Vitoconnect V and TapHome are mutually exclusive on X15.

1. Unplug the LB1 control panel from X15 before connecting TapHome.
2. Keep the LB1: plugging it back in restores normal operation, so it stays the fallback control.
3. Never run two Modbus masters on the bus at the same time.

While no master is connected, the unit keeps ventilating on its own at the last stage, and its safety functions (frost protection, bypass automation) stay active inside the unit. Removing the LB1 does not stop the unit.

Timer and schedule settings of the LB1 are stored in the panel itself and only stage commands go over the bus, so with TapHome as the master the ventilation schedule is created in TapHome.

## Configuration

### Enabling Modbus communication

No activation is needed. Modbus is always available on X15, and the bus parameters are fixed: neither the unit nor the service menu of the LB1 offers a setting for them.

| Parameter | Value |
|-----------|-------|
| Baud rate | 19200 Bd |
| Data bits | 8 |
| Parity | Even |
| Stop bits | 1 |
| Slave address | 70 (0x46) |

The unit answers function codes 03 and 04 identically and accepts writes of a single register with function code 06.

> [!NOTE]
> Even parity and slave address 70 differ from the usual defaults of most Modbus masters; the master must be set to them explicitly.

### Adding the unit in TapHome

Import the template on the TapHome RS-485 bus set to 19200 8E1 and keep the **Modbus Slave ID** at 70.

## Device capabilities

The device names in the template are in Slovak and appear in TapHome exactly as written below.

| Device in TapHome | Meaning | Register | Access |
|-------------------|---------|----------|--------|
| Stupeň vetrania | Ventilation stage | 2002 | Read/write |
| Teplota vonkajšieho vzduchu | Outdoor air temperature | 1020 | Read |
| Teplota privádzaného vzduchu | Supply air temperature | 1023 | Read |
| Teplota odvádzaného vzduchu | Extract air temperature | 1025 | Read |
| Vlhkosť 1 | Humidity sensor 1 (% r.H.) | 1031 | Read |
| Vlhkosť 2 | Humidity sensor 2 (% r.H.) | 1032 | Read |
| Bypass | Bypass mode override | 6006 | Read/write |
| Výmena filtra | Counter in register 2001 | 2001 | Read |

### Ventilation stage

**Stupeň vetrania** writes the target ventilation stage to register 2002. Stages 1 to 4 select the four airflow presets set at commissioning, stage 5 is the intensive boost at maximum airflow. The unit follows within about 10 seconds and the airflow ramps to the preset of the selected stage.

| Value | Name in TapHome |
|-------|-----------------|
| 1 | Znížené (reduced) |
| 2 | Normálne (normal) |
| 3 | Intenzívne (intensive) |
| 4 | Boost |
| 5 | Intenzívny boost (intensive boost) |

The device also shows these service attributes:

| Attribute | Meaning | Register |
|-----------|---------|----------|
| Skutočný stupeň vetrania | Actual ventilation stage | 1009 |
| Prietok privádzaného vzduchu | Actual supply airflow (m³/h) | 1010 |
| Prietok odvádzaného vzduchu | Actual extract airflow (m³/h) | 1013 |
| Otáčky prívodného ventilátora | Supply fan speed (RPM) | 1011 |
| Otáčky odvádzaného ventilátora | Extract fan speed (RPM) | 1014 |

### Temperatures and humidity

The three temperature sensors are read in 0.1 °C steps as signed values. The community map lists registers 1020, 1023 and 1025 only as temperature sensors 1 to 3 and does not confirm which air path each one measures. Check the assignment on your unit by watching which value follows the outdoor temperature over a day.

**Vlhkosť 1** and **Vlhkosť 2** read the two humidity sensors in % relative humidity. Their position in the unit is not documented, hence the generic names.

### Bypass

**Bypass** overrides the bypass flap through register 6006. The flap moves within about 30 seconds.

| Value | Name in TapHome |
|-------|-----------------|
| 0 | Automatický (automatic, default) |
| 1 | Nútene otvorený (forced open) |
| 2 | Nútene zatvorený (forced closed) |

The service attributes **Poloha klapky bypassu** (flap position, register 1046) and **Stav bypassu** (bypass state, register 1045) show the flap feedback. The community map gives the flap step position in register 1128 (0 = closed, 524 = open on the test unit) and describes 1045 as a status word whose low byte is 4 when closed and 5 when open. If the attributes do not match the flap, compare them on your unit.

> [!TIP]
> Leave the bypass at **Automatický** unless there is a reason to override it, so that the unit's own bypass logic keeps working.

### Filter counter

**Výmena filtra** reads register 2001, a read-only counter that keeps counting. Its meaning is not confirmed: the community documentation considers it most likely the number of calendar days since commissioning. It does not change when the filter warning is reset.

The 365-day filter countdown lives in the LB1 panel, not in the unit, and there is no countdown in the unit that could be reset over Modbus. With TapHome as the master, track the filter interval in TapHome. The manufacturer requires replacing both filters at least once a year.

> [!WARNING]
> Whether the values written to registers 2002 and 6006 survive a power loss has not been tested. Writing to undocumented registers can misconfigure or damage the unit and void the warranty — this is at your own risk. Leave the commissioned airflow presets in registers 6000–6003 unchanged.

## Troubleshooting

### The unit does not respond

- Check the Signal GND wire from X15 pin 3 — a missing ground is the most common reason for a silent bus.
- Swap A and B once; the swap is harmless.
- Check the parity: it must be even, not none.
- Check the address: the unit answers on slave address 70, not 1.
- Make sure no other Modbus master is connected to X15 — unplug the LB1 panel and disconnect Vitoconnect V or the Vitocal link.

### A temperature or humidity shows an impossible value

The unit reports 32768 (0x8000) when a sensor is not fitted or a function is inactive. Because temperatures are read as signed values divided by ten, a missing temperature sensor appears as −3276.8 °C. This is not a communication error.

### The unit stopped following TapHome after the LB1 was plugged back in

With the LB1 connected, two masters share the bus. Unplug the LB1 again before controlling the unit from TapHome.

## Available devices 8

These devices appear in TapHome after import.

Vitovent 300-W H32S C400 Module

Stupeň vetrania Multi-value Switch

Values / States: Znížené · Normálne · Intenzívne · Boost · Intenzívny boost

Read switch state

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

Write switch state

```taphome
MODBUSW(H, 2002, UInt16, Mu)
```

Service Attributes

Skutočný stupeň vetrania

```taphome
TOSTRING(MODBUSR(H, 1009, UInt16))
```

Prietok privádzaného vzduchu

```taphome
TOSTRING(MODBUSR(H, 1010, UInt16)) + " m³/h"
```

Prietok odvádzaného vzduchu

```taphome
TOSTRING(MODBUSR(H, 1013, UInt16)) + " m³/h"
```

Otáčky prívodného ventilátora

```taphome
TOSTRING(MODBUSR(H, 1011, UInt16)) + " RPM"
```

Otáčky odvádzaného ventilátora

```taphome
TOSTRING(MODBUSR(H, 1014, UInt16)) + " RPM"
```

Teplota vonkajšieho vzduchu Temperature Sensor

Read temperature

```taphome
MODBUSR(H, 1020, Int16) / 10
```

Teplota privádzaného vzduchu Temperature Sensor

Read temperature

```taphome
MODBUSR(H, 1023, Int16) / 10
```

Teplota odvádzaného vzduchu Temperature Sensor

Read temperature

```taphome
MODBUSR(H, 1025, Int16) / 10
```

Vlhkosť 1 Analog Input

Read input level

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

Vlhkosť 2 Analog Input

Read input level

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

Bypass Multi-value Switch

Values / States: Automatický · Nútene otvorený · Nútene zatvorený

Read switch state

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

Write switch state

```taphome
MODBUSW(H, 6006, UInt16, Mu)
```

Service Attributes

Poloha klapky bypassu

```taphome
TOSTRING(MODBUSR(H, 1046, UInt16)) + " krokov"
```

Stav bypassu

```taphome
IF(MODBUSR(H, 1045, UInt16) = 5, "Otvorený", "Zatvorený")
```

Výmena filtra Variable

Read

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

**Connection:** Modbus RTU • 19200 baud• 8E1 • Slave ID: $\[SlaveId]

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default |
|------------------|---------|
| Modbus Slave ID  | `70`    |

## 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/)

