Heizungssteuerung Teil 2

Hier nun Teil zwei auf meinem Weg zur smarten Heizungssteuerung.

Zunächst habe ich mal einige Helper angelegt:

Heizungssteuerung Teil 2
  • HZ_Nachttemperatur ist als Helper für die Nachtabsenkung.
  • HZ_Tagtemperatur ist als Helper für die Tagestemperatur.
  • HZ_Solltemperatur Wohnzimmer ist als Helper für die Solltemperatur für die Heizkörper im Wohnzimmer.
  • HZ_Solltemperatur Bad ist als Helper für die Solltemperatur für die Heizkörper im Bad.
  • HZ_Steuerung_An_Aus hebt die Automatisierung auf.
  • HeizungSzenen sind meine unterschiedlichen Anforderungen an die Heizungssteuerung:
    • – Di % Do in Köln, meine standard Tage im Büro
    • – Nachtabsenkung -> Nachtabsenkung z.B. wg. Urlaub
    • – Zuhause -> alles auf Tagtemperatur
    • – in Köln außergewöhnlicher Tag im Büro

Die Auswahl der Szene steuert dann den Ablauf der Heizungssteuerung.
Z.B. Di & Do in Köln, dann geht morgens um 6:00Uhr alles auf Tagtemperatur, Di & Do schaltet die Heizung aber in der BüroZeit (7:00-17:00Uhr) auf Nachttemperatur.

Eine Automatisierung reagiert auf die Auswahl im DropDown der Szenen und dann hat jede Szene eine Automatisierung, die je nach Auswahl an- oder ausgeschaltet wird. Zum Teil wird die Automatisierung dann auch gestartet, um die gewollten Temperaturwerte einzustellen.

Yaml Code Heizungssteuerung

Wie oben erwähnt kommt dann je Szene eine Automatisierung, hier die „Di & Do in Köln“.

Heizungssteuerung Teil 2

Jede der Automatisierung für eine Szene beginnt mit Triggern, die meine standard Zeiten abdecken.

Ich bin dienstags und donnerstags im Büro, dann muss ich „nur“ ins Bad und komme dann im Nachmittag zurück. An den Tagen lasse ich das Bad hochfahren morgens und zum Feierabend mache ich alle Heizungen wieder an. In der Zwischenzeit steht alles auf Nachtabsenkung.
An den anderen Tagen bin ich im HomeOffice, da muss auch der Wohnraum angeheizt werden. Am Wochenende stehen wir später auf, da beginnt das Heizen erst um 8:00Uhr. Gegen 23:00Uhr gehen wir normal schlafen, also fährt die Heizung um 22:00Uhr runter.
Diese Trigger sind in allen Automatisierungen für die Heizungsszenen gleich, die Aktionen unterschieden sich.

Heizungssteuerung Teil 2

Trigger können IDs haben, die dann wieder von den Aktionen ausgewertet werden, so kann die Aktion je nach Uhrzeit angesteuert werden und über eine Bedingung noch nach Wochentag(en) unterschieden werden.

Das ist das Grundgerüst, jetzt müssen „nur“ noch je nach Bedingung die TemperaturSoll-Werte für alle Thermostate gesetzt werden.

Heizungssteuerung Teil 2

Damit ich die Steuerung ausschalten und „per Hand“ alles steuern kann, gibt es den Helper HZ_Steuerung_An_Aus, den die Automatisierung prüft. Ist HZ_Steuerung AN, werden die Automatisierungen und damit die Zeitsteuerungen ausgeführt, wenn HZ_Steuerung aus ist, kann über die Helper HZ_SollTempertur & HZ_Nachttemperatur die Steuerung manuell erfolgen.

Yaml Code Di & Do in Köln

Jetzt kommt das Offset noch einmal ins Spiel, wenn die Solltemperatur für den Raum nicht gleich der gemessenen Temperatur im Raum ist, müssen alle Thermostate an den Heizkörpern höher eingestellt werden.
Den Offset pro Raum berechne ich über einen Template Sensor, der in der configuration.yaml definiert ist.

YAML Code OffSet Sensor

template:

  • sensor:
    • name: „Bad1OGZimmerOffset“
      state: >
      {{ (states.input_number.HZ_Solltemperatur_Bad1OG.state | float) – (states.sensor.bad_1og.state | float ) }}
    • name: „WohnZimmerOffset“
      state: >
      {{ (states.input_number.hz_solltemperatur_wohnesszimmer.state | float) – (states.sensor.wohnzimmer.state | float ) }}

Das Thermostat, welches die Heizung an sich steuert, hängt im Wohnzimmer. Die Zieltemperatur dieses Thermostates muss >= der Solltemperatur des Wohnzimmers sein, damit die Heizung überhaupt anspringt. Daher schaue ich in der IF-Schleife, ob einer der OffSet-Werte > 0,1 ist, also Wärme angefodert wird. Dann setzte ich die Solltemperatur für das Heizungsthermostat auf WohnzimmerSoll +2. Wird keine Wärme angefordert (alle OffsetWerte < 0,1) setzt ich das Heizungsthermostat auf die WohnzimmerSollTemoeratur. So erreiche ich, dass die GasHeizung nur dann anspringt, wenn auch Wärme angefordert wird.

YAML Code Offset Automatisiserung

Schreibe einen Kommentar