Viessmann API und Node Red – Teil 9 – Steuern der Warmwasser Zirkulationspumpe über die API

Die leidige Zirkulation

Vergeudete Energie

Eigenheimbesitzer kennen das Problem: will man in einer entlegeneren Ecke des Hauses oder der Wohnung Warmwasser zapfen, dauert es eine Weile, bis es warm wird. Abhilfe schafft die Warmwasserzirkulation, die das warme Wasser ständig im Kreis durchs ganze Haus schickt.

Das spart zwar Wasser, verschwendet aber Energie, weil Wärme über die Leitung verloren geht. Das läppert sich: Unter Umständen gehen so pro Jahr 1 MWh und mehr verloren, was je nach Energiekosten 500€ und mehr pro Jahr ausmachen kann. Um so mehr bei längerer Abwesenheit oder schlecht isolierten Zirkulationsleitungen.

Expertenmeinung

Hierzu gibt es auch einen interessanten Artikel, den ich im Netz gefunden habe: https://www.ikz.de/uploads/media/Brauchwasser.pdf

Was tun?

  • Zirkulation abschalten oder gar nicht erst einbauen lassen.
    Je nach Wasserpreis die wahrscheinlich günstigste Lösung – außer man lebt in Spanien oder anderen Gegenden, in denen Wasser sehr kostbar ist. Natürlich entsteht ein Komfortverlust, den eventuell nicht alle Familienmitglieder mittragen wollen.
    Ggf. droht die  Verkeimung des Brauchwassers durch Stagnation in den Rohren.
  • Festes Zeitprogramm
    Zum Beispiel von 6:00 Uhr bis 21:00 Uhr gibt's sofort warmes Wasser, sonst dauert es ein bisschen.
    Bei längerer Abwesenheit könnte man die Pumpe manuell ausschalten – wenn Viessmann diese Funktion hätte – hamse abba nich!
    Umprogrammieren ist umständlich – macht kaum einer.
  • Bedarfsweises Einschalten der Zirkulation
    Hier gibt es sehr interessante, fast schon KI getriebene Lösungen, die auch in dem oben verlinkten Artikel beschrieben sind.
    Oder alternativ über einen externen Schalter (Shelly o.ä.).
  • Oder durch kurzfristiges Umstellen des Zirkulationsplans in ViCare mittels der hier beschriebene Lösung – kostet erstmal nichts, kann beliebig mit weiteren Features ergänzt werden.

Kurzzeitige Planänderung

Das API Feature heißt heating.dhw.pumps.circulation.schedule

Viessmann bietet keine direkte Schaltmöglichkeit für die Z-Pumpe an! Man muss also hilfsweise den gesamten Plan (die Schedule) umstellen (Stand März 2024).

Aktuellen Plan wegsichern

Hat man sich einen komplexen Z-Plan überlegt und mühevoll mit der App aktiviert, will man diesen natürlich nicht verlieren, wenn eine temporäre Planänderung eingestellt werden soll. Das Sichern geschieht wie folgt:Den Universal Header Function Node kennt ihr schon. Anschließend wird nur die Schedule und nicht das gesamte Featureset geholt, aus dem JSON ausgelesen und in einer Textdatei gespeichert.

Wenn ihr an der in den vorherigen Kapiteln beschriebenen Benennung der Kontextvariablen (flow.xxx) nichts geändert habt, braucht ihr an dem Flow nichts weiter ändern. Der letzte Schritt ist noch, das Unterverzeichnis für die Datei zu definieren: Im Debian Terminal des Raspberry Pi gebt ihr ein mkdir /home/pi/.node-red/data
Vorausgesetzt euer NR User heißt "pi".  Das war's auch schon. Bei anderen Setups müsst ihr selber herausfinden, wo das NR Verzeichnis liegt.

Nachfolgend noch der NR Flow:

 

Gespeicherten Plan wieder herstellen

Aus Effizienzgründen nutzen alle "Plan ändern" Funktionen dieselben beiden Nodes auf der rechten Seite.

Der Plan wird aus der Datei gelesen. Allerdings liegt dieser im Textformat vor und muss noch etwas erweitert und in JSON konvertiert werden. Das geschieht im schedule JSON Funktionsnode:

Pumpe komplett ausschalten

Diese Funktion ist u.a. sinnvoll als standardmäßige Einstellung der Zirkulation. Das  Einschalten erfolgt dann – ggf. für nur wenige Minuten – über einen manuellen Befehl oder eine andere Logik. Siehe Kapitel "Intelligenz" weiter unten.

Der set schedule "0" Node sieht wie folgt aus:

Hier wird für jeden Wochentag ein leeres Objekt übergeben.

Auch hier macht es Sinn, diese Funktion einige Minuten nach dem Einschalten der Pumpe auszuführen; das Wasser in der Leitung ist warm, die Pumpe wird nicht mehr benötigt.

Pumpe zu bestimmten Zeiten einschalten

Mit den Einschaltzeiten kann man beliebig spielen. Es können auch mehrere Zeiten pro Tag definiert werden. In diesem Beispiel wird die Pumpe tagsüber eingeschaltet: Darauf achten, dass die Minuten immer durch 10 teilbar sind, also 10, 20, 30, etc.

Und hier die drei "Plan ändern" Funktionen in einem JSON Flow:

"Intelligenz"

Wir haben jetzt unser Rüstzeug beisammen, um fast beliebige Szenarien zu realisieren.

  • Manuelles Aus-/Einschalten
    Triviallösung über einen Button in NR oder über eine an NR angeschlossene Fernbedienung (z.B. Shellybutton) oder Alexa. Sinnvoll ist es bei jedem Szenario, die Pumpe nach eine gewissen Laufzeit auch wieder automatisch auszuschalten.
  • Automatisches Einschalten bei Bedarf
    z.B. über einen Anlegefühler an der WW Vorlaufleitung. Wird dort ein Temperaturanstieg bemerkt – jemand zapft Warmwasser – wird die Pumpe eingeschaltet, um die Wartezeit zu verkürzen.
    Oder über einen PIR Annäherungsschalter im Badezimmer oder der Toilette.
    Oder, oder, oder
  • Automatisches "Entkeimen" der Leitung wenn der WW Speicher gerade auf 60°C oder mehr aufgeheizt ist. Das Thema Legionellen ist nicht zu unterschätzen.

Ein Gedanke zu „Viessmann API und Node Red – Teil 9 – Steuern der Warmwasser Zirkulationspumpe über die API

  1. Hallo Chris,
    danke für die tolle Lösung.
    Das wird meine Energiekosten für die Warmwasseraufbereitung senken.
    Mein Haus ist über 30 Jahre alt, und über die Zirkulation geht jede Menge Energie verloren, da damals die Leitungen nur sehr stiefmütterlich isoliert wurden.
    Ich koppele jetzt deine Lösung mit unserer Alarmanlage; wenn an, dann außer Haus, dann keine Zirkulation.
    Ich denke mal, dass ich die Pumpe nicht komplett ausschalten werde, sondern im Urlaubsfall für 10 / 20 Minuten laufen lasse, da mir das Thema "Legionellen" doch ein wenig zu heikel ist.
    Nochmals Danke!

    Viele Grüße Jürgen

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert