From 7ef3c1d9e24b793818c52de0452fee7b4124dcd0 Mon Sep 17 00:00:00 2001 From: "a.bartel@antilo.de" Date: Sun, 7 Dec 2025 20:49:31 +0100 Subject: [PATCH] Initial Yaml Code --- heizung.yaml | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 heizung.yaml diff --git a/heizung.yaml b/heizung.yaml new file mode 100644 index 0000000..274882c --- /dev/null +++ b/heizung.yaml @@ -0,0 +1,147 @@ +blueprint: + name: GW18 Raumtemperatursteuerung mit Zeitplan, Fenstern, Türen & Partymodus + description: > + Steuert ein Thermostat basierend auf Zeitplan (Tag/Nacht), + Partymodus, offenen Fenstern oder geöffneten Innentüren. + Wenn Partymodus aktiv ist, haben Fenster und Türen keine Relevanz. + domain: automation + input: + thermostat: + name: Thermostat + description: Das zu steuernde Thermostat + selector: + entity: + domain: climate + + temp_day: + name: Zieltemperatur Tag + selector: + entity: + domain: input_number + + temp_night: + name: Zieltemperatur Nacht + selector: + entity: + domain: input_number + + temp_party: + name: Zieltemperatur Party + selector: + entity: + domain: input_number + + temp_window: + name: Zieltemperatur Fenster auf + selector: + entity: + domain: input_number + + temp_doors: + name: Zieltemperatur Innentüren auf + selector: + entity: + domain: input_number + + party_mode: + name: Partymodus (input_boolean) + selector: + entity: + domain: input_boolean + + schedule_daynight: + name: Zeitplanhelfer (Schedule) + description: Liefert true für Tag, false für Nacht + selector: + entity: + domain: schedule + + window_sensor: + name: Fensterstatus (binary_sensor) + description: ON = Fenster offen + selector: + entity: + domain: binary_sensor + + door_sensor: + name: Türstatus (binary_sensor) + description: ON = Tür offen + selector: + entity: + domain: binary_sensor + +mode: single + +trigger: + - platform: state + entity_id: !input window_sensor + - platform: state + entity_id: !input door_sensor + - platform: state + entity_id: !input party_mode + - platform: state + entity_id: !input schedule_daynight + - platform: state + entity_id: + - !input temp_day + - !input temp_night + - !input temp_party + - !input temp_window + - !input temp_doors + +action: + - variables: + is_window_open: "{{ is_state(input.window_sensor, 'on') }}" + is_door_open: "{{ is_state(input.door_sensor, 'on') }}" + is_day: "{{ is_state(input.schedule_daynight, 'on') }}" + is_party: "{{ is_state(input.party_mode, 'on') }}" + + t_day: "{{ states(input.temp_day) | float }}" + t_night: "{{ states(input.temp_night) | float }}" + t_party: "{{ states(input.temp_party) | float }}" + t_window: "{{ states(input.temp_window) | float }}" + t_doors: "{{ states(input.temp_doors) | float }}" + + - choose: + # 1️⃣ Party-Modus → höchste Priorität + - conditions: + - condition: template + value_template: "{{ is_party }}" + sequence: + - service: climate.set_temperature + target: + entity_id: !input thermostat + data: + temperature: "{{ t_party }}" + + # 2️⃣ Fenster offen + - conditions: + - condition: template + value_template: "{{ is_window_open }}" + sequence: + - service: climate.set_temperature + target: + entity_id: !input thermostat + data: + temperature: "{{ t_window }}" + + # 3️⃣ Innentüren offen + - conditions: + - condition: template + value_template: "{{ is_door_open }}" + sequence: + - service: climate.set_temperature + target: + entity_id: !input thermostat + data: + temperature: "{{ t_doors }}" + + # 4️⃣ Standard Tag/Nacht Steuerung + - conditions: [] + sequence: + - service: climate.set_temperature + target: + entity_id: !input thermostat + data: + temperature: "{{ t_day if is_day else t_night }}" +