the Viessmann ViCare Integration is perfect as it is … but sadly forced to use their crappy unstable cloud, which has outages all the time.
So this is completely unusable for automation or reliable readings.
Luckily there’s the possibility to communicate locally with Viessmann Components via the Optolink interface and a software named “OpenV vcontrol”.
There’s a project, which provides a working telnet server on a RPi (for example) which accepts telnet commands to read/control the Viessmann component.
Sadly my developer skills are a way to poor to write a custom HA integration which does the same as the Vicare integration, but just use my RPi vcontrol server instead of the Viessmann Cloud
Great idea. As the documentation is in German, so not so easy to navigate, could you point me to the most relevant part if I’d like to install it and use it on linux system with original usb-optolink cable?
How do you interact with the software? Is there a GUI or a command line interface?
You can find systemd service files under /usr/share/doc/vcontrold/doc/examples or just start the program with # vcontrold
When the server is working and running, you can connect to it via network on port 3002,
from here on you can use any command, defined in the vito.xml
# telnet localhost 3002
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
# Get wanted room temp for circuit 1 (M1)
vctrld>getTempRaumNorSollM1
23.000000
# get wanted warm water temp
vctrld>getTempWWsoll
51.000000
# set wanted warm water temp
vctrld>setTempWWsoll 45
OK
# verify correct warm water temp setting
vctrld>getTempWWsoll
45.000000
# get current warm water temp
vctrld>getTempWWist
55.799999 Grad Celsius
# get current burner temp
vctrld>getTempKist
51.900002 Grad Celsius
# help
vctrld>help
close Close connection to device
commands List all commands for the protocol listed in the XML file
debug on|off Toggle debug information
detail <command> Show detailed information about <command>
device The device set in the XML file
protocol Active protocol
raw Raw mode, commands WAIT,SEND,RECV,PAUSE terminated with END
reload Reload XML configuration
unit on|off Toggle conversion to given unit
version Show the version number
quit Close the session
vctrld>
Thanks, looks like the easiest way to integrate it with HA would be by creating a set of command line sensors/switches/services to enable collecting data and controlling the device. Not sure if there is a better way to run commands via telnet without writing fully new integration in python. Quite some work to be done Ideal would be if authors of this library expose REST API or better implement MQTT protocol on their end… In IoT world the latter is the industry standard these days.
Yes correct - I did the same, and the control via the raspberry is working with cli commands.
But someone has to do the Home Assistant Part to integrate it here.
(or at least help me, cause I already tried starting to develop an integration - but already failed seeing the new integration in my dev container )
The issue from my side is that I have the 5-year extended Viessmann warranty as long as I’m using the Vitoconnect and broadcast my data to Viessmann. So I will not tinker with that for another year
Update:
I fixed the problems within my dev environment and started developing an integration for this.
For now, at least the communication to the remote vcontrol daemon is already working.
Now I need to describe all the entities…
Let’s see how far I will come ^^
@rene-bayer side question: I have a Vitoconnect 100 connected by OT2 instead of Optilink. Do you know if it’s possible to do something on the usb serial port (that now on my Vitoconnect is not connected). Thanks!
mmm but I connected my Vitodens 111 with the opentherm cable not the optilink. I guess i’m quite confused about the German Do you need an additional hardware to communicate with the usb?
I mean my current setup is:
Oh … don’t know about the opentherm, guess that’s not working then, but there’s already a opentherm integration in Home Assistant: OpenTherm Gateway - Home Assistant
Maybe that fits your needs better?
Great! Is that work in progress something that you could already start sharing on github?
What is the general idea of the integration? Are you building it as custom integration for HA directly or as a standalone service that will communicate via MQTT?
In my opinion the latter will be more flexible as not everyone has the HA server next to the heater. Also integrating with HA is very easy via MQTT and the autodiscovery. In essence there is no need for any configuration on HA side in such case.
I want to have at least a working kind of prototype before publishing to github.
But first I need to get familiar with everything
I’m currently thinking of an custom integration, which communicates with a vcontrol daemon, which could be a RPi, or even a esp32 next to the heater itself.
Cool. In case you would want to go the MQTT route I can try to help as I have an integration in python that communicates via MQTT and benefits from HA autodiscovery. It could be easily deployed on docker (today I just run it on a server as a daemon).
Hello, I also have Vcontrold running on a Raspberry PI. I used to have an ioBroker running, there is a plugin for Vcontrold. Maybe that helps.
Thanks that someone takes care of this topic, I will also gladly donate something to you via Github. @adorobis : Yes that would be great.
It’s all german stuff, thats not the big deal for me, cause I’m Austrian.
Thinking about translating all the commands, which are defined in the xml file to english, but not quite sure if this is just a time waster and hard to maintain in the future
There is a python script based on Viessmann Vitosoft configuration files for reading data points via Optolink and publishing them to an MQTT broker.
Unfortunately, I can’t try it out by myself, because my Viessmann Vitodens 222 WS2 communicates using the older GWG protocol, which is not supported by Vitosoft and thus not by Viessmann2MQTT.