Meine persönliche Heizungssteuerung und wie ich diese bei mir umgesetzt habe

RudiP

Well-known member
Heute Basteln wir uns eine Heizungssteuerung, die nach Zeitplan die gewünschte Temperatur an die Heizkörperthermostate übermittelt.

Das sieht bei mir so aus.
1711969596483.png
Die einzelnen Button „Büro“, „Schlafzimmer“ usw. repräsentieren meine Räume, in denen eine Heizung mit regelbarem Thermostat ist.
Ich habe in fast jedem Raum noch ein extra Thermometer. Simpel, billig, einfach, 2 Stück für 15,00 € bei Wish bestellt. Die laufen entweder mit WLAN oder Zigbee, da muß man ein wenig aufpassen beim Bestellen. Aber die müssen nix können, außer Temperatur melden und das tun sie.
Dementsprechend wir in den Button die Temperatur der Thermometer angezeigt.

Hintergrund ist, dass wir die Temperatur im Raum haben wollen, wo wir uns aufhalten. Wenn ich also 3 Meter von er Heizung weg sitze und wie bei mir, alle Türen offen sind, weil die Katzen sonst nen Anfall bekommen, dann steht der Thermostat auf 20 Grad, aber 3 Meter entfernt sind es nur noch 18 Grad.
Hier soll später eine automatische Offset Regelung eingebaut werden. Sprich, wenn ich die Wunschtemperatur auf 20 Grad stelle, dann sollen die Heizungsthermostate so lange in kleinen Schritten erhöht werden, bis das Thermometer diese Temperatur anzeigt.
Aber vorerst begnügen wir uns damit, dass die Thermostate auf die gewünschte Temperatur eingestellt werden.

Wie wir im Bild zu sehen ist, haben wir rechts einige Schieberegler, womit wir die ECO und die Heiztemperatur einstellen können. Ich habe mich für diese Variante entschieden, da ich auch mal schnell eine Raumtemperatur anheben will. Ist es draußen 5 bis 10 Grad, reicht eine Temperatur von 18 Grad locker aus. Geht die Außentemperatur aber gegen 0 Grad, möchte man auch gerne mal ein Grad mehr haben, was man hier dann schnell einstellen kann.

Und dann sehen wir noch den fetten Button „Heizung aus“. Damit wird a) die Automatisierung unterbrochen, so dass diese keine neue Temperatur an die Thermostate schickt und b) werden die Thermostate auf AUS gestellt, damit die Heizung auch sicher friedlich ist.

Ich würde auch gerne eine Steuerung einbauen, die dem Heizkessel unten Befehle geben kann, also z.B. auf Sommerbetrieb umschaltet oder die Heizungspumpe deaktiviert, aber ich habe hier eine Rapido Heizung mit Comformatic TB Raumthermostat mit Fernbedienung und da habe ich noch keine Möglichkeit gefunden, die in HA einzubinden.
 
Das Dashboard für jeden Raum
So, das war aber noch nicht alles, was die Heizungssteuerung kann.
Manchmal hat man den Wunsch, weil es einen etwas fröstelt, mal eben die Heizung ein oder zwei Grad höher zu stellen, ohne dass man in die Regelung eingreift und diese dauerhaft verstellt.
Dafür sind die Buttons mit den Räumen oben gedacht. Klicken wir z.B. auf BÜRO, erscheint folgende Unterseite.
1711969641628.png
Links sehen wir oben ein „Thermostat Büro“. Nicht wundern, dass der eigentlich nicht viel anzeigt, der ist aber wichtig, weil wir darüber den Zeitplan aufrufen können, ohne dass wir umständlich über die Einstellungen in HA gehen müssen und uns den richtigen Zeitplan in den Helfern raus suchen müssen. Aber dazu später mehr.

Darunter wird uns angezeigt, wann laut Zeitplan das nächste mal ein Ereignis ausgelöst würde, hier also um 14:30.
Die gelbliche Farbe soll anzeigen, das die Heizung bzw. die Thermostate gerade im Heizbetrieb wären, wenn sie nicht AUSgeschaltet wären. Hier muß ich mal bei Gelegenheit schauen, ob man das nicht besser anzeigen kann.

Darunter wird uns die aktuelle Temperatur am Heinzungsthermostat angezeigt und darunter nochmal Regler, die unsere ECO oder Heiztemperatur nur für diesen Raum einstellen.

Ich weiß, doppelt gemoppelt, aber für jeden Geschmack halt entweder auf der Hauptseite eine zentrale Einstellmöglichkeit oder in jedem Raum einstellbar. Jeder, wie er es mag.

So, in der Mitte haben wir dann eine Karte, mit der wir die aktuelle Steuerung jederzeit überschreiben können. Zur Zeit ist das Thermostat aus und zeigt uns eine Temperatur von 17 Grad an. Ich kann hier jetzt z.B. auf 18 Grad stellen. Dann geht bei nächster Gelegenheit (AVM Thermostate schalten nur alle 15 Minuten) das Thermostat auf 18 Grad und heizt den Raum auf.
ABER, nur so lange, bis nach Zeitplan wieder was anderes eingestellt wird.
Wenn einem also mal eben was fröstelt und man es gerne mal eben was wärmer hätte, kein Problem. Und um das wieder zurücksetzen muß man sich nicht kümmern, das geschieht automatisch nach Zeitplan.

Rechts sehen wir dann noch die Anzeige meiner billig Raumthermostate. Temperatur, Luftfeuchte und Batteriestand. Ist zur Zeit eben nur zur Kontrolle, wie warm ist es an meinem Platz, später soll da aber eine Regelung rein, die den Heizkörperthermostat so lange regelt, bis meine Wunschtemperatur erreicht ist.
 
Zuletzt bearbeitet:
Zeitplan Einstellen
So, werfen wir noch einen Blick auf den Zeitplan.
Wenn wir links oben auf den Button „Thermostat Büro“ klicken, geht erst mal dieses Fenster auf.
1711969672724.png

Wir sehen hier, wann der Heinzugsthermostat An oder Ausgeschaltet wurde. So kann man kontrollieren, dass die Automatisierung auch richtig arbeitet.
Jetzt klicken wir einmal das Zahnrad rechts oben an und landen dann endlich im Zeitplan.
1711969697047.png
Ja, ich finde den auch nicht wirklich toll, geschweige den übersichtlich, aber ist noch das Beste, was ich in HA bisher finden konnte.

Eine Einstellmöglichkeit, wie in der AVM Fritz Box wäre super.
1711969717756.png
Aber leider kann ich kein Phyton und mir sowas damit nicht selber zu Programmieren. So muß ich also erst mal mit dem Leben, was wir haben.

Zeitplan einstellen ist einfach. Den Bereich, wann geheizt werden soll durch ziehen mit der Maus markieren. Der wird dann hellblau dargestellt. Alle anderen Bereiche sind dann ECO Betrieb. Geschaltet wird immer nur beim Wechsel von Heizen auf ECO oder umgekehrt.
Man kann auch mehrere Schaltzeiten am Tag festlegen, aber nicht mehr als 2 Temperaturen anlegen.



So, das wars dann auch schon zur Vorstellung meiner Heizungssteuerung.
Ich weiß, es gibt einige Integrationen, die das auch alles können, aber entweder waren die mir zu Unübersichtlich, gerade in Bezug auf den Zeitplan oder zu kompliziert in der Bedienung oder es gab immer irgendwas, was mir nicht gefallen hat.
Mein Ansatz hier ist mit Sicherheit nicht Perfekt und kann noch weiter verbessert werden, aber genau das ist der Punkt. Ich kann ihn verändern und weiter meinen Wünschen anpassen.



Wie wir das nun alles hinbekommen, das werde ich euch in den nächsten Tagen Schritt für Schritt näherbringen.

Eine bitte. Wenn ihr fragen habt, macht einen neuen Thread auf. Ich würde das hier gerne, wenn es
fertig ist, als komplette Anleitung einstellen lassen und da wären zwischen Post und Nachfragen etwas unübersichtlich.



Danke euch
 
Zuletzt bearbeitet:
Dashboard und die Scripte
Kommen wir nun zu dem Teil, der etwas Arbeit bedeutet. Das Erstellen von unserem Dashboard und den Kacheln.
Zuerst machen wir ein neues Dashboard. Dazu versetzen wird unser aktuelles Dashboard, egal auf welcher Seite ihr gerade seid, in den Bearbeitungsmodus, also den Stift rechts oben auswählen. Dann ganz rechts das PLUS, um eine neue Dashboard Seite zu erstellen. Titel vergeben (Gas Heizung, Heizungsregelung, oder was immer ihr wollt)
Wer will, kann auch nur ein Symbol einstellen. Ansichtsart könnt ihr euch auch einstellen, wie ihr wollt, ich habe erst mal die Standard Rasteransicht.

Dann einmal auf Speichern.

Jetzt wollen wir ja auch Unterseiten haben, wo wir noch Sachen für jeden Raum anzeigen können.

Also wieder das PLUS antippen, Tittel vergeben, am besten den Namen des Raum und dann unten den Schalter für „Unteransicht“ aktivieren. Damit ist diese Seite in der normalen Dashboard Ansicht nicht sichtbar, kann aber aufgerufen werden oder halt im Editiermodus ist diese zu sehen.

Das macht ihr dann mit jedem Raum, den ihr Darstellen wollt.

Jetzt erstellen wir uns erst einmal das Button Feld, über das wir die ganzen Unterseiten aufrufen können.

Wir gehen auf „Karte hinzufügen“ und suchen nach der Raster Karte. Titel würde ich frei lassen. Anzahl der Spalten ist auch Geschmackssache, ich habe bei mir 3 gewählt. Karten als Quadrate darstellen finde ich in dem Fall passend, ist aber auch Geschmackssache.

Nun erstellen wir eine erste Kachel Typ Button. Bei Entität wählen wir entweder das zusätzliche Raumthermometer oder den Heizungsthermostat. Je nachdem, welche Temperatur ihr in dem Button angezeigt bekommen wollt.
Bei Name geben wir den Raumnamen ein.
Weiter unten bei „Tipp-Aktion (optional) einmal anklicken und „Navigieren“ auswählen. Dann erscheint darunter ein neues Feld, wo ihr ein Dashboard zum Anzeigen lassen auswählen könnt. Hier dann eben die Unteransicht auswählen, die später die Daten zu eurem Raum anzeigen soll.
1712050268364.png

So, und das wiederholen wir für jeden Raum, der wir hier steuern wollen.

Wenn ihr jetzt oben auf „fertig“ klickt, könnt ihr schon mal ein wenig rum spielen. Klickt auf einen Raum und schwupps, erscheint die NOCH leere Seite dieses Raum. Oben links den Zurück Pfeil und ihr seid wieder auf unserer Heizungssteuerung.

So, für alles weitere kommen wir nun nicht mehr drum herum, Code zu schreiben, Helfer zu erstellen oder Automatisierungen zu erstellen. Das wird ein wenig Aufwendig werden, weil teilweise recht viel erstellt werden muß, aber ich Verspreche euch, es wird nicht kompliziert.

Erstellen wir uns zunächst einen Helfer, der für die Unterbrechung der Automatisierung da ist, wenn wir die Heizungsthermostate ausschalten.

Helfer erstellen. Typ Schalter. Und den nennen wir jetzt einfach mal „Heizung aus“
Das wars auch schon.
Gehen wir zurück zu unserem Dashboard für die Heizungssteuerung.

Dort erstellen wir eine neue Kachel „Entität“, als Entität dort wählen wir unseren gerade erstellen Helfer „Heizung aus“ aus, können noch einen Namen vergeben, wenn ihr wollt und unten bei „Symbole je nach Zustand einfärben“ aktivieren. Einmal Speichern und fertig.

Ihr könnt jetzt zwar schon auf diesem Schalter rumklicken, aber es passiert noch nicht viel.
Der Schalter hat ja zwei Funktionen. Wenn er auf AUS steht, soll die Abarbeitung des Zeitplan unterbrochen werden UND, wenn wir den auf AUS switchen, sollen die Thermostate auch auf AUS gehen, sofern diese den eine solche Funktion unterstützen.

Dazu müssen wir uns nun eine Automatisierung erstellen.
Ich habe meine „Heizungsthermostate ausschalten“ genannt, damit man auch in 2 Jahren noch weiß, was diese Automatisierung eigentlich tun soll.
Code:
alias: Heizungsthermostate ausschalten.
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.heizung_aus
    to: "off"
    from: "on"
condition: []
action:
  - service: script.heizungsthermostate_ausschalten
    data: {}
mode: single
Wie wir sehen, macht diese Automatisierung nichts anderes, als auf die Betätigung unseres Schalter zu reagieren und dann ein Script „Heizungsthermostate ausschalten“ aufzurufen.
Ich weiß, nicht toll, könnte man eventuell auch direkt in der Automatisierung mit unterbringen, aber so habe ich den Vorteil, das ich das Ausschalten der Thermostate später auch noch einmal von anderer Stelle aus ansteuern kann, was bei einer Regelung innerhalb der Automatisierung nicht möglich wäre.

So, hier einmal der Visual Editor meines Script:
1712050405505.png

Und der Code:
Code:
alias: Heizungsthermostate ausschalten
sequence:
  - device_id: cba1296d110265ae227c952ce8a4c675
    domain: climate
    entity_id: 33ef07eaabbc6ba5b05315f01cbfbfe2
    type: set_hvac_mode
    hvac_mode: "off"
  - device_id: c547bffa365f76951b47a58c5a60a1bb
    domain: climate
    entity_id: ec804fc8b5b37c56484721202ab648fe
    type: set_hvac_mode
    hvac_mode: "off"
  - device_id: 86439044d5273714288d3758525df2da
    domain: climate
    entity_id: 9c807b5c92241f7bd04ccb9448ef5121
    type: set_hvac_mode
    hvac_mode: "off"
  - device_id: d9251dcb34b1382c8bc4ed6d20150ef9
    domain: climate
    entity_id: 07eb89e0cb3d1e0a1d6deae221e7b66c
    type: set_hvac_mode
    hvac_mode: "off"
  - device_id: 2e0ea694ea688faab41dac8b211aee5f
    domain: climate
    entity_id: af34c04e41112e651a2620b811d16895
    type: set_hvac_mode
    hvac_mode: "off"
  - device_id: c1e4b9196bd6942b628703cb26e44d9e
    domain: climate
    entity_id: 3a06188848adb86010b7dae6744e3015
    type: set_hvac_mode
    hvac_mode: "off"
mode: single

Wie ihr seht, Zahlen anstatt Gerätebezeichnung. Liegt leider daran, dass man hier beim Script nur GERÄT und nicht ENTITÄT wählen kann.
Ich bin mir fast Sicher, dass man das auch anders hinbekommt, so dass einem die Entitäten als Namen angezeigt werden, aber aktuell mag ich das nicht ausprobieren.

Jetzt Speichern wir noch das Script, passen unsere Automatisierung an, damit diese auch dieses Script aufrufen kann.

Das wars erst einmal. Wenn ihr jetzt den Schalter in der Heizungssteuerung auf AUS stellt, sollten nach kurzer Zeit (Bei AVM auch mal 15 Minuten) die Heizungsthermostate AUS gehen.
 
Zuletzt bearbeitet:
Temperatursteuerung
Kommen wir nun zu einem komplizierteren Teil bzw. etwas Aufwendiger, weil viel erstellt werden muß, aber eben auch das Herzstück der Steuerung darstellt. Es geht um diese Temperatursteuerung.
1712068623551.png

Wir brauchen für jeden Regler, also jeden Heizungsthermostaten 2 Helfer. Einer, der die ECO Temperatur aufnimmt und einen, der die Heizen Temperatur aufnimmt.
Wir wechseln also in die Einstellungen -> Geräte & Dienste und oben dann Helfer. Dann rechts unten
„Helfer Erstellen“. Dann ploppt ein neues Fenster auf.
1712068655738.png

Hier wählen wir „Nummer“. Als Namen dann den Raumnamen mit nachfolgendem ECO.“ Also z.B. Badezimmer ECO. Ich habe noch ein „temp“ vorangestellt, um deutlich zu machen, wofür dieser Helfer ist. Also „temp.Badezimmer.ECO“
Bei Maximalwert könnt ich 30 für 30 Grad eintragen, mehr wird es bei uns sicher nicht werden oder halt den Wert, den euer Thermostat max. kann.
Anzeigemodus ist Schieberegler und die Schrittgröße 1. Weil wir wohl meistens in 1 Grad Schritten die Temperatur verändern bzw. die Heizungsthermostate 0,5 Grad Schritte gar nicht können. Könnt ihr aber anpassen, wie ihr wollt.
Dann einmal rechts unten auf Erstellen.
Jetzt brauchen wir für diesen Raum ja noch einen Regler, der die Heizen Temperatur aufnimmt. Also wieder Helfer erstellen, als Name nehmen wir den Raumnahmen OHNE ECO, den rest, wie oben.

Das ganze wiederholen wir für alle Räume, in denen wir regelbare Thermostate haben. Bei mir sind es 6 Räume, also habe ich nun 12 Helfer.
Nun wechseln wir in unser Dashboard mit der Heizungsregelung. Da einmal auf Karte hinzufügen und der Kartentyp ist „Entitäten“. Titel oder nicht bleibt euch überlassen, ich habe keinen vergeben.
Unten bei den Entitäten tragen wir nun unsere soeben erstellten Helfer ein. Und zwar alle nacheinander. Die Reihenfolge kann später immer noch verändert werden.

Kleiner Tip:
Wenn ihr Card-mod aus HACS installiert habt, könnt ihr im Code Editor folgendes eingeben:
Code:
card_mod:
  style: |
    ha-card {
      --mdc-icon-size: 16px;
    }
    .card-content div {
      margin-top: 0px !important;
      margin-bottom: 0px  !important;
      height: 31px;
    }
    .card-content {
      padding-top: 0px;
    }
Einfach diesen Code im Code Editor unten dran eingeben und speichern, das wars.
Damit wird das ganze etwas kompakter und nimmt nicht so viel Platz auf dem Dashboard ein.

So, damit wäre das Einstellen der Wunschtemperatur schon mal möglich, aber wir brauchen ja noch etwas, was uns dann auch die Temperatur an die Thermostate schickt und noch den Zeitplan.
 
Zeitplan
Fangen wir mit dem Zeitplan an, sonst wird es schwierig mit dem Erstellen der Automatisierung.
Wir gehen also in die Einstellungen -> Geräte & Dienste und wählen oben wieder Helfer.
Dann wieder rechts unten Helfer Erstellen und ganz runter scrollen, bis Zeitplan.
1712068778201.png
Vergebt einen Namen. Ich habe hier „Thermostat Badezimmer“ genommen, weil wir für jeden Raum einen Zeitplan erstellen müssen. Außer ihr wollt immer alle Räume gleich beheizen, dann würde ein Zeitplan reichen.

Manchmal kommt es vor, dass nach dem klick auch Zeitplan nichts passiert. Bei mir zickt dann der Browser rum. Einmal STRG + F5 drücken löscht den Cache, danach funktioniert es wieder.

So, wenn wir nun sagen, dass wir diesen Raum von 09:00 Uhr bis 13:00 Uhr beheizen wollen, dann setzen wir die Maus bei 08:00 Uhr bzw. 08:30 Uhr an und ziehen diese runter bis 13:00 Uhr.
Warum eine bzw. eine halbe Stunde früher? Nun, die Heizung braucht eine Weile, um einen Raum auf zu heizen. Meistens reicht 1 Stunde. Habt ihr einen kleinen Raum, reichen 30 Minuten, ist es ein großer Raum, kann man entsprechend früher mit dem Heizen anfangen.
Wenn ihr eine Zeit eingeben wollt, die weiter geht, als die aktuelle Anzeige, dann einfach die Maustaste los lassen, nach unten scrollen, so das man den letzten Zipfel vom Zeitplan noch sehen kann und die Maus so an der unteren Linie des blauen Feldes platzieren, bis die Maus einen AufAb Pfeil bildet, dann kann man den Bereich weiter verschieben.

Will man einen Bereich löschen, dann einfach da drauf klicken und löschen bestätigen.

Ihr könnte auch mehrere Zeitpläne für einen Tag erstellen, also z.B.

00:00 bis 08:00 ECO
08:00 bis 13:00 Heizen
13:00 bis 19:00 ECO
19:00 bis 23:00 Heizen
23:00 bis 00:00 ECO

Dazu müssen wir nur die beiden Heiz Zeiten markieren, alles dazwischen ist automatisch ECO.

So, dann wieder auf Erstellen und auf geht’s, für jeden Raum so einen Zeitplan erstellen.
 
Die Automatisierung
Kommen wir zur Steuerung des ganzen durch unsere Automatisierung.
Wir brauchen für jeden Raum 2 Automatisierungen. Einmal zum Setzen der ECO Temperatur und einmal zum Setzen der Heizen Temperatur.

Also einmal rechts unten auf „Automatisierung erstellen“ klicken, dann auf „Neue Automatisierung erstellen“ und schon kann der Spaß losgehen. :D

Als Namen für die einzelnen Automatisierungen habe ich Setze Temperatur Raumname ECO oder heizen gewählt. Also Setze Temperatur Badezimmer ECO.

Wenn ihr jetzt rechts oben auf die 3 Punkte klickt und „Als YAML bearbeiten“ auswählt, könnt ihr diesen Code hier einfügen:
Code:
alias: Setze Temperatur Badezimmer ECO
description: Stellt die Temperatur am Thermostat nach Zeitplan auf die ECO Temperatur
trigger:
  - platform: state
    entity_id:
      - schedule.thermostat_badezimmer
    to: "off"
condition:
  - condition: state
    entity_id: input_boolean.heizung_aus
    state: "on"
action:
  - service: climate.set_temperature
    target:
      entity_id:
        - climate.badezimmer
    data:
      temperature: "{{ states('input_number.temp_badezimmer_eco')|float }}"
mode: single
Ihr müßt dann nur die Daten einsetzen, die bei euch gelten.

Solltet Ihr andere Namen für Helfer verwendet haben, als ich, dann müßt ihr diese Anpassen.
Ganz wichtig ist „ - service: climate.set_temperature”. Das ist die Entität, mit der ich den Heizungsthermostat in meinem Badezimmer anspreche.
Da wir hier mit Templates arbeiten, kann dies leider nicht im Visual Editor gemacht werden. Aber, dieser Editor hat eine Art Auto Fill. Wenn ihr alles bis zum climate löscht und dann den „.“ setzt, sollten alle eure Entitäten angezeigt werden, die etwas mit climate zu tun haben.

Was macht nun diese Automatisierung ?
Sie wird vom Zeitplan getriggert. Sprich, wenn euer Zeitplan Badezimmer um 09:00 Uhr das Programm heizen starten soll, dann wird auch die Automatisierung „setze Temperatur Badezimmer heizen“ gestartet. Dann wird geprüft, ob der Helfer „Heizung aus“ auf an steht. Das verhindert, das z.B. im Sommer, wenn wir die Heizung nicht wollen, auch keine Temperatur an die Heizungsthermostate gesendet wird.
Bei „Dann mache“ haben wir dann unser Template, welches den Wert von „input_number.temp_badezimmer_komfort“, was unserem Schieberegler auf dem Dashboard entspricht, an das Heizungsthermostat Badezimmer schickt.

So, das sollte es soweit erst mal gewesen sein. Damit sollte eure Heizungssteuerung schon mal voll Funktionsfähig sein. Prüfen könnt ihr das einmal, in dem ihr eine Temperatur von z.B: 25 Grad einstellt, die Automatisierung einmal Ausführen (3 Punkte auswählen und auf Ausführen gehen) und dann mal nach einigen Minuten schaut, ob der entsprechende Heizunsthermostat reagiert hat.



Was noch kommt sind die Dashboards zu den einzelnen Räumen mit Übersteuerung des Zeitplan.
 
Automatische Temperaturregelung mit externem Raumthermometer

Ein deutliches Plus beim Komfort wäre es natürlich, wenn sich die Temperatur der Heizung automatisch erhöht oder verringert, wenn sich die Temperatur, die mit einem externen Thermometer im Raum gemessen wird, verändert.
Wir erstellen uns dazu eine Automatisierung, die bei jeder Temperaturändern unseres Raum Thermometer, ausgelöst wird.
Dazu wählen wir bei Auslöser eine Entität und dann ZUSTAND. Bei Entität tragen wir dann den Sensor ein, der uns die Temperatur vom Raum Thermometer liefert. Alles andere bleibt leer.
Oben bei Auslöser steht dann "Wenn sich Raum Thermometer Temperatur ändert im Status oder in einem Attribut"

Ausgeführt werden soll die Automatisierung aber nur dann, wenn unser Schalter (siehe oben) "Heizung aus" auf eingeschaltet steht. Sprich, im Sommer wird diese Automatisierung nicht ausgeführt, da unsere Heizung dann ja eigentlich aus ist.

Bei Dann mache kommt nun eine Formel zum tragen, die eine Temperatur am Thermostat einstellt, abhängig von unserer Wunsch Temperatur und der aktuellen Raum Temperatur.
Bei "Dann mache" schreiben wir uns folgenden YAML Code.
Code:
service: climate.set_temperature
target:
  entity_id:
    - climate.144036023268627_climate
data:
  temperature: >-
    {{ (states('input_number.temp_buro_komfort')|float  * 2) - states('sensor.buro_temperature')|float }}

climate.144036023268627_climate ist bei mir die Klimaanlage, weil ich im Winter auch mit der heize. Ihr tragt hier bitte die Entität eures Heizkörper Thermostaten ein.

in der Zeile "temperature" wird nun die Wunschtemperatur mit 2 multipliziert und dann die tatsächliche Raumtemperatur davon abgezogen.
Beispiel:

Code:
Wunschtemperatur:  Raum Temperatur:  Heizkörperthermostat

    21                    21                   21
    21                    20,8                21
    21                    20,5                21
    21                    20,4                22
    21                    19,4                23
Wir sehen also, wenn sich die Raumtemperatur um ein halbes Grad verringert, geht die Heizung ein Grad höher.
Sinkt die Temperatur noch weiter, steigt die eingestellte Temperatur am Thermostat noch weiter.
Anders rum gehts aber auch, steigt die Raumtemperatur, sinkt der Wert am Thermostat.

Ich gebe zu, diese Routine ist noch nicht ausreichend getestet, da es aktuell eher zu warm zum heizen ist. Deswegen hatte ich nur mit Simulationen (ein Helfer, den ich einstellen kann, wie ich will) gearbeitet, aber das sah soweit alles prima aus.

Ein weiteres Problem ist natürlich, das wenn wir 20 Grad als Wunschtemperatur einstellen, die Heizung dann auf 21 Grad eingestellt wird, weil es im Raum nur 19 Grad sind, muß es nicht zwangsläufig dazu führen, das wir irgendwann mal die 20 Grad erreichen.
Deswegen kann es notwendig sein, das wir hier noch mit einem Offset arbeiten.
Die Zeile
Code:
  temperature: >-
    {{ (states('input_number.temp_buro_komfort')|float  * 2) - states('sensor.buro_temperature')|float }}
dann um ein +1 erweitern, also
temperature: >-
{{ (states('input_number.temp_buro_komfort')|float * 2) - states('sensor.buro_temperature')|float + 1}}
Damit wird dann zum Heizen benutzte Gerät dann ein Grad höher eingestellt, heizt also mehr und die Wunschtemperatur sollte erreicht werden. Wenn das aber auch nicht reicht, macht halt +2, bis ihr halt eine vernünftige Regelung habt.
 
Zuletzt bearbeitet:
Wäre das umfangreiche Werk nicht eine Idee für die Rubrik "Anleitungen"?
Als normaler Thread geht das irgendwann unter.
Und das wäre schade drum.
 
Ist in Planung, aber dazu muß ich es erst mal fertig bekommen, weil wenn es erst mal in Anleitungen ist, kann ich es nicht mehr Bearbeiten.
Die Offset Steuerung bzw. die Automatik mit dem Raum Thermometer war mir noch wichtig und ich arbeite an einer OpenTherm Lösung, also das ich die Heizungsanlage direkt steuern kann. Es wäre deutlich besser, wenn man mit der Vorlauf Temperatur arbeiten kann, als mit Thermostaten. Aber das dauert sicher noch eine weile.
 
openTherm

Oder „Wie mache ich meine Heizung Smart“​

Ein lang gehegter Wunsch von mir war es, meine Heizung im Keller mal Fernbedienen zu können.
Viele von uns haben sicher so ein kleines Kästchen, meist im Wohnzimmer hängen, wo man die gewünschte Temperatur der Heizung einstellen kann. Meist können diese kleinen Kästen aber noch viel mehr.
Vorlauftemperatur einstellen.
Sommer/Winterbetrieb wählen.
Heiß Wasser Temperatur wählen.

Um mal nur ein paar zu nennen.

Ja, meist reicht es aus, wenn man die Parameter einmal einstellt, aber manchmal wäre es auch toll, wenn man auf manche Werte Fernzugriff haben könnte.
Mit der Bezeichnung meines Bedienteil für die Heizung habe ich mal im Internet gesucht und herausgefunden, dass es „opentherm“ unterstützt. Das ist ein Übertragungsprotokoll, womit die Heizung und das Bedienteil mit nur zwei Drähten untereinander kommunizieren können.

Weiteres suchen im Internet nach „opentherm“ und „Home Assistant“ brachte mich dann zu folgender Seite.
https://community.home-assistant.io...th-full-integration-for-home-assistant/617228

Opentherm gateway/thermostat with full integration for Home Assistant



Oh ja, bitte. Genau sowas will ich haben.
Ich habe mir dann in einem Shop „ESP32/ESP8266 OpenTherm Gateway“ bestellt. 30,00 € ist es mit Wert. Es sind nur wenige Lötarbeiten notwendig, die sollte jeder hinbekommen können.
Mein erster Versuch, nur mit dem 8266 bzw. bei mir ein ESP-Wroom 32 und der „Master OpenTherm Shield“ Platine eine Verbindung zur Heizung herzustellen, schlug fehl.
Es müssen wirklich alle 3 Platinen inkl. dem original Bedienteil der Heizung angeschlossen werden.
Aber dann, große Freude, es funktioniert. Ich kann einige Paramater auslesen und was für mich ganz wichtig war, die Wassertemperatur einstellen und die Heizung steuern.

Thema Wassertemperatur. Bei vielen dürfte die auf 55 Grad und mehr stehen.
Wozu ?
Nein, kommt mir nicht mit Legionellen. Meine Heizung ist über 10 Jahre alt und hat schon ein Legionellenschutzprogramm. Einmal in der Woche heizt die das Wasser anständig auf.
Stellt euch mal den Wasserhahn so ein, dass ihr euch die Hände waschen könnte bzw. Zähne putzen. Und jetzt messt mal die Wassertemperatur. Es würde mich wundern, wenn die über 42 Grad wäre.
Badewassertemperatur. Überlegt mal. Man dreht das heiße Wasser auf und lässt einige Liter in die Wanne laufen. Dann fasst man mit der Hand rein und lässt kaltes Wasser dazu laufen, bis es einem angenehm erscheint.

Warum nicht von vornherein weniger heißes Wasser rein laufen lassen ?
Auch beim Spülen oder Duschen dürften die wenigsten eine Wassertemperatur über 45 Grad nutzen.

Ein paar Grad weniger heißes Wasser in der Heizung spart aber enorm Energie. Kann man sich ja Vorstellen, wenn die Heizung auf 55 Grad heiß Wasser steht, das die 24h am Tag versucht, diese Wassertemperatur zu halten.

Wozu ?

Weil ich 2, 3 mal am Tag ein wenig warmes, nicht heißes, Wasser benötig.

Ich hatte bei mir die Wassertemperatur auf 45 Grad eingestellt. Reicht bei den meisten Dingen vollkommen aus.
Einzig eine Badewanne voll mit heißem Wasser war nicht mehr drin. Bevor ich die gewünschte Menge warmes Wasser in der Wanne hatte, kam schon kaltes Wasser. Man mußte also immer aufpassen, Wasser rechtzeitig abdrehen, warten, bis wieder ausreichend warmes Wasser gemacht wurde und noch was in die Wanne laufen lassen.

Gerade mal getestet. Heißes Wasser in der Heizung auf 55 Grad gestellt. Dauerte nur wenige Minuten, bis die erreicht waren. Wanne mit Wasser gefüllt und siehe da, ich bekomme die Wanne wieder voll, muß sogar wieder etwas kaltes Wasser dazu laufen lassen.
Aber, das ist eben nur dann, wenn ich Baden gehen will und nicht 24h am Tag.

Wie dem auch sei, ich werde in meinem HA eine Automatisierung einbauen, das auf Knopfdruck das heiße Wasser auf 55 Grad gebracht wird und dieses für 1 Stunde so bleibt, danach wird das heiße Wasser wieder auf 45 Grad abgesenkt.
Diese Automatisierung werde ich euch hier noch reinstellen, sobald diese fertig ist.


In wie weit mit der Temperaturregelung für die Heizung was erreichen kann, muß ich noch sehen. Einen direkten Einfluss auf die stromfressende Umwälzpumpe kann ich wohl nicht nehmen, also z.B. die Drehzahl regeln, aber ich hoffe, durch das ändern der eingestellten Temperatur Einfluss auf Vorlauf und Rücklauftemperatur nehmen zu können und die Pumpe damit gezielter steuern zu können. Das muß ich mir aber halt im Winter ansehen, da ich aktuell eher nicht heizen möchte.

Ich werde nach und nach zeigen, was ich gemacht habe, um meine Heizung Smart zu bekommen und auch Automatisierungen schreiben, die die Heizung hoffentlich effizienter Steuern.
Und keine Angst. Sollte HA mal ausfallen, wird euch nicht gleich die Bude kalt. Die openTherm Platinen bzw. deren Betriebssystem haben eine EMERGENCY Schaltung eingebaut, die die Heizung auch bei Ausfall von HA bzw. MQTT oder dem lokalen Netzwerk weiter Betriebsfähig hält.

Hier mal ein paar Bilder, was ich bisher so habe.
1718748437418.png
heiß Wasser Vorwahl und Heizungstemperatur und Anzeige der Außentemperatur vom Fühler der Heizungsanlage.

1718748511840.png
Übersicht einiger Parameter der Heizung sowie ein paar Voreinstellungen wie max. Wassertemperatur oder max Heizungstemperatur.
Da gibt es noch einige Anzeigen und Einstellmöglichkeiten mehr, aber ich muß teilweise erst mal selbst rausfinden, was die alle bedeuten.
 
Auf die Pumpe wirst du kaum Einfluss haben, wenn der Heizkreis im Tag (Komfort) Betrieb ist wird die Pumpe laufen. Wenn es eine alte Stromfressende Pumpe ist wird die auch kaum Drehzahlregelbar sein. So eine Drehzahlregelung machte auch nur Sinn wenn du eine dT Regelung (VL/RL) machen würdest.
Hast du auch einen Mischer im Heizkreis?
 
Ich muß dich Enttäuschen, die Pumpe ist alt, aber all das kann sie durchaus schon.
PWM gesteuert sollte sie sein, funktioniert nur aktuell wohl nicht. Deswegen auch die openTherm Überwachung, um dem eventuell mal auf den Grund zu gehen.
Und genau auf Vorlauf und Rücklauf kann ich ja Einfluß nehmen. Heizungsventile zu, Rücklauftemperatur steigt. Pumpe sollte runter regeln. Und auch hier will ich ansetzen und sehen, in wie weit heizt die Heizung dann noch das Wasser auf. Eventuell kann man da ja auch eingreifen und sagen "Wenn Raumtemperatur Soll erreicht hat, drehe Pumpe runter und hör auf zu heizen. :D
Das muß ich mir aber erst mal genau ansehen, was für Werte bekomme ich, welche kann ich beeinflussen und wie arbeitet das ganze zusammen.
Ja, ich denke schon, das ich einen Mischer habe, zumindest wird in der Anleitung davon geredet. Gesehen habe ich ihn nicht, aber auch nicht danach gesucht.
 
Leider kommt mein Bedienteil mit dem OpenTherm nicht so richtig zurecht. Zeigt immer einen Fehler an.
Ist mir im Prinzip aber momentan auch erst mal egal, da ich die Heizung ja eh über HomeAssistant steuern will.
Blöd ist nur, das die Raumtemperatur damit nicht mehr an die Heizung gemeldet wird.
Aber, dank MQTT, können wir das mit einer Automatisierung ändern.
Ich habe dort, wo wir uns in aller Regel aufhalten, ein Thermometer stehen. Dessen Temperatur nehme ich und setze die als aktuelle Raumtemperatur.
Der Vorteil ist, das nicht mehr die Temperatur vom Bedienteil, das neben der Tür hängt und wer weiß was misst, genutzt wird, sondern wirklich die Temperatur, die man selbst an dieser Stelle fühlt.
Code:
alias: Gasheizung Indoor Temperatur setzen
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.wohnzimmer_sensor_temperature
condition: []
action:
  - service: number.set_value
    target:
      entity_id:
        - number.opentherm_indoor_temp
    data:
      value: "{{ states('sensor.wohnzimmer_sensor_temperature')|float(21) }}"
    enabled: true
mode: single
sensor.wohnzimmer_sensor_temperature müsst ihr auf euer Thermometer anpassen und das bitte auch unten bei value: "{{ states('sensor.wohnzimmer_sensor_temperature')|float(21) }}"
Diese Automatisierung wird immer dann getriggert, wenn das Thermometer eine neue Temperatur sendet, die dann auch gleich an die Heizung übermittelt wird.
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
4.922
Beiträge
49.577
Mitglieder
4.592
Neuestes Mitglied
arkhell
Zurück
Oben