Danke, das funktioniert.
Ich würde aber trotzdem gerne verstehen warum das andere nicht geht.
Beschreib doch mal genau, wie du jetzt was getestet hast.
Der Screenshot ist ja jetzt keine Blueprint gewesen.
Hast du mal in den Entwicklerwerkzeuge getestet was ausgegeben wird?
{{states('temperatur_aussen') | float(0)}}
{{states('heizung_aus') | float(0)}}
Ich glaube, ich hatte da einen Fehler. states wird da vermutlich nicht mehr benötigt.
value_template: >
{{var_temperatur_aussen}} < {{var_heizung_aus}}
Musst du selber mal testen, kenne mich damit selber nicht gut aus.
Dieser Thread hat ja auch wenig mit dem Erstellen einer Blueprint mit Variablen zu tun.
Kann ich die ganze Blueprint in die Entwicklerwerkzeuge eingeben? Wie werden denn dann die Sensoren an die Inputs übergeben?
Nachtrag1:
value_template: >
{{var_temperatur_aussen}} < {{var_heizung_aus}}
Nachtrag2:
Das funktioniert leider auch nicht.
- Also ich habe die verschieden Varianten der Syntax getestet.
- Verschiene schreibweisen
- mit Variablen und ohne also nur mit dem Input
- Dann mit den Sensoren direkt getestet → Das funktioniert
Deshalb stelle ich mir jetzt die Frage, was für Werte kommen über die Parameter der Blueprint eigentlich in die Automatisation ???
Kann man das prüfen? Gibt es für so etwas eine Debugmode ???
Hier mal noch der ganz Code der Blueprint:
blueprint:
name: Heizungs Automatisation
description: Steuert den Heizkörper
domain: automation
input:
section_thermostat:
name: Thermostat
icon: mdi.thermostat-auto
description: Heizungsthermostat des Raumes
input:
thermostat:
name: Heizungstermostat
description: Heizungsthermostat des Raumes
default: {}
selector:
entity:
filter:
domain: climate
section_temperaturen:
name: Temperaturen
icon: mdi.thermometer
description: Hier müssen die Temperatursensoren eingetragen werden
input:
temperatur_raum:
name: Raumtemperatur
description: Temperatursensor des Raumes
default: {}
selector:
entity:
filter:
domain: sensor
device_class: temperature
temperatur_aussen:
name: Aussentemperatur
description: Temperatursensor von draußen
default: {}
selector:
entity:
filter:
domain: sensor
device_class: temperature
section_parameter:
name: Parameter
icon: mdi.speedometer
description: Hier müssen die Parameter eingegeben werden.
input:
heizung_sommer:
name: Heizung Sommerbetrieb
description: Heizung ist im Sommerbetrieb
default: {}
selector:
entity:
filter:
domain: input_boolean
heizung_wecker:
name: Heizung Wecker
description: Heizung Wecker Trigger
default: {}
selector:
entity:
filter:
domain: input_boolean
heizung_aus:
name: Heizung aus
description: Temperatur bei der die Heizung ausgeschaltet werden soll
default: {}
selector:
entity:
filter:
domain: input_number
heizung_comfort:
name: Heizung Comfort Temperatur
description: Comfort Temperatur auf die geregelt werden soll
default: {}
selector:
entity:
filter:
domain: input_number
heizung_eco:
name: Heizung Eco Temperatur
description: Eco Temperatur auf die geregelt werden soll
default: {}
selector:
entity:
filter:
domain: input_number
heizung_nacht:
name: Heizung Nacht Temperatur
description: Nacht Temperatur auf die geregelt werden soll
default: {}
selector:
entity:
filter:
domain: input_number
section_zeitplan:
name: Zeitpläne
icon: mdi.timetable
description: Zeitpläne für die Regelung
input:
plan_comfort:
name: Zeitplan Comfort
description: Zeitplan für die Comfort Tempertaur
default: {}
selector:
entity:
filter:
domain: schedule
plan_eco:
name: Zeitplan Eco
description: Zeitplan für die Eco Tempertaur
default: {}
selector:
entity:
filter:
domain: schedule
section_person:
name: Persönlich
icon: mdi.account
description: Personen bezogene Parameter
input:
person:
name: Benutzer
description: Benutzer der im Raum lebt
default: {}
selector:
entity:
filter:
domain: person
somebody:
name: Jemand Zuhause
description: Jemand zu Hause
default: {}
selector:
entity:
filter:
domain: group
device:
name: Gerät
description: Gerät von der Person im Raum
default: {}
selector:
entity:
filter:
domain: device_tracker
variables:
var_temperatur_aussen: !input temperatur_aussen
var_heizung_aus: !input heizung_aus
mode: single
triggers:
- entity_id:
- !input temperatur_raum
trigger: state
- minutes: /10
trigger: time_pattern
conditions:
- alias: Außentemperatur < Wert Heizung aus
condition: template
value_template: >-
{{var_temperatur_aussen}} < {{var_heizung_aus}}
- condition: state
entity_id: !input heizung_sommer
state: "off"
actions:
- alias: Wenn "Schedule Comfort" und "Jemand zu Hause" und "Temp < comfort"
if:
- condition: state
entity_id: !input plan_comfort
state: "on"
- condition: or
conditions:
- condition: state
entity_id: !input somebody
state: home
- condition: state
entity_id: !input device
state: home
- condition: zone
entity_id: !input person
zone: zone.home
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) <=
states('!input heizung_comfort') | float(0) - 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_comfort') | float(0) + 1 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Schedule Comfort" und "Jemand zu Hause" und "Temp > comfort"
if:
- condition: state
entity_id: !input plan_comfort
state: "on"
- condition: or
conditions:
- condition: state
entity_id: !input somebody
state: home
- condition: state
entity_id: !input device
state: home
- condition: zone
entity_id: !input person
zone: zone.home
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) >=
states('!input heizung_comfort') | float(0) + 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_comfort') | float(0) + 0.5 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Schedule Comfort" und "Keiner zu Hause" und "Temp < eco"
if:
- condition: state
entity_id: !input plan_comfort
state: "on"
- condition: and
conditions:
- condition: state
entity_id: !input somebody
state: not_home
- condition: state
entity_id: !input device
state: not_home
- condition: state
entity_id: !input person
state: not_home
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) <=
states('!input heizung_eco') | float(0) - 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_eco') | float(0) + 1 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Schedule Comfort" und "Keiner zu Hause" und "Temp > eco"
if:
- condition: state
entity_id: !input plan_comfort
state: "on"
- condition: and
conditions:
- condition: state
entity_id: !input somebody
state: not_home
- condition: state
entity_id: !input device
state: not_home
- condition: state
entity_id: !input person
state: not_home
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) >=
states('!input heizung_eco') | float(0) + 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_eco') | float(0) + 0.5 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Schedule Eco" und "Temp < eco"
if:
- condition: state
entity_id: !input plan_eco
state: "on"
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) <=
states('!input heizung_eco') | float(0) - 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_eco') | float(0) + 1 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Schedule Eco" und "Temp > eco"
if:
- condition: state
entity_id: !input plan_eco
state: "on"
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) >=
states('!input heizung_eco') | float(0) + 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_eco') | float(0) + 0.5 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Nachts" und "Temp < nacht"
if:
- condition: state
entity_id: !input plan_comfort
state: "off"
- condition: state
entity_id: !input plan_eco
state: "off"
- condition: state
state: "off"
entity_id: !input heizung_wecker
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) <=
states('!input heizung_nacht') | float(0) - 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_nacht') | float(0) + 1 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Nachts" und "Temp > nacht"
if:
- condition: state
entity_id: !input plan_comfort
state: "off"
- condition: state
entity_id: !input plan_eco
state: "off"
- condition: state
state: "off"
entity_id: !input heizung_wecker
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) >=
states('!input heizung_nacht') | float(0) + 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_nacht') | float(0) + 0.5 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Wecker" und "Jemand zu Hause" und "Temp < eco"
if:
- condition: state
entity_id: !input plan_comfort
state: "off"
- condition: state
entity_id: !input plan_eco
state: "off"
- condition: state
entity_id: !input heizung_wecker
state: "on"
- condition: state
entity_id: !input somebody
state: home
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) <=
states('!input heizung_eco') | float(0) - 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_eco') | float(0) + 1 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
- alias: Wenn "Wecker" und "Jemand zu Hause" und "Temp > eco"
if:
- condition: state
entity_id: !input plan_comfort
state: "off"
- condition: state
entity_id: !input plan_eco
state: "off"
- condition: state
entity_id: !input heizung_wecker
state: "on"
- condition: state
entity_id: !input somebody
state: home
- condition: template
value_template: >-
{{states('!input temperatur_raum') | float(0) >=
states('!input heizung_eco') | float(0) + 0.1}}
then:
- data:
temperature: "{{ states('!input heizung_eco') | float(0) + 0.5 }}"
target:
entity_id: !input thermostat
action: climate.set_temperature
Danke für deine Hilfe.
by HarryP: Zusammenführung Mehrfachpost (bitte “bearbeiten” Funktion nutzen)
Also, ich habe es gerade selber mal probiert.
Wie gesagt, du musst die Variablen anlegen:
variables:
var_temperatur_aussen: !input temperatur_aussen
var_heizung_aus: !input heizung_aus
...
...
und dann in den Conditions wie folgt abfragen:
conditions:
- alias: Außentemperatur < Wert Heizung aus
condition: template
value_template: >-
{{ states(var_temperatur_aussen) < states(var_heizung_aus) }}
@MAS
hast du deine Blueprint fertig?
Poste bitte mal das Ergebnis.
Hi,
sorry war die letzten Tage viel unterwegs. Habe Sie leider noch nicht fertig.
Also wenn ich die Variablen so anlege:
variables:
var_temperatur_aussen: !input temperatur_aussen
var_heizung_aus: !input heizung_aus
- Dann aus der Blueprint eine Automatisation erstelle
- die Kontrolle der Automatisation übernehme
- und dann als YAML bearbeite
Dann aknn ich sehen, dass !Input aufgelösst wird. Also es steht hinter der Variablen der Sensor/Input Number.
Soweit also alles richtig und gut.
Aber das Ergebnis der Condition ist immer noch falsch. Trage ich die Sensoren feste ein funktioniert es.
Hier einmal der Anfang vom Code dazu
variables:
var_temperatur_aussen: sensor.temp_humi_outside_temperature
var_heizung_aus: input_number.heizung_aussentemperatur
mode: single
triggers:
- entity_id:
- sensor.temp_humi_lia_temperature
trigger: state
- minutes: /10
trigger: time_pattern
conditions:
- alias: Außentemperatur < Wert Heizung aus
condition: template
value_template: "{{ states(var_temperatur_aussen) < states(var_heizung_aus) }}"
- alias: Außentemperatur < Wert Heizung aus 2
condition: template
value_template: >-
{{ states('sensor.temp_humi_outside_temperature') < states('input_number.heizung_aussentemperatur') }}
- condition: state
entity_id: input_boolean.heizung_sommerbetrieb
state: "off"
Außentemperatur < Wert Heizung aus funktioniert nicht
Außentemperatur < Wert Heizung aus 2 funktioniert
Lass mal die “” weg
value_template: >-
{{ states(var_temperatur_aussen) < states(var_heizung_aus) }}
Die werden alleine gesetzt. In der Blueprint sind die nicht drin.
Ich habe mal eine Test Blueprint geschrieben:
blueprint:
name: Test V1.0
description: Template Test
domain: automation
input:
section_temperaturen:
name: Temperaturen
icon: mdi.thermometer
description: Hier müssen die Temperatursensoren eingetragen werden
input:
temperatur_aussen:
name: Aussentemperatur
description: Temperatursensor von draußen
default: {}
selector:
entity:
filter:
domain: sensor
device_class: temperature
section_parameter:
name: Parameter
icon: mdi.speedometer
description: Hier müssen die Parameter eingegeben werden.
input:
heizung_aus:
name: Heizung aus
description: Temperatur bei der die Heizung ausgeschaltet werden soll
default: {}
selector:
entity:
filter:
domain: input_number
variables:
temperatur_aussen: !input temperatur_aussen
heizung_aus: !input heizung_aus
mode: single
triggers:
- minutes: /5
trigger: time_pattern
conditions:
- alias: Außentemperatur < Wert Heizung aus
condition: template
value_template: >-
{{ states(temperatur_aussen) < states(heizung_aus) }}
actions:
- action: input_boolean.toggle
metadata: {}
data: {}
target:
entity_id: input_boolean.test_schalter
Wenn ich daraus eine Automatisation mache, wird daraus dieser YAML Code:
variables:
temperatur_aussen: sensor.temp_humi_outside_temperature
heizung_aus: input_number.heizung_aussentemperatur
mode: single
triggers:
- minutes: /5
trigger: time_pattern
conditions:
- alias: Außentemperatur < Wert Heizung aus
condition: template
value_template: "{{ states(temperatur_aussen) < states(heizung_aus) }}"
actions:
- action: input_boolean.toggle
metadata: {}
data: {}
target:
entity_id: input_boolean.test_schalter
alias: Test V1.0
description: ""
Und ich habe das gleiche Problem.
Oder liegt das daran, das es unterschiedliche Inputs sind (Sensor und Number)
by HarryP: Zusammenführung Mehrfachpost (bitte “bearbeiten” Funktion nutzen)
Du machst aus einer Automatisierung eine Blueprint um danach wieder die Kontrolle zu übernehmen ???
Teste doch einfach mal die Blueprint und schau in die Trace-Timeline.
Oh, da geht es.
Ich hätte aber erwartet, das ich mit Kontrolle übernehmen, die einzelnen Schritte testen kann.
Ich mache das dann mal komplett fertig und poste das hier.