Trigger ID oder if/then/else?

Ich bin immer noch am “Optimieren” meiner Lichtautomationen.
Licht an bei Bewegung und unterschreiten eines Helligkeitswertes ist kein Problem.
Das Problem, dass ich habe, ist, dass ich eigentlich möchte, dass das Licht bei wenig Licht angeht und solange an bleibt, wie davor Bewegung stattfindet. Das funktioniert theoretisch auch. Problem ist dann nur, dass durch das Licht die Helligkeitsbedingung nicht mehr erfüllt ist (zu Hell).
Die einfachste Lösung wäre nun natürlich einfach die Schwelle hochzusetzen, aber dann würde das auch häufiger (unnötig) auslösen. Die Helligkeit der Lampe möchte ich aber auch nicht verringern.
Nun habe ich mir überlegt das mit einer Auswahl zu realisieren.
Nun zu meiner Frage.
Mache ich das besser mit Trigger IDs oder über if/then/else?
Kann ich 2x mal dieselbe Bedingung (Bewegung erkannt) mit unterschiedlichen IDs verknüpfen und dann bei den Optionen unterschiedliche Bedingungen definieren oder muss ich das mit if/then/else machen?

  • Option 1: Helligkeit < XX Lux
  • Option 2: Lampe ein
    Danach entsprechend derselbe Ablauf. Licht an → warten auf keine Bewegung erkannt → Licht aus…

Kann das funktionieren?

Beispiel Trigger IDs

`alias: Licht Flur DG Stripe Selbshaltung
description: “”
trigger:

  • type: motion
    platform: device
    device_id: ebe50890717d268faa87d648c5af3a98
    entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
    domain: binary_sensor
    id: Dunkel
  • type: motion
    platform: device
    device_id: ebe50890717d268faa87d648c5af3a98
    entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
    domain: binary_sensor
    id: Selbsthaltung
    condition:
    action:
  • choose:
    • conditions:
      • condition: trigger
        id:
        • Dunkel
      • type: is_illuminance
        condition: device
        device_id: ebe50890717d268faa87d648c5af3a98
        entity_id: 8fbf994ab4e0d748aebd829a647b4c21
        domain: sensor
        below: 1
        sequence:
      • service: light.turn_on
        data:
        brightness_pct: 10
        target:
        entity_id:
        - light.flur_dg
      • wait_for_trigger:
        • type: no_motion
          platform: device
          device_id: ebe50890717d268faa87d648c5af3a98
          entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
          domain: binary_sensor
          continue_on_timeout: false
      • delay:
        hours: 0
        minutes: 0
        seconds: 30
        milliseconds: 0
      • service: light.turn_off
        data: {}
        target:
        entity_id:
        - light.flur_dg
    • conditions:
      • condition: trigger
        id:
        • Selbsthaltung
      • condition: device
        type: is_on
        device_id: cadeb31faaae8643eb763821ce0babeb
        entity_id: d309d3c1f4797b78e2fba03521c7bd9d
        domain: light
      • type: is_illuminance
        condition: device
        device_id: ebe50890717d268faa87d648c5af3a98
        entity_id: 8fbf994ab4e0d748aebd829a647b4c21
        domain: sensor
        below: 500
        sequence:
      • service: light.turn_on
        data:
        brightness_pct: 10
        target:
        entity_id:
        - light.flur_dg
      • wait_for_trigger:
        • type: no_motion
          platform: device
          device_id: ebe50890717d268faa87d648c5af3a98
          entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
          domain: binary_sensor
          continue_on_timeout: false
      • delay:
        hours: 0
        minutes: 0
        seconds: 30
        milliseconds: 0
      • service: light.turn_off
        data: {}
        target:
        entity_id:
        - light.flur_dg
        mode: restart
        `

Verstehe gerade das Problem nicht ganz.

Die Aktivierungsautomatik sagt doch nur,
Wenn Bewegung erkannt, Bedingung dunkel, Licht an

Die Deaktivierungsautomatik müsste dann,
Wenn keine Bewegung für 5 min., dann aus.

Oder denke ich zu einfach :man_shrugging:t3:

Edit: Wenn du das in einer Automation haben willst, müsstest du mit TriggerIDs arbeiten, weil die Bedingung ja nicht für beide gelten soll.

JA!
Oder ich habe es grundsätzlich nicht verstanden :slight_smile:

Das funktioniert für den Beginn.
Die Zeit soll aber neu starten, wenn innerhalb der Zeit erneut Bewegung erkannt wird. (selber Trigger)
Dann ist die Bedingung aber nicht mehr erfüllt, weil durch die angeschaltete Lampe der Helligkeitswert über der Bedingungsschwelle liegt. (neue Bedingung: Lampe schon an)
⇒ 2x derselbe Trigger, aber unterschiedliche Bedingungen.

Geht das mit unterschiedlichen IDs oder muss ich das mit Verzweigungen lösen?

Beim 1. Trigger gibt es doch keine Zeit. Licht geht an und fertig.

Jain :slight_smile:
Da ist durch das Testen ein Fehler drin und das Licht wird nicht durch Nichterkennen von Bewegung nach 30 Sek. ausgeschaltet, sondern theoretisch nach 30 Sekunden Delay.

Zusammenfassung
alias: Licht Flur DG Stripe Selbshaltung
description: ""
trigger:
  - type: motion
    platform: device
    device_id: ebe50890717d268faa87d648c5af3a98
    entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
    domain: binary_sensor
    id: Dunkel
  - type: motion
    platform: device
    device_id: ebe50890717d268faa87d648c5af3a98
    entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
    domain: binary_sensor
    id: Selbsthaltung
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Dunkel
          - type: is_illuminance
            condition: device
            device_id: ebe50890717d268faa87d648c5af3a98
            entity_id: 8fbf994ab4e0d748aebd829a647b4c21
            domain: sensor
            below: 1
        sequence:
          - service: light.turn_on
            data:
              brightness_pct: 10
            target:
              entity_id:
                - light.flur_dg
          - wait_for_trigger:
              - type: no_motion
                platform: device
                device_id: ebe50890717d268faa87d648c5af3a98
                entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
                domain: binary_sensor
                for:
                  hours: 0
                  minutes: 0
                  seconds: 35
            continue_on_timeout: false
          - service: light.turn_off
            data: {}
            target:
              entity_id:
                - light.flur_dg
      - conditions:
          - condition: trigger
            id:
              - Selbsthaltung
          - condition: device
            type: is_on
            device_id: cadeb31faaae8643eb763821ce0babeb
            entity_id: d309d3c1f4797b78e2fba03521c7bd9d
            domain: light
          - type: is_illuminance
            condition: device
            device_id: ebe50890717d268faa87d648c5af3a98
            entity_id: 8fbf994ab4e0d748aebd829a647b4c21
            domain: sensor
            below: 500
        sequence:
          - service: light.turn_on
            data:
              brightness_pct: 10
            target:
              entity_id:
                - light.flur_dg
          - wait_for_trigger:
              - type: no_motion
                platform: device
                device_id: ebe50890717d268faa87d648c5af3a98
                entity_id: binary_sensor.hue_bewegung_flur_dg_occupancy
                domain: binary_sensor
            continue_on_timeout: false
          - delay:
              hours: 0
              minutes: 0
              seconds: 30
              milliseconds: 0
          - service: light.turn_off
            data: {}
            target:
              entity_id:
                - light.flur_dg
mode: restart

Wie gesagt, ich würde es so einfach wie möglich machen und nicht mit wait_for_trigger, delay o.ä. arbeiten.

Wie soll dann das Licht automatisch wieder ausgehen?
Da sehe ich auf dem Schlauch.

Hatte ich doch bereits geschrieben

Ach du meinst eine zweite, eigenständige Automation?

Ja, das kannst du erst mal in 2 Automationen machen.
Wenn das dann klappt, über TriggerID

description: ""
mode: restart
trigger:
  - platform: state
    entity_id:
      - binary_sensor.ms_spiegellampe_occupancy
    to: "on"
    id: bewegung_an
  - platform: state
    entity_id:
      - binary_sensor.ms_spiegellampe_occupancy
    to: "off"
    id: bewegung_aus
    for:
      hours: 0
      minutes: 0
      seconds: 30
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - bewegung_an
          - condition: numeric_state
            entity_id: sensor.ms_spiegellampe_illuminance_lux
            below: 1
        sequence:
          - service: light.turn_on
            data: {}
            target:
              entity_id: light.spiegellampe
      - conditions:
          - condition: trigger
            id:
              - bewegung_aus
        sequence:
          - service: light.turn_off
            data: {}
            target:
              entity_id: light.spiegellampe