Weil wahrscheinlich die ID fehlt. Beim ersten Trigger hast du die ID gesetzt. Beim 2. wahrscheinlich nicht.
Die geünschte Logik einmal zusammengefasst, soweit ich das verstehe:
- Bewegung erkannt nach Sonnenuntergang → Licht ein
- Wenn 2,5 Minuten keine Bewegung mehr erkannt wurde UND das Licht über den Bewegungsmelder eingeschaltet wurde → Licht aus
- Wenn das Licht manuell eingeschaltet wurde: Anlassen, bis manuell ausgeschaltet wird.
Dazu muss in jedem Fall irgendwie festgestellt werden, ob das Licht automatisiert oder manuell eingeschaltet wurde. Dazu gibt es meines Wissens nach aber keine Entität, also müssen wir uns diese selber schaffen, z.B. durch einer Helfer (Wahrheitswert / Boolean) Variable. Ich würde es dann z.B. in 3 Automationen nach folgender Logik umsetzen:
-
Licht automatisiert einschalten
Auslöser: Bewegung erkannt
Bedingungen: Es ist nach Sonnenuntergang UND Licht ist aktuell ausgeschaltet
Aktionen: Licht einschalten UND Helfer auf “true” setzen -
Licht ausschalten
Auslöser: Seit 2,5 Minuten keine Bewegung mehr erkannt
Bedingungen: Licht ist eingeschaltet UND Helfer ist auf “true” gesetzt
Aktionen: Licht ausschalten und Helfer als “false” setzen -
Helfer zurücksetzen
Auslöser: Licht wurde ausgeschaltet (egal durch wen)
Bedingungen: Keine
Aktionen: Helfer auf “false” setzen
Erklärung:
Der Helfer gibt an, ob das Licht automatisiert eingeschaltet wurde. Nur wenn dies der Fall ist, darf es auch automatisiert ausgeschaltet werden. Wenn es bereits manuell eingeschaltet wurde, darf 1. natürlich nicht zusätzlich automatisiert einschalten. Wird das Licht in 1.aber automatisiert eingeschaltet, so wird dies durch den Helfer mit “true” gespeichert. Und nur dann kann in 2. nach 2,5 Minuten auch automatisiert ausgeschaltet werden. Wird das Licht manuell eingeschaltet, so verbleibt der Helfer auf false und 1. kann ihn nicht automatisiert zusätzlich einschalten, 2. kann nicht automatisiert ausschalten.
3. wird benötigt, sollte das Licht automatisiert eingeschaltet, aber manuell ausgeschaltet worden sein. In diesem Fall muss der Helfer resettet werden.
Mögliche Schwachstellen:
Wenn der Schalter so positioniert ist, dass du im Bereich des Bewegungsmelders bist, kann es noch zu blöden Effekten kommen. z.B. könntest du manuell ausschalte, würdest direkt als Bewegung erkannt und das Licht geht automatisiert wieder an. Das müsste dann gesondert abgefangen werden, nur so als Gedanke…
Ich versuche mich mal am Yaml-Code zum genannten Beispiel (ich hoffe er ist so lauffähig, kann ihn bei mir leider nicht testen da ich weder einen Switch noch Bewegungsmelder integriert habe. Irgendwas ist sicherlich falsch
):
Helfer Variable, z.B. in config.yaml:
input_boolean:
licht_wurde_automatisch_eingeschaltet:
name: "Licht wurde automatisch eingeschaltet"
icon: mdi:lightbulb-on
- Licht automatisiert einschalten:
- alias: "Licht einschalten"
description: "bei Bewegung, nach Sonnenuntergang, wenn aktuell ausgeschaltet"
mode: single
trigger:
- type: occupied
device_id: <<ID Bewegungsmelder>>
entity_id: <<ID Entität>>
domain: binary_sensor
condition:
- condition: sun
after: sunset
- condition: state
entity_id: <<ID Sonoff Schalter>>
state: "off"
action:
# 1) Switch/Licht einschalten
- type: turn_on
device_id: <<ID Sonoff Schalter>>
domain: switch
entity_id: <<ID Entität>>
# 2) Helfer-Variable auf "on" setzen
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.licht_wurde_automatisch_eingeschaltet
- Licht ausschalten
- alias: "Licht ausschalten"
description: "2,5 Min ohne Bewegung, nur wenn Licht zuvor automatisch eingeschaltet wurde"
mode: single
trigger:
- type: not_occupied
device_id: <<ID Bewegungsmelder>>
entity_id: <<ID Entität>>
domain: binary_sensor
for:
hours: 0
minutes: 2
seconds: 30
condition:
# Nur ausführen, wenn das Licht via Automation eingeschaltet wurde
- condition: state
entity_id: input_boolean.licht_wurde_automatisch_eingeschaltet
state: "on"
action:
# 1) Switch/Licht ausschalten
- type: turn_off
device_id: <<ID Sonoff Schalter>>
domain: switch
entity_id: switch.<<ID Entität>>
# 2) Helfer-Variable zurücksetzen
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.licht_wurde_automatisch_eingeschaltet
- Helfer zurücksetzen
- alias: "Helfer zurücksetzen"
description: "Immer dann, wenn das Licht ausgeht"
mode: single
trigger:
- type: turned_off
device_id: <<ID Sonoff Schalter>>
domain: switch
entity_id: switch.<<ID Entität>>
condition: []
action:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.licht_wurde_automatisch_eingeschaltet
Kurze Anmerkung: Der Helfer wird bei automatischem Ausschalten sowohl in 2. als auch 3. zurückgesetzt. Das sollte aber nicht stören, ansonsten z.B. in 2. weglassen.
Hoffe es funktioniert ![]()