blueprint.yaml aktualisiert

This commit is contained in:
nocci 2026-01-16 11:14:00 +01:00
parent bf968c3b2b
commit b22e7e9ba6

View file

@ -1,54 +1,50 @@
blueprint: blueprint:
name: Better Thermostat Multi-Mode Controller name: Better Thermostat Multi-Mode Controller (Window Aware)
description: Steuert Better Thermostat mit Sommer/Winter (Wetterbasiert), Schedule und Urlaubs-Button description: Steuert Better Thermostat mit Fenster-Check, Sommer/Winter, Schedule und Urlaub.
domain: automation domain: automation
input: input:
better_thermostat_entity: better_thermostat_entity:
name: Better Thermostat Entity name: Better Thermostat Entity
description: z.B. climate.wohnzimmer_bt description: Die BT Entität (muss Fenstersensoren in BT konfiguriert haben!)
selector: selector:
entity: entity:
domain: climate domain: climate
integration: better_thermostat
schedule_entity: schedule_entity:
name: Heizzeitplan Schedule name: Heizzeitplan Schedule
description: z.B. schedule.heizzeitplan_wohnzimmer
selector: selector:
entity: entity:
domain: schedule domain: schedule
vacation_helper: vacation_helper:
name: Urlaubsmodus Helper name: Urlaubsmodus Helper
description: input_boolean für Urlaub
selector: selector:
entity: entity:
domain: input_boolean domain: input_boolean
weather_entity: weather_entity:
name: Wettervorhersage name: Wettervorhersage
description: z.B. weather.openweathermap
selector: selector:
entity: entity:
domain: weather domain: weather
summer_temp_threshold: summer_temp_threshold:
name: Sommer-Schwellwert (°C) name: Sommer-Schwellwert (°C)
description: Wenn Vorhersage über dieser Temp, Heizung aus default: 22
default: 25
selector: selector:
number: number:
min: 20 min: 15
max: 35 max: 30
step: 1 step: 1
winter_temp_threshold: winter_temp_threshold:
name: Winter-Schwellwert (°C) name: Winter-Schwellwert (°C)
description: Wenn Vorhersage unter dieser Temp, Winter-Modus description: Unter dieser Temp wird geheizt.
default: 10 default: 18
selector: selector:
number: number:
min: 0 min: 10
max: 20 max: 25
step: 1 step: 1
eco_temp: eco_temp:
name: Eco Temperatur (°C) name: Eco Temperatur (°C)
description: Temperatur bei Abwesenheit/Urlaub default: 16
default: 15
selector: selector:
number: number:
min: 10 min: 10
@ -56,7 +52,6 @@ blueprint:
step: 0.5 step: 0.5
comfort_temp: comfort_temp:
name: Komfort Temperatur (°C) name: Komfort Temperatur (°C)
description: Temperatur wenn Schedule aktiv
default: 21 default: 21
selector: selector:
number: number:
@ -71,13 +66,19 @@ trigger:
entity_id: !input vacation_helper entity_id: !input vacation_helper
- platform: state - platform: state
entity_id: !input weather_entity entity_id: !input weather_entity
attribute: temperature # Nur triggern, wenn sich die Temperatur ändert, nicht bei jedem Wetter-Update
- platform: time_pattern - platform: time_pattern
minutes: "/30" minutes: "/30"
# Wir triggern auch, wenn BT sich ändert (z.B. Fenster geht zu), um sofort wieder zu heizen
- platform: state
entity_id: !input better_thermostat_entity
attribute: window_open
condition: [] condition: []
action: action:
- variables: - variables:
bt_entity: !input better_thermostat_entity
weather_entity: !input weather_entity weather_entity: !input weather_entity
schedule_entity: !input schedule_entity schedule_entity: !input schedule_entity
vacation_entity: !input vacation_helper vacation_entity: !input vacation_helper
@ -87,14 +88,24 @@ action:
comfort_temperature: !input comfort_temp comfort_temperature: !input comfort_temp
- variables: - variables:
weather_temp: '{{ state_attr(weather_entity, ''temperature'') | float(15) }}' weather_temp: '{{ state_attr(weather_entity, "temperature") | float(15) }}'
# Prüfen, ob BT sagt, dass ein Fenster offen ist
is_window_open: '{{ state_attr(bt_entity, "window_open") | bool(false) }}'
is_summer: "{{ weather_temp > summer_threshold }}" is_summer: "{{ weather_temp > summer_threshold }}"
is_winter: "{{ weather_temp < winter_threshold }}" # Winter ist alles, was NICHT Sommer ist (um Lücken zu vermeiden), oder explizit definiert
is_heating_season: "{{ weather_temp < winter_threshold }}"
is_vacation: "{{ states(vacation_entity) == 'on' }}" is_vacation: "{{ states(vacation_entity) == 'on' }}"
schedule_active: "{{ states(schedule_entity) == 'on' }}" schedule_active: "{{ states(schedule_entity) == 'on' }}"
- choose: - choose:
# Priorität 0: FENSTER OFFEN -> Sofort Stop, nichts tun.
# Better Thermostat kümmert sich um das Abschalten. Wir verhindern nur das Anschalten.
- conditions:
- condition: template
value_template: "{{ is_window_open }}"
sequence:
- stop: "Fenster ist offen - Automation bricht ab und lässt BT die Kontrolle."
# Priorität 1: Sommer-Modus (Heizung aus) # Priorität 1: Sommer-Modus (Heizung aus)
- conditions: - conditions:
- condition: template - condition: template
@ -122,10 +133,10 @@ action:
data: data:
temperature: "{{ eco_temperature }}" temperature: "{{ eco_temperature }}"
# Priorität 3: Winter + Schedule aktiv (Komfort) # Priorität 3: Heizsaison + Schedule aktiv (Komfort)
- conditions: - conditions:
- condition: template - condition: template
value_template: "{{ is_winter and schedule_active }}" value_template: "{{ is_heating_season and schedule_active }}"
sequence: sequence:
- service: climate.set_hvac_mode - service: climate.set_hvac_mode
target: target:
@ -138,10 +149,10 @@ action:
data: data:
temperature: "{{ comfort_temperature }}" temperature: "{{ comfort_temperature }}"
# Priorität 4: Winter ohne Schedule (reduzierte Temp) # Priorität 4: Heizsaison ohne Schedule (Absenkung)
- conditions: - conditions:
- condition: template - condition: template
value_template: "{{ is_winter and not schedule_active }}" value_template: "{{ is_heating_season and not schedule_active }}"
sequence: sequence:
- service: climate.set_hvac_mode - service: climate.set_hvac_mode
target: target:
@ -152,9 +163,9 @@ action:
target: target:
entity_id: !input better_thermostat_entity entity_id: !input better_thermostat_entity
data: data:
temperature: "{{ eco_temperature + 2 }}" temperature: "{{ eco_temperature }}"
# Habe "+ 2" entfernt, da es unklar war. Lieber "Eco" nehmen oder eine eigene Variable "Comfort_Eco" einführen.
default: []
mode: queued default: []
max: 10 mode: restart
max: 10