Viessmann Vitodens 200-W

To read data from the Viessmann Vitodens 200 W heating system it is connected via the “optolink” interface. You can buy for 160 € an original “optolink” cable from Viessmann or built by your self an adapter based on the following construction manual. I made it simple for me and ordered a preassembled adapter for 40 € there.

Because of frequent questions:
The email to order is in the second paragraph on the building instruction page.

galleryImage galleryImage galleryImage

Additionally I installed my own temperature sensors because the buildin sensors of my heating system are not fast and accurate enough.


Initially, I did not want to implement the “optolink” protocol by my self (currently there are 3 different versions), I selected vcontrold from openV project. From the daemon, the heating data are read every minute by a shell script and sent via REST API to openHAB. The script and additional configuration files can be found in the download area.

galleryImage galleryImage

Because of all the indoor environmental sensors, the heating control can be much more accurate. Using the rule engine of openHAB, following functions have been implemented.

Outcome or how much you can save

With these measures, the burner starts could be reduced from about 250 per day to maximum of 20 per day. Mostly less than 10. In addition, the gas consumption has been reduced. One reason were the reduced burner starts and secondly the thermostats does not want to try to settle down the heat surplus. All thermostats are now fully open and yet the correct temperature is reached everywhere. A hydraulic balance of underfloor heating is necessarily needed to achieve this “ideal” distribution of heat. The page has given me valuable tips.

The use of fireplace as now a more direct effect on the heating power and gas consumption.

How to read the data

The script to read the data can be downloaded in the download area ( It contains:

The file “heizung.cmd” defines the commands which are sent to the Optolink adapter and the file “heating.tpl” defines to which OpenHab items the values are mapped.

i.e. The return value of “getTempAussen” is mapped to the OpenHab item “Heating_Temperature_Outdoor”.