Intro

Um Daten von einer Vaillant Heizung in eine InfluxDB zu überführen, kann man dies mit einem Vr900 Gateway und einem MyVaillant Konto umsetzen. Hierfür stehen ein paar nette Python Libraries zur Verfügung, wobei die eine ein Fork von der anderen ist und die meisten das gleiche machen. Diese Libs verbinden sich mit der MyVaillant API.

MyPyllant: auf PyPi Dokumentation bei Signalkraft

MyVaillant: MyVaillant auf PyPi

VR900_Connector: VR900 Connector auf PyPi

Eine Verbindung mit dem EBUS direkt ist zwar möglich, dafür benötigt man aber einen anderen / Selbstbau Adapter und einen extra Dienst. Welche Daten dann aus dem EBUS auslesbar sind, ist auch noch recht fraglich und bedarf einiges an Entwicklung. Evtl. dazu später mehr in meinem Wiki aber hier nun erstmal die Integration nach folgendem Schaubild:

Implementierung

MyPyllant VENV

Installation von mindestens Python 3.10

Modul folgende Python3 Module zusätzlich installieren (python3-venv, python3-pip)

VENV anlegen

# mkidir vaillant # python3 -m venv vaillant

Installation von MyPyllant

# vaillant/bin/pip3 install MyPyllant

nun wäre die Installation so weit, einen Testlauf durchzuführen. Der Aufruf wird auch so später beim exec-Input in Telegraf verwendet

# /opt/vaillant/bin/python3 -m myPyllant.export '${VAILLANT-BENUTZERNAME}' '${VAILLANT-PASSWORD}' --country germany vaillant

JSON Data returned from MyVaillant

JSON RAW

JSON Keys

Beschreibung	Pfad	Feldnamen
Warmwassertemperatur	current_dhw_temperature
Vorlauftemperatur Ist	system_flow_temperature
current_circuit_flow_temperature
Vorlauftemperatur Soll	circuits.extra_fields.heating_circuit_flow_setpoint
Rücklauftemperatur
Wasserdruck
Therme Zustand
Therme Modus	circuit_state
Brennerzustand
Heizkurve	heating_curve
Raumtemperatur
Außentemperatur	outdoor_temperature
Ist Innentemperatur	current_room_temperature
Soll Innentemperatur	desired_room_temperature_setpoint
Luftfeuchtigkeit	current_room_humidity
Zustand Zirkpumnpe

Telegraf Config - Simpel

Diese Seite geht davon aus, dass Telegraf bereits korrekt konfiguriert wurde, daher in Verwendung ist und die Daten im gewünschten Ziel landen, wie z.B. einer InfluxDB. Daher muss nur ein einfaches exec Input mit JSON Datenformat in Telegraf angelegt werden. Bitte daran denken, dass die angegebenen Variablen als Umgebungsvariable in /etc/default/telegraf angegeben sein müssen.

[[inputs.exec]] ## Commands array commands = [ "/opt/vaillant/bin/python3 -m myPyllant.export '${VAILLANT-BENUTZERNAME}' '${VAILLANT-PASSWORD}' --country germany vaillant" ] name_override="heizung" timeout = "30s" interval = "5m" data_format = "json_v2"