diff --git a/Climate/bosch_bth-ra_control.yaml b/Climate/bosch_bth-ra_control.yaml index e5166ef..fe1d44e 100644 --- a/Climate/bosch_bth-ra_control.yaml +++ b/Climate/bosch_bth-ra_control.yaml @@ -224,6 +224,20 @@ variables: {% else %} false {% endif %} + is_sensor_sync_needed: > + {% set current_remote = state_attr(trv, device_class ~ '_temperature') | default(state_attr(remote_temperature_entity, 'state'), none) | float(0) %} + {% set new_sensor = states(temperature_sensor) | float(0) %} + {% set target = safe_temperature | float(0) %} + {% set diff = (new_sensor - current_remote) | abs %} + {% if diff >= 0.5 %} + true + {% elif new_sensor < target and current_remote >= target %} + true + {% elif new_sensor > target and current_remote <= target %} + true + {% else %} + false + {% endif %} scheduler_mismatch: > {% set selected_friendly_name = states(active_scheduler_selector) %} {% if selected_friendly_name not in ['unknown', '', none] %} @@ -391,6 +405,8 @@ actions: - condition: template value_template: > {{ temperature_sensor is defined and states(temperature_sensor) | is_number }} + - condition: template + value_template: "{{ is_sensor_sync_needed }}" sequence: - service: number.set_value data: @@ -407,14 +423,14 @@ actions: {{ temperature_sensor is defined and states(temperature_sensor) | is_number }} - condition: template value_template: > - {{ (now() - states[temperature_sensor].last_changed).total_seconds() > 1199 }} + {{ (now() - states[temperature_sensor].last_changed).total_seconds() > 1499 }} sequence: - service: number.set_value data: value: "{{ states(temperature_sensor) | float }}" target: entity_id: "{{ remote_temperature_entity }}" - alias: Synchronisiere Temperatur am TRV (zeitbasiert, wenn länger als 20min unverändert) + alias: Synchronisiere Temperatur am TRV (zeitbasiert, wenn länger als 25min unverändert) alias: Temperatursynchronisation # setze Solltemperatur bei Schedule und Alarm-Status-Änderungen - choose: