Home Assistant Automation Tutorial - Komplett & verständlich erklärt

Es wäre sicherlich hilfreich, wenn du die yaml deiner Automation mit uns als vorformatierter Text (STRG + e auf der Tastatur oder das </> Symbol in der Leiste) teilen würdest und genau beschreibst, wo du die Zeitbedingung einfügen willst.

1 „Gefällt mir“

Meinst du die TriggerID? Hast du dem Trigger denn dann überhaupt eine gegeben?

Vielen Dank für die schnellen Rückmeldungen.
Seht mal bitte hier habe ich mein Anliegen noch einmal genauer beschrieben:

Hallo zusammen,

ich komme in dem Punkt nicht weiter: “Template-Condition, ob Entität zuletzt durch Automation geschaltet wurde.”

Ich habe eine Lüftungssteuerung (Lüftung an) programmiert, 2 Sensoren triggern im ODER meine Lüftungsanlage an, intensiv zu lüften.
Das funktioniert auch, nun möchte ich aber auch den Lüftungskontakt wieder öffnen, wenn beide Trigger unter einem Wert liegen (UND), auch das funktioniert. Habe beides in 2 unterschiedliche Programme geschrieben.
Jetzt aber das, was ich nicht programmiert bekomme: Das Programm (Lüftung aus) soll nur ausgeführt werden, wenn der Lüftungskontakt zuvor über das Programm (Lüftung an) ausgelöst wurde.
Wie bekomme ich das da hineingebastelt? Am liebsten im visuellen Editor.

Beste Grüße Daniel

Damit meinst du eine Automatisierung?
Leg dir einen Helfer (input_boolean) an. Diesen lässt du in der Automatisierung “Lüftung an” auf on setzen.

Bei “Lüftung aus” prüfst du in den Bedingungen, ob der Helfer an ist.
Dort setzt du ihn wieder off.

1 „Gefällt mir“

Hallo Maxe,

danke für deine super schnelle Antwort.
Klingt einfach nur logisch, ich habe es jetzt mal genau so umgesetzt!
Werde gleich die Automation über den Sensor auslösen lassen und berichten.
Danke erstmal für deinen Support!

Update:
Hat wunderbar geklappt, danke nochmal!
Wie bekomme ich jetzt beide Automatisierungen (Lüftung an) und (Lüftung aus) in einer Automatisierung, sinnvoll zusammengeführt?

Beste Grüße Daniel

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Mit TriggerIDs und die Conditions müssen dann in den jeweiligen Actions abgefragt werden.

1 „Gefällt mir“

Automatisierungen bitte als YAML posten. Oben rechts auf die drei Punkte und dann Als YAML anzeigen.

Hier dann einfügen als vorformatierter Text </>.

Bilder kann man schlechter erkennen, insbesondere auf mobilen Geräten.

alias: CO2 Lüftung einschalten
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.schlafzimmer_kohlendioxid
    above: 1200
  - trigger: numeric_state
    entity_id:
      - sensor.wohnzimmer_kohlendioxid
    above: 1100
conditions: []
actions:
  - type: turn_on
    device_id: 80c583f7fee4d8ecf2f323144d317349
    entity_id: 87e8950171c454b0799d0470f5073ae3
    domain: switch
  - action: input_boolean.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.luftungsanlage_automatisiert_an
mode: single

alias: CO2 Lüftung abschalten
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.wohnzimmer_kohlendioxid
      - sensor.schlafzimmer_kohlendioxid
    below: 1000
conditions:
  - condition: numeric_state
    entity_id: sensor.wohnzimmer_kohlendioxid
    below: 1000
  - condition: numeric_state
    entity_id: sensor.schlafzimmer_kohlendioxid
    below: 1000
  - condition: state
    entity_id: input_boolean.luftungsanlage_automatisiert_an
    state: "on"
actions:
  - type: turn_off
    device_id: 80c583f7fee4d8ecf2f323144d317349
    entity_id: 87e8950171c454b0799d0470f5073ae3
    domain: switch
  - action: input_boolean.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.luftungsanlage_automatisiert_an
mode: single

Guten Abend miteinander,
Keiner eine Idee? :frowning:

was ist denn die Frage? Zu deiner Frage mit den Bildern hat @maxe schon die Antwort gegeben.

Hallo,
ich habe erst mit HA angefangen und wollte eine Automation machen.
zuerst habe ich ein sensor Template gemacht.

template:
    - sensor:
      - name: "WP minOnPower"  
        unique_id: "WP_minOnPower"
        state: >-
          {% if states('sensor.wp_status') == 'ON' and 
                float(states('sensor.sn_3004179463_pv_power')) - float(states('sensor.haus_Verbrauch')) > float(100)%}
             ueber
          {% elif states('sensor.wp_status') == 'OFF' and 
                float(states('sensor.sn_3004179463_pv_power'))  > float(1500)%}
              ueber
          {% else %}
              unter
          {% endif %}

dieser funktioniert auch.
Nun wollte ich dien Sensor in einer Automation verwenden:
Auszug davon:

  alias: SG Steuerung V1
  description: SG Ready Steuerung V1
  triggers:
    - trigger: time_pattern
      minutes: /2
  conditions: []
  actions:
    - choose:
        - conditions:
            - condition: state
              entity_id: sensor.WP_minOnPower
              state: ueber
              for: 
                hours: 0
                minutes: 1
                seconds: 0
...

da bekomme ich immer einen Fehler:
Fehler: extra keys not allowed @ data[‘actions’][0][‘choose’][0][‘conditions’][0][‘for’]. Got {‘hours’: 0, ‘minutes’: 1, ‘seconds’: 0} extra keys not allowed @ data[‘actions’]

liegt das an dem Template oder an der Automation?

Fehlermeldung passt zum auszug, da ich sehr viel experimentiert habe.
daher nochmals:
Template:

template:
    - sensor:
      - name: "WP Status"
        unique_id: "WP_Status"
        state: >-
          {% if states('sensor.pro3em_99_total_active_power') | float > 100 %}
            ON
          {% elif states('sensor.pro3em_99_total_active_power') | float < 90 %}
           OFF
          {% else %} }}
           ERROR
          {% endif %}
      - name: "WP minOnPower"  
        unique_id: "WP_minOnPower"
        state: >-
          {% if states('sensor.wp_status') == 'ON' and 
                float(states('sensor.sn_3004179463_pv_power')) - float(states('sensor.haus_Verbrauch')) > float(100)%}
              ueber
          {% elif states('sensor.wp_status') == 'OFF' and 
                float(states('sensor.sn_3004179463_pv_power'))  > float(1500)%}
              ueber
          {% else %}
              unter
          {% endif %}

Automation:

- id: '1747987762224'
  alias: SG Steuerung V1
  description: SG Ready Steuerung V1
  triggers:
    - trigger: time_pattern
      minutes: /2
  conditions: []
  actions:
    - choose:
        - conditions:
            - condition: state
              entity_id: sensor.WP_minOnPower
              state: 'OFF'
              for: 
                hours: 0
                minutes: 1
                seconds: 0
            - condition: numeric_state
              entity_id: sensor.sn_1901014266_battery_soc_total
              above: 50
              enabled: false
            - condition: numeric_state
              entity_id: sensor.solcast_pv_forecast_leistung_in_1_stunde
              above: 1500
              enabled: true
          sequence:
            - target:
                entity_id: switch.mini1g3_101_switch_0
              action: switch.turn_on
              data: {}
        - conditions: 
          condition: and
          conditions:
            - condition: or
              conditions:
                - condition: state
                  entity_id: states.sensor.wp_status
                  state: 'OFF'
                - condition: state
                  entity_id: states.sensor.wp_status
                  state: 'ON'
                  for: 
                    hours: 0
                    minutes: 30
                    seconds: 0
            - condition: state
              entity_id: sensor.WP_minOnPower
              state: 'OFF'
              for: 
                hours: 0
                minutes: 1
                seconds: 0
          sequence:
            - target:
                entity_id: switch.mini1g3_101_switch_0
              action: switch.turn_off
              data: {}

Fehlermeldung:
Aktionen: Entity states.sensor.wp_status is neither a valid entity ID nor a valid UUID for dictionary value @ data[0]['choose'][1]['conditions'][0]['conditions'][0]['entity_id']

states.sensor.wp_status liefert tatsächlich laut temlate editor viel zu viel:

<template TemplateState(<state sensor.wp_status=OFF; friendly_name=WP Status @ 2025-05-23T15:27:12.153537+02:00>)>

states.sensor.wp_status.status würde das richtige ergebnis liefern. in dem Fall: OFF

Wie muss ich das Template richtig schreiben, damit ich es in einer Automation benützen kann?

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Da sind states. zu viel.

Hallo, ich bräuchte mal bitte eure Hilfe.

Ich benutze Shelly 2PM Gen4

Wenn ich mein Fenster in der Küche öffne, soll nach 10 Sekunden das Rollo in der Küche auf 85% fahren um zu lüften. Schließe ich es wieder, soll es nach 10 Sekunden wieder an die Position von vor dem Fenster öffnen fahren, es sei denn die Position hat sich geändert.

Mein Problem ist jetzt das der Rollladen laut HA und Shelly App zwar auf 85% fährt, er aber trotzdem ganz nach oben fährt. Irgendwie passen die Position in der Automation nicht. Der Rest der Automation scheint zu funktionieren.
Hat jemand einen Tipp?

alias: Fenster Küche auf - Rollo auf
description: ""
triggers:
  - trigger: state
    entity_id: binary_sensor.fenster_kueche
    from: "off"
    to: "on"
    for:
      seconds: 10
conditions: []
actions:
  - action: saver.save_state
    data:
      entity_id:
        - cover.rollo_kueche
  - action: cover.set_cover_position
    target:
      entity_id: cover.rollo_kueche
    data:
      position: 85
  - wait_for_trigger:
      - trigger: state
        entity_id: binary_sensor.fenster_kueche
        from: "on"
        to: "off"
        for:
          seconds: 10
  - choose:
      - conditions:
          - condition: template
            value_template: >
              {{ state_attr('cover.rollo_kueche', 'current_position') | int(0)
              == 85 }}
        sequence:
          - action: cover.set_cover_position
            target:
              entity_id: cover.rollo_kueche
            data:
              position: >
                {{ saver_entity('cover.rollo_kueche', 'current_position') |
                int(0) }}
mode: restart

Wenn du ein eigenes Thema aufmachst .. wird dir vermutlich eher geholfen. Guten Titel wählen und ..los

1 „Gefällt mir“

Wie kann ich denn zwei Bedingungen ver-odern?

conditions:
  - condition: or
    conditions:
      - condition: ...
      - condition: ...