Contents

Altherma 4 auslesen und steuern

Die Altherma 4 ist eine relativ neue Wärmepumpe. Bei meiner Einrichtung im ~Juni 2025 war vielerorts noch das Gerücht zu finden, dass diese sich nur über den Smart Home Hub auslesen ließe.

Tatsächlich lässt sich die Altherma 4 auch wunderbar via Modbus auslesen und steuern. Hier werden verschiedene Möglichkeiten des Zugriffs vorgestellt inklusive etwaiger Vor- und Nachteile.

Cloud API

Über das verbaute Gateway kommuniziert die Altherma 4 direkt mit der Onecta Cloud. Die Onecta Cloud API bietet auch die Möglichkeit, Werte auszulesen - bspw. aktuelle SetPointTemperature oder Verbrauchsdaten. Allerdings fehlen Informationen wie Durchflussmenge oder erzeugte thermische Energie, die interessant wären, um bspw. den COP des Systems zu berechnen.

Eine Anfrage dazu habe ich bei Daikin letztes Jahr bereits gestellt - leider ohne Antwort.

Serielle Schnittstelle

Serielle Schnittstelle auf der Altherma 4

Die Altherma4 hat auch eine serielle Schnittstelle, die sich auslesen lässt. Das Projekt ESPAltherma zeigt, dass es mit einem ESP relativ einfach ist, an die benötigten Informationen zu bekommen. Bei meinen Tests fehlten zwar einige Daten (so dass ich Vorlauf und Rücklauf doch separat messen musste) - das kann aber auch gut mit meiner (damals noch) veralteten Firmware zusammenhängen.

Während die Schnittstelle gut funktioniert und es auch Freude bereitet, so ein kleines Projekt umzusetzen, fand ich die Vorstellung, bei zukünftigen Inspektionen immer erklären zu müssen, warum ich mit einer “Bastellösung” am Mainboard der Wärmepumpe hänge, nicht wirklich prickelnd.

Modbus

Das Innengerät der Altherma 4 bietet unten rechts ein LAN Interface.

Mir war schon vor einiger Zeit ein LAN-Interface im Innengerät der Altherma aufgefallen. Bisher war es mir aber nicht gelungen, das in Gang zu setzen. Nach dem letzten Firmware-Update habe ich aber die entsprechende Einstellung im Innengerät gefunden: Erst nachdem das Modbus-Interface explizit aktiviert worden war, steht das Interface zur Verfügung. Dann lässt sich Modbus ganz regulär verbinden und verschiedene Register der Wärmepumpe lesen und schreiben. 

In dieser Anleitung für den Smart Home Hub und dieser Anleitung für das MMI User Interface beschreibt Daikin die zur Verfügung stehenden Register.

Folgende Register nutze ich aktuell in meinem Setup:

Input Register (read-only)

Temperaturen

RegisterAdresseDatatypeBeschreibungScaleUnit
leaving_water_temp40int16Vorlauftemperatur (PHE)0.01°C
return_water_temp42int16Rücklauftemperatur0.01°C
dhw_temp43int16Warmwassertemperatur0.01°C
outside_temp44int16Außentemperatur0.01°C
refrigerant_temp45int16Kältemitteltemperatur0.01°C
dhw_upper_temp76int16Warmwasser oben0.01°C
dhw_lower_temp77int16Warmwasser unten0.01°C
heating_cooling_target80int16Vorlauf-Sollwert (berechnet)0.01°C

Druck & Durchfluss

RegisterAdresseDatatypeBeschreibungScaleUnit
water_pressure79int16Wasserdruck0.01bar
flow_rate49uint16Durchfluss0.01L/min

Leistung

RegisterAdresseDatatypeBeschreibungScaleUnit
electric_power51uint16Elektrische Leistung10W

Betriebsstatus

RegisterAdresseDatatypeBeschreibung
unit_abnormality21uint16Gerätestatus / Fehler (0=OK, 1=Fault, 2=Warning)
operation_mode83uint16Betriebszustand (0=Stop, 1=Tank Heat Up, 2=Space Heating, 3=Space Cooling, 4=Actuator)
three_way_valve37uint163-Wege-Ventil (0=Space Heating, 1=DHW)
demand_response_mode65uint16SG-Ready Status (0=Free Running, 1=Forced Off, 2=Forced On, 3=Recommended On, 4=Reduced)

Discrete Inputs (read-only, FC 02)

RegisterAdresseBeschreibung
compressor_run11Kompressor läuft
circulation_pump25Umwälzpumpe läuft
booster_heater8Heizstab aktiv
defrost17Abtauung
dhw_running19Warmwasserbetrieb aktiv
main_zone_running20Hauptzone aktiv
holiday_mode13Urlaubsmodus aktiv
antifrost14Frostschutz aktiv
disinfection16Legionellenschutz aktiv
hot_start18Hot Start (nach Abtauung)
emergency_active24Notbetrieb aktiv

Holding Register (read/write)

RegisterAdresseDatatypeBeschreibungScaleUnit
heating_setpoint1int16Vorlauf-Sollwert Heizen1°C
cooling_setpoint2int16Vorlauf-Sollwert Kühlen1°C
operation_mode_rw3int16Betriebsmodus (0=Auto, 1=Heating, 2=Cooling)--
space_heating_onoff4int16Heizen/Kühlen Ein/Aus (0=Off, 1=On)--
quiet_mode9int16Leise-Modus (0=Off, 1=On Auto, 2=On Manual)--
dhw_setpoint10int16Warmwasser-Solltemperatur1°C
dhw_booster13int16Warmwasser Boost (0=Off, 1=On)--
dhw_mode80int16Warmwasser Modus (0=Reheat, 1=Schedule+Reheat, 2=Scheduled)--
lwt_heating_offset54int16Vorlauf-Offset Heizen (Heizkurve)1°C
lwt_cooling_offset55int16Vorlauf-Offset Kühlen (Heizkurve)1°C
smart_grid_mode56int16Smart Grid Modus (0=Free Running, 1=Forced Off, 2=Recommended On, 3=Forced On)--
power_limit58uint16Leistungsbegrenzung0.001kW
weather_dep_heating68int16Heizkurve Modus Heizen (0=Fixed, 1=Weather dependent)--
weather_dep_cooling69int16Heizkurve Modus Kühlen (0=Fixed, 1=Weather dependent)--
Weitere Register (Optional / Diagnose)
RegisterAdresseDatatypeBeschreibungScaleUnit
leaving_water_temp_buh41int16Vorlauftemperatur nach Backup-Heater (≈ leaving_water_temp)0.01°C
room_temp_remote50int16Raumtemperatur Fernbedienung (nur mit Modbus-Raumthermostat)0.01°C
lwt_outdoor74int16Vorlauftemperatur Außengerät0.01°C
lwt_tank_valve75int16Vorlauftemperatur Tankventil (nur während WW-Bereitung)0.01°C
bypass_valve_position66int16Bypass-Ventil Position-%
tank_valve_position67int16Tank-Ventil Position-%
circulation_pump_speed68int16Umwälzpumpe Drehzahl-L/min
room_heating_setpoint76int16Raumtemperatur-Sollwert Heizen (nur mit Modbus-Raumthermostat)1°C
room_cooling_setpoint77int16Raumtemperatur-Sollwert Kühlen (nur mit Modbus-Raumthermostat)1°C
operation_mode_ir3838uint16Betriebsmodus (unzuverlässig - IR:83 bevorzugen)--

Darüber hinaus nutze ich folgende Logik um Temperatur-Delta und thermische Energie zu berechnen:

delta_t = leaving_water_temp - return_water_temp
thermal_power = flow_rate * delta_t * 69.77  # spez. Wärmekapazität Wasser (4181 J/(kg·K)) * Dichte (~1 kg/L) / 60 s
cop = thermal_power / electric_power

Über den operation_mode lässt sich dabei auch der COP für Brauchwasser und Heizwasser separat berechnen.

Modbus: Zwei Modi für Smart Grid

Auf Register 56 lässt sich der “Smart Grid Mode” setzen: “Freier Betrieb”, “Recommended On”, “Force on” und “Force off”. Dies erlaubt eine optimierte Steuerung der Wärmepumpe: Bspw. Einschalten und Puffern zu günstigen Strompreisen und Abschalten zu teuren Stunden.

Die Altherma 4 unterstützt hier drei verschiedene Steuerungen: Via Hardware-Kontakt, via Modbus und via Cloud. Für uns sind hier die ersten beiden relevant: Ist Modbus konfiguriert, lässt sich der Smart Grid Mode sehr einfach via Register schalten. Im Modus Hardware-Kontakt schaltet die Altherma 4 basierend auf zwei potenzialfreien Kontakten an der Wärmepumpe. Welche Steuerung gewünscht ist, lässt sich im Innengerät bequem konfigurieren; da der Installateur in meinem Fall die Hardware-Kontakte mit einem Shelly mit zwei Relays ausgestattet hat, nutze ich diese (etwas umständlichere) Steuerung, um nicht mit etwaigen Voreinstellungen des Installateurs zu kollidieren. Ich habe die Modbus-Steuerung ebenfalls getestet, und sie funktioniert einwandfrei.

Steuerung Altherma 4 via potenzialfreier Kontakte

Kontakt 1Kontakt 2Modus
00Free running
01Forced off
10Recommended on
11Forced on

Was ich damit gebaut habe

Durch die Steuerungsmöglichkeiten meines Wechselrichters und meiner Wärmepumpe in Kombination mit Strompreiskosten von Tibber und PV-Prognosen kann ich nun folgende smarte Steuerung realisieren:

  • Zur günstigsten Stunde schaltet die WP in “Recommended On”. Hier wird also bei Bedarf etwas mehr geheizt.
  • Zu den teuersten Stunden schaltet die WP in “Forced off”. Morgens und abends darf sie so jeweils zwei Stunden aussparen.
  • Je nach Ertragsprognose wird mein Haus-Akku geladen - unter Berücksichtigung von Ladeverlusten und Verschleiß.

Smarte Steuerung: Ein zweischneidiges Schwert

Tatsächlich ist das Ganze in vielen Fällen nicht so offensichtlich rentabel, wie man es gerne hätte. Unter Berücksichtigung von Ladeverlusten und Verschleiß lade ich meinen Akku bspw. nur bei mehr als 7ct Preisdifferenz. Und gerade das Bestimmen des möglichen PV-Ertrags und das Timen von Lade- und Entladezeiten ist doch komplexer, als man meinen könnte: Bei 10kWh Kapazität sind die Ersparnisse oft auch überschaubar: Haben wir bspw. 7ct Preisdifferenz, tritt der Mehrertrag auch wirklich nur ein, wenn man zur günstigsten Stunde lädt und zur teuersten Stunde entlädt. Um das zu erreichen, müsste der Akku eigentlich großräumig zu weniger optimalen Stunden gesperrt werden - was wiederum dann ärgerlich ist, wenn bspw. die Wärmepumpe doch in der Zwischenzeit mehr Energie braucht.

WP-Leistung (grün) und Strompreis (orange): Nach der Sperrzeit heizt die WP mit erhöhter Leistung nach - genau dann, wenn der Strom noch teuer ist.

Auch die smarte WP-Steuerung ist ähnlichen Kalkülen unterworfen: Sperre ich abends die WP für zwei Stunden, muss später nachgeheizt werden um Pufferspeicher und Haus ggf. wieder auf Temperatur zu bringen. Auch wenn es kein merkbares Auskühlen gibt, zeigt sich, dass die WP nach den Sperrzeiten mehr Leistung erbringt als im Normalbetrieb. Das muss finanziell kein Nachteil sein - hier fehlen mir schlicht noch Daten, um das vergleichbar zu machen.

Auch der COP spielt für mich eine Rolle: Wenn ich das Ziel habe, die Wärmepumpe möglichst effizient zu betreiben, kann es kontraproduktiv sein, nach Sperrzeiten und “Recommended On” höhere Leistung von der WP abzurufen. Das wiederum ist aber auch witterungsabhängig: Bei frühlingshaften Außentemperaturen neigt die WP ohnehin zum Takten und läuft nicht im Optimalbereich. Sperrzeiten können hier mutmaßlich sogar hilfreich sein. Bei Tiefsttemperaturen wird die Anlage wiederum vielleicht so dimensioniert sein, dass sie das Haus über 24 Stunden hinweg auf die Wunschtemperatur bringt (auch aus Effizienzgründen). Hier könnten 2x 2 Stunden Sperrzeit wiederum dazu führen, dass die Wärmepumpe außerhalb dieser Zeiten das Haus nicht ausreichend heizt und/oder ineffizienter läuft.

Fazit

Ob man die Wärmepumpe programmatisch steuern möchte oder nicht: Allein aus Sicht der Daten finde ich es sehr spannend, die Wärmepumpe auszulesen und die Daten historisiert zu speichern. So lassen sich bspw. (S)COPs automatisch berechnen und das Verhalten der Wärmepumpe bei unterschiedlichen Temperaturen genauer nachvollziehen.

Die smarte Steuerung selbst sehe ich aktuell eher als Experiment: Die Einsparungen durch Sperrzeiten und gezieltes Laden sind real, aber kleiner als erhofft - und die Komplexität der Optimierung (Wetter, COP, Taktverhalten, Akku-Verschleiß) darf man nicht unterschätzen. Wer Modbus an der Altherma 4 nutzen möchte: Es funktioniert zuverlässig und ist der sauberste Weg, an die Daten zu kommen.