108 lines
3.1 KiB
YAML
108 lines
3.1 KiB
YAML
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: Leer lassen für immer present
|
|
selector:
|
|
entity:
|
|
domain: binary_sensor
|
|
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
|
|
default: 25
|
|
selector:
|
|
number:
|
|
min: 18
|
|
max: 50
|
|
step: 1
|
|
winter_temp_threshold:
|
|
name: Winter-Schwellwert
|
|
default: 10
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 20
|
|
step: 1
|
|
eco_temp:
|
|
name: Eco Temp
|
|
default: 15
|
|
selector:
|
|
number:
|
|
min: 10
|
|
max: 18
|
|
step: 0.5
|
|
comfort_temp:
|
|
name: Komfort Temp
|
|
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: state
|
|
entity_id: !input weather_entity
|
|
|
|
condition: []
|
|
|
|
action:
|
|
- variables:
|
|
we: "{{ states(''' + '''!input weather_entity) }}"
|
|
wt: "{{ state_attr(we, 'forecast')[0].temperature if state_attr(we, 'forecast') and state_attr(we, 'forecast')|length > 0 else 0 }}"
|
|
is_summer: "{{ wt | float(0) > [blueprint_input.summer_temp_threshold] | float(25) }}"
|
|
is_winter: "{{ wt | float(0) < [blueprint_input.winter_temp_threshold] | float(10) }}"
|
|
is_vacation: "{{ states(''' + '''!input vacation_helper) == 'on' }}"
|
|
p: "{{ states(''' + '''!input presence_entity) }}"
|
|
is_present: >-
|
|
{%- set p = states('!input presence_entity') -%}
|
|
{%- if p == 'unknown' or p == 'unavailable' or !input presence_entity == '' -%}
|
|
true
|
|
{%- else -%}
|
|
{{ p == 'on' }}
|
|
{%- endif -%}
|
|
schedule_active: "{{ states(''' + '''!input schedule_entity) == 'on' }}"
|
|
- choose:
|
|
- conditions:
|
|
- "{{ is_summer }}"
|
|
sequence:
|
|
- service: climate.set_hvac_mode
|
|
target:
|
|
entity_id: !input better_thermostat_entity
|
|
data:
|
|
hvac_mode
|