Smarte Heizkörperthermostate mit Home Assistant – Zigbee-Thermostate einrichten & Heizkosten senken
Heizkosten sind in Deutschland dauerhaft ein Thema – und smarte Heizkörperthermostate sind eine der wenigen Smart-Home-Investitionen, die sich nachweislich amortisieren. Statt pauschal zu heizen, steuert ihr jeden Raum einzeln, nach Zeitplan, Anwesenheit und sogar offenem Fenster. Das Beste: Mit Zigbee-Thermostaten und Home Assistant funktioniert das vollständig lokal, ohne Cloud, ohne monatliche Abo-Kosten.
In diesem Guide zeige ich euch, welche Thermostate sich für Home Assistant wirklich eignen, wie ihr sie einbindet, und wie ihr Schritt für Schritt intelligente Heizautomationen baut – von der einfachen Zeitschaltuhr bis zur Fenster-offen-Erkennung.
Inhaltsverzeichnis
- Warum smarte Thermostate?
- Was braucht ihr?
- Thermostate im Vergleich
- Einbau – Thermostat wechseln
- Einbindung via Zigbee2MQTT
- Einbindung via ZHA
- Better Thermostat: Externer Sensor & Kalibrierung
- Heizplan per Zeitplan automatisieren
- Fenster-offen-Erkennung
- Anwesenheitsbasierte Heizung
- Troubleshooting
- FAQ
1. Warum smarte Thermostate?
Ein herkömmlicher Heizkörperthermostat hat ein großes Problem: Er regelt nur nach der Temperatur direkt am Heizkörper – nicht im Raum. Sitzt der Heizkörper unter dem Fenster, misst der Thermostat die kalte Zuluft und dreht die Heizung auf, auch wenn der Raum längst warm ist. Das kostet unnötig Energie.
Smarte Thermostate lösen das auf mehreren Ebenen:
- Externer Temperatursensor: Ein günstiger Zigbee-Sensor (~10 €) misst die tatsächliche Raumtemperatur. Der Thermostat regelt danach, nicht nach der eigenen Messung.
- Zeitpläne: Nachts und wenn ihr außer Haus seid, wird auf Absenktemperatur (~16 °C) reduziert. Laut Energiesparagentur spart jedes Grad Absenkung ~6 % Heizkosten.
- Fenster-offen-Erkennung: Kippt jemand das Fenster, dreht der Thermostat sofort auf 5 °C Frostschutz – kein Heizen ins Freie.
- Anwesenheitserkennung: Niemand zu Hause? Automatisch auf Abwesenheitsmodus. 30 Minuten vor der Rückkehr wieder aufheizen.
Das Einsparpotenzial ist real: Eine Studie des Fraunhofer ISE zeigt, dass intelligente Heizungssteuerung im Altbau bis zu 20–30 % Heizenergie einsparen kann – bei Neubauten mit guter Dämmung ca. 10–15 %.
2. Was braucht ihr?
| Komponente | Empfehlung | Link |
|---|---|---|
| Heizkörperthermostat | Sonoff TRVZB (bestes P/L) oder Aqara E1 | Amazon |
| Zigbee-Coordinator | Sonoff Zigbee 3.0 USB Dongle Plus | Amazon |
| Externer Temperatursensor | Sonoff SNZB-02D (Display) oder Aqara T1 | Amazon |
| Fensterkontakt (für Erkennung) | Sonoff SNZB-04P oder Aqara D1 | Amazon |
| Home Assistant Host | Raspberry Pi 5 (4 GB) oder Home Assistant Green | Amazon |
| Innensechskant-Schlüssel (optional) | Zum Abdrehen des alten Ventilkopfs (meist M30×1,5) | Amazon |
Wichtig zum Anschlussgewinde: Die meisten modernen Heizkörperventile in Deutschland haben das Gewinde M30×1,5 mm – sowohl Sonoff TRVZB als auch Aqara E1 passen hier direkt. Ältere Ventile (Danfoss RA, Giacomini, Comap) benötigen einen Adapter. Die Adapter-Sets für TRVZB und Aqara sind günstig (~3–5 €) und bei Amazon erhältlich.
3. Thermostate im Vergleich
| Modell | Preis (ca.) | Protokoll | Z2M / ZHA | Ext. Sensor | Für wen? |
|---|---|---|---|---|---|
| Sonoff TRVZB ⭐ | ~35 € | Zigbee 3.0 | ✅ / ✅ | ✅ nativ | Preis-Leistungs-Sieger für HA |
| Aqara E1 (SRTS-A01) | ~44 € | Zigbee 3.0 | ✅ / ⚠️ | ⚠️ via Trick | Z2M-Nutzer, besser verarbeitet |
| Tado X | ~89–158 € (Starter Kit) | Matter / Thread | via Matter | ✅ (Cloud) | Plug & Play ohne Basteln |
| Homematic IP eTRV-E | ~55–72 € | Propriär (868 MHz) | via HA-Integration | ✅ | Zuverlässig, aber eigener AP nötig |
Das Ventil des Aqara E1 öffnet sich bei einigen Firmware-Versionen auch dann, wenn
system_mode auf off gesetzt ist – das Gerät heizt also physisch weiter, obwohl Home Assistant „aus“ meldet. Der Workaround: Statt system_mode off zu nutzen, setzt ihr die Solltemperatur auf 5 °C (Frostschutz). Better Thermostat handhabt das automatisch korrekt.Sonoff TRVZB vs. Aqara E1 – Detailvergleich
| Merkmal | Sonoff TRVZB | Aqara E1 |
|---|---|---|
| Preis | ~35 € | ~44 € (3er-Pack: ~36 €/Stück) |
| Temperaturbereich | 4–35 °C | 5–30 °C |
| Ventiltyp | On/Off (binär) | Proportional (stufenlos) |
| Geräuschpegel | Leise | Hörbar (bekannte Eigenschaft) |
| ZHA-Support | ✅ vollständig | ⚠️ nur Basis-Climate |
| Externer Sensor (Z2M) | ✅ als native Entity | ⚠️ nur via MQTT-Trick |
| Better Thermostat kompatibel | ✅ | ✅ |
| Verarbeitung | Gut | Sehr gut (Premium-Kunststoff) |
| Batterien | 2× AA | 2× AA |
| Amazon Link | Sonoff TRVZB | Aqara E1 |
Meine Empfehlung: Wer Zigbee2MQTT nutzt und ZHA-Unterstützung möchte, ist mit dem Sonoff TRVZB besser bedient. Wer mehrere Geräte kauft und Budget spart, profitiert beim Aqara E1 vom 3er-Pack. Den Aqara E1 solltet ihr immer mit Better Thermostat nutzen, um den system_mode-Bug zu umgehen.
4. Einbau – Thermostat wechseln
Der Austausch dauert pro Heizkörper 5–10 Minuten und erfordert kein Werkzeug außer gelegentlich einem Schraubenschlüssel. Es gibt dabei keine elektrische Gefahr – Heizkörperthermostate arbeiten mit Batterie.
- Heizung ausschalten oder Raumtemperatur erreichen lassen. Den Thermostat bei kaltem Ventil abzubauen ist einfacher, da das Ventil geschlossen ist.
- Alten Thermostat abschrauben. In der Regel gegen den Uhrzeigersinn drehen (M30×1,5 mm Linksgewinde). Manche alten Modelle haben eine Überwurfmutter, die mit einem Schraubenschlüssel gelöst wird.
- Adapter prüfen. Schaut auf die freiliegende Ventilspindel: Steht dort RA, RAV oder RAVL (Danfoss), braucht ihr den mitgelieferten Adapter oder bestellt einen separat.
- Neuen Thermostat aufschrauben. Im Uhrzeigersinn fest (nicht zu stark – Kunststoffgewinde). Kein Dichtungsband nötig, das ist kein Wasseranschluss.
- Batterien einlegen und Ventil anlernen lassen. Beim ersten Start führt der Thermostat eine Ventilkalibrierung durch (ca. 1–2 Minuten) – der Kopf dreht sich dabei mehrfach.
5. Einbindung via Zigbee2MQTT
Voraussetzung: Zigbee2MQTT läuft bereits in eurem Home Assistant. Falls nicht, schaut in unseren Artikel Zigbee2MQTT einrichten.
Schritt 1: Paarungsmodus aktivieren
In der Zigbee2MQTT-Oberfläche (Einstellungen → Gerät zulassen) aktiviert ihr den Permit Join für 120 Sekunden.
Am Thermostat haltet ihr die Taste gedrückt bis der Pairungs-Modus angezeigt wird:
- Sonoff TRVZB: Lange Taste drücken (5 Sekunden) bis das Display „- -“ anzeigt
- Aqara E1: Seitliche Reset-Taste 5 Sekunden drücken bis das Display blinkt
Schritt 2: Gerät in Z2M umbenennen
Nach erfolgreicher Paarung erscheint das Gerät in der Z2M-Geräteliste. Klickt auf das Gerät und vergebt einen sprechenden Friendly Name, z. B. wohnzimmer_heizung. Dieser Name wird direkt als Entity-ID in Home Assistant übernommen.
Schritt 3: Climate Entity in HA prüfen
Nach dem Umbenennen erscheint in Home Assistant automatisch eine climate-Entity. Ihr findet sie unter Einstellungen → Geräte & Dienste → Zigbee2MQTT → Geräte → [Euer Thermostat].
Typische Entity-IDs:
1 2 3 | climate.wohnzimmer_heizung # Hauptentity für Soll/Ist/Modus sensor.wohnzimmer_heizung_local_temperature # Gemessene Temperatur sensor.wohnzimmer_heizung_battery # Batteriestatus in % |
Schritt 4 (Sonoff TRVZB): Externen Sensor koppeln
Beim Sonoff TRVZB könnt ihr direkt in Zigbee2MQTT einen externen Temperatursensor hinterlegen. Geht auf das Gerät in Z2M → Tab „Exposes“ und setzt:
sensor→external
Dann sendet ihr die Außentemperatur über eine HA-Automation an das Gerät. Das einfachste ist eine Automation, die alle 5 Minuten den Sensorwert pusht:
1 2 3 4 5 6 7 8 9 10 11 12 | alias: "Externer Sensor → Sonoff TRVZB" trigger: - platform: time_pattern minutes: "/5" action: - service: mqtt.publish data: topic: "zigbee2mqtt/wohnzimmer_heizung/set" payload_template: > {"external_temperature_input": {{ states('sensor.wohnzimmer_temperatur') | float(20) }} } |
Ersetzt sensor.wohnzimmer_temperatur durch die Entity-ID eures Zigbee-Temperatursensors. Alternativ könnt ihr diesen Schritt komplett überspringen und stattdessen Better Thermostat nutzen (Abschnitt 7) – das macht die externe Sensor-Kopplung für alle Thermostate komfortabler.
6. Einbindung via ZHA
Wer ZHA statt Zigbee2MQTT nutzt, hat beim Sonoff TRVZB vollen Support – alle Entities inklusive Kalibrierung und Frostschutz werden korrekt erkannt.
Beim Aqara E1 und ZHA gibt es Einschränkungen: Preset-Modi, Batteriestatus und der externe Sensor-Input sind unter ZHA aktuell nicht vollständig implementiert (Stand Q1 2026). Wer also ZHA einsetzt und plant, mehrere Aqara E1 zu betreiben, sollte auf Zigbee2MQTT umsteigen oder zum Sonoff TRVZB greifen.
Der Pairungsprozess unter ZHA ist identisch: Einstellungen → Geräte & Dienste → ZHA → Gerät hinzufügen → Pairmodus am Thermostat aktivieren.
7. Better Thermostat: Externer Sensor & Kalibrierung
Better Thermostat ist eine HACS-Integration, die einen virtuellen Thermostat als Zwischenschicht zwischen eurem TRV und Home Assistant erzeugt. Damit löst ihr mehrere Probleme gleichzeitig:
- Externer Temperatursensor für alle Thermostate (auch Aqara E1 unter Z2M)
- Automatische Ventilkalibrierung (kein Überhitzen trotz schlechter interner Messung)
- Fenster-offen-Erkennung direkt in der Integration
- Intelligentes Duty-Cycle-Management (verhindert zu kurze Heiz-/Kühlzyklen)
- Umgehung des Aqara-E1-Bugs bei system_mode off
Installation
Voraussetzung ist HACS in eurem Home Assistant. Dann:
- HACS → Integrationen → Durchsuchen → „Better Thermostat“ suchen → Herunterladen
- Home Assistant neu starten
- Einstellungen → Geräte & Dienste → + Integration hinzufügen → Better Thermostat
Konfiguration (UI)
Die Einrichtung läuft komplett über die Benutzeroberfläche – kein YAML nötig. Ihr wählt:
- TRV-Entity: Euer physischer Thermostat (
climate.wohnzimmer_heizung) - Temperatursensor: Ein externer Zigbee-Sensor (
sensor.wohnzimmer_temperatur) - Fensterkontakt: Optional (
binary_sensor.wohnzimmer_fenster) - Fensterverzögerung: Sekunden bis zur Reaktion (empfohlen: 30 s)
Das Ergebnis ist eine neue climate-Entity (climate.better_thermostat_wohnzimmer), die ihr fortan für alle Automationen verwendet. Die Original-Entity des TRVs bleibt im Hintergrund bestehen, sollte aber nicht mehr direkt angesteuert werden.
Konfiguration (YAML, für Fortgeschrittene)
1 2 3 4 5 6 7 8 9 10 11 12 13 | climate: - platform: better_thermostat name: "Wohnzimmer" unique_id: wohnzimmer_bt thermostat: climate.wohnzimmer_heizung temperature_sensor: sensor.wohnzimmer_temperatur window_sensors: binary_sensor.wohnzimmer_fenster window_off_delay: 30 # Sekunden bis Abschalten nach Fenster-öffnen window_on_delay: 0 # Sekunden bis Wiedereinschalten nach Schließen off_temperature: 5.0 # Frostschutztemperatur bei offenem Fenster tolerance: 0.5 # Hysterese in °C min_off_cycle_duration: minutes: 5 # Mindestpause zwischen Heizzyklen |
8. Heizplan per Zeitplan automatisieren
Es gibt zwei Wege für einen zeitgesteuerten Heizplan: den einfachen Schedule-Helper (empfohlen für Einsteiger) und YAML-Automationen (mehr Kontrolle, z. B. unterschiedliche Pläne Werktag/Wochenende).
Methode A: Schedule-Helper (kein YAML, empfohlen)
- Einstellungen → Geräte & Dienste → Helfer → + Helfer erstellen → Zeitplan
- Name: „Heizplan Wohnzimmer“, Wochentage wählen, Zeitfenster anlegen
- Automation erstellen, die bei
binary_sensor.heizplan_wohnzimmeraufon→ Temperatur setzen
Methode B: YAML-Automation (Werktage vs. Wochenende)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | alias: "Heizplan Wohnzimmer – Werktage" mode: single trigger: - platform: time at: "06:00:00" id: aufwachen - platform: time at: "08:00:00" id: absenken_tag - platform: time at: "17:00:00" id: nachmittag - platform: time at: "22:00:00" id: nacht condition: - condition: time weekday: [mon, tue, wed, thu, fri] action: - choose: - conditions: - condition: trigger id: aufwachen sequence: - service: climate.set_temperature target: entity_id: climate.better_thermostat_wohnzimmer data: temperature: 21 hvac_mode: heat - conditions: - condition: trigger id: absenken_tag sequence: - service: climate.set_temperature target: entity_id: climate.better_thermostat_wohnzimmer data: temperature: 17 - conditions: - condition: trigger id: nachmittag sequence: - service: climate.set_temperature target: entity_id: climate.better_thermostat_wohnzimmer data: temperature: 22 hvac_mode: heat - conditions: - condition: trigger id: nacht sequence: - service: climate.set_temperature target: entity_id: climate.better_thermostat_wohnzimmer data: temperature: 16 |
Für das Wochenende legt ihr eine identische Automation an und ändert die weekday-Condition auf [sat, sun] und passt die Uhrzeiten nach eigenem Bedarf an (z. B. 08:00 statt 06:00 als Aufwachzeit).
id: bei Triggern (ab HA 2022.9) macht die Automation erheblich lesbarer und erlaubt es, alle Zeitpunkte in einer einzigen Automation abzuhandeln. Ohne Trigger-IDs bräuchtet ihr vier separate Automationen.9. Fenster-offen-Erkennung
Die Fenster-offen-Erkennung ist eine der wirkungsvollsten Heizautomationen: Kippt jemand das Fenster, fährt der Thermostat auf Frostschutztemperatur. Wird es geschlossen, kehrt er zur vorherigen Solltemperatur zurück.
Wer Better Thermostat nutzt: Die Fenster-Erkennung ist bereits eingebaut (Parameter window_sensors) – ihr braucht keine separate Automation.
Ohne Better Thermostat (z. B. Tado X oder Homematic IP) nutzt ihr folgende zwei Automationen. Ihr benötigt dafür einen Helper:
- input_number.wohnzimmer_vorherige_temperatur (Einstellungen → Helfer → Zahl, min: 5, max: 30, Schritt: 0.5)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # Automation 1: Fenster öffnet → Frostschutz alias: "Fenster offen → Heizung Frostschutz" mode: single trigger: - platform: state entity_id: binary_sensor.wohnzimmer_fenster to: "on" for: seconds: 30 condition: - condition: state entity_id: climate.wohnzimmer_heizung state: "heat" action: - service: input_number.set_value target: entity_id: input_number.wohnzimmer_vorherige_temperatur data: value: > {{ state_attr('climate.wohnzimmer_heizung', 'temperature') | float(20) }} - service: climate.set_temperature target: entity_id: climate.wohnzimmer_heizung data: temperature: 5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Automation 2: Fenster schließt → Temperatur wiederherstellen alias: "Fenster geschlossen → Heizung wiederherstellen" mode: single trigger: - platform: state entity_id: binary_sensor.wohnzimmer_fenster to: "off" for: seconds: 5 condition: - condition: numeric_state entity_id: input_number.wohnzimmer_vorherige_temperatur above: 5 action: - service: climate.set_temperature target: entity_id: climate.wohnzimmer_heizung data: temperature: > {{ states('input_number.wohnzimmer_vorherige_temperatur') | float(20) }} hvac_mode: heat |
Die 30-Sekunden-Verzögerung im ersten Trigger verhindert Fehlalarme durch kurzes Öffnen zum Lüften. Passt den Wert nach euren Gewohnheiten an.
10. Anwesenheitsbasierte Heizung
Wenn ihr das Haus verlasst, kann Home Assistant automatisch auf Absenktemperatur schalten – und kurz vor eurer Rückkehr wieder aufheizen, damit es warm ist wenn ihr ankommt.
Voraussetzung: Home Assistant Companion App auf dem Smartphone, damit HA euren Standort kennt. Die App erstellt automatisch eine person-Entity (person.philipp) die zwischen home und not_home wechselt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | alias: "Niemand zuhause → Heizung Abwesenheit" trigger: - platform: state entity_id: group.alle_personen # oder: person.philipp to: "not_home" for: minutes: 5 action: - service: climate.set_temperature target: entity_id: climate.better_thermostat_wohnzimmer data: temperature: 16 --- alias: "Jemand kommt nach Hause → Heizung vorwärmen" trigger: - platform: state entity_id: group.alle_personen to: "home" action: - service: climate.set_temperature target: entity_id: climate.better_thermostat_wohnzimmer data: temperature: 21 hvac_mode: heat |
Wer mehrere Personen hat, legt eine group-Entity an (Einstellungen → Helfer → Gruppe), die alle Personen-Entities enthält. Die Gruppe wechselt auf home, sobald eine Person zuhause ist.
11. Troubleshooting
| Problem | Ursache | Lösung |
|---|---|---|
| Thermostat heizt weiter obwohl HA „aus“ anzeigt (Aqara E1) | Bekannter Bug system_mode off | Better Thermostat nutzen, oder Solltemperatur auf 5 °C statt system_mode off |
| Thermostat reagiert träge / Verzögerung 5+ Min. | Schlechte Zigbee-Mesh-Abdeckung | Zigbee-Router-Gerät (z. B. Sonoff ZBMINI) in der Nähe platzieren |
| Aktuelle Temperatur stimmt nicht mit Raumtemperatur überein | Thermostat misst Wärme vom Heizkörper selbst | Externen Temperatursensor einbinden + Better Thermostat |
| Thermostat nach Z2M-Umbenennung nicht mehr sichtbar in HA | Alte Entity-IDs noch im Cache | HA-Cache leeren: Entwicklerwerkzeuge → YAML → Konfiguration neu laden |
| Ventilkalibrierung schlägt fehl / Thermostat dreht dauerhaft | Thermostat wurde ohne Ventilkopf kalibriert | Thermostat abmontieren, zurücksetzen, neu montieren und neu kalibrieren |
| Better Thermostat erscheint nicht in HA nach Installation | HA-Neustart nach HACS-Download nicht erfolgt | HA vollständig neu starten, danach Integration hinzufügen |
12. FAQ
Funktionieren Zigbee-Thermostate auch ohne Zigbee-Hub, nur mit Zigbee2MQTT?
Ja – Zigbee2MQTT ist kein Hub, sondern läuft direkt in Home Assistant als Add-on. Ihr braucht nur einen Zigbee-USB-Stick (z. B. Sonoff Dongle Plus) und keinen separaten Hub. Der Aqara E1 benötigt offiziell einen Aqara Hub, funktioniert aber problemlos direkt über Zigbee2MQTT.
Kann ich smarte Thermostate mit einer Fußbodenheizung nutzen?
Heizkörperthermostate (TRV-Köpfe wie Sonoff TRVZB oder Aqara E1) passen nur auf Heizkörperventile. Für Fußbodenheizungen braucht ihr spezielle Zigbee-Unterputz-Aktoren (z. B. Heatmiser neoStat oder Salus SP600) oder analoge Thermostate, die von einer Zigbee-Steckdose geschaltet werden.
Tado X vs. Zigbee: Was ist besser für Home Assistant?
Tado X integriert sich über Matter in HA und ist einfacher einzurichten – aber Funktionen wie Geofencing, Auto-Assist und der volle Funktionsumfang erfordern die Tado-Cloud und ein Abo (Tado+ ab ~3 €/Monat). Zigbee-Thermostate laufen vollständig lokal, ohne Cloud und ohne laufende Kosten. Für technisch versierte HA-Nutzer empfehle ich Zigbee.
Wie viele Thermostate kann ich an einem Zigbee-Koordinator betreiben?
Ein Sonoff Zigbee Dongle Plus unterstützt bis zu 50 direkt verbundene Geräte (und theoretisch bis zu 200+ mit Router-Geräten im Mesh). Für eine typische Wohnung mit 5–10 Thermostaten ist das kein Problem. Wichtig: Batteriebetriebene Thermostate sind End-Devices, keine Router – für große Netzwerke fügt ihr stationäre Zigbee-Geräte (Steckdosen, Schalter) als Router-Knoten hinzu.
Stört das Klackern des Aqara E1 im Schlafzimmer?
Ja, der Aqara E1 ist durch sein proportionales Ventil hörbar – ein leises, aber wahrnehmbares Geräusch bei Temperaturänderungen. Im Schlafzimmer empfehlen viele Nutzer daher den Sonoff TRVZB, der durch seine On/Off-Mechanik leiser ist. Mit Better Thermostat und einer hohen tolerance (z. B. 1 °C) schaltet das Ventil zudem seltener, was den Geräuschpegel deutlich reduziert.
Kann ich den Heizplan mit Urlaub-Modus kombinieren?
Sehr gut sogar. Legt einen input_boolean.urlaub-Helfer an und fügt allen Heizplan-Automationen eine Condition hinzu: condition: state, entity_id: input_boolean.urlaub, state: 'off'. Bei aktiviertem Urlaubs-Modus laufen keine Heizautomationen mehr und der Thermostat hält Frostschutztemperatur (5 °C). Per Smartphone-App könnt ihr den Modus von unterwegs ein- und ausschalten.







