blueprint.yaml aktualisiert
This commit is contained in:
parent
bf968c3b2b
commit
b22e7e9ba6
1 changed files with 40 additions and 29 deletions
|
|
@ -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: []
|
default: []
|
||||||
|
mode: restart
|
||||||
mode: queued
|
|
||||||
max: 10
|
max: 10
|
||||||
Loading…
Add table
Add a link
Reference in a new issue