Ich will hier mal (m)eine Automation für eine Heizung vorstellen.
Dabei habe ich ein TRV, ein ext. Thermostat, Schedule für die Zeitpläne, einen Außentemperatur-Sensor und einen Boolean, ob überhaupt die Heizung an ist. Außerdem wird die Anwesenheit geprüft.
(Als Bonbon wird zum Schluss noch der Wecker abgefragt).
Könnte man theoretisch auch eine Blueprint draus machen aber ich haben nur 4 Climates (die ich dann doch auch noch mal etwas individualisiere):
Als Trigger verwende ich den Temperatur-Sensor des jeweiligen Raums. Wenn sich dort die Temperatur verändert, soll getriggert werden.
Zusätzlich spätestens nach 10 Min.
Als Bedingung nehme ich die Außentemperatur, denn nur unter einer gewissen Außentemperatur soll die Heizungsautomation laufen.
Zusätzlich habe ich noch einen input_boolean, der auch bestimmt, ob die Heizung an oder aus ist.
In der Action kommen dann die Schedules und die Anwesenheit ins Spiel.
Erstes Bsp.:
alias: Wenn “Schedule Comfort” und “Jemand zu Hause” und “Temp < comfort”
If:
Hier wird geprüft, ob der Schedule (Zeitplan) “Comfort” aktiv ist.
Und es wird geprüft, ob jemand zu Hause ist.
Außerdem wird geprüft, ob die akt. gemessene Temp. <= der gewünschten Temp. ist.
Then:
Dann soll das TRV auf 2° über der gewünschte Temperatur setzen.
alias: Wenn “Schedule Comfort” und “Jemand zu Hause” und “Temp > comfort”
If:
Hier auch wieder die Prüfung des Schedule und der Anwesenheit.
Dieses mal wird geprüft, ob die akt. gemessene Temp. > der gewünschten Temp. ist.
Then:
Nun soll das TRV lediglich die Temperatur halten.
Ich glaub so wird jedes If / Then irgendwie klar.
alias: "Climate: Zimmer Buero"
description: ""
trigger:
- platform: state
entity_id:
- sensor.buero_sensor_temperature
- platform: time_pattern
minutes: /10
condition:
- condition: template
value_template: >-
{{states('sensor.balkon_temperatur') | float(0) <
states('input_number.heizung_aussentemperatur') | float(0)}}
alias: Außentemperatur < Helper
- condition: state
entity_id: input_boolean.heizung_an_aus
state: "on"
action:
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "on"
- condition: or
conditions:
- condition: state
entity_id: group.somebody_home
state: home
- condition: state
entity_id: device_tracker.a52s_von_xy
state: home
- condition: zone
entity_id: person.zz
zone: zone.home
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) <=
states('input_number.heizung_buero_comfort') | float(0) - 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_comfort') | float(0) + 1 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Schedule Comfort" und "Jemand zu Hause" und "Temp < comfort"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "on"
- condition: or
conditions:
- condition: state
entity_id: group.somebody_home
state: home
- condition: state
entity_id: device_tracker.a52s_von_xy
state: home
- condition: zone
entity_id: person.zz
zone: zone.home
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) >=
states('input_number.heizung_buero_comfort') | float(0) + 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_comfort') | float(0) + 0.5 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Schedule Comfort" und "Jemand zu Hause" und "Temp > comfort"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "on"
- condition: and
conditions:
- condition: state
entity_id: group.somebody_home
state: not_home
- condition: state
entity_id: device_tracker.a52s_von_xy
state: not_home
- condition: state
entity_id: person.zz
state: not_home
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) <=
states('input_number.heizung_buero_eco') | float(0) - 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_eco') | float(0) + 1 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Schedule Comfort" und "Keiner zu Hause" und "Temp < eco"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "on"
- condition: and
conditions:
- condition: state
entity_id: group.somebody_home
state: not_home
- condition: state
entity_id: device_tracker.a52s_von_xy
state: not_home
- condition: state
entity_id: person.zz
state: not_home
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) >=
states('input_number.heizung_buero_eco') | float(0) + 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_eco') | float(0) + 0.5 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Schedule Comfort" und "Keiner zu Hause" und "Temp > eco"
- if:
- condition: state
entity_id: schedule.heizung_eco
state: "on"
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) <=
states('input_number.heizung_buero_eco') | float(0) - 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_eco') | float(0) + 1 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Schedule Eco" und "Temp < eco"
- if:
- condition: state
entity_id: schedule.heizung_eco
state: "on"
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) >=
states('input_number.heizung_buero_eco') | float(0) + 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_eco') | float(0) + 0.5 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Schedule Eco" und "Temp > eco"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "off"
- condition: state
entity_id: schedule.heizung_eco
state: "off"
- condition: state
state: "off"
entity_id: input_boolean.heizung_wecker
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) <=
states('input_number.heizung_buero_nacht') | float(0) - 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_nacht') | float(0) + 1 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Nachts" und "Temp < nacht"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "off"
- condition: state
entity_id: schedule.heizung_eco
state: "off"
- condition: state
state: "off"
entity_id: input_boolean.heizung_wecker
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) >=
states('input_number.heizung_buero_nacht') | float(0) + 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_nacht') | float(0) + 0.5 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Nachts" und "Temp > nacht"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "off"
- condition: state
entity_id: schedule.heizung_eco
state: "off"
- condition: state
entity_id: input_boolean.heizung_wecker
state: "on"
- condition: state
entity_id: group.somebody_home
state: home
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) <=
states('input_number.heizung_buero_eco') | float(0) - 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_eco') | float(0) + 1 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Wecker" und "Jemand zu Hause" und "Temp < eco"
- if:
- condition: state
entity_id: schedule.heizung_comfort
state: "off"
- condition: state
entity_id: schedule.heizung_eco
state: "off"
- condition: state
entity_id: input_boolean.heizung_wecker
state: "on"
- condition: state
entity_id: group.somebody_home
state: home
- condition: template
value_template: >-
{{states('sensor.buero_sensor_temperature') | float(0) >=
states('input_number.heizung_buero_eco') | float(0) + 0.1}}
then:
- service: climate.set_temperature
data:
temperature: "{{ states('input_number.heizung_buero_eco') | float(0) + 0.5 }}"
target:
entity_id: climate.heizung_buero
alias: Wenn "Wecker" und "Jemand zu Hause" und "Temp > eco"
mode: single
Falls die Frage jetzt wg. evtl. Fensterkontakte kommt, ja da habe ich eine extra Automation.
Wenn Fenster auf, dann deaktiviere die o.g. Automation und mache die Heizung aus bzw. stelle sie auf 5°.
Wenn Fenster wieder zu, dann halt wieder die Zimmer-Automation aktivieren.