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 on GitHub, which tested one unit of type H32E C325 (the enthalpy variant), not an H32S C400.
Hardware connection
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 |

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.

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.
- Unplug the LB1 control panel from X15 before connecting TapHome.
- Keep the LB1: plugging it back in restores normal operation, so it stays the fallback control.
- 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.
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.
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.
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.
