Tuya ZG-204ZL Verzögerung Einbauen

Hallo,
es ist jetzt ein Monat her, als mir @sirector hier mit einer “Kleinigkeit” geholfen hatte. Danke nochmal an dieser Stelle und Sorry für die pN.
Statt jetzt aber den o.g. Thred aufzublähen, habe ich mich entschieden ein neues Thema aufzumachen.
Nun habe ich mir gestern und heute viel Kopfzerbrechen gemacht, da die Verzögerung plötzlich nicht mehr funktionierte und der BM zwar Lichtwerte und Bewegung erkannte, aber ich stand im Dunkeln. :wink:

Ich habe dies nun wie folgt gelöst:

choose:
  - conditions:
      - condition: trigger
        id: Bewegung erkannt
    sequence:
      - wait_template: "{{ states('sensor.my_tuya_illuminance') | int < 950 }}"
        continue_on_timeout: true
      - delay:
          milliseconds: 500
      - action: light.turn_on
        data: {}
        target:
          entity_id: light.mylamp
  - conditions:
      - condition: trigger
        id: Keine Bewegung
    sequence:
      - action: light.turn_off
        data: {}
        target:
          entity_id: light.mylamp

Würde mich trotzdem über Verbesserungsvorschläge sehr freuen. Oder kann vielleicht jemand anderes seine funktionierende Lösung hier vorzeigen.

VG
Gregor

Tja schade, dies war leider auch keine Lösung.

Irgendwie stehe ich auf dem Schlauch.
Die Verzögerung von 500 ms hatte nur bis zu einen Moment (wann genau weiß ich eben nicht mehr) funktioniert, dann plötzlich nicht mehr.
Mittlerweile muss ich eine Sekunde einbauen damit es funktioniert. Das kann nicht sein oder?

Mein Verständnis zum Ablauf (vielleicht bin ich zu blöd dafür oder zu alt oder beides :stuck_out_tongue_winking_eye:):

Der BWM erkennt Bewegung (on), dabei wird die Helligkeit gemessen. Ist die niedriger, als der in HA Automation eingestellter Wert X, wird Licht eingeschaltet. Nachdem keine Bewegung erkannt wurde (Off), bleibt das Licht noch 20 sek. an (eingestellt in der Automation) und wird dann ausgeschaltet. Der Zustand von on zu Off wechselt nach etwa 10 Sekunden (ist es keep_time?). Beim wechseln von on zu Off, wird wieder der Lichtwert gemessen und der BWM stellt diesen (logischerweise) auf den Wert als Licht noch an war. Die nächste Bewegung wird erkannt und nun kommt die Verzögerung ins Spiel, richtig? Das Licht soll erst nach 500 mls eingeschaltet werden, da der gemessene Wert noch nicht den aktuellen Zustand entspricht.

Also eigentlich funktioniert die Verzögerung, denn der Wert bei “on” richtig gemessen wird bzw der letzte (als Licht noch an war) zurück gesetzt wird. Das kann man beobachten. Das Licht wird nur nicht eingeschaltet.

Mittlerweile habe ich die Automation ziemlich oft umgebaut und verschlimmbessert.
Diese füge ich hier hinzu, vielleicht kann mir jemand helfen, meine Fehler zu beheben.
Danke im voraus.

> alias: xxxxx
> description: xxxxx
> triggers:
>   - entity_id:
>       - binary_sensor.bwm_occupancy
>     from: "off"
>     to: "on"
>     id: Bewegung erkannt
>     trigger: state
> conditions:
>   - condition: time
>     after: "05:00:00"
>     before: "23:00:00"
> actions:
>   - delay:
>       milliseconds: 500
>   - if:
>       - condition: trigger
>         id:
>           - Bewegung erkannt
>     then: (hier habe ich nochmals 400 mls eingebaut)
>       - delay:
>           hours: 0
>           minutes: 0
>           seconds: 0
>           milliseconds: 400
>       - condition: numeric_state
>         entity_id: sensor.bwm_illuminance
>         below: 600
>       - action: light.turn_on
>         metadata: {}
>         data: {}
>         target:
>           entity_id: light.treppe
>   - wait_for_trigger:
>       - trigger: state
>         entity_id:
>           - binary_sensor.bwm_occupancy
>         from: "on"
>         to: "off"
>         for:
>           hours: 0
>           minutes: 0
>           seconds: 20
>   - action: light.turn_off
>     metadata: {}
>     data: {}
>     target:
>       entity_id: light.treppe
> mode: single

Gehe ich richtig in der Annahme, dass Du einen BM mit Helligkeit Sensor hast, der die Helligkeit nicht kontinuierlich sondern erst nach Erkennung einer Bewegung aktualisiert?

Da wäre erstmal meine Empfehlung, Dir einen ordentlichen BM zuzulegen. :wink:

Bezüglich der Automatisierung, mach es doch nicht komplizierter als es ist.
Du willst 500ms nach erkennen der Bewegung die Helligkeit prüfen und dann abhängig von der Helligkeit das Licht einschalten.

Dann halt einfach der Auslöser Bewegung ist an für 500ms verwenden.
Die Millisekunden, kannst Du allerdings nur in der YAML Ansicht eintragen, in der GUI stehen sie nicht zur Verfügung
Und einen weiteren Auslöser, keine Bewegung für 20s, anstatt die Aktion Warten auf Auslöser.

description: ""
mode: single
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.bwm_occupancy
    from: "off"
    to: "on"
    id: einschalten
    for:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 500
  - trigger: state
    entity_id:
      - binary_sensor.bwm_occupancy
    from: "on"
    to: "off"
    id: ausschalten
    for:
      hours: 0
      minutes: 0
      seconds: 20
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - einschalten
          - condition: numeric_state
            entity_id: sensor.bwm_illuminance
            below: 600
          - condition: time
            after: "05:00:00"
            before: "23:00:00"
        sequence:
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.treppe
      - conditions:
          - condition: trigger
            id:
              - ausschalten
          - condition: state
            entity_id: light.treppe
            state: "on"
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.treppe

Gruß
Osorkon

Was genau soll das denn bewirken?

Das würde ich einfach mal raus nehmen.

description: ""
mode: single
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.bwm_occupancy
    from: "off"
    to: "on"
    id: bewegung_erkannt
  - trigger: state
    entity_id:
      - binary_sensor.bwm_occupancy
    from: "on"
    to: "off"
    id: keine_bewegung
    for:
      hours: 0
      minutes: 0
      seconds: 20
conditions: []
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 250
  - choose:
      - conditions:
          - condition: trigger
            id:
              - bewegung_erkannt
          - condition: numeric_state
            entity_id: sensor.bwm_illuminance
            below: 950
          - condition: time
            after: "05:00:00"
            before: "23:00:00"
        sequence:
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.treppe
      - conditions:
          - condition: trigger
            id:
              - keine_bewegung
          - condition: state
            entity_id: light.treppe
            state: "on"
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.treppe

Hallo und vielen Dank schon Mal…

Ja, der Tuya ZG-204ZL ist so ein PIR.
Die die kontinuierlich den Lichtwert messen, sind bei mir Präsenzmelder. Da diese aber über Netzteil betrieben werden, habe ich sie in anderen Räumen verbaut. Für ein Treppenhaus schien mir ein PIR ausreichend.

Die Einstellung, wie Du sie beschreiben hast, hatte ich auch schon ausprobiert. Vielleicht hätte ich aber beim viel probieren ein Fehler drin. Daher werde ich gerne den Code nochmal ausprobieren.

Gruß Gregor

Nabend,

Nichts mehr. Ist schon längst raus.

Das ist noch weniger Zeit :wink: bis der den Lichtwert zurück setzen kann. :thinking:

Ich hatte es von 500 ms bis 1 sek in 100er Schritten erhöht und erst ab einer Sekunde hat er den Lichtwert korrekt, ich nenne es übermittelt, und das Licht eingeschaltet.

Aber wie ich bereits geschrieben habe. Der Wert wird auch korrekt gelesen. Das sieht man bspw hier


Dies hier jetzt ist der zuletzt gelesener Wert als Licht noch an war und der BM von erkannt zu keine wechselte.
Wenn die Bewegung nun nochmal ausgelöst wird, springt hier der Wert auf bspw 30lx oder halt 0lx, aber das Licht geht nicht an. In Trace sehe ich nur, dass es abgebrochen wurde. Bewege ich mich jetzt nochmal, so geht das Licht an. Also erst beim zweiten Mal wird der Wert von 30lx oder 0lx übermittelt und die Automation läuft weiter.

Das hatte ich noch vergessen zu fragen. Welcher wäre denn ordentlich? :wink:

Als ZigBee BM, kann ich uneingeschränkt den Philips Hue BM empfehlen. Für mich einer der beste ZigBee BM.

Gruß
Osorkon

Kannst du den erkennen, warum abgebrochen wird?

Habe ich mir schon gedacht :wink:
Im Treppenhaus habe ich 3 BMs, die im Batteriebetrieb arbeiten. Das wäre gut 100 €.
Naja, aber bekanntlich steht hinter einem Preis auch bestimmter Wert.

Für mich stellt sich nur die Frage was macht ein Hue anders, als seine Kollegen? Bis auf die Messung des Lichtwertes und zurück geben der Werte (vermutlich) in umgekehrten Rheinfolge. :thinking:

Leider nicht. Es wird auch nicht als Fehler angezeigt. Nur dass die Automation ander Stelle abgeschlossen wurde und keine weitere Aktion ausgeführt.

Vielleicht noch zu veranschaulichen, dass der Lux Wert tatsächlich richtig gemessen und zurück gegeben wird:

Hier - Licht ist an - hat BM nach paar Sekunden keine Bewegung erkannt und wie im Bild oben zu sehen den Lux Wert übermittelt. Nach Adam Riese dürfte die nächste Bewegung das Licht nicht einschalten. Aber da soll ja durch die Verzögerung von 500 ms der Wert noch Mal gemessen werden…

… und das ist das korrekte Ergebnis. Er hat es richtig gemessen und richtige Zahl übermittelt. Dennoch ging das Licht nicht an.

Übrigens es ist jetzt auf den Tipp von @Osorkon eingestellt.

Das Trace zeigt ja nur, dass keine der Optionen ausgeführt wurde, da keine der Bedingungen erfüllt waren.
Zum Einschalten des Lichts, ist es ja die Uhrzeit zwischen 5 und 23 Uhr und die Helligkeit muss kleiner 600 sein.

Die Uhrzeit ist nicht das Problem, aber zum Zeitpunkt 500ms nach erkennen der Bewegung war der Helligkeit Wert >= 600!

Schaue doch mal bitte wie lange es dauert, bis die aktuelle Helligkeit gemeldet wird, wenn eine Bewegung erkannt wurde.
Kannst ja das Handy nehmen, die vor den BM laufen und die Sekunden zählen bis der Helligkeitswert aktualisiert wird.

Dann musst Du die Verzögerung anpassen.
Aber ehrlich, wenn es länger als 1 s ist. Dann bist Du doch schon durch den Flur durchgelaufen, bevor das Licht eingeschaltet wird.

Gruß
Osorkon

Erstes Sensoren Bild zeigt als das Licht an war.
Dann nach etwa 10 Sekunden - Bewegung nicht erkannt. Dann Lux gemessen - im Bild 731
Nach 20 sek. Ging Licht aus.
Aus meiner Sicht, bis jetzt alles ok.

Habe ich ja, gemacht.
Das Ergebnis ist im Sensoren Bild Nr. 2 veranschaulicht.
Hier war 500ms nach erkennen der Bewegung der Wert nicht >= 600! Sondern = 383

Oder sehe ich das etwa falsch?

Nachtrag:
Genau das ist mein Problem.

Das habe ich anfänglich so beschrieben. Ich habe die Verzögerung in 100er Schritten ab 500 ms erhöht bis ich bei 800 einmal Erfolg hatte. Beim zweiten oder dritten Test, wieder das gleiche und Licht ging nicht an. Erst bei Verzögerung von 1 Sekunde, lief die Automation mehrere Male stabil.

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Aus meiner Sicht arbeitet der BM richtig.

Die Meldung bzw das Auslesen der Werte und deren zeitliche Überführung an einer weiteren Stelle, ist hier m.M.n. nicht korrekt.

Entweder ist in der Automation ein Fehler begraben oder ist es tiefer im System. Ich möchte nicht alles auf so manche Updates (Release) abwälzen, aber das hat ja vor Monaten gut funktioniert.
S. mein Beitrag hier:

Die BMs haben sich nicht geändert.

Ich Versuche das mit Hue. Müsste einen erstmal bestellen.

Hallo nochmal,

heute kam der Hue BM zum Testen…

Sieht jedenfalls sehr wertig aus. Stellt noch 2 zusätzliche Sensoren zur Verfügung, wie den Licht Rohwert und Temperatur. Mit dem Rohwert lassen sich die Ergebnisse noch feiner abrufen. Ob ich das brauche, weiß ich noch nicht.

Eigentlich habe ich die Hue BMs schon bei meinem Schwiegersohn gesehen, aber halt nie die Funktionsweise etc.pp. hinterfragt.

Und das möchte ich widerlegen. :wink:
Trotzdem Danke für Deine @Osorkon Hilfsbereitschaft. Danke auch an @maxe.

Zumindest gilt die Aussage nicht für den Hue und für die Tuya Variante genauso wenig.
D.h. sowohl der Hue wie auch der Tuya Gadget, löst zunächst Bewegung aus und anschließend wird Lux gemessen.

Und die Verzögerung ist nicht für einen BM notwendig, sondern für die Automation. Je nach Hardware und Fülle der zu verarbeitenden Prozesse, hängt es noch mit dem darunter liegenden Host zusammen.
Bei mir ist der HA auf einem Lenovo M910Q Tiny i5-6500T 2,5GHz 8GB RAM x86-64 installiert. Der SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2 hängt an einem 2m USB Kabel.
Sollte also keine Bremse für so winzig kleine Abläufe sein. Davon gibt es auch keine nennenswerte Anzahl, die ggf. ein overflow produzieren würden. :wink:

Nun zu BM. Der liefert Werte oder speichert diese in einem Array. Je nach Hersteller sind die Daten unterschiedlich und meinetwegen werden diese auch in bestimmte Reihenfolge bereitgestellt. Ich kann mich nur wiederholen…In diesem Fall liefern aber beide BMs, zuerst den “boolean” Bewegung zurück.

Und bei den Tests mit dem Hue habe ich heute folgendes beobachtet:

  • Ausgangsstellung: BM im Raum platziert. Automation erstellt.
    (zunächst ganz einfach ohne Verzögerung)
alias: Bewegung mit Hue Test
description: "Lichtstaerke messen und bei geringen Wert Licht einschalten "
triggers:
  - entity_id:
      - binary_sensor.hue_occupancy
    from: "off"
    to: "on"
    id: Einschalten
    trigger: state
  - trigger: state
    entity_id:
      - binary_sensor.hue_occupancy
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 30
    id: Ausschalten
conditions:
  - condition: time
    after: "05:00:00"
    before: "23:00:00"
actions:
  - if:
      - condition: trigger
        id:
          - Einschalten
    then:
      - condition: numeric_state
        entity_id: sensor.hue_illuminance_lux
        below: 39
      - action: light.turn_on
        metadata: {}
        data: {}
        target:
          entity_id:
            - light.bad_deckenlampe
  - if:
      - condition: trigger
        id:
          - Ausschalten
    then:
      - action: light.turn_off
        metadata: {}
        data: {}
        target:
          entity_id:
            - light.bad_deckenlampe
mode: single
  • Bewegung noch nicht ausgelöst
  • Bewegung wurde ausgelöst Lux war unter 39. Licht ist angegangen.
  • 10 sek später Bewegung keine.
  • 20 sek später Bewegung keine. Licht geht aus. Lux ist 44
  • Bewegung wieder ausgelöst. Lux stellt sich auf 27. Licht schaltet sich aber NICHT ein.

Was ich allerdings noch beobachtet habe, mir aber noch nicht ganz sicher bin, ist dass der Luxwert immer wieder nach ein paar Minuten scheinbar angepasst wird. D.h. wenn ich den Raum nicht unmittelbar nach Verlassen wieder betrete ist der Wert wieder unter der Schwelle und das Licht geht an.

Achja das occupancy time out kann man beim Hue (offenbar) beliebig einstellen. :slight_smile:

Aber vielleicht sind die Experten hier anderer Meinung? Ich Lerne gerne noch was dazu und für Denkanstöße bin ich nach wie vor sehr Dankbar!
In dem Alter läuft alles etwas langsam :smiley:
Gruß
Gregor

Eine Einfache Automatisierung.
Als Auslöser die BM Entität sowie der Lux Sensor, im Modus Parallel.
Als Aktion eine persistent_notification.create mit der Message:

{{ trigger.to_state.state }} {{ now() }}

Erster Lauf Flur ist dunkel, kein Licht brennt und ich laufe vor den BM

Zweiter Lauf. Licht ist an im Flur und ich laufe vor den BM

Man sieht schön, dass immer ein paar ms voraus der Lux Wert aktualisiert wird, bevor die Bewegung on gemeldet wird.

Gruß
Osorkon

Deshalb ja oben meine Automatisierung mit den 250ms Verzögerung.

Ja, habe ich verstanden. Mein letzter Post ist aber auf den neuen Hue bezogen und zunächst mit einer Automation, die ohne die Verzögerung auskommen sollte.

Denn wenn der Hue, wie von @Osorkon wider- bzw dargelegt, :wink: soll der Hue ms vor der Bewegung den Lux Wert melden.
Kann ich im Moment immer noch nicht verstehen, aber gut… Vielleicht dauerts noch bisschen :smiley:

Ich kann nur von meinem Hue BWM berichten, der bei sofortigen wieder-betreten die 250ms braucht.

1 „Gefällt mir“

mal eine Grundsätzliche Frage. Verwendest du 1 BWM oder 2?

Habe bei meinen alten aqaras auch das Problem dass der Luxwert nur bei Bewegung aktuallisiert wird.
Ohne Bewegung macht er was er will. Manchmal ist der lux Wert (vom Licht on) noch >2h drin.
Wenn ich mich dann beim 2. BWM bewege, geht das licht natürlich nicht an, da der Luxwert zu hoch ist.

Hast du beim Tuya evt auch so ein Problem.
Gehts jetzt beim Hue?

Edit: coole wäre, wenn man das messen des Luxwerts selbst triggern könnte.

Mehrere, nicht nur einen auch nicht nur 2. :wink:

Mein Post bezieht sich allerdings nur auf einen BM und zwar geht es hier um die Behauptung, dass ein BM (zunächst egal welcher) die Lichtstärke vor der Bewegung messen soll.

Dies habe ich versucht zu widerlegen.

Allerdings ist es scheinbar bei den HUEs noch so, dass die Lichtstärke in gewissen Zeitabständen (auch ohne den Zustand → Bewegung 0 oder 1) gemessen wird. Das kann der Hersteller so gerne eingebaut haben (aber keine Ahnung (??) ob dem so ist)

Genau, drum geht es hier.

Ich behaupte weiterhin, dass wenn

, die Lichtstärke gemessen wird, ist leider der zuletzt gespeicherter Wert drin. Ist dieser höher als die eingestellte Schwelle, geht das Licht nicht an.

Darum auch der HUE

Aqara habe ich auch schon in Betracht gezogen, aber mich zunächst…

Genau, für die tuya entschieden.

Edit:
Den Hue habe ich übrigens zum gegentesten geholt.

Dafür ist die Verzögerung da, die du einbauen kannst (s. Bspw den Beitrag von @maxe)
Bei dem Hue habe ich diese noch nicht getestet. Bei Tuya funktioniert diese (war Mal auf 500 MS) eingestellt seit einiger Zeit nicht mehr. Und es hat definitiv funktioniert. Dort habe ich mich seit paar Tagen in 100er Schritten vorgearbeitet. Erst bei einer Sekunde arbeitete die Automation stabil. Eine Sekunde ist mir zu viel. Selbst in meinem Alter bin ich die paar Treppe oben eher das Licht eingeschaltet wird :grin: