From 1beb7964bd09202a656b98dd81f0b85cf3ffd9c9 Mon Sep 17 00:00:00 2001 From: Pierre Eisenbrandt Date: Sun, 30 Nov 2025 20:04:57 +0100 Subject: [PATCH] add dev version --- Climate/bosch_bth-ra_control_dev.yaml | 133 ++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 Climate/bosch_bth-ra_control_dev.yaml diff --git a/Climate/bosch_bth-ra_control_dev.yaml b/Climate/bosch_bth-ra_control_dev.yaml new file mode 100644 index 0000000..6ad28ca --- /dev/null +++ b/Climate/bosch_bth-ra_control_dev.yaml @@ -0,0 +1,133 @@ +blueprint: + name: Bosch BTH-RA Radiator Control + description: > + An automation to set Bosch TRV radiator valve to a desired temperature. + domain: automation + author: Me + input: + radiator_entity: + name: Thermostat + description: Thermostat muss ein Bosch BTH-RA sein + selector: + entity: + multiple: false + filter: + - domain: climate + window_sensor: + name: Fenster-/Türsensor (oder Gruppe) + selector: + entity: + multiple: false + filter: + - domain: binary_sensor + window_delay_open: + name: Fenster-/Türsensor Verzögerung + description: Zeit die das Fenster offen bleiben muss, um die den Radiator in den "Fenster offen"-Modus zu versetzen (Default = 30s) + default: 30 + selector: + number: + mode: box + min: 0.0 + max: 3600.0 + unit_of_measurement: seconds + step: 1.0 + window_delay_close: + name: Fenster-/Türsensor Verzögerung + description: Zeit die das Fenster geschlossen bleiben muss, um die den Radiator in den "Fenster geschlossen"-Modus zu versetzen (Default = 5s) + default: 5 + selector: + number: + mode: box + min: 0.0 + max: 3600.0 + unit_of_measurement: seconds + step: 1.0 + temperature_sensor: + name: Temperatursensor + selector: + entity: + multiple: false + filter: + - domain: sensor + device_class: temperature + +triggers: + - trigger: state + entity_id: + - !input window_sensor + from: "off" + to: "on" + for: !input window_delay_open + id: FENSTER_OPEN + - trigger: state + entity_id: + - !input window_sensor + from: "on" + to: "off" + for: !input window_delay_close + id: FENSTER_CLOSED + - platform: time_pattern + # Synce Temperatur alle 20 Minuten (Teiler von 60) + minutes: "/20" + id: SYNC_TEMPERATURE + - platform: state + entity_id: !input temperature_sensor + id: TEMP_CHANGED + +variables: + trv: !input radiator_entity + remote_temperature_entity: > + {% set entities = device_entities(device_id(trv)) %} + {% set remote_temperature_entity_id = namespace(id='') %} + {% for s in entities %} + {% if 'remote_temperature' in s %} + {% set remote_temperature_entity_id.id = s %} + {% endif %} + {% endfor %} + {{ remote_temperature_entity_id.id }} + window_detection_entity: > + {% set entities = device_entities(device_id(trv)) %} + {% set window_detection_entity_id = namespace(id='') %} + {% for s in entities %} + {% if 'window_detection' in s %} + {% set window_detection_entity_id.id = s %} + {% endif %} + {% endfor %} + {{ window_detection_entity_id.id }} + current_temperature: !input temperature_sensor + +actions: +- if: + - condition: trigger + id: + - FENSTER_OPEN + then: + - service: switch.turn_on + target: + entity_id: "{{ window_detection_entity }}" + alias: Setze Fenster auf offen +- if: + - condition: trigger + id: + - FENSTER_CLOSED + then: + - service: switch.turn_off + target: + entity_id: "{{ window_detection_entity }}" + alias: Setze Fenster auf geschlossen + # temperature sensor sync +- if: + - condition: trigger + id: + - FENSTER_OPEN + - FENSTER_CLOSED + - SYNC_TEMPERATURE + - TEMP_CHANGED + then: + - service: number.set_value + data: + value: "{{ states(current_temperature) | float }}" + target: + entity_id: "{{ remote_temperature_entity }}" + alias: Sync remote temperature sensor + alias: Synce Temperatur zum TRV \ No newline at end of file