blueprint: name: Custom Better Thermostat Multi-Mode Controller description: Steuert Better Thermostat mit Sommer/Winter (Wetterbasiert), tägliche Schedule, Anwesenheit (optional) und Urlaubs-Button. Für Homematic IP + SHT31. domain: automation input: better_thermostat_entity: name: Better Thermostat Entity description: z.B. climate.wohnzimmer_bt selector: entity: domain: climate schedule_entity: name: Heizzeitplan Schedule description: z.B. schedule.heizzeitplan_wohnzimmer selector: entity: domain: schedule presence_entity: name: Anwesenheit description: Optional, z.B. binary_sensor.presence selector: entity: domain: binary_sensor vacation_helper: name: Urlaubsmodus Helper description: input_boolean.urlaub selector: entity: domain: input_boolean weather_entity: name: Wettervorhersage description: z.B. weather.openweathermap selector: entity: domain: weather summer_temp_threshold: name: Sommer-Schwellwert description: Wenn Vorhersage > X °C, Sommer-Modus (off) default: 25 selector: number: min: 20 max: 35 step: 1 winter_temp_threshold: name: Winter-Schwellwert description: Wenn Vorhersage < X °C, Winter-Modus (heat) default: 10 selector: number: min: 0 max: 20 step: 1 eco_temp: name: Eco Temp (Abwesenheit/Urlaub) default: 15 selector: number: min: 10 max: 18 step: 0.5 comfort_temp: name: Komfort Temp (Schedule) default: 21 selector: number: min: 18 max: 24 step: 0.5 trigger: - platform: state entity_id: !input better_thermostat_entity - platform: state entity_id: !input schedule_entity - platform: state entity_id: !input vacation_helper - platform: state entity_id: !input presence_entity - platform: numeric_state entity_id: !input weather_entity attribute: temperature above: !input summer_temp_threshold - platform: numeric_state entity_id: !input weather_entity attribute: temperature below: !input winter_temp_threshold condition: [] action: - variables: weather_temp: "{{ state_attr(!input weather_entity, 'forecast')[0].temperature }}" is_summer: "{{ weather_temp > !input summer_temp_threshold }}" is_winter: "{{ weather_temp < !input winter_temp_threshold }}" is_vacation: "{{ is_state(!input vacation_helper, 'on') }}" is_present: >- {%- if !input presence_entity -%} true {%- else -%} {{ is_state(!input presence_entity, 'on') }} {%- endif -%} schedule_active: "{{ is_state(!input schedule_entity, 'on') }}" - choose: # Sommer-Modus - conditions: - condition: template value_template: "{{ is_summer }}" sequence: - service: climate.set_hvac_mode target: entity_id: !input better_thermostat_entity data: hvac_mode: "off" # Urlaub - conditions: - condition: template value_template: "{{ is_vacation }}" sequence: - service: better_thermostat.set_temp_target_temperature target: entity_id: !input better_thermostat_entity data: temp: !input eco_temp # Abwesenheit Eco - conditions: - condition: template value_template: "{{ not is_present and not is_vacation }}" sequence: - service: better_thermostat.set_temp_target_temperature target: entity_id: !input better_thermostat_entity data: temp: !input eco_temp # Winter + Schedule Komfort - conditions: - condition: template value_template: "{{ is_winter and schedule_active }}" sequence: - service: better_thermostat.set_temp_target_temperature target: entity_id: !input better_thermostat_entity data: temp: !input comfort_temp # Default Winter heat - conditions: - condition: template value_template: "{{ is_winter }}" sequence: - service: climate.set_hvac_mode target: entity_id: !input better_thermostat_entity data: hvac_mode: "heat" default: [] mode: queued max: 10