blueprint: name: Better Thermostat Controller (Optimized) description: Steuert BT mit Priorität Fenster > Sommer > Urlaub > Schedule. Mit Default-Fallback für Lücken. 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 Heizung AUS. default: 18 selector: number: min: 15 max: 30 step: 1 winter_temp_threshold: name: Winter-Schwellwert (°C) description: Unter dieser Temp ist Komfort-Modus erlaubt. default: 18 selector: number: min: 10 max: 25 step: 1 eco_temp: name: Eco Temperatur (°C) description: Standard/Nacht/Urlaub Temperatur. default: 17 selector: number: min: 10 max: 20 step: 0.5 comfort_temp: name: Komfort Temperatur (°C) description: Temperatur bei aktivem Zeitplan. 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" - platform: state entity_id: !input better_thermostat_entity attribute: window_open condition: [] action: # Variablen definieren, um Inputs intern nutzbar zu machen - 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 # Logik-Variablen berechnen - variables: weather_temp: '{{ state_attr(weather_entity, "temperature") | float(15) }}' is_window_open: '{{ state_attr(bt_entity, "window_open") | bool(false) }}' is_summer: "{{ weather_temp > summer_threshold }}" is_heating_season: "{{ weather_temp < winter_threshold }}" is_vacation: "{{ states(vacation_entity) == 'on' }}" schedule_active: "{{ states(schedule_entity) == 'on' }}" - choose: # 1. FENSTER OFFEN -> STOP (BT übernimmt) - conditions: - condition: template value_template: "{{ is_window_open }}" sequence: - stop: "Fenster offen - Automation stoppt." # 2. SOMMER -> 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" # 3. URLAUB -> 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 }}" # 4. WINTER + SCHEDULE -> KOMFORT - conditions: - condition: template value_template: "{{ is_heating_season 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 }}" # 5. DEFAULT (Alles andere) -> ECO 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