Portrait Michael Malura

Viessmann vcontrold: 4 Jahre falsche Adressen und zu viel Taktung

Beim Aufräumen meiner Grafana-Dashboards ist mir aufgefallen dass meine Viessmann Vitoladens 300-C viel zu oft taktet: 17-52 Brennerstarts pro Tag, durchschnittlich nur 9 Minuten pro Lauf. Das ist viel zu kurz für einen Öl-Brennwertkessel. Also bin ich tiefer eingestiegen und hab dabei einen massiven Bug in meiner vcontrold-Config gefunden. Seit 2022 las und schrieb ich Heizkreis 1 statt Heizkreis 2. Alle Kennlinien-Änderungen gingen ins Leere, alle geloggten Werte waren Phantomdaten.

Seit 2019 logge ich die Heizung über vcontrold, seitdem laufen die Daten in InfluxDB und ich kann im Grafana sehen was die Anlage macht. Hat immer funktioniert, dachte ich.

Wie ich den Bug fand

Ich hab am Heizungs-Display testweise die Kennlinien-Neigung von 1.4 auf 1.6 geändert. vcontrold las weiterhin 1.2. Das kann nicht sein, entweder liest vcontrold falsch oder das Display zeigt Müll. Also hab ich die vito.xml gecheckt: Alle Heizkreis-Commands verwendeten 2xxx-Adressen (Heizkreis 1). Meine Anlage hat aber nur Heizkreis 2 mit Mischer M2. Der läuft auf 3xxx-Adressen.

Meine Tests mit einer temporären Config bestätigten dass die HK2-Adressen exakt die Display-Werte liefern. HK1-Adressen zeigten frozen defaults. Seit 2022 hab ich Ghost-Daten geloggt.

Viessmann Optolink Adress-Schema

Heizkreise haben unterschiedliche Adressbereiche:

Heizkreis Adressbereich Kennlinie Betrieb Timer
HK1 (ohne Mischer) 2xxx 27D3/27D4 2323 2000-2030
HK2 (mit Mischer) 3xxx 37D3/37D4 3323 3000-3030
HK3 (Mischer M3) 4xxx analog analog analog

Globale Adressen (Kessel, Warmwasser, Solar, Brenner) bleiben bei 0xxx, 5xxx, 6xxx, 7xxx, 8xxx.

Die große Adress-Korrektur

Alle Heizkreis-Commands von HK1 auf HK2 umgezogen:

Command Alt (HK1) Neu (HK2)
KennlinieNeigung 27D3 37D3
KennlinieNiveau 27D4 37D4
Betriebsart 2323 3323
RaumNorSoll 2306 3306
RaumRedSoll 2307 3307
VLSoll 2544 3544
Timer Mo-So 2000-2030 3000-3030

Zusätzlich hab ich die OpenV Referenz-XML gecheckt und noch mehr kaputte Adressen gefunden:

Sensor Alt Neu Problem
Speicherladepumpe 6513 0845 Falsche Device-Gruppe
Zirkulationspumpe 6515 0846 Falsche Device-Gruppe
Brennerstatus 55DE 0842 Zeigte nie AN
DrehzahlPumpeIntern 7663 (CO) 7663 (PC) Unit-Korrektur

Sensoren die konstant 20°C oder ? zurückgaben hab ich entfernt (WWAuslauf, RaumHK, Umschaltventil, BrennerStufe). Die Anlage hat diese Fühler nicht.

Das Taktungs-Problem

Mit den korrekten Adressen konnte ich jetzt echte Daten sehen. Analyse der letzten Monate:

Außentemperatur Ø Starts/Tag Ø Laufzeit/Tag Ø min/Start
-5° bis 0° 52 9.9h 11.5 min
0° bis 5° 45 7.7h 10.2 min
5° bis 10° 34 5.1h 9.1 min
10° bis 15° 17 2.5h 9.2 min

9 Minuten pro Start ist zu kurz. Ziel für Brennwertbetrieb: 20+ Minuten. Die Live-Logs zeigten dass in der Übergangszeit das Takten hauptsächlich von Warmwasser-Ladung kommt, nicht vom Heizkreis. Der Brenner heizt den Kessel (55L Inhalt) von ~48°C auf 65-70°C für WW, erreicht schnell die Abschalthysterese, schaltet ab. Dann startet der nächste Zyklus.

Codieradresse 9F: Der Game Changer

Recherche in Viessmann Community-Threads ergab: Codieradresse 9F steuert die Differenztemperatur zwischen Kessel und Heizkreis mit Mischer. Werkswert ist 8K, also heizt der Kessel 8°C über VL-Soll. Bei 9F=8 steht der Mischer nie ganz offen. Die Wärme bleibt im 55L-Kessel statt in die Heizkörper zu fließen.

Also hab ich 9F auf 0 gesetzt. Dadurch steht der Mischer beim Brennerstart ganz offen, voller Volumenstrom fließt durch die Heizkörper. Die gesamte Heizkörper- und Wandmasse dient als Wärmesenke und der Brenner läuft länger.

Erfahrungen aus dem Forum zeigten dass dadurch die Starts um 22% sinken (31->24/Tag) und die Laufzeit um 21% steigt (5.7->6.9 min).

Zugang Codierebene 2

Codierebene 2 am Vitotronic 200 Display:

  1. Menü + OK gleichzeitig ~2 Sek. -> Codierebene 1
  2. Nochmal Menü + OK gleichzeitig -> Codierebene 2 (Service)
  3. Mit Hoch/Runter Codieradresse wählen -> OK -> Wert ändern -> OK

Gruppen: 00=Schema, 02-33=Kessel, 55-75=WW, 7F-95=Allgemein, A0-FF=Heizkreis (9F sitzt hier).

Alle Änderungen vom 16. April 2026

Einstellung Vorher Nachher Effekt
9F (Cod.2) 8 0 ~20% weniger Starts
Kennlinie Neigung 1.4 1.0 Niedrigere VL-Temp
vcontrold Adressen HK1 (2xxx) HK2 (3xxx) Echte Werte
Flamme-Adresse 55DE 0842 Brennerstatus sichtbar
Sampling 3 min 1 min Takte besser erfassen

Zusätzlich hab ich die Kennlinien-Neigung von 1.4 auf 1.0 gesenkt. Niedrigere Vorlauftemperaturen bedeuten weniger Öl und weniger aggressive Taktung.

Ausblick

Jetzt sammle ich 2-3 Tage Daten mit 9F=0 und Neigung 1.0. Wenn die Brennerstarts unter 25/Tag fallen und die Laufzeiten über 12 Minuten steigen, war's erfolgreich. Im Winter teste ich dann noch Codieradressen C5, C6 und 06 um VL und Kesseltemp weiter zu begrenzen.

Die große Lehre: Immer die Display-Werte mit den geloggten Werten abgleichen. Sonst optimierst du 4 Jahre lang Ghost-Daten.

Heizungsstatus mit korrekten Werten

16.04.2026 aktualisiert 16.04.2026