TapHome

Viessmann Vitogate 300 + Vitocal 200

Modbus RTU
Submitted by
Last updated: 03. 2026

Requires external gateway

Viessmann Vitogate 300 (Type BN/MB)

Viessmann Vitogate 300 + Vitocal 200

The Viessmann Vitogate 300 (Type BN/MB) is a gateway that bridges the Viessmann LON bus to Modbus RTU or Modbus TCP, enabling TapHome to control Vitocal 200 heat pumps via the Vitotronic 200 WO1C controller. This template exposes 27 devices covering heating circuit HC1, a separate cooling circuit, domestic hot water (DHW), solar thermal monitoring, compressor diagnostics, and a general alarm.

The Vitogate 300 is a compact DIN rail module (100 x 48 x 70 mm) with RS-485, LAN (RJ45), LON (2x RJ45), and USB ports. It connects to the Vitotronic controller via LON and translates selected data points into Modbus registers accessible by TapHome.

Dynamic register assignment – The Vitogate 300 assigns Modbus register numbers dynamically based on which LON data points are selected in the web interface. The register numbers in the TapHome template correspond to a specific data point selection. If you change the data point selection in the Vitogate web interface, the register numbers will shift and the template will read incorrect values.

Hardware connection

Connection diagram
Viessmann Vitogate 300 connection diagram showing RS-485, power, LAN, LON and USB ports

Front panel connections (left to right):

  • Power LED – illuminates green when power is on
  • Status LED – multi-color (red, green, orange) for operational status
  • RX / TX LEDs – flash yellow during data receive/transmit
  • DIP switch (A) – 1: Bias voltage RS-485, 2: Bias voltage RS-485, 3: 120 ohm terminator
  • RS-485 (B) – removable plug with terminals: Shld, AGND, A- (Data-), B+ (Data+)
  • PWR (C) – 24 VDC power supply connection
  • LAN (D) – RJ45 for Modbus TCP/IP or web interface access
  • LON (E) – 2x RJ45, screened, for LON connection to Vitotronic
  • USB (F) – for firmware updates
  • Reset – reset button
Technical specifications
  • Dimensions: 100 x 48 x 70 mm (DIN rail mount, TS35)
  • Power supply: 12-24 V AC/DC, max 320 mA (3.85 W)
  • Operating temperature: 0°C to +45°C
  • Protocol: Modbus RTU (RS-485) or Modbus TCP/IP (LAN port 502)
  • RS-485 settings: 9600 baud, 8 data bits, no parity, 1 stop bit
RS-485 wiring

Connect using a 4-wire RS-485 connection to the removable RS-485 plug (B):

  • B+ (Data+) –> A+/D+ on TapHome RS-485
  • A- (Data-) –> B-/D- on TapHome RS-485
  • AGND –> GND on TapHome
  • Shld –> Shield (optional, for long cable runs)

RS-485 termination – DIP switch 3 enables a 120 ohm termination resistor. Enable it only if the Vitogate 300 is the last device on the RS-485 bus. TapHome Core has a built-in 120 ohm resistor on its BUS terminals.

Wiring in junction box
Viessmann Vitogate 300 wiring in CM2 junction box with RS-485 and power connections

The Vitogate 300 and its power supply unit mount on a DIN rail inside the heat pump junction box. The RS-485 connection (C) routes to TapHome. Power is supplied via 24 VDC from the included power supply unit.

LON connection

The Vitogate 300 connects to the Vitotronic controller via LON (RJ45). The Viessmann LON uses a “Line” bus topology with terminal end resistors at both ends. Use 2-core screened CAT5 cable or JY(St)Y 2x2x0.8 mm telephone cable. Maximum distance: 900 m with on-site cabling.

The LON communication module must be installed into the Vitotronic control unit. Depending on the controller model, this may be an additional accessory. Refer to the Vitotronic Installation and Service Instructions.

Configuration

Web interface access
Viessmann Vitogate 300 web interface — general overview
Viessmann Vitogate 300 web interface — Vitogate settings
  1. Connect a PC/laptop to the Vitogate 300 LAN port with an Ethernet cable
  2. Set your computer IP to 169.254.0.20 (subnet mask 255.255.0.0)
  3. Open a browser and navigate to http://169.254.0.1
  4. Log in with user name vitogate and password viessmann

Beginning second half of 2024, new Vitogate 300 units ship with a unique password printed on the device label. After a factory reset, the password reverts to “viessmann”.

Switching to Modbus mode
  1. Go to General > Vitogate in the web interface
  2. Set “Vitogate type” to “Vitogate 300 MB (Modbus)”
  3. Set “Language of datapoints” to English and “Units” to SI units
  4. Press Save, then go to General > Restart and press Restart
LON participant scan
  1. Go to VI LON > Scan participants
  2. Set System number: 1 and participant number range (e.g., 1 to 10)
  3. Press Start – the gateway scans for Vitotronic controllers on the LON bus
  4. After scan completes, check the desired participants and press Save
  5. Go to General > Restart and press Restart (do not select “complete system restart”)
Data point selection
Viessmann Vitogate 300 web interface LON data point selection with checkboxes
  1. Under VI LON > Participants, click on a participant (e.g., 1.1)
  2. Select the data point tabs (All, General, Heating circuit A1, Cooling, DHW, Solar, etc.)
  3. Check the desired data points for transfer to Modbus
  4. Press Save

Critical step – The data points selected here determine the Modbus register assignments. You must select exactly the same data points that the TapHome template expects, in the same order. Changing the selection will shift all register numbers.

Modbus configuration
Viessmann Vitogate 300 Modbus configuration — slave address and RS-485 settings
Viessmann Vitogate 300 Modbus objects — register list
  1. Go to Modbus > Configuration
  2. Set the Slave address (must match the Slave ID in TapHome)
  3. For RS-485 connection, verify: Protocol RTU, Baudrate 9600, Databits 8, Parity none, Stopbits 1
  4. For TCP/IP connection, the default port is 502
  5. Press Save

The Modbus > Objects page shows the dynamically assigned register map with columns: Type (CO/HO/IN/ST), Register number, Name, Unit, and Format.

Status LED indicators
Status LEDMeaning
Flashes greenStandard operation
Flashes green/redDHCP server enabled
Illuminates orangeRe-start in progress
Flashes orangeNo gateway configuration
Flashes redBUS errors in the MS/TP network (framing errors)
Illuminates redFiles are being connected prior to reset

Device capabilities

Temperature monitoring

The template provides temperature sensors for the system, heating circuit, and solar system, reading from analog input registers with automatic /10 conversion:

  • Outdoor Temperature (A:88) – damped outdoor temperature from the Vitotronic controller
  • DHW Storage Temperature (A:102) – domestic hot water buffer storage actual temperature
  • Supply Temperature (A:100) – system supply (flow) temperature
  • Room Temperature HC1 (A:54) – actual room temperature for heating circuit 1
  • Solar Collector Temperature (A:110) – solar collector panel temperature
  • Solar Storage Temperature (A:114) – solar buffer storage temperature
Heating circuit control (HC1)

The heating circuit HC1 has independent operating program, operating status, and thermostat control:

Operating Program HC1 (H:33) – selects the operating mode with 7 options:

  • 0 = Standby
  • 1 = DHW Only
  • 2 = Heating/Cooling/DHW
  • 3 = Continuous Reduced
  • 4 = Continuous Normal
  • 5 = Normal OFF
  • 6 = Cooling Only

Operating Status HC1 (A:139) – shows the active status (Standby, Reduced, Normal, Fixed Temperature) as a read-only indicator.

Thermostats provide room temperature control with current temperature reading and writable setpoint:

  • Room Temperature Setpoint HC1 – reads A:54 (current), writes H:12 (normal setpoint, 10-30°C)
  • Reduced Room Temperature Setpoint HC1 – reads A:54 (current), writes H:13 (reduced setpoint, 10-30°C)
  • Party Mode Room Temperature Setpoint HC1 – reads A:54 (current), writes H:34 (party setpoint, 10-30°C)
Cooling circuit control
  • Cooling Circuit Temperature Setpoint (H:24) – desired temperature for the separate cooling circuit, reads current temp from A:54
DHW control
  • DHW Temperature Setpoint (6000) (H:29) – desired domestic hot water temperature (read/write)
  • DHW Temperature Setpoint 2 (600C) (H:28) – secondary DHW temperature setpoint (read/write)
Heating/Cooling operation mode

Heating/Cooling Operation Mode (H:77) enables switching between the system’s primary operating modes:

  • 0 = Heating
  • 1 = Cooling
  • 2 = Auto
Party and economy modes
  • Party Mode HC1 (C:5) – read/write party mode switch for heating circuit 1
  • Economy Mode HC1 (C:8) – read/write economy (setback) mode switch for heating circuit 1
Pump monitoring
  • Heating Circuit Pump HC1 (D:8) – read-only pump status for heating circuit 1
  • DHW Charging Pump (D:21) – read-only storage tank charging pump status
  • Circulation Pump (D:15) – read-only DHW circulation pump status
Compressor monitoring
  • Compressor Frequency (A:126) – compressor operating power/frequency
  • Compressor 1 Operating Hours (A:162) – cumulative operating hours for compressor stage 1
  • Compressor 2 Operating Hours (A:44) – cumulative operating hours for compressor stage 2
Solar system monitoring
  • Solar Collector Temperature (A:110) – collector panel temperature
  • Solar Storage Temperature (A:114) – buffer storage temperature
  • Solar Energy Yield (A:47) – cumulative solar energy production in kWh
  • Solar Pump (Internal Control) (D:19) – read-only solar pump status (internal controller)
  • Solar Pump (Vitosolic) (D:20) – read-only solar pump status (external Vitosolic controller)
Alarm monitoring
  • General Alarm (C:200) – read-only general fault/alarm status from the heat pump system (0=no alarm, 1=alarm active)
Additional capabilities

The Vitocal 200 / Vitotronic 200 WO1C also exposes LON data points for heating circuit M2/M3 control (room setpoints, operating programs, party/economy modes), ventilation control (supply/exhaust air temperatures, CO2, humidity, filter status), energy balance (COP values, electrical energy consumption), heating curve adjustments (level and slope), and defrost status. These can be added in a future template update by selecting additional data points in the Vitogate web interface.

The heating circuit M2/M3 setpoints and operating programs are not included in the current template. To control additional heating circuits, add the corresponding LON data points in the Vitogate web interface and create custom Modbus devices in TapHome using the newly assigned register numbers.

Troubleshooting

Status LED flashes orange (no configuration)
  1. Access the web interface at http://169.254.0.1
  2. Go to General > Vitogate and verify the Vitogate type is set to “Vitogate 300 MB (Modbus)”
  3. Go to VI LON > Scan participants and scan for Vitotronic controllers
  4. Select data points and save
No Modbus communication
  1. Check RS-485 cables:
    • B+ (Data+) correctly connected to A+/D+ on TapHome
    • A- (Data-) correctly connected to B-/D- on TapHome
    • AGND connected to TapHome ground
  2. Verify the Modbus Slave address in the Vitogate web interface matches TapHome
  3. Check DIP switch 3 termination – enable only on the last device on the bus
  4. Confirm TapHome is set to: 9600 baud, no parity, 1 stop bit
  5. Try Modbus TCP/IP via the LAN port (port 502) as an alternative
Register values are incorrect or shifted
  1. The Vitogate 300 assigns registers dynamically. If data point selection was changed, register numbers shift
  2. Go to Modbus > Objects in the web interface and compare the register map with the TapHome template
  3. If registers don’t match, re-select the correct LON data points to match the template’s expected mapping
LON communication errors
  1. Check RJ45 LON cables between Vitogate and Vitotronic
  2. Verify terminal end resistors are installed at both ends of the LON bus
  3. Ensure the LON communication module is installed in the Vitotronic controller
  4. Check LON system number and participant numbers (Code “77:x” and “98:x” on the Vitotronic)

Available devices

Viessmann Vitogate 300 + Vitocal 200 Module
Outdoor Temperature Temperature Sensor Read-only

Damped outdoor temperature from Vitotronic controller

Register: A:88 Int16 Unit: °C numeric

Outdoor Temperature

Read temperature
MODBUSR(A, 88, Int16) / 10
DHW Storage Temperature Temperature Sensor Read-only

Domestic hot water buffer storage actual temperature

Register: A:102 Int16 Unit: °C numeric

DHW Storage Temperature

Read temperature
MODBUSR(A, 102, Int16) / 10
Compressor Frequency Variable Read-only

Compressor operating frequency / power output

Register: A:126 Int16 numeric

Compressor Frequency

Read
MODBUSR(A, 126, Int16)
Compressor 1 Operating Hours Variable Read-only

Cumulative operating hours for compressor stage 1

Register: A:162 Int16 Unit: h numeric

Compressor 1 Operating Hours

Read
MODBUSR(A, 162, Int16)
Compressor 2 Operating Hours Variable Read-only

Cumulative operating hours for compressor stage 2

Register: A:44 Int16 Unit: h numeric

Compressor 2 Operating Hours

Read
MODBUSR(A, 44, Int16)
DHW Temperature Setpoint (6000) Thermostat

Desired domestic hot water temperature (read/write, 0-90 C)

Register: H:29 Int16 Unit: °C numeric

DHW Temperature Setpoint (6000)

Read desired temperature
MODBUSR(H, 29, Int16) / 10
Write desired temperature
MODBUSWNE(H, 29, Int16, Se * 10)
DHW Temperature Setpoint 2 (600C) Thermostat

Secondary DHW temperature setpoint (read/write)

Register: H:28 Int16 Unit: °C numeric

DHW Temperature Setpoint 2 (600C)

Read desired temperature
MODBUSR(H, 28, Int16) / 10
Write desired temperature
MODBUSWNE(H, 28, Int16, Se * 10)
DHW Charging Pump Variable Read-only

Storage tank charging pump status (read-only)

Register: D:21 Bool

DHW Charging Pump

Read
MODBUSR(D, 21, Bool)
Circulation Pump Variable Read-only

DHW circulation pump status (read-only)

Register: D:15 Bool

Circulation Pump

Read
MODBUSR(D, 15, Bool)
Solar Storage Temperature Temperature Sensor Read-only

Solar buffer storage temperature

Register: A:114 Int16 Unit: °C numeric

Solar Storage Temperature

Read temperature
MODBUSR(A, 114, Int16) / 10
Solar Collector Temperature Temperature Sensor Read-only

Solar collector panel temperature

Register: A:110 Int16 Unit: °C numeric

Solar Collector Temperature

Read temperature
MODBUSR(A, 110, Int16) / 10
Solar Pump (Internal Control) Variable Read-only

Solar pump status controlled by integrated solar controller (read-only)

Register: D:19 Bool

Solar Pump (Internal Control)

Read
MODBUSR(D, 19, Bool)
Solar Pump (Vitosolic) Variable Read-only

Solar pump status controlled by external Vitosolic controller (read-only)

Register: D:20 Bool

Solar Pump (Vitosolic)

Read
MODBUSR(D, 20, Bool)
Solar Energy Yield Variable Read-only

Cumulative solar energy production in kWh

Register: A:47 Int16 Unit: kWh numeric

Solar Energy Yield

Read
MODBUSR(A, 47, Int16)
Operating Program HC1 Multi-value Switch

Heating circuit 1 operating program selector (7 modes)

Register: H:33 UInt16 numeric
Values / States: Vypínacia · Len príprava · Kúrenie/Chladenie/TV · Trvalo reduk. Teplota · Trvalo normál. Teplota · Normál. VYP · Len chladenie

Operating Program HC1

Read switch state
MODBUSR(H, 33, UInt16)
Write switch state
MODBUSWNE(H, 33, Uint16, Mu)
Operating Status HC1 Multi-value Switch Read-only

Current operating status of heating circuit 1 (read-only)

Register: A:139 UInt16 numeric
Values / States: Standby · Redukovaná · Normál · Na konštantnú teplotu

Operating Status HC1

Read switch state
MODBUSR(A, 139, UInt16)
Room Temperature HC1 Temperature Sensor Read-only

Actual room temperature for heating circuit 1

Register: A:54 Int16 Unit: °C numeric

Room Temperature HC1

Read temperature
MODBUSR(A, 54, Int16) / 10
Room Temperature Setpoint HC1 Thermostat

Normal room temperature setpoint for heating circuit 1 (10-30 C)

Register: H:12 Int16 Unit: °C numeric

Room Temperature Setpoint HC1

Read temperature
MODBUSR(A, 54, Int16) / 10
Read desired temperature
MODBUSR(H, 12, Int16) / 10
Write desired temperature
MODBUSWNE(H, 12, Int16, Se * 10)
Reduced Room Temperature Setpoint HC1 Thermostat

Reduced (night/setback) room temperature setpoint for heating circuit 1 (10-30 C)

Register: H:13 Int16 Unit: °C numeric

Reduced Room Temperature Setpoint HC1

Read temperature
MODBUSR(A, 54, Int16) / 10
Read desired temperature
MODBUSR(H, 13, Int16) / 10
Write desired temperature
MODBUSWNE(H, 13, Int16, Se * 10)
Party Mode Room Temperature Setpoint HC1 Thermostat

Room temperature setpoint during party mode for heating circuit 1 (10-30 C)

Register: H:34 Int16 Unit: °C numeric

Party Mode Room Temperature Setpoint HC1

Read temperature
MODBUSR(A, 54, Int16) / 10
Read desired temperature
MODBUSR(H, 34, Int16) / 10
Write desired temperature
MODBUSWNE(H, 34, Int16, Se * 10)
Supply Temperature Temperature Sensor Read-only

System supply (flow) temperature

Register: A:100 Int16 Unit: °C numeric

Supply Temperature

Read temperature
MODBUSR(A, 100, Int16) / 10
Party Mode HC1 Switch

Party mode switch for heating circuit 1 (read/write)

Register: C:5 Bool

Party Mode HC1

Read switch state
MODBUSR(C, 5, Bool)
Write switch state
MODBUSWNE(C, 5, Bool, St)
Economy Mode HC1 Switch

Economy (setback) mode switch for heating circuit 1 (read/write)

Register: C:8 Bool

Economy Mode HC1

Read switch state
MODBUSR(C, 8, Bool)
Write switch state
MODBUSWNE(C, 8, Bool, St)
Heating Circuit Pump HC1 Switch Read-only

Heating circuit 1 circulation pump status (read-only)

Register: D:8 Bool

Heating Circuit Pump HC1

Read switch state
MODBUSR(D, 8, Bool)
Cooling Circuit Temperature Setpoint Thermostat

Desired temperature for the separate cooling circuit

Register: H:24 Int16 Unit: °C numeric

Cooling Circuit Temperature Setpoint

Read temperature
MODBUSR(A, 54, Int16) / 10
Read desired temperature
MODBUSR(H, 24, Int16) / 10
Write desired temperature
MODBUSWNE(H, 24, Int16, Se * 10)
Heating/Cooling Operation Mode Multi-value Switch

System heating/cooling mode selector (Heating, Cooling, Auto)

Register: H:77 UInt16 numeric
Values / States: Heating · Cooling · Auto

Heating/Cooling Operation Mode

Read switch state
MODBUSR(H, 77, UInt16)
Write switch state
MODBUSWNE(H, 77, UInt16, Mu)
General Alarm Switch Read-only

General fault/alarm status from the heat pump system (read-only)

Register: C:200 Bool

General Alarm

Read switch state
MODBUSR(C, 200, Bool)
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (17)
  • HO-17 Room Temperature Setpoint HC2 (3000) — Normal room temperature setpoint for heating circuit 2 (10–30°C)
  • HO-18 Reduced Room Temperature Setpoint HC2 (3001) — Reduced room temperature setpoint for heating circuit 2 (10–30°C)
  • HO-36 Party Mode Room Temperature HC2 (3022) — Party mode room temperature for heating circuit 2 (10–30°C)
  • HO-32 Operating Program HC2 — Operating program selector for heating circuit 2 (same modes as HC1)
  • CO-7 Party Mode HC2 — Party mode switch for heating circuit 2
  • CO-10 Economy Mode HC2 — Economy mode switch for heating circuit 2
  • HO-21 Room Temperature Setpoint HC3 (4000) — Normal room temperature setpoint for heating circuit 3 (10–30°C)
  • HO-22 Reduced Room Temperature Setpoint HC3 (4001) — Reduced room temperature setpoint for heating circuit 3 (10–30°C)
  • IN-161 COP Heating — Coefficient of performance for heating operation (0x1690)
  • IN-78 COP DHW — Coefficient of performance for DHW operation (0x1691)
  • HO-12 Heating Curve Level HC1 (2006) — Heating curve level adjustment (-15 to +40 K)
  • HO-11 Heating Curve Slope HC1 (2007) — Heating curve slope (0–35)
  • IN-186 Exhaust Air Temperature — Exhaust air temperature for ventilation (0x0A02)
  • IN-180 Fresh Air Temperature — Outside air temperature for ventilation (0x0A00)
  • HO-61 Ventilation Operating Program — Ventilation mode: 0=Off, 1=Basic, 2=Automatic (0xB005)
  • IN-174 Defrost Active — Defrost status: 0=OFF, 1=Defrost ON (0xB446)
  • IN-113 Solar Return Temperature — Solar return temperature (0x01D2, AI-83)

Sources