Inhalt
Prämbel
- Es gibt keine offizielle Dokumentation der API von Viessmann
- Sollte Viessmann die API ändern, kann es zu fehlenden Daten bzw. im schlimmsten Fall zu einem Ausfall des Plugins kommen
- Es ist mein erstes Plugin für Loxberry. Von daher bitte um Nachsicht bei eventuellen Fehlern
- das Plugin wurde mit Unterstützung folgender Quellen erstellt:
- FHEM Plugin 98_vitoconnect.pm von andreas13 https://wiki.fhem.de/wiki/Vitoconnect
- Viessmann-Api von TheTrueAvatar https://github.com/thetrueavatar/Viessmann-Api
- Herzlichen Dank anChristian Fenzl für die Unterstützung bzw. die Basis des Plugins
Download
Das Plugin ist auf Github veröffentlicht und kann direkt von dort bezogen werden
Siehe Download Sektion im Header
Funktion des Plugins
Nach Installation des Plugins ist eine Ersteinrichtung erforderlich um die Daten von Viessmann abrufen zu können bzw. die Daten per MQTT / HTML übermitteln zu können.
Für die Nutzung ist ein Viessmann Online Konto erforderlich. Im Plugin muss das dazugehörige Benutzerkonto (E-Mail Adresse) und Kennwort hinterlegt werden.
Aufgrund der Menge der übermittelten Daten wird eine Nutzung des MQTT Plugins von Christian Fenzl empfohlen.
Es sollte immer nur eine Übermittlungsart (MQTT oder HTML) aktiv sein.
Das Abholen der Daten kann entweder manuell über einen virtuellen Ausgang im Miniserver oder aber automatisiert per CRON Job erfolgen.
Konfigurationsoptionen (Registerkarte Settings)
Die Konfigurationsdatei am Loxberry wird erst nach dem ersten Aufrufen der Settings Seite und Abspeichern erstellt und abgespeichert (JSON Format)
Viessmann Online Anmeldedaten
- Benutzername und Kennwort des Viessmann Online Account hinterlegen
Cron Job aktivieren
- bei aktiviertem Cron Job, kann das Aktualisierungsinterval angegeben werden
Datenübermittlung per MQTT
- Wenn du das MQTT Gateway Plugin installiert hast, sind keine weiteren Daten zwingend erforderlich und die Felder können leer gelassen werden
- Base Topic: vitoconnect (default, wenn Feld leergelassen wird)
- Broker Hostname:Port: 127.0.0.1:1883(default, wenn Feld leergelassen wird)
- Broker Username: wird automatisch aus dem MQTT Plugin ausgelassen (default)
- Broker Passwort: wird automatisch aus dem MQTT Plugin ausgelassen (default)
- Die Angabe des Base Topics erfolgt ohne führendem und abschließendem Schrägstrich, z.B.
vitoconnect
- Die Daten der Viessmann Installation können am Tab Query links and data angesehen werden.
Wichtig: Bevor das VitoConnect Plugin die Daten an das MQTT Plugin senden kann, muss unter den "Subscriptions" im MQTT Plugin das "Base Topic" des Vitoconnect Plugins hinterlegt werden.
Default Base Topic: vitoconnect => Subscription: vitoconnect /#.
Viessmann übermittelt einige Werte z.B. Zeiträume für Eco-/Normalbetrieb oder aber den aktuellen/vergangenen Fehlerstatus als Array zurück.
Damit dieses Array bei MQTT aufgelöst und die Daten als Einzelwerte übertragen werden, muss im MQTT Plugin in den Einstellungen zwingend der Haken "Expand JSON Data" aktiviert werden
Datenübermittlung HTTP
- Den Miniserver anwählen.
- Den Cache kannst du am Anfang zum Einrichten ausschalten (→ "No Cache"), du solltest ihn aber danach einschalten (→ "Cache").
- Die Daten werden an virtuelle Eingänge (VI) bzw. virtuelle Texteingänge (VIT) gesendet. Diese VI's/VIT's musst du selbst anlegen. Wie diese heißen, findest du auf dem Tab Query links and data
(Es werden nur die Daten übertragen, welche unter Installationsdaten Detail angezeigt werden)
Daten (Registerkarte Query Links and data)
Anzeige des Links zum manuellen antriggern des Datenabholens (bei deaktivierten Cron Job)
Anzeige der allgemeinen Installationsinformation:
Anzeige der detaillierten Installationsinformation: (Ausschnitt)
Einrichtung in der Loxone Config Software
Ein Beispiel File für die virtuellen Einfänge wird noch bereitgestellt...
Übertragung per MQTT:
Für die Einrichtung der virtuellen Eingänge für MQTT siehe: MQTT - Schritt für Schritt: MQTT -> Loxone
Für jeden zu übertragenden Wert ist ein virtueller Eingang in LoxConfig anzulegen.
Abhängig davon welche Werte übertragen werden sollen, ist ein virtueller Eingang ( Boolean, Zahlen) oder ein virtueller Texteingang (String) nötig.
Werden Zahlen übertragen (Ganzzahlen oder Gleitkomma) so ist im virtuellen Eingang der Haken bei "Als Digitaleingang verwenden" zu entfernen
Der Name (Bezeichnung) des Eingangs ist der Name des MQTT Topic (Siehe MQTT Plugin → Incoming View)
Unter Beschreibung kann ein sprechender Name für die Darstellung in der App/Webseite vergeben werden
Beispiele für relevante Werte:
MQTT Topic | Beschreibung |
---|---|
vitoconnect_aggregatedstatus | Umschreibung für den Gesamtstatus (WorksProperly = Alles in Ordnung) |
vitoconnect_timestamp | Zeitpunkt der Datenübermittlung |
vitoconnect_heating_circuits_0_operating_modes_active_value | aktueller Betriebsmodus |
vitoconnect_heating_circuits_0_operating_programs_active_value | Bei zeitgesteuerten Programmen wird hier der aktuelle Modus angezeigt normal = erhöhte Temperatur |
vitoconnect_heating_dhw_sensors_temperature_hotWaterStorage_value | aktuelle Temperatur im Pufferspeicher für Warmwasser |
vitoconnect_heating_dhw_temperature_value | aktuelle Solltemperatur für Warmwasser |
vitoconnect_heating_burner_statistics_hours | aktuelle Betriebsstunden |
vitoconnect_heating_burner_statistics_hours_starts | aktuelle Brennerstarts |
Setzen von Werten per HTTP Ausgangsbefehl:
das Setzen von Werten ist über einen HTTP Befehl möglich.
http://<lbuser>:<lbpass>@loxberry:80/admin/plugins/Vitoconnect/vitoconnect.php?action=setvalue
das gewünschte Feature wird per option=YYY addressiert.
Der zu setzende Wert wird über value=XXX mitgegeben.
Um z.B. die Warmwassertemperatur auf 50 Grad zu setzen wäre der gesamte Befehl dann
http://<lbuser>:<lbpass>@loxberry:80/admin/plugins/Vitoconnect/vitoconnect.php?action=setvalue&option=heating.dhw.temperature&value=50
In nachfolgender Tabelle werden die aktuell implementierten Set Befehle näher beschrieben
Feature | Description | Value (Bitte auf korrekte Schreibweise achten, sonst geht es nicht !!!) |
---|---|---|
heating.dhw.temperature | Warmwassertemperatur | min. 10 max. 60 |
heating.circuits.0.operating.modes.active | Betriebsmodus Heizkreis 1 | forcedNormal forcedReduced dhwAndHeating dhw standby |
heating.circuits.1.operating.modes.active | Betriebsmodus Heizkreis 2 | forcedNormal forcedReduced dhwAndHeating dhw standby |
heating.circuits.0.operating.programs.normal | Temperatur Heizkreis 1 Normalbetrieb | min. 3 max. 37 |
heating.circuits.1.operating.programs.normal | Temperatur Heizkreis 2 Normalbetrieb | min. 3 max. 37 |
heating.circuits.0.operating.programs.reduced | Temperatur Heizkreis 1 Reduzierter Betrieb | min. 3 max. 37 |
heating.circuits.1.operating.programs.reduced | Temperatur Heizkreis 2 Reduzierter Betrieb | min. 3 max. 37 |
heating.dhw.oneTimeCharge | Einmalige Aufladung des Warmwasserspeichers (soweit das Modell es unterstützt) | start stop |
Beispieldatei für Input per MQTT und Ausgabe per HTTP Befehle
Fragen stellen und Fehler melden
https://www.loxforum.com/forum/projektforen/loxberry/plugins/226290-loxberry-vitoconnect
23 Comments
Rogier Honselaar
Cool, danke für diese Plug-In. Ich teste in kurzen mal.
Björn B
Hi, vielen Dank dafür. Klasse Plugin.
Ich habe alles so eingerichtet, wie beschrieben und die Daten kommen auch am MQTT Broker an. Wenn ich es anhand des Samples in der Loxone Config eintrage erscheint es jedoch nicht in der Virtualisierung, obwohl ich den Haken bei "Verwenden" gesetzt und die passende Kategorie und den passenden Raum ausgewählt habe. Liegt es am "virtuellen Texteingang" oder übersehe ich einen Punkt?
Miniserver v1 Firmware: 11.1.9.14
Björn B
Ich musste eine Nacht drüber schlafen. Dann geht es auch. Es war ein Berechtigungsfehler.
NepuMQTT
Hallo,
das sieht sehr interessant aus aber ich wäre eher dafür, dass man das optische Interface der Vitoconnect direkt mit dem Loxberry verbindet. Falls, - Gott bewahre -, mal das Internet ausfällt, kann man sich dann immer noch auf die Heizungssteuerung verlassen, oder zumindest direkt in der Loxone App nachschauen. Außerdem macht man sich weniger abhängig von proprietären APIs.
Bei mir fällt Internet immer dann aus, wenn ich auf Dienstreise bin. Murphy und so, ihr kennt das.
Was meint ihr?
Grüße
nepumqqt
Attila Toth
Yes, the direct connection with the optical interface would be better solution.
I have an error message sometime and I dont know why. (Error 500: Could not query summary). Any idea?
Björn B
Hey Attila,
you get this message on tab "Query links and data"? Error 500 means an internal error. There can be alot of things to get this error. Username and password are correct? You use it maybe on your smartphone with the vicare app and it works?
Please give us more information.
Attila Toth
Hello Björn B,
yes it is on the "Query links and data" tab. The interesting thing is during the day it is working correctly, showing the data from the viessmann boiler, and at the nightimes is showing the error 500. The vicare application is working fine. The login details are filled correctly of course.
Björn B
Do you get this message at the same time everyday? Maybe internet timeout, wlan reset, lan connection error, ...
Attila Toth
I started watching it yesterday. At the moment Im not sure its at the same time. The internet connection is without timeout and without any errors. I watched the vitoconnect plugin log file too, but nothing.
Björn B
Do you have new informations for me? Everyday the same time?
Attila Toth
Yesterday I reinstall the loxberry and the vitoconnect plugin, and so far it works well. We'll see in a few days how it will work.
Björn B
I hope it helps. Wait for your answer
Tom Heuker
Hallo,
erstmal Danke für dieses Plugin. Mit der Anleitung hat alles super geklappt, die Daten sind ohne große Probleme in meiner Loxone Config angekommen.
Mir ist nur jetzt aufgefallen, dass die Daten irgendwann nicht mehr übertragen wurden.
Jetzt ist mir über den "timestamp" aufgefallen, dass die letzten Daten immer morgens gegen 4:00 Uhr gesendet wurden.
Erst abends gegen 20:00 beginnt der Datentransfer wieder.
Hat jemand eine Idee woran das liegen kann?
Björn B
Hallo Tom,
in welchem Intervall holst du die Daten ab? Viessmann lässt nur eine bestimmte Anzahl an "Connects" am Tag zu.
Tom Heuker
Das Intervall war auf 1 Minute eingestellt, wusste nicht dass Viessmann die Anzahl begrenzt.
Ich werde das Intervall dann mal auf 5 Minuten umstellen. Vielen Dank für die Hilfe.
Björn B
Hab es gerade nochmal gefunden:
Currently, we have the following limits active:
120 calls for a time window of 10 minutes
1450 calls for a time window of 24 hours
Attila Toth
Therefore, it would be better to connect directly to the boiler and not via a viessmann server.
Thomas Galland
Please feel free to develop a plugin that connects directly to the Optical interface.
All informations are free available.
For me it was ok to use the vitoconnect. I developed the Add in for my self and shared it with others who wants to use it.
If it doens't fullfill your needs, sorry for you
Use it or skip it !
Attila Toth
I didn't mean to offend you, I appreciate your work, I just expressed my opinion nothing more.
Thomas Galland
Bitte verwende ein Aktualisierungsinvervallcon 5 oder 10 Minuten. 1 bzw 3 Minuten sind nur für Tests gedacht. VIESSMANN hat eine max Anzahl an Aktualisierungsanfragen am Tag (zählt für alle Anfrage egal ob Handy App oder am Loxberry)
Gruß Thomas
Wojciech
Hey Guys,
Would you be able to tell me how I can trigger heating.dhw.oneTimeCharge? I was trying to use below commands but without success:
/admin/plugins/Vitoconnect/vitoconnect.php?action=setvalue&option=heating.dhw.oneTimeCharge&active=0
/admin/plugins/Vitoconnect/vitoconnect.php?action=setvalue&option=heating.dhw.oneTimeCharge&active=true
/admin/plugins/Vitoconnect/vitoconnect.php?action=setvalue&option=heating.dhw.oneTimeCharge.active&value=0
My gas boiler Vitodens 222-W
Björn B
Hi,
please test: /admin/plugins/Vitoconnect/vitoconnect.php?action=setvalue&option=heating.dhw.oneTimeCharge&value=start
This works for me.
Kai Schwindenhammer
Im Vitoconnect werden folgende Werte angezeigt:


heating.burner.active
false
heating.burner.modulation.value
0
heating.burner.statistics.hours
676
heating.burner.statistics.hours.starts
632
Im MQTT erscheint aber nur noch:
vitoconnect_heating_burner_active
Also kurz gesagt: Der Modulationsgrad, sowie Betriebsstunden und -starts werden nicht mehr übermittelt.
Die Werte sind auf dem Weg von Vitoconnect Plugin zum MQTT einfach verschwunden.
Wo liegt der Fehler?
Verändert wurde meinerseits seit Wochen hieran nichts mehr.
Ergänzend festgestellt fehlen außerdem alle Werte
vitoconnect_heating_gas_consumption...
vitoconnect_heating_heat_production...
Außentemperatur
DANKE