From 2c838a85a185e028f4c49a883cfa1630474b492d Mon Sep 17 00:00:00 2001 From: Pierre Eisenbrandt Date: Thu, 8 Jan 2026 19:14:07 +0100 Subject: [PATCH] add comments --- Climate/bosch_bth-ra_control.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Climate/bosch_bth-ra_control.yaml b/Climate/bosch_bth-ra_control.yaml index 82267fc..3295de2 100644 --- a/Climate/bosch_bth-ra_control.yaml +++ b/Climate/bosch_bth-ra_control.yaml @@ -237,6 +237,7 @@ variables: {% endif %} # Temperatur-Berechnungen + # Priorität: 1. Alarm armed_away → away_temperature, 2. Aktiver Zeitplan → scheduled_temperature, 3. Fallback → away_temperature target_temperature: > {% if alarm_control_panel and is_state(alarm_control_panel, 'armed_away') %} {{ away_temperature }} @@ -245,6 +246,7 @@ variables: {% else %} {{ away_temperature }} {% endif %} + # Begrenzt target_temperature auf den Bereich [min_temperature, max_temperature] (Clamping) safe_temperature: > {{ [min_temperature, [max_temperature, target_temperature | float(18)] | min] | max }} @@ -253,6 +255,7 @@ variables: {{ safe_temperature is not none and safe_temperature | is_number }} is_temperature_change_needed: > {{ (safe_temperature | float(0) - state_attr(trv, 'temperature') | float(0)) | abs >= temperature_change_tolerance }} + # Synchronisation nötig wenn: 1) Differenz > Schwelle, 2) Sensor kreuzt Soll-Temp von unten, 3) Sensor kreuzt Soll-Temp von oben is_sensor_sync_needed: > {% set new_sensor_temp = states(temperature_sensor) | float(0) %} {% set target_temp = state_attr(trv, 'temperature') | float(0) %} @@ -277,6 +280,7 @@ variables: {{ (state_attr(trv, 'temperature') | float(0) - safe_temperature | float(0)) | abs >= temperature_change_tolerance }} # Override Reset Berechnungen + # Konvertiert duration-Dictionary {hours, minutes, seconds} in Gesamtsekunden override_reset_duration_seconds: > {{ (override_reset_duration.hours | default(0) | int) * 3600 + (override_reset_duration.minutes | default(0) | int) * 60 + @@ -285,6 +289,7 @@ variables: {{ states[setpoint_change_source_entity].last_updated if setpoint_change_source_entity_valid else none }} is_setpoint_manual: > {{ setpoint_change_source_entity_valid and states(setpoint_change_source_entity) == 'manual' }} + # Early exits: 1) Keine Änderung/Timeout=0 → false, 2) Nicht manuell → false, 3) Berechne Zeitdifferenz override_duration_exceeded: > {% if override_last_change == none or override_reset_duration_seconds == 0 %} false