Automatisierung über GUI, in welchem Verhältnis stehen Auslöser und Bedingung

Thrusty

Member
Ich habe eine Automatisierung über die GUI erstellt, als Auslöser mit Zeitablauf ein numerischer Wert, als Bedingung die Anwesenheit eines Wemos, doch die Aktion löst nach Ablauf der Zeit die gewünschte Aktion aus.
In welchem Verhältnis stehen Auslöser und Bedingung?
Bzw was erreiche ich wenn ich zwei Bedingungen mit "und" oder "oder" verknüpfe?
Gruß Ingo
 

blurrrr

Well-known member
Bzw was erreiche ich wenn ich zwei Bedingungen mit "und" oder "oder" verknüpfe?
oder = EINE der beiden Bedingungen muss erfüllt sein
und = BEIDE Bedingungen müssen erfüllt sein

Faktor Zeit : Wenn Bedingungen X für Zeit Y erfüllt ist, z.B.:

Wenn "Tür auf" für "5 Minuten" dann Meldung "Tür schliessen!"

Ich hoffe, dass war es was Du meintest, ansonsten vergiss das ganz schnell wieder 😅
 

alexamend

Active member
Auslöser:
Ist das Ergebnis das dafür sorgt das die erstellte Automatisierung ihre Aufgabe startet,
Angenommen Auslöser (Sonnenaufgang) dann startet die Automatisierung bei Sonnenaufgang, unabhängig der zu erledigen Aufgaben.

Bedingungen:
Zum Beispiel Fenster müssen geschlossen sein.
Oder
Es muss Freitag sein.

Aktion:
Ist die eigentliche zu erledigente Aufgabe
Rollos hoch fahren.

---------
Mit und, oder, nicht, zustand, kann man Bedingungen in einander Verschachteln

z.B.
Wenn Fenster zu UND Haustüre zu dann erst fahre die Rollos hoch

Wenn Fenster zu ODER Haustüre zu dann fahre die Rollos hoch

Wenn Fenster zu UND Haustüre zu UND NICHT Bewegungsmelder Belegt dann die Rollos hoch
UND NICHT nimmt man meistens bei Alarm bedingten Sachen, das kommt aus dem Safty Bereich hier wird immer das Signal abgefragt UND wenn es NICHT mehr vorhanden ist ausgelöst damit verhindert man ein ungewolltes auslösen.

Wenn Fenster zu UND Haustüre zu UND STATUS ich bin zuhause dann fahre die Rollos hoch
 
Zuletzt bearbeitet:

Thrusty

Member
@blurrr
Danke für die Antwort. Aber das dachte ich mir schon, dass es so funktioniert
@alexamend
also muss ich am besten einen Auslöser haben, der nicht direkt mit der Aufgabe zutun hat.
Speziell geht es in diesem Fall um mein Auto. Es befindet sich ein Wemos im Auto. der meldet per matt ob das Auto auf oder zu ist. Demnach müsste ich als Auslöser "Wemos zu Haus" wählen. Und nicht den Zustand ob verschlossen oder nicht.
Ich werde das morgen mal testen.
Jedenfalls erstmal Danke für die Antworten.
 

alexamend

Active member
In deinem Fall, JA der Auslöser darf nicht Offen oder Zu sein, entweder ob present (also zuhause) oder Wemos im Netzwerk angemeldet, kenne deinen Wemos nicht.

Und 🤣🤣 du meinst sicherlich mqtt (matt ???)
 

carsten_h

Active member
Für Probleme mit Automatisierungen hilft auch immer der Debugger (Traces), dort kann man wunderbar grafisch sehen warum oder warum nicht etwas passiert ist.
 

Thrusty

Member
@alexamend
Danke für deine Antwort.
Traces habe ich nun gefunden.
Bringt mich leider nicht weiter.
Möglicherweise habe ich einfach einen Denkfehler!?
Mein Code sieht so aus:
id: '1663059588606'
alias: Auto Pushover
description: ''
trigger:
- platform: mqtt
topic: ' tele/tasmota_DC44E1/LWT'
payload: Online
condition:
- condition: and
conditions:
- condition: numeric_state
entity_id: input_number.auto_variable
above: 1
below: 3
- condition: time
after: '00:05:00'
action:
- service: notify.pushover
data:
message: Auto ist noch auf
mode: single
Eigenlich möchte ich ich nur eine Meldung über Pushover aufs Handy bekomen, wenn das Auto nach zb 10 min nicht verschlossen ist, obwohl es in der Einfahrt steht.
Im Auto befindet sich ein Wemos, mit Tasmota geflasht. Dieser sendet mir über mqtt den Zustand des Autos, auf oder zu. Leider bekomme ich es nicht hin diese Meldung auf eine bestimmte Zeit zu bringen. Im Moment scheinen mir alle Meldungen sehr konfus zu sein.
Vielleicht kann da jemand helfen!?
 

alexamend

Active member
Ich gehe davon aus das deine Aktion nicht ganz passt.

In etwa so.... Jetzt musst du noch deine Sensoren einbinden.

YAML:
- id: 'some_automation_id_number'
  alias: Car Door notification
  description: ''
  trigger:
  - entity_id: your_sensor # use your car door sensor
    for: 00:10:00 # wait for 600s after changing state from on to off
    from: 'false'
    platform: state
    to: 'true'
  condition: []
  action:
  - data:
      message: Your Car door is open!
      title: Car Door open
    service: notify.mobile_app_your_phone_entity # if you have HA app installed you should select your phone notification service here
  mode: single

Wobei ich mir nicht sicher bin, da die Türe ja während der Fahrt auch offen ist, sich daher der state nicht geändert hat. Müsste man mal testen.
 

Thrusty

Member
@alexamend
Ich kann deinem Code so nicht nutzen denke ich. Oder ich verstehe nicht genug davon.
Ich will mein Aufbau und meinen Plan noch mal genauer beschreiben:

Mein Auslöser ist ein mqtt Payload. Und zwar dann, wenn ich mit dem Auto ins Wlan komme, also wenn der ESP sich im Wlan Online meldet. Ist das Auto weg, dann steht im System zwar "Auto auf" aber der ESP ist Offline.

Als Bedingung verwende ich einen Helfer (input_number.auto_variable). Der setzt seinen Wert auf 1 oder 2, jenachdem ob das Auto verschlossen ist oder nicht. Diese Infomation sendet auch der ESP aus dem Auto per mqtt (Power1 ON oder Power2 ON).
Zusätzlich wollte ich einen Zeitablauf drin haben,
-wenn das Auto verschlossen wird während des Zeitablaufs keine Meldung,
-wenn das Auto nicht verschlossen wird in diesem Zeilablauf eine Meldung.
Also entweder oder... so der Plan.

Also das mit dem Auslöser funktioniert, das mit der Änderung des Helfers funktioniert, die Meldung per Pushover funktioniert.
Was nicht funktioniert ist das mit dem Zeitablauf. Und ich habe keine Ahnung was ich nun ändern sollte :unsure:

Vielleicht darf die Zeitangabe nicht mit UND in der Bedingung verknüfpt werden sondern irgendwie anders?
Wenn ich so überlege macht UND keinen Sinn für das was ich erreichen möchte. Aber welche Alternative gibt es?

Code:
- id: '1663059588606'
  alias: Auto Pushover
  description: ''
  trigger:
  - platform: mqtt
    topic: ' tele/tasmota_DC44E1/LWT'
    payload: Online
  condition:
  - condition: and
    conditions:
    - condition: numeric_state
      entity_id: input_number.auto_variable
      above: 1
      below: 3
    - condition: time
      after: 00:05:00
  action:
  - service: notify.pushover
    data:
      message: Auto ist noch auf
  mode: single
 
Zuletzt bearbeitet:

azrael783

Active member
Deine Bedingung ist nur dann wahr, wenn die Variable zwischen 1 und 3 liegt und es später als 00:05 ist. Du hast also eine Uhrzeit als Bedingung verwendet, daher kann das gar nicht so funktionieren wie du möchtest.
Ich verstehe grade nicht so ganz warum du nicht die Variable als Trigger nutzt. Dann könntest du nämlich wie von @alexamend vorgeschlagen, die Zeitverzögerung nutzen. Also wenn input_number.auto_variable = 2 für 5min, dann schicke Nachricht.
 
Zuletzt bearbeitet:

Thrusty

Member
Das nur bei Variable 2 ausgelöst werden soll war so gewollt. Der Wert kann nur 1 oder 2 werden. Bei 2 ist das Auto verschlossen.
Ich habe den Teil mit der Zeit von @alexamend eingefügt:
Code:
condition:
  - condition: numeric_state
    entity_id: input_number.auto_variable
    above: 1
    below: 3
    for: 00:10:00 # wait for 600s after changing state from on to off
    from: 'false'
    platform: state
    to: 'true'

Dann bekomme ich diesen Fehler wenn ich speichern will:
Message malformed: extra keys not allowed @ data['condition'][0]['for']
 

alexamend

Active member
Wenn dann müsste es bei dir so etwa aussehen

YAML:
condition:
  - condition: numeric_state
    entity_id: input_number.auto_variable
    above: 1
    for: 00:10:00
    below: 3
 

Thrusty

Member
Hab es ausprobiert. Funktioniert leider auch nicht. Ich bekomme die gleiche Fehlermeldung wie vorher wenn ich speichern will.
 

alexamend

Active member
Zeigt es doch einfach im visuellen Editor.

condition: die zusätzlich eine 'for:' Bedingungen erhalten lassen sich nicht im Visuellen Editor erstellen oder bearbeiten. Wenn man mehr als nur knipps mir das Licht um 7:23 nach Sonnenaufgang AN realisieren möchte geht's meistens nur über den YAML Editor,

EDIT: falscher Screenshot

So schaut es im Visuellen mit 'for' aus...
Wie zu sehen sehen ist da nicht...
Screenshot_20220916-213919_Home Assistant.jpg

So als YAML mit 'for'
Screenshot_20220916-213452_Home Assistant.jpg
 
Zuletzt bearbeitet:

Thrusty

Member
Der Code bringt mir wieder die gleiche Fehermeldung, so hatte ich es eingefügt:
Code:
    topic: " tele/tasmota_DC44E1/LWT"
    payload: Online
condition:
  - condition: numeric_state
    entity_id: input_number.auto_variable
    above: 1
    below: 3
    for:
    hours: 0
    minutes: 10
    seconds: 0
action:
  - service: notify.pushover
    data:
      message: Auto ist noch auf
Und in der GUI habe ich keine Option für eine Zeitangabe.

Bildschirmfoto 2022-09-16 um 21.28.44.png
 

alexamend

Active member
Beachte bitte das korrekte einrücken, dann sollte es gehen.

Ich habe den vorherigen Beitrag nochmal Editieren müssen, falsches Bild
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
968
Beiträge
14.035
Mitglieder
499
Neuestes Mitglied
John58
Oben