Skip to content

vito2mqtt

A smart home app to control a Vitodens gas heating via MQTT.

vito2mqtt is an IoT-to-MQTT bridge daemon for Viessmann Vitodens 200-W gas boilers. It reads telemetry data — temperatures, pressures, burner hours, error codes — over the Optolink serial interface using the P300 protocol, publishes everything to an MQTT broker, and accepts commands to modify boiler parameters like setpoints, schedules, and operating modes.


Key Features

  • 46 Telemetry Signals


    Temperatures, pressures, burner stats, pump states, and error codes across 7 domain groups — outdoor, hot water, burner, radiator (M1), floor heating (M2), system, and diagnosis.

  • 42 Writable Commands


    Control heating schedules, setpoints, operating modes, and pump timers. Modify your boiler configuration remotely via MQTT.

  • Configurable Polling Intervals


    Set per-domain polling intervals — poll outdoor sensors every 5 minutes, system info every hour. Fine-tune to your needs.

  • Read-Before-Write Optimization


    Skips writes when values are unchanged, reducing serial bus traffic and EEPROM wear on the boiler controller. Use __force to override.

  • Coalescing Groups


    Signals due for polling at the same tick are batched into a single serial session, minimizing Optolink bus occupancy (see ADR-007).

  • Bilingual Signal Names


    Signal names available in German and English. Set VITO2MQTT_SIGNAL_LANGUAGE to de or en (see ADR-006).

  • Automated Legionella Treatment


    Configurable hot water temperature boost with duration and safety-margin settings to prevent legionella growth.

  • Simple .env Configuration


    All settings via environment variables or a .env file. No YAML, no config files to manage. Powered by cosalette.


Quick Start

# Install
uv pip install vito2mqtt

# Create minimal .env
cat > .env << 'EOF'
VITO2MQTT_SERIAL_PORT=/dev/ttyUSB0
VITO2MQTT_MQTT__HOST=localhost
EOF

# Run
uv run vito2mqtt

Or try without hardware using the dry-run mode:

uv run vito2mqtt --dry-run

See the Getting Started guide for the full walkthrough.


Documentation

Section Description
Getting Started Prerequisites, installation, first run
Guides Home Assistant integration, Docker, recipes
Configuration Reference All settings and environment variables
MQTT Signal Reference Complete signal tables with addresses and types
Architecture Decisions ADRs documenting project design choices

License

vito2mqtt is licensed under the GNU General Public License v3.0 or later.