Vitotronic 200 (Viessmann Heizungssteuerung)

Aus FHEMWiki
X mark.svgDie Verwendung des VCONTROL zur Ansteuerung eines Heizungssystems kann dieses bei unsachgemäßer Anwendung beschädigen. Für unmittelbare oder mittelbare Folgen, die sich aus dem Nachbau des Interfaces oder der Verwendung der hier zur Verfügung gestellten Information ergeben, übernimmt der Autor keine Haftung.

Eine angebundene Vitotronic 200 (Viessmann Heizungssteuerung) wird von FHEM über das Modul 89_VCONTROL.pm sowie das Modul 89_VCONTROL300.pm unterstützt.

Einleitung


VCONTROL und VCONTROL300
Zweck / Funktion
Anbindung einer Viessmann Heizung
Allgemein
Typ Gerätemodul
Details
Dokumentation und VCONTROL300 EN / und VCONTROL300 DE
Thema
Support (Forum) Heizungssteuerung/Raumklima
Modulname 89_VCONTROL.pm
Ersteller adamwit (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Mit Hilfe verschiedener Zusatzgeräte ist es möglich, bei einer Viessmann-Heizung die Temperaturen, Timern, Verbrauch usw. auszulesen und verschiedene Heizungszustände (Heizen, Warm Wasser, Spar Modus, Party Modus) zu steuern.

Hardware

Bevor die Heizung an FHEM angebunden werden kann, muss eine entsprechende Hardware vorliegen. Die Vitotronic weist zwei LEDs sowie ein eingefrästes Viessmann-V auf, das Bestandteil der Steuerung ist. Eine der beiden Diode dient der Steuerung als Empfangsgerät, während die andere Diode Signale sendet. Durch das eingefräste V kann ein entsprechend konstruiertes Gerät passgenau an die Heizung angeschlossen werden. Derzeit sind folgende Geräte bekannt, die mit der Vitotronic kommunzieren können:

  • Optolink-Kabel (Originalbauteil, relativ teuer)
  • selbstgebaute Geräte (zum Teil kommerziell angeboten, Eigenbau ist sehr preiswert - erfordert aber Lötmaterialien)

Der Eigenbau wird auf der eigens dazu errichteten Webseite openv genauer beschrieben. Man muss sich beim Eigenbau insbesondere mit der Frage befassen, über welche Schnittstelle die Hardware dann mit FHEM kommuniziert. Derzeit sind folgende Schnittstellen realisiert, deren Einbindung nach Aussage verschiedener Forenteilnehmer auch geglückt ist:

  • USB
  • seriell (Anschluss an RPi, dort RxTx)
  • WLAN
  • LAN

Die serielle Schnittstelle kann mit Hilfe des Programms ser2net auch auf eine LAN-Schnittstelle gemappt werden. Derzeit (Herbst 2017) entwickelt der Forumsteilnehmer PeMue ein allgemeines Modul, das sowohl per WLAN, USB als auch seriell an die Heizung angeschlossen werden kann: Optolink Adapterplatine.}}.

Bevor die Software angeschlossen wird, sollte man sich Informationen bezüglich der verwendeten Heizung sowie der entsprechenden Steuerung besorgen. Diese Angaben müssen bei der Definition des Gerätes in FHEM angegeben werden.

Software (FHEM)

Es existieren momentan (2017) zwei verschiedene Module, die beide eine Einbindung der Heizung in FHEM sicherstellen: 89_VCONTROL.pm sowie 89_VCONTROL300.pm. Das zweite Modul scheint eine schnellere Kommunikation zu ermöglichen und wird derzeit aktiv weiterentwickelt. Die Definition des Gerätes erfolgt typischerweise wie folgt.

Info green.pngWeiterentwicklung In diesem Forenthread wird über Korrekturen und Bereinigungen im Modul berichtet.
defmod <name> VCONTROL300 <IP-Adresse>:3002 /opt/fhem/FHEM/VScotHO1_300.cfg 300 kw

In dem hier vorliegenden Fall wird das Modul 89_VCONTROL300.pm verwendet. Dieses kommuniziert mit einer LAN-Schnittstelle auf Port 3002 mit der Hardware. Im Fall eines USB-Anschluss muss der entsprechende Pfad auf die USB-Schnittstelle angegeben werden. Es wird alle 300 Sekunden abgefragt, das verwendete Protokoll lautet kw (eine andere Option besteht darin, das neuere Protokoll 300 zu verwenden). Die Kommunikation erfolgt über bestimmte Speicher-Adressen, in denen die Angaben zur Heizung auszulesen und abzulegen sind. Im Internet findet man verschiedene Dokumente, die Angaben zu diesen Speicheradressen machen (siehe zum Beispiel) . Diese Speicher-Adressen werden durch das Modul mit Hilfe einer Konfigurationsdatei (oben /opt/fhem/FHEM/VScotHO1_300.cfg) eingelesen. Informationen hierzu findet man ebenfalls im Forum http://openv.wikispaces.com/, in diesem Forum sind die Adressen teilweise als XML-Datei hinterlegt und müssen entsprechend übertragen werden. In der im Forum geposteten Datei Viessmann-Software-Config.zip sind XML Dateien der original Viessmann-Software enthalten. Diese können nützlich sein, um Adressen für den eigenen Heizungstyp zu finden.

Konfiguration

Die Konfiguration geschieht mit Hilfe einer cfg-Datei, die von FHEM eingelesen wird. Die Einträge in dieser Datei sind von folgendem Format (wir beschränken uns hier auf das Modul VCONTROL300, für das Modul VCONTROL sind die Einträge analog aufgebaut):

POLL, <adresse>, <parse-methode>, <divisor>, <reading>, <kumulationsmethode>

Dies ist wie folgt zu verstehen. POLL zeigt an, dass Daten geholt werden. <adresse> ist die interne Viessmann-Adresse, die die zu holende Variable beherbergt. Dies ist typischerweise eine Hexadezimalzahl mit vier Stellen; beispielsweise findet man unter der Adresse 00F8 die Gerätekennung. Zum Teil können diese Adressen aus Dokumentation bezogen werden, ein Teil der Adressen ist auf der Webseite von openv dokumentiert. Nicht alle Adressen sind dabei korrekt, hier muss viel probiert werden.

<divisor> beschreibt, ob die Größe durch eben diesen Divisor dividiert werden soll (Temperaturangaben sind etwa in Zehntelgrad), <reading> nennt den Namen des FHEM-Readings. <kumulationsmethode> kennt die Einträge - (nicht kumulieren) und "day" (über den Tag hinweg addieren). Im letzten Fall werden dann jeweils nach Mitternacht die Werte des letzten Tages ebenfalls als Readings in das Device eingetragen; bei den Readingnamen wird dann jeweils DayStart,Today und LastDay angehangen. Diese Bezeichnungen können mit Readings des Devices angepasst werden.

<parse-methode> hat die folgenden Auswahlmöglichkeiten

  • "1ByteS": Größe 1 Byte mit Vorzeichen,
  • "2ByteS": Größe 2 Byte mit Vorzeichen
  • "2ByteU": Größe 2 Byte ohne Vorzeichen
  • "2ByteU_1stByte": Größe 2 Byte ohne Vorzeichen, 1.tes Byte (allerdings im Thread nicht angegeben)
  • "2ByteU_2ndByte": Größe 2 Byte ohne Vorzeichen, 1.tes Byte
  • "1ByteH": Größe 1 Byte, vermutlich (im Thread nicht angegeben) hexadezimalkodiert
  • "2ByteH": Größe 2 Byte, vermutlich (im Thread nicht angegeben) hexadezimalkodiert
  • "2BytePercent": nicht implementiert
  • "4Byte": Größe 4 Byte
  • "mode": einer der beiden Werte on, off
  • "date": 8 Byte Datumswert (Beispiel: Do,28.09.2017 17:01:12)
  • "timer": 8 Byte Timer Wert

Alle Größen, die mit timer kodiert sind, müssen mit einem expliziten Get-Befehl geholt werden und werden nicht automatisch gepollt. Ein User berichtet, dass diese Timerzeiten nur geholt werden konnten, nachdem das automatische Ausfüllen ("Mo-Fr automatic") in der Steuerung ausgeschaltet und jedem Tag ein individueller Wert zugewiesen wurde.

Einige User haben bereits Ihre Heizungen mit der Hilfe diese Moduls angebunden:

Links