This commit is contained in:
nocci 2026-01-15 15:44:36 +01:00
parent 810f87a195
commit ff1a4b8073

160
blueprint.yaml Normal file
View file

@ -0,0 +1,160 @@
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 (optional)
description: Optional - leer lassen für immer present. z.B. binary_sensor.presence
selector:
entity:
domain: binary_sensor
multiple: false
default: {}
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 or !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