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
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
Kommentar