Pulling data out of Viessmann equipment using "openv".

Just a quick note that I'm experimenting with pulling various data out of a Viessmann heatpump using ​openv,  and sticking it into EmonCMS.

The heat pump in question is a Viessmann Vitocal 300-G ground source heat pump, but the same software should be able to pull data out of various other Viessmann equipment including ASHPs and gas boilers etc.

Some initial data here:




When I've got things a bit more finished I'll do a write-up here.


Edit - fixed openv link - BT

TimSmall's picture

Re: Pulling data out of Viessmann equipment using "openv".

As usual, there is more than one way to do this, but I chose this one:


An interface cable to communicates with a the Viessmann device using their "optolink" system (in my case this was a ground source heat pump, but it could also be an ASHP, solar thermal system, or gas boiler etc.).

Optolink is RS232 over a proprietary full duplex infrared interface.  You can either buy Viessmann's cable (which includes an FTDI USB<->rs232 converter), or make your own from a kit or from scratch (details on the OpenV pages).

The OpenV software runs on Linux/Mac/Windows, and consists of a daemon (vcontrold) which listens on a TCP port and communicates with the RS232 adapter, and also a client program (vclient) which speaks to the daemon (can run on the same host, or elsewhere).

The vclient includes functionality which allows you to execute external commands which include the data collected.  I used this to execute a shell script which uses curl to stick the data into emoncms using an HTTP GET (with the "curl" Linux command line utility).


1. Install the openv software following the instructions on the openv wiki.  I put this on a Linux box running debian.  A raspberry pi should work fine.  Use the detailed instructions on the openv wiki (I used Google Translate as I'm not a German speaker).

2. Satisfy yourself that you have the vclient software fully setup, and you are able to get data from your Veissmann device with vclient - see the OpenV wiki

3. periodically (e.g. with cron) run vclient like this:

vclient -h 3002 -f /path/to/vclient.cmd -t /path/to/template -x /path/to/oemonvclient.sh

This means: connect to vcontrold and, run the set of commands in vclient.cmd (these must be defined appropriately for your Viessmann device in the vcontrold config "vito.xml"), then combine the resultant data with the template file, place the result in the oemonvclient.sh file, and finally execute it.

For the record, my vclient.cmd (the commands correspond to entries in vito.xml which in turn came from the OpenV wiki pages and are specific commands for the Viessmann Vitocal 300G GSHP):


and template file:

curl -g -o - 'http://emoncms.org/input/post.json?json={$C2:$2,$C3:$3,$C4:$4,$C5:$5,$C6:$6,$C7:$7,$C8:$8,$C10:$10,$C11:$11,$C12:$12,$C13:$13,$C14:$14,$C15:$15}&apikey=ChangeThisToYourApiKey'

A successful HTTP get will elicit an 'ok' from emoncms, so you might want to discard this, or otherwise test for the http code, but I haven't yet done this (still developing, so I'm just running this in a tmux session for now).



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.