Hue Bewegungsmelder und Lichtsteuerung

Hallo, ich hab bei mir in der Küche einen Hue Bewegungsmelder der ein Shelly RGB schaltet.
Leider funktioniert das nicht immer so wie ich das gerne hätte.
Manchmal geht das Licht nicht an und ein anderes Mal geht das Licht einfach aus obwohl ich noch in der Küche bin.
Ich glaube irgendwie verlängert er die einschaltzeit nicht wenn noch Bewegung ist.
Vielleicht kann mir jemand auf die Sprünge helfen.

alias: "Küchenlicht an bei Bewerbungen "
description: ""
trigger:
  - type: motion
    platform: device
    device_id: 44677e715575278205ee15145e7a670a
    entity_id: 639d5f8d71d2cfb55a84900e8f89e6f1
    domain: binary_sensor
condition:
  - type: is_illuminance
    condition: device
    device_id: 44677e715575278205ee15145e7a670a
    entity_id: 256a497f38a0c425899c8191e36ed0c7
    domain: sensor
    below: 1
action:
  - type: turn_on
    device_id: b3dd55d82e17414c517140c0d85d621d
    entity_id: b34c65c6f826b3e0e04f38a3b2ac46b1
    domain: light
  - wait_for_trigger:
      - type: no_motion
        platform: device
        device_id: 44677e715575278205ee15145e7a670a
        entity_id: 639d5f8d71d2cfb55a84900e8f89e6f1
        domain: binary_sensor
        for:
          hours: 0
          minutes: 0
          seconds: 0
  - delay:
      hours: 0
      minutes: 2
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: b3dd55d82e17414c517140c0d85d621d
    entity_id: b34c65c6f826b3e0e04f38a3b2ac46b1
    domain: light
mode: restart

Ich würde sagen, dass die Bedingung stört. Du hast den Modus zwar auf restart gesetzt, aber wenn das Licht an ist, ist illuminance nicht <1. Wenn also mal no_motion getriggert hat, wird nach 2 Min. ausgeschaltet, auch wenn du dich zwischendurch wieder bewegst.

Ich würde den Delay löschen und besser bei no_motion mit der Zeit arbeiten.

      - type: no_motion
        platform: device
        device_id: 44677e715575278205ee15145e7a670a
        entity_id: 639d5f8d71d2cfb55a84900e8f89e6f1
        domain: binary_sensor
        for:
          hours: 0
          minutes: 2
          seconds: 0

Erst wenn 2 Min keine Bewegung erkannt wird, wird ausgeschaltet.

Da stimme ich @sirector zu, aber dann geht das Licht immer an, auch wenn es hell ist.
Ich habe das auch mal versucht abzufangen, aber kann nicht genau sagen, ob es auch (zuverlässig) funktioniert, da ich mich eigentlich nie lange genug im Flur aufhalte bzw. nicht darauf geachtet habe.

Lichtsteuerung mit Selbsthalt
alias: Licht Flur DG
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.0x0017880104b72174_occupancy
    from: "off"
    to: "on"
    id: Bewgung
  - platform: state
    entity_id:
      - binary_sensor.0x0017880104b72174_occupancy
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: keine Bewegung
condition: []
action:
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 250
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Bewgung
          - condition: numeric_state
            entity_id: sensor.0x0017880104b72174_illuminance_lux
            below: 2
    then:
      - service: light.turn_on
        data:
          brightness_pct: 10
        target:
          entity_id: light.flur_dg
      - wait_for_trigger:
          - platform: state
            entity_id:
              - binary_sensor.0x0017880104b72174_occupancy
            from: "on"
            to: "off"
            for:
              hours: 0
              minutes: 0
              seconds: 25
        continue_on_timeout: true
      - service: light.turn_off
        data: {}
        target:
          entity_id:
            - light.flur_dg
    else:
      - if:
          - condition: device
            type: is_on
            device_id: cadeb31faaae8643eb763821ce0babeb
            entity_id: d309d3c1f4797b78e2fba03521c7bd9d
            domain: light
            for:
              hours: 0
              minutes: 0
              seconds: 30
        then:
          - service: light.turn_on
            data:
              brightness_pct: 10
            target:
              entity_id:
                - light.flur_dg
          - wait_for_trigger:
              - platform: state
                entity_id:
                  - binary_sensor.0x0017880104b72174_occupancy
                from: "on"
                to: "off"
                for:
                  hours: 0
                  minutes: 0
                  seconds: 25
            continue_on_timeout: false
          - service: light.turn_off
            data: {}
            target:
              entity_id:
                - light.flur_dg
  - if:
      - condition: trigger
        id:
          - keine Bewegung
    then:
      - service: light.turn_off
        target:
          entity_id: light.flur_dg
        data: {}
mode: restart
trace:
  stored_traces: 20

Die Idee ist, dass er nach Erkennen von Bewegung prüft, ob das Licht schon an ist und dann entscheidet und wenn ja, wird die Überprüfung auf Helligkeit ignoriert.
Zur Sicherheit ein Auslöser für “keine Bewegung erkannt” mit einer recht hohen Zeit, um danach sicher auszuschalten.
Und gerade habe ich unten noch per YAML eingefügt, dass 20 “Traces” gespeichert werden, um das mal besser beobachten zu können.

Das stimmt nicht. Condition ist illuminance below 1. Der bleibt auch. Es geht mir nur ums ausschalten mit no_motion. Einfach den Teil mit Delay löschen und dafür den Wert bei no_motion setzen.

Stimmt klingt logisch.
Ich bilde mir ein, dass ich das früher auch so hatte, aber aus irgendeinem Grund, der mir nicht mehr einfällt, hat das (bei mir) nicht zuverlässig funktioniert und ich bin auf “wait for trigger” umgestiegen.

Funktioniert glaub ich nicht, da ja bei restart wieder die Condition abgefragt wird. Ich glaube man die Automation passt, man muss nur restart raus nehmen und auf Single gehen

Die Bedingung Helligkeit darf nicht als globale Bedingung verwendet werden, sonst wird das Licht nicht ausgeschaltet, wenn Helligkeit >1

Ebenfalls würde ich nicht mit Device IDs arbeiten.
Anstelle von Wenn Dann, würde ich den Baustein Auswählen verwenden.
Den Modus restart wählen, damit immer der letzte Trigger zum Einsatz kommt.

description: ""
mode: restart
trigger:
  - platform: state
    entity_id:
      - binary_sensor.motion_xyz
    from: "off"
    to: "on"
    id: einschalten
  - platform: state
    entity_id:
      - binary_sensor.motion_xyz
    from: "on"
    to: "off"
    id: ausschalten
    for:
      hours: 0
      minutes: 2
      seconds: 0
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - einschalten
          - condition: state
            entity_id: light.xyz
            state: "off"
          - condition: numeric_state
            entity_id: sensor.lux_xyz
            below: 1
        sequence:
          - service: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.xyz
      - conditions:
          - condition: trigger
            id:
              - ausschalten
          - condition: state
            entity_id: light.xyz
            state: "on"
        sequence:
          - service: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.xyz

Gruß
Osorkon

2 „Gefällt mir“

Restart soll ja erst greifen, wenn no_motion für 2 Minuten gemeldet wurde. Ist also eigentlich zu vernachlässigen.

Sollte trotzdem funktionieren, da mit wait_for_trigger gearbeitet wird und es dort keine Bedingung gibt. Oder habe ich einen Denkfehler.

Dem restart ist es ziemlich egal auf was gewartet wird, da dadurch bei Bewegung einfach die ganze Automation neu gestartet wird. Osorkon hat da schon eine gute Lösung, wo man die globale Condition umgeht, die sonst für beides gilt

Danke, das werde ich mal testen wenn es wieder dunkel wird.
Daran hatte ich nicht gedacht das ja wenn das Licht an ist die Lux nicht mehr passen. :grinning:

Gibt es hier eine finale Lösung. Ich habe das selbe Problem und komme da nicht drauf, was ich falsch mache.

Also ich würde Grundlegend einen Sensor bauen der Dunkelheit erkennt, wenn man viele Lichtautomationen hat dann wird nur dieser Abgefragt und man muss nicht dauerhaft mit lux werten arbeiten.
das kann man z.b. mit einem Boolean oder Binären Sensor machen der separat in einer Automation geschalten wird

Vorteilhaft ist dass ich diesen am Tablet auch händisch einschalten kann somit die Lichtsteuerung aktivieren kann auch wenns hell ist. Es muss nur eine Automation (die mit dem Dunkel Boolean) bearbeitet werden wenn man z.B. merkt dass Licht wird zu spät eingeschalten, es ist zu dunkel

In deinem Fall würde ich die “no motion” trigger zeit in meiner Automation verlängern um sicherzustellen dass das licht während du in der Küche bist nicht ausversehen aus geht (habe ebenfalls einen hue bewegungsmelder)

Bei mir laufen dann alle Automationen so ab (hier noch mit Nachtlicht da Flur):

alias: Bewegungsmelder Flur Haustüre
description: ""
mode: restart
triggers:
  - type: motion
    device_id: 1da43a67cd6e13975f884ed40056a5d9
    entity_id: 313edc685cac05013019de07a42e94cf
    domain: binary_sensor
    id: Bewegung
    alias: Bewegung
    trigger: device
  - type: no_motion
    device_id: 1da43a67cd6e13975f884ed40056a5d9
    entity_id: 313edc685cac05013019de07a42e94cf
    domain: binary_sensor
    id: Keine Bewegung
    for:
      hours: 0
      minutes: 0
      seconds: 30
    alias: keine Bewegung
    trigger: device
conditions: []
actions:
  - alias: Licht Flur an
    if:
      - condition: trigger
        id:
          - Bewegung
      - condition: state
        entity_id: input_boolean.dunkel
        state: "on"
      - condition: state
        entity_id: input_boolean.schlafen
        state: "off"
    then:
      - target:
          entity_id: scene.flur_naturliches_licht
        metadata: {}
        action: scene.turn_on
  - alias: Licht Flur aus
    if:
      - condition: trigger
        id:
          - Keine Bewegung
    then:
      - data:
          transition: 3
        target:
          entity_id:
            - light.spot_wohnzimmer
            - light.spot_mitte
            - light.spot_haustur
        action: light.turn_off
  - alias: "Licht Flur an bei schlafen "
    if:
      - condition: trigger
        id:
          - Bewegung
      - condition: state
        entity_id: input_boolean.dunkel
        state: "on"
      - condition: state
        entity_id: input_boolean.schlafen
        state: "on"
        for:
          hours: 0
          minutes: 0
          seconds: 0
    then:
      - target:
          entity_id: scene.flur_nachtlicht
        metadata: {}
        action: scene.turn_on

Hier hatte ich mal dazu was nieder geschrieben

@maxe Welchen Mode hast Du gesetzt? Single oder Restart?

@Lovechild
Da reicht single.
Wenn man mit Wait o.ä. arbeitet, bietet sich vermutlich ein restart an.