commit 810f87a195a3cf6d1c8e973e08f77b3e123b112e Author: nocci Date: Thu Jan 15 15:38:55 2026 +0100 bluepring.yaml hinzugefügt diff --git a/bluepring.yaml b/bluepring.yaml new file mode 100644 index 0000000..13e6497 --- /dev/null +++ b/bluepring.yaml @@ -0,0 +1,158 @@ +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