FHEM Forum

FHEM => Automatisierung => Thema gestartet von: dt2510 am 20 Februar 2017, 11:34:58

Titel: Bewegungsmelder vs. on-for-timer
Beitrag von: dt2510 am 20 Februar 2017, 11:34:58
Ich hab' folgendes Problem:

Meine Bewegungsmelder steuert (wenn es dunkel ist) meine Lampe im Eingangsbereich. Die Lampe wird bei Bewegung eingeschaltet und bei Bewegungsende ausgeschaltet.
Ausnahme: die Lampe war vorher an und wurde nicht vor Bewegungsende ausgeschaltet, dann bleibt sie an.

Soweit so gut ... schalte ich jetzt meine Anlage von "Home" auf "Away" schalte ich die Lampe am Eingang für 1 Minute an (on-for-timer). Gehe ich jetzt zur Tür registriert der Bewegungsmelder eine Bewegung.
Da das Licht durch on-for-timer eingeschaltet wurde, wird es bei Bewegungsende NICHT abgeschaltet, bleibt also bis zum Morgen oder bis ich manuell ausschalte an.
Woran kann ich erkennen, daß nicht mit "on" sondern "on-for-timer" geschaltet wurde ?
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: betateilchen am 20 Februar 2017, 11:40:20
Das kommt auf den Typ des Schaltaktors an.
Bei Homematic-Aktoren gibt es ein reading timedOn das auf "on" steht, wenn mit on-for-timer geschaltet wurde.
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: dt2510 am 20 Februar 2017, 11:43:10
Es handelt sich um einen Fibaro FGS212 (Z-Wave)
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: betateilchen am 20 Februar 2017, 11:46:00
Kenne ich leider nicht. Wenn Z-Wave mit den SetExtensions arbeiett, um on-for-timer zu implementieren, bekommst Du das vermutlich nicht mit, weil dazu ein interner Timer gesetzt wird, der nach Ablauf der Zeit einfach einen zweiten Befehl "off" schickt.
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: dt2510 am 20 Februar 2017, 11:47:37
Ich könnte natürlich einfach abfragen ob der Anlagenstatus "Home" ist. Falls nicht schalte ich generell bei Bewegungsende aus.
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: dt2510 am 20 Februar 2017, 12:58:19
Ich versuche es jetzt mal so:

99_myUtils.pm
sub BewegungStart() {
  fhem("set Bewegung on");
  if (Value("FGS212_ID15") eq "on") {fhem("set EingangBeleuchtet on");}
  if (Value("FGS212_ID15") eq "off") {fhem("set EingangBeleuchtet off");}
  if (Value("FHEMMode") eq "Night") {fhem("set FGS212_ID15 on");}
}

sub BewegungEnde() {
  fhem("set Bewegung off");
  if (Value("HomeStatus") ne "Home") {fhem("set FGS212_ID15 off");}
  if ((Value("FGS212_ID15") eq "on") && (Value("EingangBeleuchtet") eq "off")) {fhem("set FGS212_ID15 off");}
}


Bewegung und EingangBeleuchtet sind Dummys mit den Werten on/off
FHEMMode ist ein Dummy mit den Werten Day/Night
HomeStatus ist ein Dummy mit den Werten Home/Away/Night/Holiday
FGS212_ID15 ist der Beleuchtung, die geschaltet werden soll (wird auch per on-for-timer geschaltet beim Wechsel auf HomeStatus "Away")
"Bewegung" wird gebraucht um in TABLETUI das Kamerabild anzuzeigen und "EingangBeleuchtet" speichert nur den Zustand vor der Bewegung.
BewegungStart() und BewegungEnde() werden per Notify aufgerufen.

Kann man die Abfragen/Wertzuweisungen vereinfachen (bin nicht wirklich der Perl-Held) ?
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: justme1968 am 20 Februar 2017, 13:10:00
die SetExtensions setzen ein TIMED_OnOff internal mit daten zum timer das man auswerten kann.
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: dt2510 am 20 Februar 2017, 13:15:18
hmm ... ein TIMED_OnOff kann ich nicht finden

Sollte aber auch so funktionieren
Titel: Antw:Bewegungsmelder vs. on-for-timer
Beitrag von: dt2510 am 20 Februar 2017, 13:44:06
ich hab' es nochmal etwas überarbeitet:

sub BewegungStart() {
  fhem("set Bewegung on");
  fhem("set EingangBeleuchtet ".Value("FGS212_ID15"));
  if (Value("FHEMMode") eq "Night") {fhem("set FGS212_ID15 on");}
}

sub BewegungEnde() {
  fhem("set Bewegung off");
  if ((Value("HomeStatus") ne "Home") || (Value("EingangBeleuchtet") eq "off")) {fhem("set FGS212_ID15 off");}
}


Bei Bewegung wird der Dummy "Bewegung" auf "on" gesetzt und der Status der Lampe in "EingangBeleuchtet" gesichert. Danach - falls dunkel - die Lampe eingeschaltet.
Am Ende wird der Dummy "Bewegung" auf "off" gesetzt und die Lampe ausgeschaltet, es sei denn HomeStatus ist "Home" und die Lampe war vorher an.
Die Lampe wird nur beim Wechsel des HomeStatus auf "Away" per on-for-timer geschaltet und somit entweder nach Ablauf oder bei Bewegungsende ausgeschaltet.

Der Bewegungsmelder schaltet nach ca. 30 Sekunden aus ... es könnte jetzt noch folgender Fall eintreten:

- Wechsel auf "Away" -> Lampe geht für 1 Minute an
- nach 50 Sekunden bin ich am Eingang und die Bewegung wird registriert
- nach 60 Sekunden geht die Lampe aus und ich stehe im dunkeln
- erst wenn ich mich 30 Sekunden nicht bewegt habe geht das Licht (bei erneuter Bewegung) wieder an

Hat jemand dazu einen Vorschlag ?