merge temp schedule change #1

Merged
pierre merged 14 commits from dev into main 2025-12-30 12:46:33 +01:00
Showing only changes of commit d3beca60b6 - Show all commits

View File

@@ -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 }}"