[gelöst] Bewegungsmelder on-for-timer

Begonnen von popy, 07 Februar 2018, 22:23:26

Vorheriges Thema - Nächstes Thema

popy

Hallo.

Bräucht wiedermal eure hilfe.
Habe mir von ALiExpress Bewegungsmelder bestellt, diese werden auch mit AutoCreate angelegt und sind 1527 Geräte.
Soweit so gut.
Leider senden diese nur "on".

Hatte vorher einen Watchdog mit DEF "BM_Bad:on 00:40 BM_Bad:off ....".
Das funktioniert nun leider nicht mehr da er ja nur on sendet.
Ein Norify das auf "BM_Bad:on" hört wird immer zuverlässig getriggert und auch beim device BM_Bad wird die Zeit bei einem neuen state Ereignis getriggert.
Leider wird aber schaltet der Watchdog die Lampen dann nicht aus.
Das DEF ist so:

BM_Bad:on 00:40 BM_Bad:off {evtBadAbsentHandler()} ; setstate watchdog_Niemand_im_Bad defined

Dachte ich mir, klar, er sendet kein off muss ich SAME draus machen, gesagt getan:

BM_Bad:on 00:40 SAME {evtBadAbsentHandler()} ; setstate watchdog_Niemand_im_Bad defined

oder

BM_Bad:on 00:40 BM_Bad:on {evtBadAbsentHandler()} ; setstate watchdog_Niemand_im_Bad defined

Funktioniert auch nicht. Verstehe nicht warum.
Hätte auch versucht das ganze mit einem eventMap zu lösen und das on auf on-for-timer umzubiegen, ungefähr so:

eventMap /on:on-for-timer 10/

Funktioniert leider nicht.
Habt ihr eine Idee?

Danke
pOpY



herrmannj

ZitatHabt ihr eine Idee?
Ja. Aber beschreibe doch  was Du erreichen möchtest. Du willst sichtlich eine Logik installieren - die soll was machen ?

popy

#2
Ok, sorry, da hatte ich doch das wichtigste vergessen  ;)

Habe einen Schmalen Gang in das Bad und den BM so installiert dass er "nur" das Durchgehen registriert.
Sprich, jedesmal wenn man den Gang durchgeht kommt ein "on" vom BM.
Als Hauptschalter (für Raum Licht, Alibert Licht & Alexa Versorgung) habe ich einen VHOME 433 Mhz Touch Schalter.
Diesen habe ich nun so programmiert (direkt, ohne FHEM um die Einschaltverzögerung zu minimieren), dass der VHOME eingeschaltet wird sobald der BM ein on sendet.
Mit FHEM will ich nun realisieren dass, wenn 40 Minuten keiner durch den Gang gegangen ist FHEM den VHOME Schalter per 433 Mhz Signal über den nanoCUL ausschaltet.

Muss dazusagen dass ich vorher statt dem AliExpress BM einen Intertechno PIR-1000 hatte, dieser sendete auch off, aber leider ist die Reichweite nicht die Beste und er ließ sich nicht direkt an den VHOME anlernen. Das DEF des Watchdogs für den PIR-1000 war wie folgt und funktionierte:

define watchdog_Niemand_im_Bad watchdog BM_Bad.*:off 00:40 BM_Bad.*:on {evtBadAbsentHandler()} ;; setstate watchdog_Niemand_im_Bad defined

Hätte jetzt nach einer Lösung gesucht das IT Gerät (was nur "on" bekommt) so zu konfigurieren dass es z.B.: nach einer Minute wieder auf off geht.

Habe dies nun auch über einen Umweg geschafft.
Ein weiteres Notify:


BM_Bad:on {
  my $hm = sprintf("%02d:%02d", $hour, $min);

  fhem("define BM_Bad_off at +00:01:00 set BM_Bad off");
  fhem("set BM_Bad_off modifyTimeSpec 00:01:00");

  if (Value("P_All") eq "present")
  {
    my $playing = `/usr/sbin/alexa_remote_control.sh -d Badezimmer -q`;
    if (index($playing, "PLAYING") == -1)
    {
      Log 1, "act_on_Bewegung: Bewegung im Bad und Alexa spielt nicht -> Live Radio!";
      {system('/usr/sbin/alexa_live_radio.sh Badezimmer s15592 22 > /dev/null 2>&1 &');;}
    }else{
      Log 1, "act_on_Bewegung: Bewegung im Bad und Alexa spielt -> nichts ändern!";
    }

  }
}


Schaltet mir bei Alexa den Radio ein wenn ich das Bad betrete.
Im Notify sah ich dass dies immer getriggert wurde, bei jedem on.
Habe es jetzt mit folgendem erweitert (siehe auch oben):


  fhem("define BM_Bad_off at +00:01:00 set BM_Bad off");
  fhem("set BM_Bad_off modifyTimeSpec 00:01:00");


Und jetzt schaltet der BM_Bad nach einer Minute keine Bewegung wieder auf off und somit funktioniert der Watchdog auch wieder  :D
Sorry nochmal dass ich etwas spärlich war mit den Infos.
Jetzt klappt es, hoffe das hilft mal jemanden.

Gibt es ev. noch eine elegantere Lösung?

Danke
pOpY