[gelöst]Licht, wenn keine Bewegung nach ca 10min ausschalten

Begonnen von Acrusty, 19 Dezember 2014, 13:18:01

Vorheriges Thema - Nächstes Thema

Acrusty

Liebe FHEM-Gemeinde

Als Anfänger bin ich seit einem Monat stolzer Besitzer eines Raspi's (HM-USB-CFG), eines HM-Sec-MDIR und einem UP Schalter.
In dieser Zeit habe ich viel Zeit mit Informationsbeschaffung, Lesen, Forum durchstöbern, ausprobieren und lernen verbracht.
Nach stundenlangem pröbeln komm ich aber einfach nicht weiter, vorallem bin ich mir nicht sicher wie ich das Projekt angehen soll:

Frau und Kind lassen im Bad immer wieder das Licht brennen. Dem möchte ich nun mit dem Bewegungsmelder und Aktor entgegenwirken. Wenn das Licht mittels Taster eingeschaltet wird, aber nach 5min z.B. während weiteren 5min keine Bewegung mehr festgestellt wird, soll das Licht wieder ausgeschaltet werden.

Wie würdet Ihr das umsetzen? Mit Watchdog?

Ich möchte nicht einen fertigen Code sondern eher einen Tipp, womit Ihr das lösen würdet. Den Code würde ich gerne selber schreiben, um dann auch weitere Projekte möglichst selbstständig lösen zu können.

Für etwas Hilfe wäre ich sehr dankbar.
Freundliche Grüsse

****Edit***

Ich habe es nun so gelöst:
Bei Bewegung wird ein notify ausgelöst, welches mir einen Timer erstellt:
Bewegungsmelder:motion define Timer at +00:05:00 set Bad off

Erhalte ich nun wieder ein motion wird bei bereits bestehendem Timer kein neuer erstellt. Sind jedoch die 5min vorüber wird der Timer ausgelöst und somit gelöscht

Erhalte ich innerhalb dieser 5min ein motion wird ein weiteres notify ausgelöst welches den bestehenden Timer modifiziert und für 10min neu startet.
Diese 10min werden nun bei jedem motion neu gestartet.

Bewegungsmelder:motion modify Timer +00:10:00

Vielen Dank für die Hilfe eurerseits!!

Hab das jetzt schon ein paar Tage so in Betrieb und bis jetzt hats jedenfalls funktioniert.

Für Anregungen bin ich aber jederzeit dankbar!

Wuppi68

bei mir habe ich es folgendermaßen gelöst ...

im Up Schalter direkt die Register gesetzt

Short Press --> On For Timer 45 Minuten
Lomg Press --> On 4e4
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Acrusty

aaaaah, diese Idee hatte ich auch schon, frage mich aber im Moment wieso ich das verworfen habe  ::)
wäre ja wirklich die sauberste Lösung.
Vielen Dank schon mal!!

Bennemannc

Hallo,

die Lösung es direkt in den Registern des Schlaters zu machen hat mehrere Vorteile.
1) Du musst nichts programmieren und
2) es funktioniert auch, wenn fhem mal nicht läuft
und das dürfet für Frau und Kind ein schlagendes Argument sein. Ich möchtennicht dabei sein, wenn Du Deiner Frau erklärst " fhem ist abgestürzt und das Bad bleibt dunkel "  ;)

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Wuppi68

Hier mal die Register dazu ....

R-intKeyVisib visib
R-self01-lgActionType jmpToTarget
R-self01-lgCtDlyOff geLo
R-self01-lgCtDlyOn geLo
R-self01-lgCtOff geLo
R-self01-lgCtOn geLo
R-self01-lgCtValHi 100
R-self01-lgCtValLo 50
R-self01-lgMultiExec on
R-self01-lgOffDly 0 s
R-self01-lgOffTime unused
R-self01-lgOffTimeMode absolut
R-self01-lgOnDly 0 s
R-self01-lgOnTime unused
R-self01-lgOnTimeMode absolut
R-self01-lgSwJtDlyOff off
R-self01-lgSwJtDlyOn off
R-self01-lgSwJtOff off
R-self01-lgSwJtOn dlyOff
R-self01-shActionType jmpToTarget
R-self01-shCtDlyOff geLo
R-self01-shCtDlyOn geLo
R-self01-shCtOff geLo
R-self01-shCtOn geLo
R-self01-shCtValHi 100
R-self01-shCtValLo 50
R-self01-shOffDly 0 s
R-self01-shOffTime unused
R-self01-shOffTimeMode absolut
R-self01-shOnDly 0 s
R-self01-shOnTime unused
R-self01-shOnTimeMode absolut
R-self01-shSwJtDlyOff off
R-self01-shSwJtDlyOn off
R-self01-shSwJtOff off
R-self01-shSwJtOn dlyOff
R-self02-lgActionType jmpToTarget
R-self02-lgCtDlyOff geLo
R-self02-lgCtDlyOn geLo
R-self02-lgCtOff geLo
R-self02-lgCtOn geLo
R-self02-lgCtValHi 100
R-self02-lgCtValLo 50
R-self02-lgMultiExec on
R-self02-lgOffDly 0 s
R-self02-lgOffTime unused
R-self02-lgOffTimeMode absolut
R-self02-lgOnDly 0 s
R-self02-lgOnTime unused
R-self02-lgOnTimeMode absolut
R-self02-lgSwJtDlyOff on
R-self02-lgSwJtDlyOn on
R-self02-lgSwJtOff dlyOn
R-self02-lgSwJtOn on
R-self02-shActionType jmpToTarget
R-self02-shCtDlyOff geLo
R-self02-shCtDlyOn geLo
R-self02-shCtOff geLo
R-self02-shCtOn geLo
R-self02-shCtValHi 100
R-self02-shCtValLo 50
R-self02-shOffDly 0 s
R-self02-shOffTime unused
R-self02-shOffTimeMode absolut
R-self02-shOnDly 0 s
R-self02-shOnTime 5400 s
R-self02-shOnTimeMode absolut
R-self02-shSwJtDlyOff on
R-self02-shSwJtDlyOn on
R-self02-shSwJtOff dlyOn
R-self02-shSwJtOn on


und jetzt mein FHEM Komfort dazu :-)

Notify für On ...

hm.sw.5:on
set media.sonos.bad Play;
set media.sons.bad SleepTimer 01:15:00;
IF ([dummy.Heizung.aktiv] eq "wahr") (set hm.thermo.2.clima desired-temp 21.5)


Notify für Off

hm.sw.5:off
set media.sonos.bad Pause;
IF ([dummy.Heizung.aktiv] eq "wahr") (set hm.thermo.2.clima desired-temp 18.0)


Die Heizung ist lt. Plan nur morgens zur Aufstehenszeit mit Automatik an
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Bennemannc

Hallo,

also zunächst mal musst Du Expert auf "2_full" setzen. Dann mit set Gerät(SCHALTER) regSet intKeyVisib visib" die Interen Taster anzeigen lassen. Dadurch bekommst Du eine sehr lange Liste.

     2014-12-20 09:53:29   CommandAccepted yes
     2014-12-19 21:22:15   D-firmware      2.3
     2014-12-19 21:22:15   D-serialNr      LEQ0243943
     2014-12-16 18:41:38   PairedTo        0x23A821
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgActionType off
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgCtDlyOff geLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgCtDlyOn geLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgCtOff geLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgCtOn geLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgCtValHi 100
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgCtValLo 50
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgMultiExec on
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgOffDly 0 s
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgOffTime unused
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgOffTimeMode absolut
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgOnDly 0 s
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgOnTime 120 s
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgOnTimeMode absolut
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgSwJtDlyOff on
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgSwJtDlyOn on
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgSwJtOff dlyOn
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-lgSwJtOn on
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shActionType jmpToTarget
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtDlyOff ltLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtDlyOn ltLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtOff ltLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtOn ltLo
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtValHi 100
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtValLo 10
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOffDly 0 s
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOffTime unused
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOffTimeMode absolut
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOnDly 0 s
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOnTime 120 s
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOnTimeMode absolut
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shSwJtDlyOff on
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shSwJtDlyOn on
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shSwJtOff dlyOn
     2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shSwJtOn on
     2014-12-16 18:41:38   R-intKeyVisib   visib
     2014-12-16 18:41:38   R-pairCentral   0x23A821
     2014-12-16 18:41:41   R-self01-lgActionType jmpToTarget
     2014-12-16 18:41:41   R-self01-lgCtDlyOff geLo
     2014-12-16 18:41:41   R-self01-lgCtDlyOn geLo
     2014-12-16 18:41:41   R-self01-lgCtOff geLo
     2014-12-16 18:41:41   R-self01-lgCtOn geLo
     2014-12-16 18:41:41   R-self01-lgCtValHi 100
     2014-12-16 18:41:41   R-self01-lgCtValLo 50
     2014-12-16 18:41:41   R-self01-lgMultiExec on
     2014-12-15 16:03:57   R-self01-lgOffDly 0 s
     2014-12-15 16:03:57   R-self01-lgOffTime unused
     2014-12-16 18:41:41   R-self01-lgOffTimeMode absolut
     2014-12-15 16:03:57   R-self01-lgOnDly 0 s
     2014-12-15 16:03:57   R-self01-lgOnTime unused
     2014-12-16 18:41:41   R-self01-lgOnTimeMode absolut
     2014-12-16 18:41:41   R-self01-lgSwJtDlyOff off
     2014-12-16 18:41:41   R-self01-lgSwJtDlyOn on
     2014-12-16 18:41:41   R-self01-lgSwJtOff dlyOn
     2014-12-16 18:41:41   R-self01-lgSwJtOn dlyOff
     2014-12-16 18:41:41   R-self01-shActionType jmpToTarget
     2014-12-16 18:41:41   R-self01-shCtDlyOff geLo
     2014-12-16 18:41:41   R-self01-shCtDlyOn geLo
     2014-12-16 18:41:41   R-self01-shCtOff geLo
     2014-12-16 18:41:41   R-self01-shCtOn geLo
     2014-12-16 18:41:41   R-self01-shCtValHi 100
     2014-12-16 18:41:41   R-self01-shCtValLo 50
     2014-12-15 16:03:57   R-self01-shOffDly 0 s
     2014-12-15 16:03:57   R-self01-shOffTime unused
     2014-12-16 18:41:41   R-self01-shOffTimeMode absolut
     2014-12-15 16:03:57   R-self01-shOnDly 0 s
     2014-12-15 16:03:57   R-self01-shOnTime unused
     2014-12-16 18:41:41   R-self01-shOnTimeMode absolut
     2014-12-16 18:41:41   R-self01-shSwJtDlyOff off
     2014-12-16 18:41:41   R-self01-shSwJtDlyOn on
     2014-12-16 18:41:41   R-self01-shSwJtOff dlyOn
     2014-12-16 18:41:41   R-self01-shSwJtOn dlyOff
     2014-12-16 18:41:42   R-self02-lgActionType jmpToTarget
     2014-12-16 18:41:42   R-self02-lgCtDlyOff geLo
     2014-12-16 18:41:42   R-self02-lgCtDlyOn geLo
     2014-12-16 18:41:42   R-self02-lgCtOff geLo
     2014-12-16 18:41:42   R-self02-lgCtOn geLo
     2014-12-16 18:41:42   R-self02-lgCtValHi 100
     2014-12-16 18:41:42   R-self02-lgCtValLo 50
     2014-12-16 18:41:42   R-self02-lgMultiExec on
     2014-12-15 16:03:58   R-self02-lgOffDly 0 s
     2014-12-15 16:03:58   R-self02-lgOffTime unused
     2014-12-16 18:41:42   R-self02-lgOffTimeMode absolut
     2014-12-15 16:03:58   R-self02-lgOnDly 0 s
     2014-12-15 16:10:28   R-self02-lgOnTime 120 s
     2014-12-16 18:41:42   R-self02-lgOnTimeMode absolut
     2014-12-16 18:41:42   R-self02-lgSwJtDlyOff on
     2014-12-16 18:41:42   R-self02-lgSwJtDlyOn on
     2014-12-16 18:41:42   R-self02-lgSwJtOff dlyOn
     2014-12-16 18:41:42   R-self02-lgSwJtOn on
     2014-12-16 18:41:42   R-self02-shActionType jmpToTarget
     2014-12-16 18:41:42   R-self02-shCtDlyOff geLo
     2014-12-16 18:41:42   R-self02-shCtDlyOn geLo
     2014-12-16 18:41:42   R-self02-shCtOff geLo
     2014-12-16 18:41:42   R-self02-shCtOn geLo
     2014-12-16 18:41:42   R-self02-shCtValHi 100
     2014-12-16 18:41:42   R-self02-shCtValLo 50
     2014-12-15 16:03:58   R-self02-shOffDly 0 s
     2014-12-15 16:03:58   R-self02-shOffTime unused
     2014-12-16 18:41:42   R-self02-shOffTimeMode absolut
     2014-12-15 16:03:58   R-self02-shOnDly 0 s
     2014-12-15 16:10:28   R-self02-shOnTime 120 s
     2014-12-16 18:41:42   R-self02-shOnTimeMode absolut
     2014-12-16 18:41:42   R-self02-shSwJtDlyOff on
     2014-12-16 18:41:42   R-self02-shSwJtDlyOn on
     2014-12-16 18:41:42   R-self02-shSwJtOff dlyOn
     2014-12-16 18:41:42   R-self02-shSwJtOn on
     2014-12-16 18:41:39   R-sign          off


Die relevanten Register sind
2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shOnTime 120 s
der Bewegungsmelder kennt nur short - die Zeit wird in Sekunden angegeben.
2014-12-16 18:41:43   R-Bewegungsmelder_01_chn-01-shCtValLo 10
hier wird der Lichtwert eingestellt, ab dem Über den Bewegungsmelder das Licht angeschaltet wird.
Das ganze gibt es natürlich auch, für die Self, also internen Taster. Im Beispiel oben wird bei dem einen Taster für 120 sec eingeschaltet (sh und lg) und mit dem anderen Taster auch short und long dauerhaft ein oder aus.

Gruß Christoph

Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Acrusty

Leute,vielen Dank für die ausführlichen Antworten!!
Werde das schnellstmöglich ausprobieren und mich dann wieder melden.

Auf expert und Visib hab ichs bereits. Somit sollte das machbar sein.

Gruss Yvan

Acrusty

Hallo
Ich habe das nun ausprobiert, diese Lösung ist aber auf diese Weise nicht ganz so wie ich es gern hätte:
Das Licht schaltet zwar nach eingestellter Zeit aus, jedoch auch automatisch ein.
Ziel ist es, dass im Bad das Licht NICHT automatisch einschaltet.

Ich stellt mir das etwa so vor
Wenn das Licht per Schalter eingeschaltet wurde, soll es nach abgelaufener Zeit wieder ausschalten, VORAUSGESETZT es wird vom Bewegungsmelder kein "motion" gesendet.
Ich probier gerade mit einem Notify mit if-Bedinung....will aber nicht so richtig.

Da ich wirklich blutiger Anfänger bin, nehme ich an, dass ich das Notify falsch geschrieben habe:

{ if ("$value[Bad]"
eq "on") && ("Bewegungsmelder:motion") { fhem("set Bad on") }}


Freundliche Grüsse
Yvan

Bennemannc

Hallo,

was stört Dich an dem automatischen Einschalten. Du kannst ja eine Helligkeitsschwelle vorgeben.
Das mit Notify zu lösen ist schon ok, ich würde aber dann mit at arbeiten und stumpf nach 10 Minuten einen "set Lampe off" schicken. Wenn das so funktioniert, wie ich mir das denke, müsste der timer (at) bei jeder erkannten Bewegung wieder auf 10 Minuten gesetzt werden.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Acrusty

 ;D stören tut es mich nicht. Das wäre dann eigentlich die Notlösung.

Der Grund fur die komplizierte Variante sind meine Kinder und die Katzen. Somit verhindere ich ein automatisches Einschalten sollte dort ungewollte Bewegung festgestellt werden. Klar, ich kann den Melder anders positionieren, aber da sind mir Grenzen gesetzt worden  ;)

Trotzdem schaue ich mit Deine Vatiante genauer an, man kann ja nur dazulernen  :)

Schönen Heiligabend
Und Grüsse aus der Schweiz (auch ohne Schnee  :'(  )

Rince

Verstehe ich das richtig:
Ist es dunkel im Bad, soll der Bewegungsmelder nicht das Licht einschalten.
Hat jemand händisch das Licht eingeschaltet, soll es nach 5 Minuten ausgehen.
Springt der Bewegungssmelder an, während das Licht an ist, soll das Licht eine weitere Zeit an bleiben?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Acrusty

Genau so ;D
Ich weiss, ist ein komplizierter Wunsch....

Bennemannc

Hallo,

wie schon gesagt - dann musst Du nicht peeren, das Signal vom Bewegunsmelder nehmen und ein at ... set Lampe off machen. Der Befehl wird abgesetzt egal ob die Lampe an ist oder nicht - macht ja nichts kaputt.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Acrusty

#13
Hallo Christoph
Vielen Dank! Ich denke, DAS ist die Lösung.


Acrusty

#14
Hallo
Also ausschalten tut es nun bereits.
ABER:
wenn vom Melder ein "motion" kommmt wird der Timer scheinbar gelöscht anstatt verlängert.

Im Eventmonitor steht:
2014-12-26 17:23:28 CUL_HM Bad set_off
2014-12-26 17:23:28 Global global DELETED Timer

was läuft falsch?