Viessmann Component


#1

Hello,

Similar to an older feature request (source: Viessmann gas heating)

I also have a Viessmann Vitodens Gas Heater which is connected to the Viessmann cloud through their Vitoconnect 100 module.
Viessmann offers an app called ViCare that allows me to control my heater using an account

A few weeks ago I discovered Home Assistant and in my search to automate as much as possible I wanted to include my gas heater, but sadly no component exists… yet.

I started doing some research and found a French home automation forum called JEEDOM with following topic:
https://www.jeedom.com/forum/viewtopic.php?f=31&t=31567&start=100#p642758 from this point onwards in the topic they seem to have found a way to access their Gas Heaters.

With google translate and limited knowledge of python I managed to make a small script myself.


The script logs in to the ViessMann server, pulls out some data and sends it to a MQTT topic.

One of the authors of on the JEEDOM also has a github with A LOT more information


With this topic, I’m hoping somebody with more programming skills than myself is able to create a component for Viessmann Gas Heaters.


#2

@Icescream - Hi, So reading the data works correctly for you?


#3

Yes it does.
I’m running the python script from the terminal on hassbian on a raspberry 3B+


#4

Have you considered a opentherm hub to control the boiler?

Home assistant has a component to control the open source Opentherm gateway (OTGW)

The OTGW can monitor and control a opentherm compatible boiler with a opentherm controller.

I have a Viessmann Vitodens boiler with Honeywell’s evohome controller (which there is also a home assistant component for).

There is a technical issue with the boiler and controller which prevents me from manually setting the max flow temperature of the boiler.

Im working on a project at the moment to place a OTGW between the boiler and the controller to allow me to adjust certain boiler settings through home assistant. Mainly the max flow temp.

I’m not sure if this is of any help to you with your setup but may be worth some research as the tech already exists.

Stu


#5

I have Vitoconnect 100 and I’d rather not add more equipment… That should be enough.


#6

Hi,

I have connected the ViCare api to my Home Assistant, enabling me now to read all data from the Vitoconnect interface and also being able to control the active modes (so putting it on forcedReduced when leaving home and forcedNormal when coming home, etc…
If someone is interested; just shout and I will explain it a bit more in detail.

Geert


#7

Oh, i’m very much interessed in this!


#8

Me too, how did you do it @geertmeersman ?


#9

Hey guys,

Have been testing it during a week now and it works perfectly.
In the coming days I will upload it to github and share it with you.

Have a nice new year!
Will get back to you soon!


#10

Perfect timing for me -I was just debating with myself if I should try to code a Viessmann-integration myself when I saw your post here. Much appreciated if you can publish what you’ve done so far!


#11

Hi all,

finally found some time to document it a little bit and as promised, here you go: https://github.com/geertmeersman/homeassistant

If you would have questions, just shoot.


#12

The script works quite well but I would prefer a fully integrated custom component for home assistant.
I started writing a component today and it seems to work (at least for the boiler temperature which I am currently creating a sensor for).

I’ll share it as soon as it has reached a useable state.


#13

@oischinger could you please put your code (in whatever state that is, even broken) in a Gist or a GitHub repo?

I’d like to create a custom component but if you already have a boilerplate working, I’d rather start from there and then work it up from there.

I just need the initial boilerplate and then I can take care of the rest.

Thank you.


#14

I just uploaded the current state to https://github.com/oischinger/ha_vicare
It’ll give you some sensors but no control yet.

Also the component has to be made async and ideally the code for accessing the vicare web services needs to be separated into a plain python library.

@geertmeersman : i took over quite some code from you. I hope you don’t mind.

By the way: some of the sensors don’t return any data for me. I’ll have to dig deeper why that is.

Regards, Hans


#15

Hi Hans,

for sure I don’t mind :slight_smile: Happy I could contribute a bit

Geert


#16

@oischinger ,

regarding the sensors that don’t return any data, which ones do you refer to?
I made a script to run through all sensors, and to check which ones did return anything for my installation. The Viessmann API contains quite a list, but depending on the installation it will, or won’t return data…

Geert


#17

thanks @oischinger and @geertmeersman for kicking this off… I’m sure we’ll come up with something functional in the end :smiley:

btw, @geertmeersman what’s up with the client_id and client_secret? I’m not sure where they are take from :confused:

@oischinger I think that the path taken by @geertmeersman of creating a “climate” component was better… any specific reason to go with the sensor component over the climate one?


#19

@eldios the client_id and client_secret come from the initial french forum post, it’s coming from the guy that analysed the communication flow for the protocol.
In fact is is identifying an android/ios application. It is not that important, since you still need to provide your vicare username/password. So in my opinion, no security risk involved here


#20

@eldios I also believe a climate component makes a lot of sense especially when programming the heater.

But a lot of data from vicare is just not covered by the climate component and additional sensors might make sense. Since I was mostly interested in monitoring I started with the sensors.


#21

@geertmeersman I am getting no data for e.g. the consumption sensors (gas and power). heating.gas.consumption.heating just returns nothing.
This is weird because I can retrieve the data with the old vitotrol plus app.