Ankündigung

Einklappen
Keine Ankündigung bisher.

BM enocean liefert zu lange ein EIN

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    BM enocean liefert zu lange ein EIN

    Hallo zusammen,

    folgendes Problem:
    Habe einen enocean BM via eno gateway mit dem Bus verbunden. Alle Werte werden korrekt geliefert. Auch ein 'EIN' wenn Bewegung erkannt worden ist.
    Jetzt möchte ich damit eine Ausschaltzeitautomatik mit Vorgabe über die Ausschaltzeit via Variabel umsetzen. Soweit noch alles ok.

    Problem ist nun, das der enocean BM das EIN für 1min50sec sendet. Solange möchte ich aber gar nicht,dass das Licht leuchtet. Über eine Variabel stelle ich z.B. 40 sec ein, mittels delay soll dann nach Ablauf Zeit der Variabel Aktor auf AUS gehen. Jetzt ist aber der enocean BM immer noch auf EIN. Komme also in eine Schleife, wo Aktor wieder an geht etc. etc.

    [highlight=epc]
    if "BM Flur UG-10/1/3"==EIN and "BM Flur UG Lichtstärke-10/1/0" < Varaibellux then write ("Flur UG-3/7/6",EIN) endif
    if delay("BM Flur UG-10/1/3"==EIN,VariabelZeit) then write ("Flur UG-3/7/6",AUS) endif
    [/highlight]

    diese Version geht auch nicht, dachte mit event greife ich die Information nur einmalig zum Eintritt des events ab
    [highlight=epc]
    BMFlurUG=AUS
    if event("BM Flur UG-10/1/3") and "BM Flur UG-10/1/3"==EIN then BMFlurUG=EIN endif
    if BMFlurUG==EIN and "BM Flur UG Lichtstärke-10/1/0" < Varaibellux then write ("Flur UG-3/7/6",EIN) endif
    if delay(BMFlurUG,VariabelZeit) then BMFlurUG=AUS endif
    if BMFlurUG=AUS then write ("Flur UG-3/7/6",AUS) endif
    [/highlight]

    Wenn VariabelZeit= 45 sec, dann geht Licht zwar kurz aus, dadurch geht BM Lichtstärke runter und dann greift wieder erste if Schleife, weil BM Flur ==EIN für 1min50sec bestehen bleibt und BM Lichtstärke wieder < Variabellux geworden ist. Als geht Licht wieder an.
    Wie kann ich das EIN vom BM nur als einmaligen Status abfragen, so dass diese Bedingung im if Zweig nur kurz gilt und nicht so lange wie enocean BM ein EIN aufrechterhält?

    Danke und Gruß
    Ralf

    #2
    Zitat von amazing Beitrag anzeigen
    Problem ist nun, das der enocean BM das EIN für 1min50sec sendet.
    Wie ist das umgesetzt? Fall 1: Regelmäßig ein EIN oder Fall 2: Sendet ein EIN und nach 1min50sec ein AUS?

    Für den 2. Fall hätte ich folgenden retriggerbaren Vorschlag:

    [highlight=epc]
    if (event ("BM Flur UG-10/1/3") and "BM Flur UG-10/1/3"==EIN) then write ("Flur UG-3/7/6",EIN) endif
    if delay((event ("BM Flur UG-10/1/3") and "BM Flur UG-10/1/3"==EIN),VariabelZeit) then write ("Flur UG-3/7/6",AUS) endif
    [/highlight]

    oder ohne retrigger:

    [highlight=epc]
    if "BM Flur UG-10/1/3" then write ("Flur UG-3/7/6",EIN) endif
    if after("BM Flur UG-10/1/3",VariabelZeit) then write ("Flur UG-3/7/6",AUS) endif
    [/highlight]

    Für Fall 1 kannst du nicht erkennen, wenn noch noch jemand im Raum ist -> das Licht geht nach 40sec aus und es entsteht eine Totzeit von 1min50sec-VariabelZeit (falls VariableZeit kleiner als 1min50sec ist).

    [highlight=epc]
    BM_freigabe=EIN

    if ( event ("BM Flur UG-10/1/3") and ("BM Flur UG-10/1/3"==EIN) ) and (BM_freigabe== EIN) then write ("Flur UG-3/7/6",EIN); BM_freigabe=AUS endif
    if after(( event ("BM Flur UG-10/1/3") and ("BM Flur UG-10/1/3"==EIN) ) and (BM_freigabe== EIN), VariabelZeit) then write ("Flur UG-3/7/6",AUS) endif
    if after(( event ("BM Flur UG-10/1/3") and ("BM Flur UG-10/1/3"==EIN) ) and (BM_freigabe== EIN), min(110000u64, VariabelZeit)) then BM_freigabe=EIN endif
    [/highlight]

    *nicht getestet, Helligkeitsabfrage (noch) nicht enthalten!
    BR
    Marc

    Kommentar


      #3
      danke Dir, werde morgen mal die Versionen testen und das Verhalten beobachten.


      Schade ist, dass ich nirgends am BM die 1min50sec beeinflussen kann.
      Dieser ist von Telefunken Joonior BM1. Hat jemand mit eltako Erdahrung, ob das bei diesen ähnlich ist

      Danke und Gruß
      Ralf

      Kommentar

      Lädt...
      X