TapHome

Viessmann Vitogate 300 + Vitotronic 200 HK3B

Modbus RTU
Submitted by
Last updated: 03. 2026

Requires external gateway

Viessmann Vitogate 300 (Type BN/MB)

Viessmann Vitogate 300 + Vitotronic 200 HK3B

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 Vitotronic boiler controllers. This template is configured for the Vitotronic 200 HK3B and exposes 33 devices covering 3 heating circuits (A1M1, M2, M3), domestic hot water (DHW), and solar thermal monitoring.

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 boiler 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, Boiler, Heating circuit A1, DHW, 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 all heating circuits and the solar system, reading from analog input registers with automatic /10 conversion:

  • Outdoor Temperature (A:13) – damped outdoor temperature from the Vitotronic controller
  • Supply Temperature A1M1 (A:27) – flow temperature of heating circuit A1M1
  • Supply Temperature A1M1 Weather-Compensated (A:28) – weather-compensated supply setpoint for A1M1
  • Supply Temperature M2 (A:60) – flow temperature of heating circuit M2
  • Supply Temperature M3 (A:91) – flow temperature of heating circuit M3
  • Solar Collector Temperature (A:150) – solar collector panel temperature
  • Solar Storage Temperature (A:151) – solar buffer storage temperature
Heating circuit control

Each of the 3 heating circuits (A1M1, M2, M3) has independent operating mode and thermostat control:

Operating Modes (H:14 for A1M1, H:15 for M2, H:15 for M3):

  • 0 = Off
  • 1 = DHW Only
  • 2 = Heating + DHW
  • 3 = Continuous Reduced
  • 4 = Continuous Normal

Current Operating Mode shows the active status (Off, Reduced, Normal, Continuous Normal) as a read-only indicator.

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

  • Thermostat A1M1 Normal – reads A:22 (current), writes H:8 (setpoint, 10-30°C)
  • Thermostat A1M1 Reduced – reads A:22 (current), writes H:11 (reduced setpoint)
  • Thermostat M2 – reads A:62 (current), writes H:156 (setpoint)
  • Thermostat M3 – reads A:93 (current), writes H:157 (setpoint)
DHW and room setpoints
  • DHW Setpoint Temperature (H:1) – read-only domestic hot water desired temperature
  • Room Setpoint M2 (H:9) – normal room temperature setpoint for circuit M2
  • Room Setpoint M3 (H:10) – normal room temperature setpoint for circuit M3
  • Reduced Setpoint M2 (H:12) – reduced (eco) room temperature setpoint for circuit M2
  • Reduced Setpoint M3 (H:13) – reduced (eco) room temperature setpoint for circuit M3
Party and economy modes
  • Party Mode A1M1 (D:60) – read-only party mode status for A1M1
  • Party Mode M2 (C:12) – read/write party mode switch for M2
  • Party Mode M3 (D:62) – read-only party mode status for M3
  • Economy Mode M2 (C:9) – read/write economy (reduced) mode switch for M2
  • Economy Mode M3 (C:3) – read/write economy (reduced) mode switch for M3
Circulation pump monitoring
  • Circulation Pump A1M1 (D:14) – read-only pump status for heating circuit A1M1
  • Circulation Pump M2 (D:26) – read-only pump status for heating circuit M2
  • Circulation Pump M3 (D:38) – read-only pump status for heating circuit M3
Solar system monitoring
  • Solar Collector Temperature (A:150) – collector panel temperature
  • Solar Storage Temperature (A:151) – buffer storage temperature
  • Solar Heat Yield (A:152) – cumulative solar energy production in kWh
  • Solar Operating Hours (A:153) – cumulative solar system operating hours
  • Solar Pump (D:59) – read-only solar circulation pump status
Additional capabilities

The Vitotronic 200 HK3B also exposes registers for boiler water temperature, effective boiler setpoint, burner modulation, boiler operating mode, and extended heating circuit operating programs. These can be added in a future template update by selecting additional data points in the Vitogate web interface.

The boiler water temperature (Kesseltemperatur) is not included in the current template. To monitor it, add the corresponding LON data point in the Vitogate web interface and create a custom Modbus device in TapHome using the newly assigned register number.

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 + Vitotronic 200 HK3B Module
Outdoor Temperature Temperature Sensor Read-only

Damped outdoor temperature from Vitotronic controller

Register: A:13 Int16 Unit: °C numeric

Outdoor Temperature

Read temperature
MODBUSR(A, 13, Int16) / 10
Solar Storage Temperature Temperature Sensor Read-only

Solar buffer storage temperature

Register: A:151 Int16 Unit: °C numeric

Solar Storage Temperature

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

Solar collector panel temperature

Register: A:150 Int16 Unit: °C numeric

Solar Collector Temperature

Read temperature
MODBUSR(A, 150, Int16) / 10
Solar Pump Switch Read-only

Solar circulation pump status (read-only)

Register: D:59 Bool

Solar Pump

Read switch state
MODBUSR(D, 59, Bool)
Solar Operating Hours Variable Read-only

Cumulative solar system operating hours

Register: A:153 Int16 Unit: h numeric

Solar Operating Hours

Read
MODBUSR(A, 153, Int16)
Solar Heat Yield Variable Read-only

Cumulative solar energy yield in kWh

Register: A:152 Int16 Unit: kWh numeric

Solar Heat Yield

Read
MODBUSR(A, 152, Int16)
Operating Mode A1M1 Multi-value Switch

Heating circuit A1M1 operating mode selector

Register: H:14 Int16 numeric
Values / States: Vyp. prevádzka · Len TUV · Vykurovanie + TUV · Trvalo reduk. · Trvalo normál

Operating Mode A1M1

Read switch state
MODBUSR(H, 14, Int16)
Write switch state
MODBUSWNE(H, 14, Int16, Mu)
DHW Setpoint Temperature Temperature Sensor Read-only

Domestic hot water desired temperature (read-only)

Register: H:1 Int16 Unit: °C numeric

DHW Setpoint Temperature

Read temperature
MODBUSR(H, 1, Int16) / 10
Current Operating Mode A1M1 Multi-value Switch Read-only

Active heating circuit A1M1 status (read-only)

Register: A:26 Int16 numeric
Values / States: Vyp. prevádzka · Redukovaná prev. · Normálna prev. · Trvalo normál.

Current Operating Mode A1M1

Read switch state
MODBUSR(A, 26, Int16)
Thermostat A1M1 Normal Thermostat

Normal room temperature control for heating circuit A1M1 (10-30 C)

Register: A:22H:8 Int16 Unit: °C numeric

Thermostat A1M1 Normal

Read temperature
MODBUSR(A, 22, Int16) / 10
Read desired temperature
MODBUSR(H, 8, Int16) / 10
Write desired temperature
MODBUSWNE(H, 8, Int16, Se * 10)
Thermostat A1M1 Reduced Thermostat

Reduced (eco) room temperature control for heating circuit A1M1 (10-30 C)

Register: A:22H:11 Int16 Unit: °C numeric

Thermostat A1M1 Reduced

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

Flow/supply temperature of heating circuit A1M1

Register: A:27 Int16 Unit: °C numeric

Supply Temperature A1M1

Read temperature
MODBUSR(A, 27, Int16) / 10
Supply Temperature A1M1 (Weather-Compensated) Temperature Sensor Read-only

Weather-compensated supply temperature setpoint for heating circuit A1M1

Register: A:28 Int16 Unit: °C numeric

Supply Temperature A1M1 (Weather-Compensated)

Read temperature
MODBUSR(A, 28, Int16) / 10
Party Mode A1M1 Switch Read-only

Party mode status for heating circuit A1M1 (read-only)

Register: D:60 Bool

Party Mode A1M1

Read switch state
MODBUSR(D, 60, Bool)
Circulation Pump A1M1 Switch Read-only

Heating circuit pump status for A1M1 (read-only)

Register: D:14 Bool

Circulation Pump A1M1

Read switch state
MODBUSR(D, 14, Bool)
Operating Mode M2 Multi-value Switch

Heating circuit M2 operating mode selector

Register: H:15 Int16 numeric
Values / States: Vyp. prevádzka · Len TUV · Vykurovanie + TUV · Trvalo reduk. · Trvalo normál.

Operating Mode M2

Read switch state
MODBUSR(H, 15, Int16)
Write switch state
MODBUSWNE(H, 15, Int16, Mu)
Current Operating Mode M2 Multi-value Switch

Active heating circuit M2 status

Register: H:1 Int16 numeric
Values / States: Vypnutá prevádzka · Redukovaná prevádzka · Normálna prevádzka · Trvalo normál.

Current Operating Mode M2

Read switch state
MODBUSR(H, 1, Int16)
Write switch state
MODBUSWNE(H, 1, Int16, Mu)
Thermostat M2 Thermostat

Room temperature control for heating circuit M2 (10-30 C)

Register: A:62H:156 Int16 Unit: °C numeric

Thermostat M2

Read temperature
MODBUSR(A, 62, Int16) / 10
Read desired temperature
MODBUSR(A, 156, Int16) / 10
Write desired temperature
MODBUSWNE(H, 156, Int16, Se * 10)
Reduced Setpoint M2 Temperature Sensor Read-only

Reduced (eco) room temperature setpoint for heating circuit M2

Register: H:12 Int16 Unit: °C numeric

Reduced Setpoint M2

Read temperature
MODBUSR(H, 12, Int16) / 10
Room Setpoint M2 Temperature Sensor Read-only

Normal room temperature setpoint for heating circuit M2

Register: H:9 Int16 Unit: °C numeric

Room Setpoint M2

Read temperature
MODBUSR(H, 9, Int16) / 10
Supply Temperature M2 Temperature Sensor Read-only

Flow/supply temperature of heating circuit M2

Register: A:60 Int16 Unit: °C numeric

Supply Temperature M2

Read temperature
MODBUSR(A, 60, Int16) / 10
Party Mode M2 Switch

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

Register: C:12 Bool

Party Mode M2

Read switch state
MODBUSR(C, 12, Bool)
Write switch state
MODBUSWNE(C, 12, Bool, St)
Economy Mode M2 Switch

Economy (reduced) mode switch for heating circuit M2 (read/write)

Register: C:9 Bool

Economy Mode M2

Read switch state
MODBUSR(C, 9, Bool)
Write switch state
MODBUSWNE(C, 9, Bool, St)
Circulation Pump M2 Switch Read-only

Heating circuit pump status for M2 (read-only)

Register: D:26 Bool

Circulation Pump M2

Read switch state
MODBUSR(D, 26, Bool)
Operating Mode M3 Multi-value Switch

Heating circuit M3 operating mode selector

Register: H:15 Int16 numeric
Values / States: Vypnutá prevádzka · Len TUV · Vykurovanie + TUV · Trvalo reduk. · Trvalo normál.

Operating Mode M3

Read switch state
MODBUSR(H, 15, Int16)
Write switch state
MODBUSWNE(H, 15, Int16, Mu)
Current Operating Mode M3 Multi-value Switch Read-only

Active heating circuit M3 status (read-only)

Register: A:90 Int16 numeric
Values / States: Vyp. prevádzka · Reduk. prevádzka · Normál. prevádzka · Trvalo normál.

Current Operating Mode M3

Read switch state
MODBUSR(A, 90, Int16)
Thermostat M3 Thermostat

Room temperature control for heating circuit M3 (10-30 C)

Register: A:93H:157 Int16 Unit: °C numeric

Thermostat M3

Read temperature
MODBUSR(A, 93, Int16) / 10
Read desired temperature
MODBUSR(A, 157, Int16) / 10
Write desired temperature
MODBUSWNE(H, 157, Int16, Se * 10)
Reduced Setpoint M3 Temperature Sensor Read-only

Reduced (eco) room temperature setpoint for heating circuit M3

Register: H:13 Int16 Unit: °C numeric

Reduced Setpoint M3

Read temperature
MODBUSR(H, 13, Int16) / 10
Room Setpoint M3 Temperature Sensor Read-only

Normal room temperature setpoint for heating circuit M3

Register: H:10 Int16 Unit: °C numeric

Room Setpoint M3

Read temperature
MODBUSR(H, 10, Int16) / 10
Supply Temperature M3 Temperature Sensor Read-only

Flow/supply temperature of heating circuit M3

Register: A:91 Int16 Unit: °C numeric

Supply Temperature M3

Read temperature
MODBUSR(A, 91, Int16) / 10
Party Mode M3 Switch Read-only

Party mode status for heating circuit M3 (read-only)

Register: D:62 Bool

Party Mode M3

Read switch state
MODBUSR(D, 62, Bool)
Economy Mode M3 Switch

Economy (reduced) mode switch for heating circuit M3 (read/write)

Register: C:3 Bool

Economy Mode M3

Read switch state
MODBUSR(C, 3, Bool)
Write switch state
MODBUSWNE(C, 3, Bool, St)
Circulation Pump M3 Switch Read-only

Heating circuit pump status for M3 (read-only)

Register: D:38 Bool

Circulation Pump M3

Read switch state
MODBUSR(D, 38, Bool)
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (11)
  • A:22 Room Temperature A1M1 (standalone) — Room temperature sensor A1/HK1 — available via thermostat device but not as standalone sensor
  • HO:34 Operating Program A1M1 (extended) — Extended modes: 0=Off, 1=DHW Only, 2=Heat/Cool+DHW, 4=Continuous Reduced, 5=Continuous Normal, 6=Normal, 7=Cooling Only. Template only has 0–4
  • IN-15 Boiler Temperature — Actual boiler water temperature — important sensor not in template
  • IN-5 Effective Boiler Setpoint — Effective boiler water setpoint temperature
  • HO-8 Boiler Setpoint Temperature — Writable boiler setpoint (0..127 °C)
  • IN-175 Boiler Modulation — Burner modulation percentage (0..100%)
  • ST-9 Heating Circuit Pump A1M1 (BACnet) — Binary status via BACnet BI-9, alternative to D:14
  • CO-6 Party Mode A1M1 (writable) — Writable party mode switch — template has read-only D:60
  • CO-9 Economy Mode A1M1 — Economy mode switch for A1M1 — available for M2/M3 but missing for A1M1
  • IN-111 Solar Collector Temperature (BACnet) — Alternative solar collector temp via different register mapping
  • IN-48 Solar Energy (BACnet) — Solar energy yield via BACnet/Modbus standard mapping

Sources