Wiki: Avarma 290 Wärmepumpe Monoblock
In diesem Wiki werden alle Details zur Avarma 290 Wärmepumpe gesammelt. Jeder kann daran mitarbeiten.
In diesem Wiki werden alle Details zur Avarma 290 Wärmepumpe gesammelt. Jeder kann daran mitarbeiten.
Hallo zusammen,
ich möchte hier zusammentragen, was ich in den letzten Monaten mit meiner Avarma gebaut habe: eine eigene Regelung, die die Anlage über Modbus steuert, aus Messdaten lernt und dadurch mit der Zeit immer besser zu meinem Haus passt. Es ist lang geworden – ich hoffe, für den einen oder anderen ist etwas dabei. Der komplette Code liegt in einem öffentlichen Repo (Link unten), Fragen gerne hier im Thread.
Vorweg, damit das klar ist: Ich bin kein Programmierer. Das Ganze ist zusammen mit Claude entstanden, einer KI von Anthropic. Ohne diese Zusammenarbeit hätte ich maximal an der Oberfläche des Machbaren gekratzt. Mehr dazu weiter unten.
Kurz gesagt: Die eingebaute Heizkurve der Avarma kommt mit meinem Haus nicht gut klar.
Die Ausgangslage:
Das eigentliche Problem: Eine statische Heizkurve reagiert nur auf die aktuelle Außentemperatur. Mit dem trägen Estrich ist das bei einer Frostnacht Stunden zu spät. Früher habe ich morgens von Hand hochgedreht, wenn abends Frost angesagt war. Das sollte die Regelung selbst können.
Das Ziel: Eine Steuerung, die
Ehrlicher Zwischenstand: Punkt 3 bis 5 laufen. Beim Lernen ist ein Teil umgesetzt (Heizkurve passt sich an, Gebäude-Zeitkonstante wird geschätzt), die vollständig vorausschauende Regelung ist das Ziel für den kommenden Winter. Details in Abschnitt 5.
Außenfühler (extern) ─┐
Wetterprognose ───────┤
9 Raumthermostate ────┼──► Home Assistant ──► AppDaemon (Python)
12 Ventilstellungen ──┤ ▲ │
│ │ │ Sollwerte
Avarma ◄── RS485/Modbus ──► ESP32-S3 (ESPHome) ◄────┘
│ (Heartbeat-Watchdog, harte Grenzen)
▼
Estrich-FBH, 12 Kreise ──► Rücklauf schließt den Regelkreis
Hardware:
Wer neu anfängt: nicht mehr auf das InfluxDB-Add-on setzen. Das bisherige Community-Add-on basiert auf InfluxDB 1.x. InfluxData pflegt 1.x nicht mehr, das Add-on wurde im August 2026 archiviert und aus dem Store genommen – wer es hat, sieht einen Repair-Hinweis. Es läuft zwar weiter, bekommt aber keine Updates mehr. Den angebotenen „Reparieren“-Knopf nicht drücken – er deinstalliert das Add-on samt der gesamten gesammelten Historie. Gepflegte Alternativen für HAOS sind z. B. InfluxDB 2 (als Community-App) oder VictoriaMetrics (Community-App, versteht das InfluxDB-Schreibprotokoll, Grafana bleibt nutzbar). Ich stelle selbst noch um und berichte dann hier.
Was die Regelung an der Avarma verstellt – mehr nicht:
| Register | Parameter | Wozu |
|---|---|---|
| 4096 | Ein/Aus | Start, Heizgrenze, Schutzabschaltungen |
| 4098 | P2 Vorlauf-Soll | Stellgröße für die Leistung |
| 8235 | P45 Kompressor-Maximalfrequenz | Deckel nach Außentemperatur |
| 8261 / 8262 | P71 / P72 Lüfter manuell + Solldrehzahl | Verdampfer/Lärm |
| 4103 | Abtauung erzwingen | Not-Abtauung |
Dazu die Solltemperaturen einzelner Raumthermostate (Lastverteilung). Alles andere macht der eingebaute Regler der Avarma weiterhin selbst – das ist Absicht.
Sicherheitsnetz im ESP: Kommt 30 Minuten lang kein Befehl aus Home Assistant (Heartbeat), setzt der ESP Vorlauf-Soll auf 32 °C und Kompressor-Maximum auf 90 Hz zurück. Grenzwerte stehen hart an den Entities (Vorlauf-Soll max. 45 °C, Kompressor 50–120 Hz). Den Werksreset P87 habe ich bewusst nicht als Entity angelegt – ein Fehlklick hätte die ganze Parametrierung verworfen.
Geänderte Parameter – und warum (Werte am 15.09. an der Anlage ausgelesen):
| Parameter | Werk | Bei mir | Warum |
|---|---|---|---|
| P114 Frequenzreduktion bei erreichtem VL-Soll | 2 % | 3 % | Mit der Werkseinstellung reagiert die Anlage zu träge und taktet. Mehr Spielraum zum Herunterregeln lässt sie durchlaufen, statt abzuschalten. |
| P46 Kompressor-Mindestfrequenz | 35 Hz | 25 Hz | Mehr Modulationsbereich nach unten. In der Übergangszeit ist der Wärmebedarf oft kleiner als die Mindestleistung – je tiefer sie liegt, desto seltener taktet die Anlage. |
| P86 Abtau-Differenz ΔT1 (Außen ≥ −7 °C) | 8,0 K | 5,0 K | Abtauung früher zulassen. Hintergrund war eine Vereisung, bei der die Anlage viel zu spät abgetaut hat (siehe 3.5). P91 (dieselbe Differenz unter −7 °C) steht bewusst weiter auf 8,0 K. |
| P63 Warmwasserfunktion | 1 | 0 | Die Anlage heizt nur, es gibt keinen Speicher. |
| P68 Durchflussfühler-Typ | 1 (Durchflussmesser) | 0 (Strömungsschalter) | Vorübergehend: Der Durchflussmesser ist defekt, die Umstellung hat der Hersteller freigegeben (siehe 4.). |
| P71 / P72 Lüftersteuerung / Solldrehzahl | Automatik | Manuell, 400–900 U/min | Lärm. Die Regelung führt die Drehzahl nach der Verdampfertemperatur nach (siehe 3.4). |
Unverändert (Werkseinstellung) und für die Regelung wichtig: P41 Ölrückführungsfrequenz 50 Hz (Untergrenze des Kompressor-Deckels), P58 Regel-Temperaturdifferenz der Pumpe 5 K (auf diese Spreizung regelt die Umwälzpumpe, die Vorsteuerung in 3.2 rechnet damit) und P59 Pumpen-Mindestdrehzahl 80 %. Wichtig: Nach einem Werksreset stehen P46, P63, P72, P86 und P114 wieder auf Werkseinstellung (siehe 7.).
Die Regelung arbeitet im 5-Minuten-Takt. Die wichtigsten Bausteine:
Der Rücklauf zeigt, was das Haus tatsächlich an Wärme abnimmt. Die Avarma hat aber kein Rücklauf-Soll-Register – also ist der Rücklauf die Führungsgröße und der Vorlauf-Sollwert das „Stellrad“.
Heizkurve (Rücklauf-Ziel über Außentemperatur), stückweise linear:
| Außentemperatur | Rücklauf-Ziel |
|---|---|
| −5 °C | 38,5 °C |
| 0 °C | 35,0 °C |
| +15 °C und wärmer | 28,0 °C |
Unter −5 °C wird weiter extrapoliert, gedeckelt bei 40 °C. Die Stützpunkte stammen aus meinen Vorlauf-Erfahrungswerten aus zwei Wintern (−5 °C → 45 °C VL, 0 °C → 39,5 °C, +8 °C → 35 °C), umgerechnet über die gemessene Spreizung. Eine einzelne Gerade hat den kalten Rand um 1–2 K unterschätzt – genau die Lücke, die ich früher von Hand ausgeglichen habe.
Auf die Kurve kommen:
(8 − Prognose) × 0,4 K, maximal +4 K. Bei −5 °C angesagt also +4 K schon am Tag davor.VL-Soll = Rücklauf-Ziel + Spreizung + Korrektur, begrenzt auf 30–45 °C.
Warum so und nicht einfach „VL-Soll hoch/runter in Schritten“? Das hatte ich vorher – und es ging schief (siehe 6., 12.09.). Solange der Sollwert über dem tatsächlichen Vorlauf „parkt“, bremst er gar nichts. Die Avarma fährt dann bis zum Kompressor-Deckel, und das Absenken in 1-K-Schritten brauchte zwei Stunden, bis es überhaupt wirkte. Mit der Vorsteuerung liegt der Sollwert immer knapp beim Vorlauf, und die Avarma moduliert selbst – das kann ihr eingebauter Regler nämlich gut.
Die Maximalfrequenz P45 folgt einer Kennlinie im 5-Hz-Raster:
| Außentemperatur | Deckel |
|---|---|
| −5 °C und kälter | 90 Hz |
| +5 °C | 65 Hz |
| +15 °C und wärmer | 50 Hz |
Warum deckeln? Gemessen an meiner Anlage (August, stabile Phasen – noch wenige Punkte, Trend aber eindeutig):
| Frequenz | 30–39 Hz | 40–49 Hz | 50–59 Hz | 60–69 Hz | 80–90 Hz |
|---|---|---|---|---|---|
| COP | 6,3 | 5,8 | 5,2 | 4,8 | 4,2 |
Teillast ist rund 50 % effizienter – und deutlich leiser.
Der Lüfter läuft im manuellen Modus (P71) mit eigener Solldrehzahl (P72), 400–900 U/min.
Bei mir hat der Avarma-Regler einmal 38 Minuten zu spät abgetaut, obwohl alle Startbedingungen erfüllt waren – die Lamelle sackte von −3,5 auf −13 °C. Die Ursache ist bis heute ungeklärt. Seitdem taut die Regelung im Zweifel selbst ab (Register 4103), aber nur wenn alle vier Bedingungen erfüllt sind: Verdampfer unter −3 °C und Differenz Außenluft–Verdampfer über 7 K, das seit 20 min, Lüfter bereits auf Volllast, letzte Abtauung mindestens 60 min her.
Einschalten, wenn beides zutrifft:
Heizgrenze (ganzjährig): Aus, wenn das 3-h-Mittel der Außentemperatur ≥ 18,5 °C ist, keine kalte Nacht angesagt ist und sie mindestens 2 h läuft. Die 2 K zwischen Ein (16,5, Momentanwert) und Aus (18,5, Mittel) verhindern das Takten um die Schwelle.
Übergangszeit (September–November, März–Mai) – zusätzlich:
| Regel | Auslöser | Danach |
|---|---|---|
| Raum warm genug | EG-Mittel ≥ 21 °C, 30 min am Stück (nicht bei Frostprognose) | Neustart bei EG ≤ 20 °C |
| Anlage taktet | 2 Kompressorstarts in 45 min (Abtauungen zählen nicht) | 3 h Sperre |
| Nachtsperre 22–10 Uhr | kein Start; eine laufende Anlage schaltet ab, sobald EG ≥ 20,5 °C | Ausnahme: Frostprognose ≤ 2 °C oder EG ≤ 19 °C |
In der Übergangszeit liefert selbst die Mindestfrequenz (25 Hz) mehr, als das Haus abnimmt – dann taktet jede Wärmepumpe. Lieber ein paar Stunden aus und den Estrich puffern lassen als alle 15 Minuten neu starten.
Wenn der Kompressor am Deckel hängt, reicht die Wärme nicht für alle Kreise. Dann werden Spender-Räume gedrosselt, damit mehr zu den Prioritäts-Räumen fließt:
Der Durchflussmesser meiner Anlage (Register 4368) hat seit der Inbetriebnahme keine brauchbaren Werte geliefert: entweder 0 oder 119–149 L/min, nie etwas Plausibles. Nachgemessen waren es rund 23 L/min bei 100 % Pumpenleistung.
Deshalb rechne ich den Durchfluss aus der Pumpenleistung:
Durchfluss [L/min] = Pumpenleistung [%] × 0,22
Daraus die thermische Leistung: Durchfluss × Spreizung × 0,0698 = kW (4,186 kJ/kg·K ÷ 60). Das ist kein Messwert, sondern das, was die Pumpe fördern soll. Für COP-Auswertung und Plausibilitätsprüfung reicht das gut – und ich bleibe auch nach dem Fühlertausch dabei, weil die vom Fühler ausgegebene Literleistung selbst dann nicht genau zu den nachgemessenen Werten passt.
Ende August kam dann E15 (Wasserdurchfluss) – reproduzierbar kurz nach jedem Kompressorstart. Nach einer ausführlichen Messreihe (Rohdaten im 10-s-Raster, alle Softwareursachen ausgeschlossen) war klar: der Durchflussmesser ist defekt, die Hydraulik in Ordnung. Der Hersteller hat das anerkannt, das Ersatzteil kommt auf Kulanz, und bis dahin hat er die Umstellung auf P68 = 0 (Strömungsschalter) freigegeben. Weil damit die Mindestdurchfluss-Prüfung gegen P61 entfällt, läuft in Home Assistant der Interim-Schutz aus 3.8.
Meine wichtigsten Lehren:
force_new_range hilft).skip_updates). Direkt nach dem Schreiben zeigt der Lesewert noch den alten Stand – kein Fehler.number ist multiply invertiert gegenüber sensor-Filtern: Anzeigewert = Rohwert ÷ multiply. Für Rohwert 40 = 400 U/min braucht es also multiply: 0.1. Für ein Register mit Faktor 0,1 °C braucht es multiply: 10.set_state lässt Attribute mit 0, False oder None weg. Werte, die legitim 0 werden können, als String setzen.run_every mit sofortigem Start feuert nicht zuverlässig – Start in die Zukunft legen.Weil ich danach sicher gefragt werde: Die Aufteilung war ziemlich klar.
Ich kenne das Haus, die Anlage und meine Erfahrungswerte aus zwei Wintern. Ich habe entschieden, was Priorität hat (Komfort vor Sparen), welche Räume wichtig sind, was die Anlage darf – und ich habe am Panel, an der Platine und mit dem Hersteller gearbeitet.
Claude hat Messdaten aus InfluxDB ausgewertet, die Hofman-Modbus-Tabelle und die Handbücher Register für Register gelesen, Varianten durchgerechnet, den gesamten Code geschrieben und vor jedem Einspielen offline getestet – und mir immer wieder erklärt, warum etwas so ist. Viele der Fallstricke oben hat die KI in den Daten gefunden, bevor sie Schaden anrichten konnten. Fehler gab es trotzdem, auf beiden Seiten – die stehen in Abschnitt 6.
Repo: GitHub - holle74/avarma-eigenbau-regelung: Selbstlernende Heizungssteuerung · GitHub
Enthalten: ESPHome-Konfiguration, die vier AppDaemon-Apps, die zwei Automationen und eine Liste aller benötigten Helfer. Private Angaben sind entfernt, Entity-IDs müsst ihr an eure Installation anpassen.
Auf eigene Gefahr. Die Regelung schreibt Register der Wärmepumpe. Jede Anlage und jeder Firmwarestand kann abweichen. Bitte erst nur lesen, jeden Wert am Panel gegenprüfen und schreibende Entities einzeln freischalten. Garantiefragen klärt jeder selbst.
Wenn jemand eine Avarma mit ähnlichem Aufbau hat: Mich interessieren besonders eure Registerwerte (P41, P46, P58, P59, P114, P86), Erfahrungen mit dem Abtauverhalten bei Frost und ob bei euch der Durchflussmesser plausible Werte liefert.
Viele Grüße
Info zum Verständnis des Wiki hier im Forum: Ihr könnt gemeinsam oben den allerersten Beitrag editieren und so ein allgemeingültiges Dokument erstellen, wo alle wichtigen Details in konzentrierter Forum zusammengestellt sind. Also ähnlich, wie in der Wikipedia.
Im besten Fall wächst so ein Artikel, in dem jeder der mag, Informationen in den ersten Beitrag einpflegt oder auch Infos korrigiert, die nicht stimmig sind. Oder Infos erweitert/verbessert, so dass alles stimmiger wird.