merge temp schedule change #1
@@ -33,6 +33,28 @@ blueprint:
|
||||
multiple: false
|
||||
filter:
|
||||
- domain: input_boolean
|
||||
min_temperature:
|
||||
name: Minimale Temperatur
|
||||
description: Minimale erlaubte Solltemperatur als Sicherheitsgrenze (Default = 15°C)
|
||||
default: 15
|
||||
selector:
|
||||
number:
|
||||
mode: box
|
||||
min: 10.0
|
||||
max: 20.0
|
||||
unit_of_measurement: "°C"
|
||||
step: 0.5
|
||||
max_temperature:
|
||||
name: Maximale Temperatur
|
||||
description: Maximale erlaubte Solltemperatur als Sicherheitsgrenze (Default = 28°C)
|
||||
default: 23
|
||||
selector:
|
||||
number:
|
||||
mode: box
|
||||
min: 20.0
|
||||
max: 25.0
|
||||
unit_of_measurement: "°C"
|
||||
step: 0.5
|
||||
window_section:
|
||||
name: Fenster-/Türsensor Konfiguration
|
||||
description: Konfiguration für den Fenster-/Türsensor.
|
||||
@@ -130,6 +152,8 @@ variables:
|
||||
radiator_schedules: !input radiator_schedules
|
||||
active_scheduler_selector: !input active_scheduler_selector
|
||||
away_temperature: !input away_temperature
|
||||
min_temperature: !input min_temperature
|
||||
max_temperature: !input max_temperature
|
||||
alarm_control_panel: !input alarm_control_panel
|
||||
is_heating_period: >
|
||||
{% if heating_period_switch is none or heating_period_switch == '' %}
|
||||
@@ -178,8 +202,28 @@ variables:
|
||||
{% else %}
|
||||
{{ away_temperature }}
|
||||
{% endif %}
|
||||
safe_temperature: >
|
||||
{% set temp = target_temperature | float(18) %}
|
||||
{% if temp < min_temperature %}
|
||||
{{ min_temperature }}
|
||||
{% elif temp > max_temperature %}
|
||||
{{ max_temperature }}
|
||||
{% else %}
|
||||
{{ temp }}
|
||||
{% endif %}
|
||||
is_valid_temperature: >
|
||||
{{ target_temperature is not none and target_temperature | is_number }}
|
||||
{{ safe_temperature is not none and safe_temperature | is_number }}
|
||||
is_temperature_change_needed: >
|
||||
{% set current = state_attr(trv, 'temperature') | float(0) %}
|
||||
{% set new = safe_temperature | float(0) %}
|
||||
{% set diff = new - current %}
|
||||
{% if new > current %}
|
||||
true
|
||||
{% elif diff | abs >= 0.5 %}
|
||||
true
|
||||
{% else %}
|
||||
false
|
||||
{% endif %}
|
||||
scheduler_mismatch: >
|
||||
{% set selected_friendly_name = states(active_scheduler_selector) %}
|
||||
{% if selected_friendly_name not in ['unknown', '', none] %}
|
||||
@@ -272,13 +316,13 @@ actions:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ is_valid_temperature }}
|
||||
{{ is_valid_temperature and is_temperature_change_needed }}
|
||||
then:
|
||||
- service: climate.set_temperature
|
||||
target:
|
||||
entity_id: !input trv
|
||||
data:
|
||||
temperature: "{{ target_temperature | float }}"
|
||||
temperature: "{{ safe_temperature | float }}"
|
||||
alias: Heizperiode aktiviert - Setze Modus auf heat, synchronisiere Fensterstatus und Solltemperatur
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
@@ -329,13 +373,13 @@ actions:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ is_valid_temperature }}
|
||||
{{ is_valid_temperature and is_temperature_change_needed }}
|
||||
then:
|
||||
- service: climate.set_temperature
|
||||
target:
|
||||
entity_id: !input trv
|
||||
data:
|
||||
temperature: "{{ target_temperature | float }}"
|
||||
temperature: "{{ safe_temperature | float }}"
|
||||
alias: Setze Fenster auf geschlossen und setze Solltemperatur auf Wert aus Zeitplan (wenn vorhanden)
|
||||
alias: Fensterstatus Änderung
|
||||
# temperature sensor sync
|
||||
@@ -393,13 +437,13 @@ actions:
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ is_valid_temperature }}
|
||||
{{ is_valid_temperature and is_temperature_change_needed }}
|
||||
then:
|
||||
- service: climate.set_temperature
|
||||
target:
|
||||
entity_id: !input trv
|
||||
data:
|
||||
temperature: "{{ target_temperature | float }}"
|
||||
temperature: "{{ safe_temperature | float }}"
|
||||
# Notification bei Scheduler-Mismatch
|
||||
- if:
|
||||
- condition: template
|
||||
@@ -412,7 +456,8 @@ actions:
|
||||
Der ausgewählte Scheduler '{{ states(active_scheduler_selector) }}' wurde nicht in der
|
||||
Scheduler-Liste gefunden.
|
||||
|
||||
TRV '{{ state_attr(trv, 'friendly_name') }}' nutzt Fallback-Temperatur: {{ away_temperature }}°C
|
||||
TRV '{{ state_attr(trv, 'friendly_name') }}' nutzt Fallback-Temperatur: {{ safe_temperature }}°C
|
||||
(Original: {{ target_temperature }}°C, Limits: {{ min_temperature }}-{{ max_temperature }}°C)
|
||||
|
||||
Bitte Konfiguration überprüfen.
|
||||
notification_id: "radiator_control_scheduler_mismatch_{{ trv }}"
|
||||
|
||||
Reference in New Issue
Block a user