Zum Inhalt springen
SONOYA.com
Raspberry Pi & Linux

Heizung smart mit Home Assistant: Thermostate und Fenster

Heizkörperthermostate lokal in Home Assistant: passende Zigbee-Modelle, Heizplan per Zeitplan-Helfer, Fenster-offen-Automation, externer Sensor.

Von

Thermometer-Symbol auf farbigem Verlauf für smarte Heizkörperthermostate, die Home Assistant mit Heizplan und Fenster-offen-Erkennung steuert

Smarte Heizkörperthermostate gehören zu den wenigen Smart-Home-Geräten, die sich messbar bezahlt machen können. Sie senken die Temperatur, wenn niemand im Raum ist, drehen die Heizung bei offenem Fenster ab und heizen rechtzeitig vor, bevor Du morgens aufstehst. Die Apps der Hersteller können das meist auch, aber nur über deren Cloud und nur mit deren Geräten. Mit Home Assistant steuerst Du alles lokal und kannst Thermostate, Fensterkontakte und Raumsensoren verschiedener Marken kombinieren.

Diese Anleitung zeigt, welche Thermostate sich eignen, wie Du sie einbindest und mit welchen drei Automationen Du einen Raum vollständig steuerst: Heizplan, Fenster-offen-Erkennung und Kalibrierung über einen externen Temperatursensor. Sie gilt für Home Assistant 2026.11. Die Automationen habe ich mit der Konfigurationsprüfung von Home Assistant 2026.11 kontrolliert, die Gerätedetails stammen aus der Gerätedatenbank von Zigbee2MQTT.

Welcher Funkstandard?

Für Heizkörperthermostate gibt es im Wesentlichen drei Wege, die in Home Assistant lokal funktionieren:

  • Zigbee: die größte Auswahl zu den niedrigsten Preisen. Du brauchst einen Zigbee-Stick am Home-Assistant-Server, danach kannst Du Geräte vieler Hersteller mischen. Das ist der Weg, den diese Anleitung beschreibt.
  • Thread mit Matter: neuer, herstellerübergreifend und ebenfalls lokal. Die Auswahl an Thermostaten ist kleiner, und Funktionen wie die externe Temperatur fehlen oft noch.
  • Homematic IP: im deutschsprachigen Raum verbreitet und sehr zuverlässig, aber teurer und mit eigener Zentrale.

Wenn Du schon ein Zigbee-Netz hast, bleib bei Zigbee. Wenn nicht, ist es trotzdem der einfachste Einstieg. Welche Integration Du dafür nimmst, ZHA oder Zigbee2MQTT, entscheidest Du mit Zigbee in Home Assistant: ZHA oder Zigbee2MQTT?. Die Beispiele unten nutzen Zigbee2MQTT, weil es bei Thermostaten meist mehr Einstellungen freigibt. Mit ZHA funktionieren die Automationen genauso, nur die Namen der Zusatz-Entitäten weichen ab.

Worauf Du beim Thermostat achten solltest

Prüf vor dem Kauf diese Punkte:

  1. Unterstützung in Deiner Integration. Such das Modell in der Gerätedatenbank auf zigbee2mqtt.io. Steht es dort mit Bild und einer Liste von Funktionen, läuft es.
  2. Externe Temperatur. Das Thermostat misst direkt am heißen Heizkörper und hält den Raum deshalb oft für wärmer, als er ist. Modelle, die einen Wert von außen annehmen, regeln deutlich genauer. In Zigbee2MQTT heißt die Funktion external_temperature_input.
  3. Ventiladapter. Die meisten Thermostate passen auf das übliche Gewinde M30 × 1,5. Für Ventile von Danfoss und einigen anderen Herstellern brauchst Du einen Adapter, der oft beiliegt. Schau vorher nach, was auf Deinem Ventil steht.
  4. Batterie. Zwei AA-Batterien sind der Normalfall und halten je nach Modell meist eine Heizsaison oder länger.

Zwei Modelle, die diese Punkte erfüllen und bei Zigbee2MQTT gut dokumentiert sind, sind das Sonoff TRVZB und das Aqara E1. Beide nehmen eine externe Temperatur an und bringen eine eigene Fenster-offen-Erkennung mit. Eine Übersicht bekommst Du über die Suche nach Zigbee-Heizkörperthermostaten (Affiliate Link). Für die Fenster-offen-Automation brauchst Du außerdem einen Zigbee-Fensterkontakt (Affiliate Link) pro Fenster, das häufig gelüftet wird.

Thermostat einbinden

Schraub den alten Thermostatkopf ab, setz bei Bedarf den Adapter auf und schraub das neue Thermostat fest. Leg die Batterien erst danach ein, denn viele Modelle fahren beim Einschalten das Ventil an und lernen dabei seinen Weg. Bei manchen musst Du diese Ventilkalibrierung danach noch einmal per Knopf oder in der Integration auslösen. Die Anleitung des Herstellers sagt, wie.

Dann koppelst Du das Thermostat wie jedes Zigbee-Gerät: In Zigbee2MQTT klickst Du oben auf Permit join, in ZHA auf Einstellungen > Geräte & Dienste > Zigbee Home Automation > Gerät hinzufügen. Halte am Thermostat die Kopplungstaste gedrückt, bis es blinkt. Nach einigen Sekunden taucht es auf.

Gib dem Gerät gleich einen sprechenden Namen wie Thermostat Wohnzimmer. Home Assistant legt daraus eine Entität climate.thermostat_wohnzimmer an. Über sie stellst Du später Solltemperatur und Betriebsart ein. Dazu kommen je nach Modell weitere Entitäten, etwa für die Kindersicherung, die eingebaute Fenstererkennung oder die externe Temperatur.

Zigbee-Thermostate schlafen viel, um Batterie zu sparen, und hängen deshalb an einem stabilen Netz. Wenn sie sich immer wieder abmelden, hilft Zigbee-Geräte offline? Netz in Home Assistant stärken.

Der Heizplan mit dem Zeitplan-Helfer

Für den Heizplan nutzen wir den Zeitplan-Helfer von Home Assistant. Er ist eingeschaltet, solange ein von Dir eingetragener Zeitblock läuft, und sonst aus. Leg ihn unter Einstellungen > Geräte & Dienste > Helfer > Helfer erstellen > Zeitplan an, nenne ihn Heizplan Wohnzimmer und zieh in der Wochenansicht die Zeiten auf, zu denen der Raum warm sein soll, zum Beispiel werktags 6 bis 8 Uhr und 17 bis 22 Uhr, am Wochenende 8 bis 23 Uhr. Ein Block kann nicht über Mitternacht reichen, dafür legst Du bei Bedarf zwei aneinanderstoßende Blöcke an.

Die Automation dazu setzt die Temperatur, sobald der Zeitplan an- oder ausgeht. Leg sie unter Einstellungen > Automationen & Szenen > Automation erstellen an, öffne über das Drei-Punkte-Menü In YAML bearbeiten und füge ein:

Code
alias: Heizplan Wohnzimmer
mode: restart
triggers:
  - trigger: state
    entity_id: schedule.heizplan_wohnzimmer
conditions:
  - condition: state
    entity_id: binary_sensor.fenster_wohnzimmer
    state: "off"
actions:
  - action: climate.set_temperature
    target:
      entity_id: climate.thermostat_wohnzimmer
    data:
      hvac_mode: heat
      temperature: "{{ 21 if is_state('schedule.heizplan_wohnzimmer', 'on') else 17 }}"

Die Automation reagiert auf jeden Wechsel des Zeitplans. Ist er an, stellt sie 21 Grad ein, sonst 17 Grad. Die Bedingung verhindert, dass der Heizplan bei offenem Fenster die Heizung wieder aufdreht. Die Werte passt Du nach Deinem Empfinden an, und für weitere Räume kopierst Du die Automation und tauschst die Entitäten.

Fenster offen: Heizung aus

Viele Thermostate erkennen ein offenes Fenster selbst, und zwar an einem plötzlichen Temperatursturz am Heizkörper. Das klappt aber erst nach einigen Minuten und nicht immer zuverlässig. Ein Fensterkontakt weiß es sofort. Die folgende Automation schaltet das Thermostat ab, wenn das Fenster eine Minute offen steht, und kehrt nach dem Schließen zur Temperatur zurück, die der Heizplan gerade vorsieht:

Code
alias: Fenster Wohnzimmer, Heizung aus und an
mode: restart
triggers:
  - trigger: state
    entity_id: binary_sensor.fenster_wohnzimmer
    to: "on"
    for:
      minutes: 1
    id: offen
  - trigger: state
    entity_id: binary_sensor.fenster_wohnzimmer
    to: "off"
    for:
      seconds: 30
    id: zu
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: offen
        sequence:
          - action: climate.set_hvac_mode
            target:
              entity_id: climate.thermostat_wohnzimmer
            data:
              hvac_mode: "off"
      - conditions:
          - condition: trigger
            id: zu
        sequence:
          - action: climate.set_temperature
            target:
              entity_id: climate.thermostat_wohnzimmer
            data:
              hvac_mode: heat
              temperature: "{{ 21 if is_state('schedule.heizplan_wohnzimmer', 'on') else 17 }}"

Die Verzögerung von einer Minute sorgt dafür, dass kurzes Öffnen, etwa um etwas hinauszureichen, die Heizung nicht abschaltet. Die 30 Sekunden beim Schließen fangen ein Fenster ab, das nur kurz an- und wieder aufgeht. Hast Du mehrere Fenster im Raum, fasst Du ihre Kontakte unter Helfer > Gruppe > Binärsensor-Gruppe zusammen und setzt die Gruppe statt des einzelnen Sensors ein. Die Gruppe ist an, sobald eines der Fenster offen ist.

Die Betriebsart off heißt bei den meisten Thermostaten, dass sie nur noch den Frostschutz halten. Prüf in der Entität Deines Thermostats unter Attribute, welche Betriebsarten es kennt. Bietet es kein off, setzt Du stattdessen eine niedrige Temperatur wie 7 Grad.

Externe Temperatur: genauer regeln

Das Thermostat misst wenige Zentimeter neben dem Heizkörper. Dort ist es wärmer als in der Raummitte, und das Thermostat schaltet deshalb zu früh ab. Bei Modellen mit external_temperature_input gibst Du ihm stattdessen den Wert eines Raumsensors. In Zigbee2MQTT erscheint diese Funktion in Home Assistant als Zahlen-Entität, beim Sonoff TRVZB etwa number.thermostat_wohnzimmer_external_temperature_input.

Zuerst stellst Du am Thermostat um, welchen Sensor es nutzt. Beim Sonoff TRVZB geschieht das über die Auswahl-Entität temperature_sensor_select, beim Aqara E1 über sensor, jeweils auf den externen Wert. Dann sorgt diese Automation dafür, dass der Raumwert regelmäßig ankommt:

Code
alias: Raumtemperatur ans Thermostat Wohnzimmer
mode: queued
triggers:
  - trigger: state
    entity_id: sensor.temperatur_wohnzimmer
  - trigger: time_pattern
    minutes: /15
conditions:
  - condition: template
    value_template: "{{ states('sensor.temperatur_wohnzimmer') | is_number }}"
actions:
  - action: number.set_value
    target:
      entity_id: number.thermostat_wohnzimmer_external_temperature_input
    data:
      value: "{{ states('sensor.temperatur_wohnzimmer') | float | round(1) }}"

Der erste Auslöser schickt jede Änderung des Raumsensors, der zweite wiederholt den Wert alle 15 Minuten. Das ist wichtig, weil manche Thermostate einen externen Wert nach einiger Zeit verwerfen, wenn kein neuer kommt, und dann auf den eigenen Fühler zurückfallen. Die Bedingung verhindert, dass ein fehlender Wert wie unavailable ans Thermostat geht.

Woran Du den Erfolg erkennst: In der Entität climate.thermostat_wohnzimmer zeigt das Attribut current_temperature nach einigen Minuten den Wert Deines Raumsensors statt der Messung am Heizkörper.

Was es spart, ehrlich gerechnet

Das Umweltbundesamt nennt als Faustregel, dass jedes Grad weniger Raumtemperatur etwa sechs Prozent Heizenergie spart. Wie viel Du tatsächlich sparst, hängt davon ab, wie Du vorher geheizt hast. Wer schon vorher konsequent die Thermostate heruntergedreht hat, gewinnt wenig. Wer bisher Räume den ganzen Tag gleichmäßig warm gehalten hat, die nur abends genutzt werden, und beim Lüften die Heizung laufen ließ, spart deutlich mehr. Feste Prozentzahlen, wie Hersteller sie auf die Verpackung drucken, kann Dir für Dein Zuhause niemand seriös versprechen.

Mit dem Energie-Dashboard von Home Assistant und dem Gaszähler oder dem Wärmemengenzähler kannst Du den Effekt aber über eine Heizsaison selbst messen.

Häufige Probleme

Das Thermostat übernimmt die Temperatur nicht sofort: Batteriebetriebene Thermostate wachen nur in Abständen auf. Eine Änderung kann deshalb einige Sekunden bis wenige Minuten brauchen, bis sie am Gerät ankommt. Das ist normal.

Der Heizkörper wird nicht warm, obwohl das Thermostat heizen will: Meist hat das Thermostat den Ventilweg falsch gelernt. Starte die Ventilkalibrierung erneut, und prüf, ob der Adapter richtig sitzt.

Die Automation reagiert nicht: Schau in den Traces nach, ob sie überhaupt auslöst und wo sie hängt. Wie das geht, steht in Home Assistant: Automation löst nicht aus, Fehlersuche.

Die Heizung springt hin und her: Eine eigene Automation des Thermostats, etwa ein interner Wochenplan, kämpft gegen Home Assistant. Schalte interne Zeitpläne am Gerät ab, sodass nur Home Assistant steuert.

Welche weiteren Geräte sich ohne Hersteller-Cloud betreiben lassen, zeigt Smart Home ohne Cloud: Geräte, die lokal funktionieren.

Weiterlesen.