blueprint: name: Better Thermostat Controller (Window + Deadzone Fix) description: Steuert BT. Logik: Fenster offen > Sommer (Aus) > Urlaub (Eco) > Winter+Schedule (Komfort) > SONST IMMER ECO. domain: automation input: better_thermostat_entity: name: Better Thermostat Entity description: Die BT Entität (muss Fenstersensoren in BT konfiguriert haben!) selector: entity: domain: climate integration: better_thermostat schedule_entity: name: Heizzeitplan Schedule selector: entity: domain: schedule vacation_helper: name: Urlaubsmodus Helper selector: entity: domain: input_boolean weather_entity: name: Wettervorhersage selector: entity: domain: weather summer_temp_threshold: name: Sommer-Schwellwert (°C) description: Ab hier wird die Heizung komplett ausgeschaltet. default: 22 selector: number: min: 15 max: 30 step: 1 winter_temp_threshold: name: Winter-Schwellwert (°C) description: Unter dieser Temp wird der Komfort-Modus erlaubt (wenn Schedule an ist). default: 18 selector: number: min: 10 max: 25 step: 1 eco_temp: name: Eco Temperatur (°C) description: Standard-Temperatur (Übergangszeit, Nachts, Abwesend) default: 17 selector: number: min: 10 max: 20 step: 0.5 comfort_temp: name: Komfort Temperatur (°C) description: Temperatur wenn es kalt ist UND Schedule aktiv ist. default: 21 selector: number: min: 18 max: 24 step: 0.5 trigger: - platform: state entity_id: !input schedule_entity - platform: state entity_id: !input vacation_helper - platform: state entity_id: !input weather_entity attribute: temperature - platform: time_pattern minutes: "/30" # Sofort reagieren, wenn Fenster zugeht - platform: state entity_id: !input better_thermostat_entity attribute: window_open condition: [] action: - variables: bt_entity: !input better_thermostat_entity weather_entity: !input weather_entity schedule_entity: !input schedule_entity vacation_entity: !input vacation_helper summer_threshold: !input summer_temp_threshold winter_threshold: !input winter_temp_threshold eco_temperature: !input eco_temp comfort_temperature: !input comfort_temp - variables: weather_temp: '{{ state_attr(weather_entity, "temperature") | float(15) }}' is_window_open: '{{ state_attr(bt_entity, "window_open") | bool(false) }}' # Logik-Definitionen is_summer: "{{ weather_temp > summer_threshold }}" is_winter_mode: "{{ weather_temp < winter_threshold }}" is_vacation: "{{ states(vacation_entity) == 'on' }}" schedule_active: "{{ states(schedule_entity) == 'on' }}" - choose: # 0. NOTBREMSE: Fenster offen # Wenn Fenster offen, brechen wir ab. BT regelt das "Aus". # Wir verhindern nur, dass die Automation die Heizung wieder anmacht. - conditions: - condition: template value_template: "{{ is_window_open }}" sequence: - stop: "Fenster offen - Automation übergibt an Better Thermostat." # 1. SOMMER: Heizung ganz aus - conditions: - condition: template value_template: "{{ is_summer }}" sequence: - service: climate.set_hvac_mode target: entity_id: !input better_thermostat_entity data: hvac_mode: "off" # 2. URLAUB: Immer Eco - conditions: - condition: template value_template: "{{ is_vacation }}" sequence: - service: climate.set_hvac_mode target: entity_id: !input better_thermostat_entity data: hvac_mode: "heat" - service: climate.set_temperature target: entity_id: !input better_thermostat_entity data: temperature: "{{ eco_temperature }}" # 3. WINTER & ZEITPLAN: Komfort # Nur wenn es wirklich kalt ist (unter Winter-Schwelle) UND der Zeitplan an ist - conditions: - condition: template value_template: "{{ is_winter_mode and schedule_active }}" sequence: - service: climate.set_hvac_mode target: entity_id: !input better_thermostat_entity data: hvac_mode: "heat" - service: climate.set_temperature target: entity_id: !input better_thermostat_entity data: temperature: "{{ comfort_temperature }}" # 4. DEFAULT / FALLBACK (Die ehemalige Todeszone + Nachts) # Wenn KEINE der oberen Bedingungen zutrifft (also weder Sommer, noch Urlaub, noch Kalter-Komfort), # dann greift dieser Block. Das deckt ab: # - Winter + Nachts (Schedule aus) # - Übergangszeit (Todeszone) egal ob Schedule an oder aus default: - service: climate.set_hvac_mode target: entity_id: !input better_thermostat_entity data: hvac_mode: "heat" - service: climate.set_temperature target: entity_id: !input better_thermostat_entity data: temperature: "{{ eco_temperature }}" mode: restart max: 10