Otanes
29. September 2025 um 14:48
1
Warum ich mich für eine eigene Klima-Automation entschieden habe
Endlich geschafft – meine Klima-Automation läuft jetzt so, wie ich es mir vorgestellt habe. Im Wohnzimmer wird automatisch zwischen den tado-Heizkörperthermostaten, die meine Gastherme ansteuern, und einer über tado eingebundenen Mitsubishi-Klimaanlage entschieden. Dabei unterscheidet die Steuerung klar zwischen Heizen und Kühlen – es läuft immer nur eine Quelle. In den anderen Räumen übernehmen die tado-Thermostate die Heizung, zusätzlich springt bei Bedarf ein Heizlüfter als Backup ein. Offene Fenster sperren das Heizen sofort, gesteuert wird anhand einer Zieltemperatur mit Toleranz. Im Wohnzimmer wird außerdem die PV-Erzeugung, der Speicherstand und die Solarprognose berücksichtigt, sodass die Klimaanlage nur dann läuft, wenn auch wirklich genug Energie vorhanden ist.
Warum der Aufwand? Ich habe mir auch Lösungen wie Better Thermostat angeschaut, aber bin zu dem Schluss gekommen, dass meine eigene Automation meinen Anforderungen besser entspricht. Standardlösungen kümmern sich meist nur um Temperatur und Fensterstatus – meine Automation geht einen Schritt weiter: sie kombiniert verschiedene Quellen, integriert die Energieverfügbarkeit und sorgt dafür, dass immer nur das sinnvollste Gerät aktiv ist. Genau das war mein Ziel, und jetzt habe ich eine Lösung, die meinen Ansprüchen entspricht und sich im Alltag bewährt.Warum ich mich für eine eigene Klima-Automation entschieden habe.
Ergänzung:
Optional könnte die Automation auch noch Präsenz- und Zeitprofile berücksichtigen – also nur heizen, wenn jemand zuhause ist, oder nachts automatisch die Temperatur absenken. Damit ließe sich das System noch weiter optimieren.
hippoo
29. September 2025 um 15:02
2
Versatile Thermostat
[![GitHub Release][releases-shield]][releases]
[![GitHub Activity][commits-shield]][commits]
[![License][license-shield]](LICENSE)
[![hacs][hacs_badge]][hacs]
[![BuyMeCoffee][buymecoffeebadge]][buymecoffee]
# Versatile Thermostat
This README file is available in
languages : [English](README.md) | [French](README-fr.md) | [German](README-de.md) | [Czech](README-cs.md)
<p align="center">
<img src="https://github.com/jmcollin78/versatile_thermostat/blob/main/images/icon.png" />
</p>
>  This thermostat integration aims to greatly simplify your heating management automations. Since all typical heating events (nobody home?, activity detected in a room?, window open?, power load shedding?), are natively managed by the thermostat, you don’t need to deal with complicated scripts and automations to manage your thermostats. ;-).
This custom component for Home Assistant is an upgrade and a complete rewrite of the "Awesome thermostat" component (see [Github](https://github.com/dadge/awesome_thermostat)) with added features.
# Screenshots
Diese Datei wurde abgeschnitten. Original zeigen
Hätte das nicht vieles abgedeckt?
Jim_OS
29. September 2025 um 15:04
3
Hm - schön das Du jetzt Dir jetzt eine “perfekte Klima-Automation” erstellt hast. Noch schöner wäre es natürlich wenn Du hier jetzt auch noch das wie genau und auch z.B. zumindest Teile des Codes, veröffentlichen würdest. Denn so kann niemand etwas mit Deinem Beitrag anfangen, außer das er dann weiß das Du jetzt für Dich Dir eine “perfekte Klima-Automation” erstellt hast.
VG JIm
2 „Gefällt mir“
Otanes
29. September 2025 um 15:14
4
Sorry ich hab keine Schimmer wie ich den yaml veröffentlichen kann im Forum!
Jim_OS
29. September 2025 um 15:23
5
Ganz einfach über Code einfügen.
VG Jim
2 „Gefällt mir“
Oern
1. Oktober 2025 um 03:47
6
Das wäre es in der Tat. Meine Schokoladenseite hat kürzlich gefragt, ob man mit HA auch Thermostate steuern kann.
Bei der Hardware bin ich mit der Auswahl quasi fast fertig (Sonoff TRVZB oder Aqara E1 ) und jetzt ist die Software-Seite dran.
Ich würde gerne, soweit als möglich, auf die Installation von HACS verzichten wollen und alles mit Bordmitteln machen. Und da ich mich mit HA noch nicht wirklich gut auskenne, würde ich mir den Code für die Automation(en), um das frei heraus zu sagen, gerne bei anderen abgucken.
Lange Rede, kurzer Sinn: Her mit dem Code! @Otanes
Otanes
1. Oktober 2025 um 04:42
8
alias: Wohnzimmer-Klima intelligente Steuerung (1.14)
description: ""
triggers:
# Alle 5 Minuten prüfen
- minutes: /5
trigger: time_pattern
# Trigger bei Änderung der aktuellen Temperatur im Thermostat
- trigger: state
entity_id: climate.wohnzimmer
attribute: current_temperature
# Trigger bei Änderungen von Eingaben / Helfern / Fenstersensoren
- trigger: state
entity_id:
- input_number.zieltemperatur_wohnzimmer # Solltemperatur
- input_number.temp_toleranz_wohnzimmer # Toleranz (Hysterese)
- input_number.aussentemperatur_grenze # Außentemp-Grenze für Heizungswahl
- binary_sensor.fenster_wohnzimmer_l_offnung # Fenster links offen?
- binary_sensor.fenster_wohnzimmer_r_offnung # Fenster rechts offen?
- input_boolean.klimaanlage_aktiv # Klimaanlage darf genutzt werden
- input_boolean.gasheizung_aktiv # Gasheizung darf genutzt werden
- input_boolean.klima_nur_lueften # Nur Lüften-Modus
- input_boolean.klima_wz_manual # Hauptschalter (manuell aus)
conditions: []
actions:
# Falls Hauptschalter aktiv → alles aus
- if:
- condition: state
entity_id: input_boolean.klima_wz_manual
state: "on"
then:
- action: climate.turn_off
target:
entity_id:
- climate.wohnzimmer
- climate.klimaanlage
- action: logbook.log
data:
name: Wohnzimmer-Klima
message: Alle Geräte AUS (Hauptschalter)
- stop: Automation beendet wegen Hauptschalter
- choose:
# Nur-Lüften-Modus aktiv → Klimaanlage nur Ventilator, Heizung aus
- conditions:
- condition: state
entity_id: input_boolean.klima_nur_lueften
state: "on"
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.klimaanlage
data:
hvac_mode: fan_only
- action: climate.turn_off
target:
entity_id: climate.wohnzimmer
- action: logbook.log
data:
name: Wohnzimmer-Klima
message: Nur Lüften aktiv – Klimaanlage im Fan-Modus
# Temperatur unter Untergrenze (zu kalt) & Fenster zu
- conditions:
- condition: template
value_template: "{{ temp < untergrenze and not fenster_offen }}"
sequence:
- choose:
# Gasheizung aktiv + Außentemp unter Grenze → Gasheizung übernimmt
- conditions:
- condition: state
entity_id: input_boolean.gasheizung_aktiv
state: "on"
- condition: template
value_template: >
{{ states('sensor.aussentemperatur_dummy')|float(20)
< states('input_number.aussentemperatur_grenze')|float(7) }}
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.wohnzimmer
data:
hvac_mode: heat
- action: climate.set_temperature
target:
entity_id: climate.wohnzimmer
data:
temperature: "{{ ziel }}"
- action: climate.turn_off
target:
entity_id: climate.klimaanlage
- action: logbook.log
data:
name: Wohnzimmer-Klima
message: >-
Gasheizung aktiv (Außentemp={{
states('sensor.aussentemperatur_dummy') }}°C,
Ziel={{ ziel }})
# Klimaanlage aktiv + Außentemp über Grenze + genug Energie → Klimaanlage heizt
- conditions:
- condition: state
entity_id: input_boolean.klimaanlage_aktiv
state: "on"
- condition: template
value_template: >
{{ states('sensor.aussentemperatur_dummy')|float(20)
>= states('input_number.aussentemperatur_grenze')|float(7) }}
- condition: template
value_template: "{{ energie_verfuegbar }}"
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.klimaanlage
data:
hvac_mode: heat
- delay: "00:00:02" # kurze Pause, damit der Modus übernommen wird
- action: climate.set_temperature
target:
entity_id: climate.klimaanlage
data:
temperature: "{{ ziel }}"
- action: climate.turn_off
target:
entity_id: climate.wohnzimmer
- action: logbook.log
data:
name: Wohnzimmer-Klima
message: >-
Klimaanlage heizt (Außentemp={{
states('sensor.aussentemperatur_dummy') }}°C,
Ziel={{ ziel }})
# Temperatur über Obergrenze (zu warm), Fenster zu, Energie vorhanden, Klimaanlage aktiv → Kühlen
- conditions:
- condition: template
value_template: >-
{{ temp > obergrenze and not fenster_offen and energie_verfuegbar }}
- condition: state
entity_id: input_boolean.klimaanlage_aktiv
state: "on"
sequence:
- action: climate.set_hvac_mode
target:
entity_id: climate.klimaanlage
data:
hvac_mode: cool
- delay: "00:00:02"
- action: climate.set_temperature
target:
entity_id: climate.klimaanlage
data:
temperature: "{{ ziel - 2 }}" # beim Kühlen leicht unter Soll gehen
- action: climate.turn_off
target:
entity_id: climate.wohnzimmer
- action: logbook.log
data:
name: Wohnzimmer-Klima
message: >-
Kühlen mit Klimaanlage aktiv (Temp={{ temp }}, Ziel={{ ziel - 2 }})
# Temperatur im Sollbereich → alle Geräte aus
- conditions:
- condition: template
value_template: >-
{{ temp >= untergrenze and temp <= obergrenze and
is_state('input_boolean.klima_nur_lueften','off') }}
sequence:
- action: climate.turn_off
target:
entity_id:
- climate.klimaanlage
- climate.wohnzimmer
- action: logbook.log
data:
name: Wohnzimmer-Klima
message: Heizung/Klimaanlage aus – Temperatur im Zielbereich ({{ temp }})
variables:
# aktuelle Raumtemperatur (Standardwert 22°C, falls Sensor nicht verfügbar)
temp: "{{ state_attr('climate.wohnzimmer','current_temperature') | float(22) }}"
# gewünschte Zieltemperatur aus Input Number
ziel: "{{ states('input_number.zieltemperatur_wohnzimmer') | float(21) }}"
# Toleranz (Hysterese), Standard 1°C
toleranz: "{{ states('input_number.temp_toleranz_wohnzimmer') | float(1.0) }}"
# Untergrenze und Obergrenze
untergrenze: "{{ ziel - toleranz }}"
obergrenze: "{{ ziel + toleranz }}"
# Fenster offen? (links oder rechts)
fenster_offen: >
{{ is_state('binary_sensor.fenster_wohnzimmer_l_offnung','on')
or is_state('binary_sensor.fenster_wohnzimmer_r_offnung','on') }}
# Dummy-Außentemperatur-Sensor (statt echter Adresse)
aussentemp: "{{ states('sensor.aussentemperatur_dummy') | float(20) }}"
# Außentemp-Grenze aus Input Number
grenze_aussen: "{{ states('input_number.aussentemperatur_grenze') | float(7) }}"
# Energie-Verfügbarkeit (PV / Speicher / Prognose) – Dummys statt echter Sensoren
energie_verfuegbar: >
{{ (states('sensor.pv_leistung_dummy')|float(0) * -1) >= states('input_number.pv_mindestleistung')|float(0)
or states('sensor.speicher_soc_dummy')|float(0) >= states('input_number.speicher_limit')|float(0)
or states('sensor.solarprognose_dummy')|float(0) >= states('input_number.solarprognose_limit')|float(0) }}
mode: restart
Dashboard dazu
type: vertical-stack
cards:
- type: entities
title: Wohnzimmer Klima – Manueller Modus
show_header_toggle: false
entities:
- entity: input_boolean.klima_wz_manual
name: Manueller Modus EIN/AUS
icon: mdi:hand
conditions:
- entity: input_boolean.klima_wz_manual
state: "off"
card:
type: vertical-stack
cards:
- type: entities
title: Heizung/Klima Wohnzimmer
show_header_toggle: false
entities:
- entity: input_boolean.klimaanlage_aktiv
name: Klimaanlage aktiv
- entity: input_bo
- type: conditionalolean.gasheizung_aktiv
name: Gasheizung aktiv
- entity: input_boolean.klima_nur_lueften
name: Nur Lüften (Fan-Modus)
- type: divider
- entity: input_number.zieltemperatur_wohnzimmer
name: Zieltemperatur
- entity: input_number.temp_toleranz_wohnzimmer
name: Toleranz (± °C)
- entity: sensor.sensor_briefkasten_temperatur
name: Aktuelle Temperatur
- entity: input_number.aussentemperatur_grenze
name: Außentemperatur-Grenze
- type: divider
- entity: climate.klimaanlage
name: Klimaanlage Status
- entity: climate.wohnzimmer
name: Heizung Status
- entity: binary_sensor.fenster_wohnzimmer_l_offnung
name: Fenster links
- entity: binary_sensor.fenster_wohnzimmer_r_offnung
name: Fenster rechts
- type: conditional
conditions:
- entity: climate.klimaanlage
state: heat
card:
type: markdown
content: Klimaanlage heizt – Strombetrieb, Gas gespart!
- type: conditional
conditions:
- entity: climate.wohnzimmer
state: heat
card:
type: markdown
content: Gasheizung aktiv – läuft im Heizmodus.
- type: conditional
conditions:
- entity: climate.klimaanlage
state: fan_only
card:
type: markdown
content: Fan-Modus aktiv – Fenster dürfen offen sein!
- type: conditional
conditions:
- entity: climate.klimaanlage
state: cool
card:
type: markdown
content: Kühlmodus aktiv – Temperatur wird gesenkt!
- type: conditional
conditions:
- entity: climate.klimaanlage
state: dry
card:
type: markdown
content: Entfeuchtung aktiv – Luftfeuchtigkeit wird reduziert!
by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)
1 „Gefällt mir“
Oern
1. Oktober 2025 um 05:29
9
Sehr schön! Vielen Dank für die Vorlage, @Otanes
Das guck ich mir auf jeden Fall mal an. Falls was unklar ist, geh ich Dir nochmal auf den Sa… melde ich mich nochmal.