Eigene Steuerung für die Avarma R290 per Modbus – ESP32-S3 / Arduino GIGA mit Web-Oberfläche

Hallo zusammen,

kurz zu mir: Ich bin neu hier im Forum. Bei mir heizt eine Avarma R290, dazu läuft eine Victron-PV-Anlage mit Batteriespeicher, und ich bastle gern mit Mikrocontrollern und Node-RED.

Ich möchte euch ein Projekt vorstellen, an dem ich seit einiger Zeit baue: eine eigene Steuerung für die Avarma R290 Monoblock, die über die RS485/Modbus-Schnittstelle mit der WP spricht. Sie zeigt alles an, was die WP hergibt, regelt Vorlauf, Verdichterfrequenz und Warmwasser selbst und hat eine Web-Oberfläche, die im Browser und auf dem Handy läuft.

Warum das Ganze? Die Avarma ist ab Werk leider sehr spartanisch, was die Steuerung angeht: Es gibt kein Webinterface, man sieht kaum, was die WP gerade macht, und besonders intelligent regelt sie auch nicht. Das hat mich gestört – deshalb habe ich angefangen, die Steuerung selbst zu bauen.

Bevor ich den Code veröffentliche, möchte ich erst mal hören, ob Interesse besteht. Kurz vorweg: Ich habe das Projekt mit Hilfe einer KI (Claude) entwickelt – die Ideen, das Testen an der echten Anlage und die vielen Runden „das passt so noch nicht“ kamen von mir.


Hardware

  • ESP32-S3 mit 2,8"-Touch-Display (Hosyond / LCDWIKI ES3C28P, 16 MB Flash, 8 MB PSRAM) und microSD-Karte
  • alternativ Arduino GIGA R1 WiFi mit GIGA Display Shield (800 × 480 Touch, Daten im internen Speicher) – gleiche Funktionen, gleiche Versionsnummer, Einstellungen zwischen beiden austauschbar
  • MAX485-Modul an der Modbus-Schnittstelle der WP
  • optional: Raumfühler DHT22, Shelly (Pro) 3EM für den echten Stromverbrauch, ESBE-Umschaltventil (per Relais oder eigenem Ventilmodul am Modbus), Shelly für einen Heizstab

Im Kältekreis wird nichts verändert. Die Steuerung liest die Werte der WP und schreibt nur Parameter, die man auch am Display der WP einstellen kann (Vorlauf-Soll, max. Verdichterfrequenz, max. Lüfter, Betriebsart, Ein/Aus).


Was sie kann

Übersicht – alle Werte auf einen Blick: Wasserkreis, Kältekreis (Hoch-/Niederdruck, Heißgas, Sauggas, Verdampfer, Coil …), Elektrik, Leistung, COP und Zähler. Die wichtigsten Automatiken lassen sich mit einem Klick schalten.

Verlauf – Vorlauf, Rücklauf, Warmwasser, Soll, Außen, Verdampfer, Verdichter-Hz, Lüfter-rpm, Leistung und COP; Abtauvorgänge sind hinterlegt. 14 Tage in voller Auflösung (30 s), ältere Zeiträume als Stundenmittel von der SD-Karte.

Statistik – Tageswerte für Wärme und Strom (Heizen und Warmwasser getrennt), Arbeitszahl, Kosten, Laufzeit, Starts, Abtauungen, PV-Anteil; dazu Heizwärme über Außentemperatur. Alles auch als CSV für Excel.

Heizung

  • eigene Heizkurve (7 Punkte); die Steuerung schreibt den VL-Soll selbst an die WP, aber nur bei echter Abweichung und mit Mindestabstand, damit der Speicher der WP geschont wird
  • Raumeinfluss über den Raumfühler (P- und I-Anteil)
  • Nachtabsenkung, am Wochenende mit eigenen Zeiten
  • WP automatisch ein und aus nach Außen- und/oder Raumtemperatur, mit Mindestlaufzeit und Mindestpause gegen Takten
  • Kamin-Modus
  • Sperrzeiten mit zwei Zeiträumen pro Tag, z. B. für Zeiten mit teurem Strom, optional mit „trotzdem heizen, wenn es zu kalt ist“

Warmwasser & Ventil

  • Speicherladung nach Wochenplan über das Umschaltventil (Heizung / Puffer / WW)
  • WW-Ladung wird vorgezogen, wenn der Verdichter sonst kurz vorher abschalten würde – das spart Starts
  • nach der Ladung direkt weiterheizen, ohne dass der Verdichter dazwischen ausgeht
  • Puffer-Automatik: Der Speicher wird erst dann als Puffer mitgenutzt, wenn das Warmwasser auf Heiz-VL-Niveau abgekühlt ist

Verdichter

  • Frequenz-Automatik: max. Verdichterfrequenz abhängig von der Außentemperatur, getrennt für Heizen und WW, nachts optional leiser
  • „sanft ausschalten“ (vor dem AUS erst die Frequenz senken)
  • schneller abtauen (Frequenz während des Abtauens anheben)
  • Frost-Bremse (neu, noch in der Erprobung): Im Vereisungsbereich wird die Frequenz gesenkt, wenn der Verdampfer zu kalt wird oder schnell abfällt
  • Abtau-Auswertung: Jede Abtauung wird mit Außentemperatur, Hz, Verdampfer, Coil und Laufzeit seit der letzten Abtauung protokolliert

PV & Smart Grid

  • PV-Überschuss → Warmwasser höher laden, SG-Ready (Sperre / Normal / PV / PV max) per MQTT, optional Heizstab per Shelly
  • VL-Sollwert per MQTT, z. B. für eine externe Raumregelung

System

  • Stromverbrauch wahlweise geschätzt aus Verdichterstrom × Spannung oder gemessen mit einem Shelly (Pro) 3EM per MQTT (inkl. Pumpe, Lüfter, Elektronik)
  • Archiv auf dem NAS (FTP, z. B. Synology): Tagesdateien in Monatsordnern, Stundenwerte, Statistik; nach einem Kartentausch holt sich die Steuerung die Daten wieder vom NAS
  • Einstellungen sichern als Datei oder automatisch aufs NAS – zwischen ESP32 und GIGA austauschbar
  • Konsole, Rohwerte der WP, Firmware-Update per Browser (ESP)

Weitere Bilder (Heizung, Abtau/Frost-Bremse, PV & Smart Grid, System) hänge ich in einer Antwort an – als neues Mitglied darf ich nur 5 Bilder pro Beitrag einfügen.


Victron – kann, muss aber nicht

Bei mir läuft zu Hause eine Victron-PV-Anlage (Cerbo/Venus OS). Über Node-RED schickt der Cerbo PV-Leistung, Batterie-SoC, Netzbezug und Hausverbrauch per MQTT an die Steuerung, und SG-Ready kommt aus einem Node-RED-Flow. Die WP erscheint außerdem über den Shelly als eigener Verbraucher („Wärmepumpe“) in VRM.

Für den Kern braucht man das aber nicht: Heizkurve, Raumeinfluss, Frequenz-Automatik, Warmwasser/Ventil, Takt-Optimierung, Sperrzeiten, Verlauf, Statistik und NAS-Archiv laufen komplett ohne Victron. Die PV-Funktionen erwarten nur ein paar MQTT-Werte und lassen sich deshalb auch aus Home Assistant, ioBroker oder einem anderen Node-RED füttern.


Stand und Hinweise

  • läuft bei mir im Alltag an meiner Avarma R290 (die Bilder sind vom laufenden System)
  • Benutzung auf eigenes Risiko: Die Steuerung schreibt Parameter in die WP. Wie sich das auf Garantie und Gewährleistung auswirkt, muss jeder selbst klären. Schreibvorgänge werden gezählt und bewusst sparsam gehalten.
  • Wärmemenge und COP werden aus Durchfluss und Spreizung berechnet – das ist kein geeichter Wärmemengenzähler

Frage an euch

  • Besteht Interesse? Dann würde ich den Quellcode (ohne meine Zugangsdaten) auf GitHub stellen, mit Anleitung zur Verkabelung und Einrichtung.
  • Hat jemand eine andere Avarma-Größe oder eine baugleiche WP und würde mittesten?
  • Mich interessieren besonders eure Erfahrungen mit dem Abtauverhalten bei +2…+8 °C – genau daran arbeite ich gerade (Frost-Bremse, Lüfter-Grenze).

Viele Grüße

2 „Gefällt mir“