Heizungs-Automation

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.

:crayon: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)

:crayon: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.