Vitotrans 353 Datenerfassung
Alle Angaben ohne Gewähr und jeglicher Nachbau auf eigene Verantwortung des Lesers.
Die Regelung der Vitotrans 353 stammt meinen Erkenntnissen nach von der Firma Resol. Die VBus-Schnittstelle ist hier dokumentiert, und die Nachrichtenfelder der Vitotrans 353 hier.
Ich habe den VBus zur Potentialtrennung über einen Optokoppler (HCPL-817-00DE) an UART0 (GPIO15) meines RasPi 3B angeschlossen. Auf der VBus-Seite benutze ich 1kΩ zur Strombegrenzung der OK-Led, auf der RasPi-Seite 3V3 am Kollektor und 470Ω Pulldown zu GND am Emitter des OK-Transistors.
Das resultierende Signal ist dadurch in der richtigen Polarität und bei mir noch gut genug für 9600 Baud. Hier meine Signale (im Saleae Logic2-Format): vitotrans_353_vbus.sal.zip. Am besten mit Oszi kontrollieren.
Die Vitotrans 353 überträgt regelmäßig alle 2 Sekunden unaufgefordert ein VBus-Datenpaket.
Ein durch systemctl überwachtes Python-Script liest diese Datenpakete, dekodiert sie, und reicht sie als JSON-Objekte an meinen MQTT-Broker weiter: vitotrans.zip
Dort sieht ein solches Datenpaket dann etwa so aus:
{
"Reception Time": "2025-04-19T18:33:44Z",
"VBus Key": "10,1250,0010,0100,29",
"System Time": "2025-04-19T20:33:02",
"S1 Pri In [C]": 32.0,
"S2 Warm Out [C]": 29.6,
"S3 Cold In [C]": 32.1,
"S4 Buffer [C]": 29.7,
"S5 Circ Return [C]": 24.5,
"Flow US [l/h]": 0.0,
"Flow Impulse [l/h]": 0.0,
"Pri Pump PWM [%]": 0.0,
"Pri Pump Optime [s]": 154661.0,
"Circ Pump PWM [%]": 0.0,
"Circ Pump Optime [s]": 44524.0,
"Relay 157": 0.0,
"Relay 28": 0.0,
"Relay 2": 3.0,
"Energy Day [Wh]": 3091.0,
"Energy Total [Wh]": 564306.0,
"Volume Total [l]": 13698.0,
"Optime Total [s]": 154296.0,
"Faults": "0",
"Version": 2.0,
"Variant": 0.0
}
