Eine Wärmepumpe läuft im Idealfall jahrzehntelang unauffällig. Auffällig wird sie meist erst, wenn sie nicht mehr läuft – oder wenn die Stromrechnung im Februar drei Hauben höher ausfällt als im Vorjahr. In Home Assistant lässt sich ein eigener Health-Check für die Wärmepumpe bauen, der typische Symptome früh erkennt: zu kurze Verdichter-Takte, zu schmale Spreizung im Heizkreis, COP-Warnungen oder ein Durchfluss-Problem. Bei einer CTA (CTC EcoZenith / CTA-AG-Anlage) hängen die nötigen Signale bereits über Modbus in HA. Wer eine andere Marke fährt – Nibe, Stiebel, Lambda, Buderus – findet dort vergleichbare Sensoren über die jeweilige Integration.
Welche Signale ein Health-Check braucht
Ein sinnvoller Wärmepumpen-Monitor besteht aus drei Schichten: Roh-Sensoren (Temperaturen, Verdichterzustand, Volumenstrom), abgeleitete Indikatoren (COP, Spreizung, Taktverhalten) und Warnungen, die nur auf Eingriffe oder Service-Anrufe zeigen.
Bei einer CTA über Modbus stehen unter anderem zur Verfügung: binary_sensor.cta_heizbetrieb_aktiv, binary_sensor.cta_verdichter_aktiv, binary_sensor.cta_solepumpe_aktiv, binary_sensor.cta_heizkreispumpe_aktiv, binary_sensor.cta_warmwasser_ladung_aktiv plus die fertigen Warnungen binary_sensor.cta_cop_warnung, binary_sensor.cta_durchfluss_hk_warnung, binary_sensor.cta_spreizung_hk_warnung, binary_sensor.cta_spreizung_quelle_warnung, binary_sensor.cta_verdichterlast_warnung und binary_sensor.cta_verdichter_taktet_stark. Letztere ist der schnellste Krankheitsindikator – häufiges Takten heisst meistens: Heizkurve zu hoch oder Pufferspeicher zu klein.
Taktzähler täglich aufsetzen
Verdichter-Starts pro Tag sind der wichtigste Single-Wert. Eine gut dimensionierte Wärmepumpe macht typischerweise 2–6 Starts pro Tag im Winter, kaum welche im Frühling/Herbst, eventuell 1–2 Starts für Warmwasser. Mehr als 10 Starts/Tag in der Übergangszeit deuten auf eine Fehlanpassung hin – meist Heizkurve oder hydraulische Weiche.
In HA reicht ein einfacher Counter mit Reset:
counter:
cta_verdichter_starts_heute:
name: CTA Verdichter Starts heute
initial: 0
step: 1
cta_warmwasser_ladungen_heute:
name: CTA Warmwasser Ladungen heute
initial: 0
step: 1
automation:
- id: cta_verdichter_start_zaehlen
alias: CTA Verdichter Start zählen
trigger:
- platform: state
entity_id: binary_sensor.cta_verdichter_aktiv
from: "off"
to: "on"
action:
- service: counter.increment
target:
entity_id: counter.cta_verdichter_starts_heute
- id: cta_verdichter_zaehler_reset
alias: CTA Verdichter Startzähler reset
trigger:
- platform: time
at: "00:00:00"
action:
- service: counter.reset
target:
entity_id:
- counter.cta_verdichter_starts_heute
- counter.cta_warmwasser_ladungen_heute
So sieht man morgens auf dem Dashboard, wieviele Verdichter-Starts in der Nacht passiert sind. Wer die Werte in HA-Statistics als state_class: total_increasing speichert (über Customize), bekommt ein Langzeitdiagramm gratis dazu und sieht, wie das Taktverhalten über Monate driftet.
Warnungen sammeln und priorisieren
Sinnvoll ist ein zusammengefasster Warnungs-Sensor, der alle relevanten Einzelwarnungen bündelt:
template:
- binary_sensor:
- name: "CTA Health Warnung"
unique_id: cta_health_warnung
device_class: problem
state: >
{{ is_state('binary_sensor.cta_cop_warnung','on')
or is_state('binary_sensor.cta_durchfluss_hk_warnung','on')
or is_state('binary_sensor.cta_spreizung_hk_warnung','on')
or is_state('binary_sensor.cta_spreizung_quelle_warnung','on')
or is_state('binary_sensor.cta_verdichterlast_warnung','on')
or is_state('binary_sensor.cta_verdichter_taktet_stark','on') }}
attributes:
aktiv: >
{%- set entities = [
'binary_sensor.cta_cop_warnung',
'binary_sensor.cta_durchfluss_hk_warnung',
'binary_sensor.cta_spreizung_hk_warnung',
'binary_sensor.cta_spreizung_quelle_warnung',
'binary_sensor.cta_verdichterlast_warnung',
'binary_sensor.cta_verdichter_taktet_stark'] -%}
{{ entities | select('is_state','on') | list }}
Auf dem Dashboard wird der Sensor rot, sobald irgendeine Einzelwarnung aktiv ist. Im Attribut aktiv steht die konkrete Liste – nützlich für Push-Benachrichtigungen, die nicht nur «Warnung» schreien, sondern auch direkt die Ursache mitliefern.
Push und Auto-Eskalation
Eine einfache Push-Automation an das eigene Smartphone bringt das System zu Ende:
automation:
- id: cta_warnung_push
alias: CTA Warnung Push
trigger:
- platform: state
entity_id: binary_sensor.cta_health_warnung
to: "on"
for:
minutes: 10
action:
- service: notify.mikes_iphone_17_pro
data:
title: "Wärmepumpe – Warnung aktiv"
message: "Aktive Warnungen: {{ state_attr('binary_sensor.cta_health_warnung','aktiv') | join(', ') }}"
data:
tag: cta-health
url: "/lovelace/heizung"
Das for: 10 minutes fängt kurze, harmlose Spitzen ab (z.B. ein einzelner Verdichter-Start löst manchmal kurz die Spreizungs-Warnung aus). Die Push verlinkt direkt auf das passende Dashboard-View, damit man im Bett nicht erst durch HA klicken muss.
Was sich daraus über Wochen ablesen lässt
Wer die Health-Daten drei Monate sammelt, sieht typische Muster: An Tagen mit sehr starker Sonneneinstrahlung sinkt die Anzahl der Verdichter-Starts, weil das Haus passiv aufgeheizt wird. An sehr kalten Tagen steigt sie deutlich – ein guter Indikator für die Auslegungsgrenze der Anlage. Wenn das Taktverhalten plötzlich vom Muster abweicht, ohne dass das Wetter eine Erklärung liefert, ist das ein klares Signal für Service. Wer den Vorlauf der Heizkurve dynamisch hält (zum Beispiel über input_number.cta_vorlauf_heizkurve_hold), kann den Effekt der eigenen Hold-Logik mit den Taktzählern direkt validieren – mehr dazu im Beitrag Shelly Plus 1 PM in HA – Verbrauch und Schutzlogik, wo das gleiche Prinzip für einzelne Stromkreise gezeigt wird.
Fazit
Mit drei Bausteinen – Counter, Template-Warnung, Push-Automation – wird aus den ohnehin vorhandenen Modbus-Sensoren ein vollwertiger Wärmepumpen-Health-Check in HA. Aufwand: zwei Stunden für die Einrichtung. Nutzen: man sieht Fehlanpassungen, bevor sie auf der Stromrechnung sichtbar werden – und hat im Servicefall eine saubere Datenbasis, statt nur einem leeren Tank.