Compare commits

...

6 Commits

View File

@@ -16,6 +16,14 @@ blueprint:
multiple: false multiple: false
filter: filter:
- domain: climate - domain: climate
temperature_sensor:
name: Temperatursensor
selector:
entity:
multiple: false
filter:
- domain: sensor
device_class: temperature
window_section: window_section:
name: Fenster-/Türsensor Konfiguration name: Fenster-/Türsensor Konfiguration
description: Konfiguration für den Fenster-/Türsensor. description: Konfiguration für den Fenster-/Türsensor.
@@ -50,19 +58,11 @@ blueprint:
max: 3600.0 max: 3600.0
unit_of_measurement: seconds unit_of_measurement: seconds
step: 1.0 step: 1.0
remaining_section: schedule_section:
name: Weitere Konfiguration name: Heizplan Konfiguration
description: Sonstige Konfigurationen für die Automation description: Konfiguration der Heizpläne die für den Radiator berücksichtigt werden sollen
collapsed: false collapsed: false
input: input:
temperature_sensor:
name: Temperatursensor
selector:
entity:
multiple: false
filter:
- domain: sensor
device_class: temperature
radiator_schedules: radiator_schedules:
name: Heizpläne name: Heizpläne
description: Alle Heizpläne die für den Radiator berücksichtigt werden sollen. Sind mehrere Schedules aktiv, wird der erste mit einem gültigen Slot verwendet. description: Alle Heizpläne die für den Radiator berücksichtigt werden sollen. Sind mehrere Schedules aktiv, wird der erste mit einem gültigen Slot verwendet.
@@ -72,11 +72,38 @@ blueprint:
multiple: true multiple: true
filter: filter:
- domain: switch - domain: switch
away_section:
name: Konfiguration für Abwesenheitsmodus
description: Konfiguration für das Absenken der Heizung im Abwesenheitsmodus eines Alarmsystems
collapsed: false
input:
alarm_control_panel:
name: Alarm Control Panel
description: Optional - Alarm Control Panel um Heizung abzusenken, wenn Alarm im Abwesendmodus ist
default: null
selector:
entity:
multiple: false
filter:
- domain: alarm_control_panel
away_temperature:
name: Abwesenheitstemperatur
description: Temperatur die eingestellt wird, wenn der Alarm im Abwesendmodus ist (Default = 18°C)
default: 18
selector:
number:
mode: box
min: 15.0
max: 25.0
unit_of_measurement: "°C"
step: 0.5
variables: variables:
trv: !input trv trv: !input trv
radiator_schedules: !input radiator_schedules
temperature_sensor: !input temperature_sensor temperature_sensor: !input temperature_sensor
radiator_schedules: !input radiator_schedules
away_temperature: !input away_temperature
alarm_control_panel: !input alarm_control_panel
remote_temperature_entity: > remote_temperature_entity: >
{% set entities = device_entities(device_id(trv)) %} {% set entities = device_entities(device_id(trv)) %}
{% set remote_temperature_entity_id = namespace(id='') %} {% set remote_temperature_entity_id = namespace(id='') %}
@@ -103,7 +130,7 @@ variables:
{% set actions = state_attr(schedule, 'actions') %} {% set actions = state_attr(schedule, 'actions') %}
{% if actions is not none and actions | length > current_slot %} {% if actions is not none and actions | length > current_slot %}
{% set action = actions[current_slot] %} {% set action = actions[current_slot] %}
{% if action.data.temperature is defined %} {% if action.data.temperature is defined and action.data.temperature | is_number %}
{% set ns.current_temperature = action.data.temperature %} {% set ns.current_temperature = action.data.temperature %}
{% break %} {% break %}
{% endif %} {% endif %}
@@ -111,16 +138,24 @@ variables:
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{{ ns.current_temperature }} {{ ns.current_temperature }}
target_temperature: >
{% if alarm_control_panel and is_state(alarm_control_panel, 'armed_away') %}
{{ away_temperature }}
{% elif scheduled_temperature is not none %}
{{ scheduled_temperature }}
{% else %}
{{ away_temperature }}
{% endif %}
triggers: triggers:
- trigger: state - platform: state
entity_id: entity_id:
- !input window_sensor - !input window_sensor
from: "off" from: "off"
to: "on" to: "on"
for: !input window_delay_open for: !input window_delay_open
id: FENSTER_OPEN id: FENSTER_OPEN
- trigger: state - platform: state
entity_id: entity_id:
- !input window_sensor - !input window_sensor
from: "on" from: "on"
@@ -134,8 +169,18 @@ triggers:
- platform: state - platform: state
entity_id: !input temperature_sensor entity_id: !input temperature_sensor
id: TEMP_CHANGED id: TEMP_CHANGED
- platform: state
entity_id: !input alarm_control_panel
to: "armed_away"
id: ALARM_ARMED_AWAY
- platform: state
entity_id: !input alarm_control_panel
from: "armed_away"
to: "disarmed"
id: ALARM_DISARMED_AWAY
actions: actions:
# setze Fenster auf offen/geschlossen
- choose: - choose:
- conditions: - conditions:
- condition: trigger - condition: trigger
@@ -163,13 +208,13 @@ actions:
- if: - if:
- condition: template - condition: template
value_template: > value_template: >
{{ scheduled_temperature is not none }} {{ target_temperature is not none and target_temperature | is_number }}
then: then:
- action: climate.set_temperature - service: climate.set_temperature
target: target:
entity_id: !input trv entity_id: !input trv
data: data:
temperature: "{{ scheduled_temperature | float }}" temperature: "{{ target_temperature | float }}"
alias: Setze Fenster auf geschlossen und setze Solltemperatur auf Wert aus Zeitplan (wenn vorhanden) alias: Setze Fenster auf geschlossen und setze Solltemperatur auf Wert aus Zeitplan (wenn vorhanden)
# temperature sensor sync # temperature sensor sync
- choose: - choose:
@@ -178,10 +223,32 @@ actions:
id: id:
- SYNC_TEMPERATURE - SYNC_TEMPERATURE
- TEMP_CHANGED - TEMP_CHANGED
- condition: template
value_template: >
{{ temperature_sensor is defined and states(temperature_sensor) | is_number }}
sequence: sequence:
- service: number.set_value - service: number.set_value
data: data:
value: "{{ states(temperature_sensor) | float }}" value: "{{ states(temperature_sensor) | float }}"
target: target:
entity_id: "{{ remote_temperature_entity }}" entity_id: "{{ remote_temperature_entity }}"
alias: Synchronisiere Temperatur am TRV alias: Synchronisiere Temperatur am TRV
# setze Solltemperatur basierend auf Alarm-Status
- choose:
- conditions:
- condition: trigger
id:
- ALARM_ARMED_AWAY
- ALARM_DISARMED_AWAY
sequence:
- if:
- condition: template
value_template: >
{{ target_temperature is not none and target_temperature | is_number }}
then:
- service: climate.set_temperature
target:
entity_id: !input trv
data:
temperature: "{{ target_temperature | float }}"
alias: Setze Solltemperatur basierend auf Alarm-Status