ich habe mal eine Grundsätzliche Frage zu den Bedingungen in Automationen.
Ich hätte erwartet, dass die Action nur ausgeführt wird, wenn der Trigger kommt und die Bedingung erfüllt ist. Das klappt bei mir aber nicht. Die Action wird ausgeführt obwohl die Bedingung “false” ist. Wenn ich aber IF in Action verwende, funktioniert die gleiche Bedingung wie gewünscht.
Ich scheine also das Konzept nicht verstanden zu haben…
Poste mal den Code deiner Automation, denn das Konzept hast du eigentlich verstanden. Ich vermute ein Problem in der Automation. Die Bedingung kannst du auch in der Automation testen über die 3 Punkte.
Die Trigger sind oder. Wenn Du also mehrere Trigger definierst, reicht es, dass ein Trigger ausgelöst wird.
Die Bedingungen sind und. Es müssen also alle angegebenen Bedingungen erfüllt sein.
Wobei man natürlich noch mit or und/oder and arbeiten kann, um zu verschachteln.
Wenn Deine Automation bzw. Bedingungen nicht funktionieren, wäre der yaml Code hilfreich, um es nachvollziehen zu können.
Sinn der Sache ist, ich möchte benachrichtigt werden wenn die Heizung einen Fehler erkennt, aber nur wenn der Fehler nicht 2948 enthält. (das ist eine Überwachung die immer wieder kommt).
Beim Test der Bedingung erhalte ich ein false, die Action wird dennoch ausgeführt wenn ich die Automation manuell triggere.
alias: test
description: ""
trigger:
- platform: state
entity_id:
- sensor.boiler_last_error_code
condition:
- condition: template
value_template: >-
value_template: "{{ not '2948' in states('sensor.boiler_last_error_code')
}}"
action:
- service: notify.telegram
data:
message: >-
Achtung: Heizung ist im Fehler! {{
states('sensor.boiler_last_error_code') }}
mode: single
Das Problem ist dein manuelles auslösen über die drei Punkte. Dabei werden Trigger und Condition ignoriert und nur der Action Zweig ausgeführt.
Wenn du die Automation mit Bedingung testen willst, gehe in den Entwicklerwerkzeugen auf Dienste → Automatisierung: Auslösen und deaktiviere den Schalter für das überspringen der Condition: