Visualisierung des Kältekreislaufs der Viessmann Wärmepumpe VitoCal 250 in ioBroker vis
Ich habe den Diagnosebildschirm der Wärempumpe von der VitoCal abfotografiert, für ioBroker aufbereitet und erweitert. Zusätzlich werden der Betrieb des Heizstabs und die elektrischen und thermischen Leistungen angezeigt, sowie die Temperaturen der Pufferspeicher für Heizkreis 1 und Warmwasser. Vielen Dank an Fa. Viessmann für die gelungene Darstellung des Kältekreislaufs!
Nach erfolgreicher Installation kann man die Arbeit der Wärmepumpe als ioBroker-Visualisierung live beobachten.
Um die benötigten Daten aus der VitoCal auszulesen, ist mir nur ein Weg bekannt: USB2CAN-Adapter an den externen CAN-Bus der VitoCal anschließen und mit dem Adapter e3oncan oder per Python-Skript die benötigten Daten abfragen. Über das API-Interface von Viessmann kommt man nicht an (alle) diese Daten ran.
Foglendes wird benötigt:
- Linux-System mit ioBroker, z.B. auf einem Rapsberry Pi.
- Bei Verwendung von open3e zusätzlich: Python 3 und MQTT-CLient
- Installation des Adapters e3oncan (Version 0.9.5 oder neuer) oder von open3e
- USB2CAN-Adapter
Hinweis: Sollte die Visualisierung nach einem Update auf e3oncan V0.9.5 bzw. auf open3e V0.2.1 oder neuer nicht mehr funktionieren, bitte in der View 2351_HeatPumpCompressor
ersetzen durch 2351_HeatPumpCompressor.PowerState
.
- Adapter e3oncan in ioBroker installieren. Der Adapter benötige keine Installation von open3e.
- Um die benötigten Daten regelmäßig abzufragen, richtet man in der Adapterkonfiguration bei "Zuweisungen zum externen CAN-Adapter" eine Abfrage für das Gerät "HPMUMASTER" für folgende Datenpunkte ein:
268,269,271,274,284,318,320,321,322,324,325,355,381,389,391,396,1043,1769,1771,1772,1775,1776,2333,2334,2346,2351,2487,2488,2496,2735,3016
. Die Wiederholungszeit kann z.B. auf 30 Sekunden festgelegt werden. - Für die Visualisierung in vis müssen die Dateien aus diesem Repository unter
img/
nach/vis.0/main/img/
hochgeladen werden, dazu verwendet man am besten den Dateimanager im Vis Editor. - Nun erzeugt man eine View und importiert den Inhalt von
view/Kaeltekreis_e3oncan.json
per "copy & paste". - Ggf. die json-Struktur aus
view/Kaeltekreis_e3oncan.json
vor dem Importieren editieren (Suchen/Ersetzen), falls eine andere vis-Instanz verwendet wird.
- Zunächst muss dafür gesorgt werden, dass die benötigten Daten regelmäßig per MQTT versendet werden. Das erledigt open3e mit folgendem Aufruf:
python3 Open3Eclient.py -c can0 -dev vcal -m localhost:1883:open3e/vitocal -mfstr {didNumber:04d}_{didName} -t 30 -r 268,269,271,274,284,318,320,321,322,324,325,355,381,389,391,396,1043,1769,1771,1772,1775,1776,2333,2334,2346,2351,2487,2488,2496,2735,3016
- Damit werden die Daten alle 30 Sekunden per MQTT an den lokalen Broker gesendet. Z.B. die Temperatur am Eingang des Kompressors wird dann mit folgender Message vesendet:
open3e/vitocal/0321_CompressorInletTemperatureSensor
- Für die Visualisierung in vis müssen die Dateien aus diesem Repository unter
img/
nach/vis.0/main/img/
hochgeladen werden, dazu verwendet man am besten den Dateimanager im Vis Editor. - Nun erzeugt man eine View und importiert den Inhalt von
view/Kaeltekreis.json
per "copy & paste". - Ggf. die json-Struktur aus
view/Kaeltekreis.json
vor dem Importieren editieren (Suchen/Ersetzen), falls ein anderer MQTT-Broker alsmqtt-client.0
oder eine andere vis-Instanz verwendet wird. - Abhängig von der verwendeten Version von open3e muss noch eine Änderung an den Objekt-Eigenschaften von "2351_HeatPumpCompressor" vorgenommen werden: Format -> Number, Step -> 1. Siehe Issue#1.
- Ab Version 0.2.1 von open3e hat der Datenpunkt 2351 die Bezeichnung "2351_HeatPumpCompressor.PowerState".
Die Darstellung passt sich an, abhängig davon, ob der Kompressor in Betrieb ist oder nicht. Auch die Betriebsart (Heizen oder Warmwasserbereitung) ist direkt erkennbar.
Um auch das Heizstab-Symbol bei aktivem Betrieb optisch hervorzuheben, ist ein wenig Zuatzaufwand nötig.
Für die Unterscheidung Heizstab aktiv / nicht aktiv wird ein Alias-Objekt angelegt. Es kann z.B. mit dem Namen alias.0.open3e.vitocal.2487_CurrentElectricalPowerConsumptionElectricHeater_Active
erzeugt werden. Nun wird das Objekt mit dem Bleistiftsymbol editiert und eine Verknüpfung mit dem Datenpunkt 2487 angelegt. Die Funktion (val == 0 ? 0:1)
wird verwendet, um die elektrische Leistung auf die Zustände 0 und 1 abzubilden. Bei Verwendung des ioBroker-Adapters sollte das so aussehen:
Im vis-Editor wird das vorhandene Widget Image
für den Heizstab durch ein Widget Image 8
ersetzt und die Einstellungen angepasst, so dass die Object ID
auf das eben angelegte Alias-Objekt zeigt:
Nun sollte das Heizstab-Symbol in rot dargestellt werden, wenn die elektrische Leistung des Heizstabs größer als 0 ist.