Heizungssteuerung ist in aller Munde. Als Besitzer einer FRITZ!Box habe ich mir also ein paar FRITZ!DECT 301 Thermostate der Firma AVM zugelegt, um meine Heizung sparsamer zu machen.

Und dann bin ich dummerweise auf Home Assistant aufmerksam gemacht worden, mit dem man die etwas spartanischen Möglichkeiten der Thermostate gewaltig aufbohren kann.

Begleitet mich auf meiner Reise in den Kaninchenbau.

FRITZ!DECT verstehen

Bei der Steuerung der Thermostate ist wichtig zu wissen, dass der Home Assistant (wie auch die FRITZ!Box selber) nur in festen Intervallen Aufträge an die Thermostate übertragen kann. Im schlimmsten Fall dauert es bis zu 15 Minuten, bis euer Auftrag dort angekommen ist. Wenn ihr also Automatisierungen oder eine Steuerung bastelt, müsst ihr etwas Vorlauf in Kauf nehmen.

Meine Philosophie bei der Integration des Home Assistant war wie folgt:

  1. Die Zeitpläne der Thermostate werden primär über die FRITZ!Box gesteuert. Diese Zeitpläne werden punktgenau vom Thermostat ausgeführt.
  2. Der Home Assistant verbessert diese Zeitpläne um Ausnahmen oder zusätzliche Szenarien. In jedem Szenario müsst ihr aber (neben dem oben erwähnten Vorlauf) bedenken, dass der nächste in der FRITZ!Box hinterlegte Schaltpunkt wieder den Thermostat zurücksetzen wird. Das kann aber auch sehr praktisch sein, zum Beispiel als verlässlicher Reset. Beispiele dafür sind Szenarien wie „Heute ist länger Betrieb im Wohnzimmer“ oder „An Arbeitstagen kann die Heizung in der Küche früher starten“.
  3. Bei anderen Einsatzideen kann die Koordination zwischen FRITZ!Box und Home Assistant zu kompliziert werden. Hier löscht man einfach die Zeitpläne in der FRITZ!Box und steuert nur noch über den Home Assistant. Beispiel dafür ist die Heizung im Büro, die nur an Arbeitstagen geschaltet werden soll – oder wenn ich außerhalb der Arbeitszeiten meinen Rechner eingeschaltet habe. Hier können aber zumindest die Vorlagen in der FRITZ!Box helfen, die man aus dem Home Assistant dann triggern kann.

Regler verbessern

Nach der Installation wird man von den etwas überzüchteten Heizkörperreglern in der Oberfläche des Home Assistant begrüßt. Meine Regler sollen nur aus drei Teilen bestehen:

  1. Dem eigentlich Temperatur-Regler (verbunden mit der Anzeige des aktuellen Modus und der aktuell gemessenen Temperatur),
  2. einem Knopf für den Spar-Modus,
  3. und einem Knopf für den Komfort-Modus.

Das ist tatsächlich schön konfigurativ zu lösen…

…oder mit dem folgendem YAML als schnelles Rezept für das Dashboard:

# Replace all occurences of `wohnzimmer` with your thermostat's identifier
type: thermostat
features:
  - style: icons
    preset_modes:
      - eco
      - comfort
    type: climate-preset-modes
entity: climate.wohnzimmer

(Update 2024–02: Die neuen Konfigurationsmöglichkeiten des Home Assistant haben den Einbau weiterer Knöpfe deutlich vereinfacht.)

Temperatur am Thermostat anzeigen

Durch den Home Assistant werden die FRITZ!DECT 301 Thermostate folgerichtig als Thermostate erkannt. Tatsächlich beinhalten sie aber auch einen Temperatur-Sensor, den man mit etwas Bastelei auch im Dashboard anzeigen kann.

Mit dem Home Assistant Community Add-on: Visual Studio Code kann die configuration.yaml um die folgenden Zeilen erweitern werden:

# Converting thermostats into thermometers
# Replace all occurences of `wohnzimmer` with your thermostat's identifier
template:
  - sensor:
      - name: "Wohnzimmer Heizung Temperatur"
        unique_id: wohnzimmer_heizung_temperatur
        state: "{{ state_attr('climate.wohnzimmer', 'current_temperature') }}"
        unit_of_measurement: "°C"
        device_class: temperature

Danach können diese Sensoren im Dashboard angezeigt werden:

# Replace all occurences of `wohnzimmer` with your thermostat's identifier
type: gauge
entity: sensor.wohnzimmer_heizung_temperatur
min: 10
max: 32
severity:
  green: 21
  yellow: 23
  red: 25

Urlaubsmodus sichtbar machen

Die FRITZ!DECT 301 Thermostate können in einen Urlaubsmodus geschickt werden – ein Zustand, der im Home Assistant ebenfalls ausgelesen werden kann. Besonders luxuriös geschieht das mit einem eigenen Binär-Sensor.

Mit dem Home Assistant Community Add-on: Visual Studio Code kann die configuration.yaml um die folgenden Zeilen erweitern werden:

# Replace all occurences of `wohnzimmer` with your thermostat's identifier
template:
  - binary_sensor:
      - name: "Wohnzimmer Heizung Urlaubsmodus"
        unique_id: wohnzimmer_heizung_urlaubsmodus
        state: "{{ state_attr('climate.wohnzimmer', 'holiday_mode') }}"
        icon: "mdi:bag-checked"

Analog lässt sich auch der Sommermodus der Heizung in der configuration.yaml als eigener Sensor einrichten:

# Replace all occurences of `wohnzimmer` with your thermostat's identifier
template:
  - binary_sensor:
      - name: "Wohnzimmer Heizung Sommermodus"
        unique_id: wohnzimmer_heizung_sommermodus
        state: "{{ state_attr('climate.wohnzimmer', 'summer_mode') }}"
        icon: "mdi:hvac-off"

Regelung für das Home Office

In der FRITZ!Box hatte ich die Steuerung meiner Büro-Heizung bisher stumpf an die Wochentage Montags bis Freitag gekoppelt. So lief die Heizung auch, wenn ein Feiertag das eigentlich unnötig machte. Höchste Zeit also für den Arbeitstag-Sensor.

Mit dem Home Assistant Community Add-on: Visual Studio Code kann die configuration.yaml um die folgenden Zeilen erweitern werden:

# Workday sensor
binary_sensor:
  - platform: workday
    country: DE
    province: NI # Niedersachsen, Lower Saxony

Der Home Assistant kann nun die Programmierung der FRITZ!Box verbessern. Dafür wird in der FRITZ!Box die Heizung zu 100% in den Spar-Modus geschickt, weil ab sofort der Home Assistant die Heizung auf den Komfort-Modus schaltet, wenn ein Arbeitstag vorliegt.

Vorher legen wir uns einen Zeitplan an, den wir in folgende Automatisierung einbinden:

# Replace all occurences of `office` with your thermostat's identifier
# `device_id` has to be assigned via GUI
alias: "Home Office"
description: Only trigger comfort mode on work days
trigger:
  - platform: state
    entity_id:
      - binary_sensor.office_heizung_home_office
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: binary_sensor.workday_sensor
        state: "on"
      - condition: state
        entity_id: binary_sensor.office_heizung_urlaubsmodus
        state: "off"
action:
  - if:
      - condition: state
        state: "on"
        entity_id: binary_sensor.office_heizung_home_office
    then:
      - device_id: b46c4851235fb8c90f4a659b6e9a953a
        domain: climate
        entity_id: climate.office
        type: set_preset_mode
        preset_mode: comfort
    else:
      - device_id: b46c4851235fb8c90f4a659b6e9a953a
        domain: climate
        entity_id: climate.office
        type: set_preset_mode
        preset_mode: eco
    enabled: true
mode: single

Hier können aber auch die Vorlagen in der FRITZ!Box hilfreich sein, um aus dem Home Assistant in der FRITZ!Box komplexere Szenarien auslösen zu können.


Und hier gibt es weitere Artikel zum Thema · · · · · · .

Zuletzt geändert am

fboës - Der Blog