FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: franky08 am 14 September 2013, 21:03:45

Titel: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 14 September 2013, 21:03:45
Hallo,

hatte die Frage schon im Anfänger Thread gestellt. Mein bis jetzt eingesetzter Code läuft ohne Probleme, leider soll nach Ablauf des Timers und es sind noch Personen im Raum die Zeit des Timers verlängert werden:

# Badlicht steuern
define Bewegung_Bad notify IR_Sensor:motion.* {\
if (Value("Lichtsensor1") eq "dunkel") {\
fhem "set Badlicht on-for-timer 480";;\
\
}}

Wenn nach den 8 Minuten noch jemand im Bad ist, soll das Licht anbleiben. Habe schon 10 Stunden mit watchdog experimentiert aber leider erfolglos.

Hat hier jemand einen Tipp der mir weiterhelfen würde?

Vielen Dank
Frank
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: justme1968 am 14 September 2013, 21:31:22
kann es sein das dein lichtsensor nicht mehr dunkel liefert nach dem das licht bei der ersten bewegung eingeschaltet wurde und dadurch die nachfolgenden bewegungen kein neues on-for-timer mehr auslösen?

du musst etwas mehr logik einbauen und dir merken das durch den sensor eingeschaltet wurde.

 z.b. in einem reading das du dir in der lampe anlegst wenn das erste mal motion kommt. in motion musst du dann in dem if den lichtsensor auf dunkel und zusätzlich das eben angelegte reading per oder prüfen und die lampe auch dann einschalten. zusätzlich brauchst du ein notify an der lampe das sobald die lampe aus geht das hilfs reading wieder löscht.

gruss
  andre
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 14 September 2013, 21:41:34
Hallo Andre, jetzt nerv ich dich schon wieder. Der Sensor bleibt bei Licht an immer noch auf "dunkel" daran liegt es nicht.
Der gesamte Code ist:

#Badlicht schalten
#---- Lichtsensor
define Lichtsensor1 dummy
attr Lichtsensor1 fp_Grundriss 200,485,0,
attr Lichtsensor1 room Bad
define Daemmerung notify IR_Sensor.*brightness.* {\
if(ReadingsVal("IR_Sensor","brightness","---")<=35){\
fhem "set Lichtsensor1 dunkel"};;\
if(ReadingsVal("IR_Sensor","brightness","---")>35){\
fhem "set Lichtsensor1 hell"};;\
}
#---- Badlicht steuern
define Bewegung_Bad notify IR_Sensor:motion.* {\
if (Value("Lichtsensor1") eq "dunkel") {\
fhem "set Badlicht on-for-timer 480";;\
\
}}
Wie gesagt, im Moment ist der Junge im Bad und der Sensor liefert "dunkel".
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: justme1968 am 14 September 2013, 22:19:01
die frage ist was er in dem momment liefert wenn das motion notify zum verlängern kommt. schau in den event monitor.bau wieder Log meldungen ein.

je nach dem wie gross das bad ist passt auf einfach die stelle nicht und er erkennt nicht das jemand da ist. oder auch wenn sich jemand nicht bewegt. dann hilft es vielleicht auch das intervall für die motion nachrichten von 4 minuten auf 2 oder sogar eine zu setzen.

gruss
  andre
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 14 September 2013, 22:27:41
Schau mal in diesem Post von Martin, er beschreibt am Ende die Funktion des letzten Wertes der Jump liste...

Link (http://forum.fhem.de/index.php?topic=12447.msg93898#msg93898)
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 14 September 2013, 22:43:11
Das lässt sich bestimmt nur in den Registern vom Sensor machen (die motion nachrichten von 4 minuten auf 2 oder sogar eine zu setzen) Da nur ca. alle 2 Minuten ein Event vom dämmerunsschalter kommt. Der Sensor deckt definitiv das ganze Bad ab. Wie gesagt, ich habe heute den ganzen Tag nach einer Lösung (watchdog, triggern) gesucht aber leider hat das alles nicht zum Erfolg geführt.
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: justme1968 am 14 September 2013, 22:53:55
das interval zu setzen geht über das minInterval register. 4 minuten ist der default.

also der erste schritt ist auf jeden fall zu schauen ob die motion nachrichten kommen. wenn die nicht kommen nützt alles andere auch nicht :)

gruss
  andre
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 14 September 2013, 23:23:00
Verabschiede mich erst mal in die Nacht baue morgen mal ein Log3 IR_Sensor ein. Meine Frau fand es nicht so gut, dass das Badlicht ausgeht.

Frank
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 10:15:05
Also, der Event Monitor liefert folgendes:

2013-09-15 10:08:49 dummy Lichtsensor1 hell
2013-09-15 10:08:49 CUL_HM IR_Sensor motion
2013-09-15 10:08:49 CUL_HM IR_Sensor motion: on (to broadcast)
2013-09-15 10:08:49 CUL_HM IR_Sensor motionCount: 100_next:8-240
2013-09-15 10:08:49 CUL_HM IR_Sensor brightness: 86

2013-09-15 10:09:48 CUL_HM Differenz_1_2 T: -1.2
2013-09-15 10:09:48 CUL_HM Differenz_2_1 T: 1.2
2013-09-15 10:09:48 CUL_HM Differenz_2_1 DiffTemp: 1.2
2013-09-15 10:09:48 CUL_HM Temperatur_1 T: 22.1
2013-09-15 10:09:48 CUL_HM Temperatur_2 T: 23.3
2013-09-15 10:09:54 CUL_HM THSensor temperature: 23.4
2013-09-15 10:09:54 CUL_HM THSensor humidity: 58
2013-09-15 10:09:54 CUL_HM THSensor T: 23.4 H: 58
2013-09-15 10:11:22 dummy Lichtsensor1 hell
2013-09-15 10:11:22 CUL_HM IR_Sensor brightness: 87
2013-09-15 10:11:22 CUL_HM IR_Sensor cover: closed
2013-09-15 10:11:22 CUL_HM IR_Sensor battery: ok
2013-09-15 10:12:32 CUL_HM Differenz_1_2 T: -0.3
2013-09-15 10:12:32 CUL_HM Differenz_2_1 T: 0.3
2013-09-15 10:12:32 CUL_HM Differenz_2_1 DiffTemp: 0.3
2013-09-15 10:12:32 CUL_HM Temperatur_1 T: 22.1
2013-09-15 10:12:32 CUL_HM Temperatur_2 T: 22.4
2013-09-15 10:12:33 CUL_HM THSensor temperature: 23.3
2013-09-15 10:12:33 CUL_HM THSensor humidity: 58
2013-09-15 10:12:33 CUL_HM THSensor T: 23.3 H: 58
2013-09-15 10:12:57 dummy Lichtsensor1 hell
2013-09-15 10:12:57 CUL_HM IR_Sensor motion
2013-09-15 10:12:57 CUL_HM IR_Sensor motion: on (to broadcast)
2013-09-15 10:12:57 CUL_HM IR_Sensor motionCount: 101_next:8-240


Im Moment ist jemand im Bad und motion wird auch ausgelöst


Log:
2013.09.15 10:25:02 3: HMLAN1 device opened
2013.09.15 10:25:02 2: HMLAN_Parse: HMLAN1 new condition init
2013.09.15 10:25:03 1: Including ./log/fhem.save
2013.09.15 10:25:08 3: Device Diff_Temp_Sensor added to ActionDetector with 000:10 time
2013.09.15 10:25:08 3: Device IR_Sensor added to ActionDetector with 000:10 time
2013.09.15 10:25:08 3: Device Schalter_Tuer added to ActionDetector with 028:00 time
2013.09.15 10:25:08 3: Device THSensor added to ActionDetector with 000:10 time
2013.09.15 10:26:34 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:26:34 3: IR_Sensor
2013.09.15 10:26:34 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:26:34 3: IR_Sensor
2013.09.15 10:26:34 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:26:34 3: IR_Sensor
2013.09.15 10:26:34 2: HMLAN_Parse: HMLAN1 new condition ok
2013.09.15 10:27:05 2: CUL_HM set Herdlicht off
2013.09.15 10:31:06 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:31:06 3: IR_Sensor
2013.09.15 10:31:07 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:31:07 3: IR_Sensor
2013.09.15 10:31:07 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:31:07 3: IR_Sensor
2013.09.15 10:35:29 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:35:29 3: IR_Sensor
2013.09.15 10:35:29 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:35:29 3: IR_Sensor
2013.09.15 10:35:29 2: CUL_HM set Badlicht on-for-timer 360
2013.09.15 10:35:29 3: IR_Sensor

Ich denke die Sache hätte sich erledigt wenn man das Intervall von 4 Minuten auf 2 oder 1 ändern würde.
list:         register | range              | peer     | description
   0: intKeyVisib      |     literal        |          | visibility of internal channel options:visib,invisib
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   0: sabotageMsg      |     literal        |          | enable sabotage message options:on,off
   1: brightFilter     |   0 to 7           |          | brightness filter - ignore light at night
   1: captInInterval   |     literal        |          | capture within interval options:on,off
   1: evtFltrNum       |   1 to 15          |          | sensitivity - read each n-th puls
   1: evtFltrPeriod    | 0.5 to 7.5s        |          | event filter period
   1: ledOnTime        |   0 to 1.275s      |          | LED ontime
   1: minInterval      |     literal        |          | minimum interval in sec options:240,60,120,30,15
   4: peerNeedsBurst   |     literal        | required | peer expects burst options:on,off

get Config
set regSet minInterval 15
Mal sehen ob´s was bringt.

Viele Grüße
Frank
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 15 September 2013, 11:47:05
Das minInterval setzt du mit...

set IR_Sensor regSet minInterval 120

Auf in diesem fall 120 Sekunden
Nach einem Motion des Sensors wird also erst nach 120 Sekunden wieder auf Bewegungen reagiert...

Mit dem shDimJtOn : on oder no kannst dem aktor sagen ob er während seiner timer zeit auf neue Impulse des bewegungsmelders reagieren soll...

Ich habe bei mir den minInterval auf 120 Sekunden gesetzt und das Licht für 135 Sekunden an... shDimJtOn steht auf on
Sollte also in den letzten 15 Sekunden des Timers bewegung registriert werden wird der timer neu angestoßen...
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 12:09:55
Danke, der-Lolo, dass mit dem Register setzen hatte ich schon gemacht. Hatte dann nochmal nachgelesen dass der Anlernknopf gedrückt sein muss.
Setze jetzt noch shDimJtOn auf on. Wo sehe ich ob der Sensor die Register geschrieben hat, mit getConfig oder wo?
Manchmal ist man blind, steht doch alles in den Readings :-)

set shDimJtOn geht nicht:
shDimJtOn failed: supported register are brightFilter captInInterval evtFltrNum evtFltrPeriod intKeyVisib ledOnTime minInterval pairCentral peerNeedsBurst sabotageMsg
Gruß
Frank
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 15 September 2013, 12:40:47
Ich glaube du versuchst das falsche Register zu verändern, nicht im Bewegungsmelder agieren, sondern im Lichtschalter...

set badlicht regSet shDimJtOn on

Beim MDIR solltest du jeweils nach einem getConfig oder einem regSet die anlerntaste kurz drücken damit die Werte geschrieben werden.

Ein abschließendes getConfig zeigt dir dann die geschriebenen Werte sollte dort noch was von set_on bei shDimJtOn stehen wurde der Wert noch nicht übertragen...
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 12:45:11
Oder muss das dieses Register sein:

captInInterval | literal | | capture within interval options:on,off

Das ist natürlich vom MDIR -)

Die Werte im MDIR wurden geschrieben und die minInterval Zeit steht jetzt auf 15 sec. Damit scheint alles bestens zu laufen.

Gruß Frank
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 15 September 2013, 13:02:04
Wenn ich das richtig verstanden habe ist das capInInterval dafür zuständig ob überhaupt nach bewegung geschaut wird im Bewegungsmelder.
shDimJtOn sagt quasi das weitere trigger während der timerzeit den timer im aktor neu anstoßen oder nicht beachtet werden...
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 13:09:43
Das Register gibt es bei dem Schalter (HM-LC-Sw1PBU-FM) definitiv nicht:

0: intKeyVisib  
   0: localResDis    
   0: pairCentral      
   1: sign            
   1: statusInfoMinDly
   1: statusInfoRandom
   1: transmitTryMax  
   3: lgActionType    
   3: lgCtDlyOff      
   3: lgCtDlyOn        
   3: lgCtOff        
   3: lgCtOn          
   3: lgCtValHi      
   3: lgCtValLo        
   3: lgMultiExec      
   3: lgOffDly        
   3: lgOffTime      
   3: lgOffTimeMode  
   3: lgOnDly          
   3: lgOnTime        
   3: lgOnTimeMode    
   3: lgSwJtDlyOff    
   3: lgSwJtDlyOn      
   3: lgSwJtOff      
   3: lgSwJtOn        
   3: shActionType    
   3: shCtDlyOff      
   3: shCtDlyOn        
   3: shCtOff        
   3: shCtOn          
   3: shCtValHi        
   3: shCtValLo      
   3: shOffDly        
   3: shOffTime        |
   3: shOffTimeMode    
   3: shOnDly          
   3: shOnTime        
   3: shOnTimeMode    
   3: shSwJtDlyOff  
   3: shSwJtDlyOn      
   3: shSwJtOff        
   3: shSwJtOn        
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 15 September 2013, 13:17:54
Stimmt, weil es ein Schalter und kein Dimmer ist...

Es geht um shswJtOn

Sw statt dim
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 15:25:24
Ja, mann da hätte ich aber auch selber draufkommen können :-)

fhem schreibt aber beim setzen des shSwJtOn Registers Peer not spezifiziert oder ähnlich. Der Schalter ist ja auch nicht gepeert sondern mit dem HMLan gepairt.

Dann lasse ich das jetzt erst mal so, mal sehen wer heute Abend dann im dunklen steht.


Vielen Dank

Frank
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 15 September 2013, 15:50:47
Ich bin auch gerade durch dieses Thema durchgeschlittert, weil mir die "programmierte" Lösung nicht performant genug war hatte ich beschlossen den weg über peers zu gehen... Außerdem gewährleistet dass das die Funktion vorhanden bleibt auch wenn fhem mal nicht läuft...
Ob es nun performanter ist wird sich auch hier erst am Abend zeigen... Kann auch sein das die Empfindlichkeit des MDIR nicht ausreichend ist für meinen Zweck...
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 16:09:12
Also, von der Empfindlichkeit des MDIR war ich überrascht. Ich hatte zuvor auch deine Beiträge zu dem Thema verfolgt und war dann doch überrascht wie schnell das Teil schaltet. Im Prinzip Badtür auf und sofort geht das Licht an.
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: der-Lolo am 15 September 2013, 19:48:16
Ich hab das Gefühl als ob meiner beim unterkriechschutz sehr schnell reagiert, aber das eigentlich auf den Flur gerichtete Auge stark verzögert...

Kannst du mir mal deine regList zeigen?
Titel: Aw: HM-Sec-MDIR laufenden Timer verlängern
Beitrag von: franky08 am 15 September 2013, 20:16:01
Internals:
   DEF        1A4F71
   EVENTS     7
   HMLAN1_MSGCNT 7
   HMLAN1_RAWMSG E1A4F71,0000,05522F34,FF,FFB2,5A84101A4F71123ABC06012100
   HMLAN1_RSSI -78
   HMLAN1_TIME 2013-09-15 20:10:25
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     7
   NAME       IR_Sensor
   NR         145
   STATE      motion
   TYPE       CUL_HM
   lastMsg    No:5A - t:10 s:1A4F71 d:123ABC 06012100
   protLastRcv 2013-09-15 20:10:25
   protSnd    5 last_at:2013-09-15 20:10:25
   protState  CMDs_done
   rssi_at_HMLAN1 avg:-80 min:-83 max:-76 lst:-78 cnt:7
   Readings:
     2013-09-15 19:51:04   Activity        alive
     2013-09-15 11:47:44   CommandAccepted yes
     2013-09-15 11:46:41   PairedTo        0x123ABC
     2013-09-15 11:47:42   R-brightFilter  set_7
     2013-09-15 11:47:42   R-captInInterval set_off
     2013-09-15 11:46:40   R-evtFltrNum    1
     2013-09-15 11:46:40   R-evtFltrPeriod 1 s
     2013-09-15 11:46:39   R-intKeyVisib   invisib
     2013-09-15 11:46:40   R-ledOnTime     0 s
     2013-09-15 11:47:42   R-minInterval   set_15
     2013-09-15 11:46:39   R-pairCentral   0x123ABC
     2013-09-15 11:46:39   R-sabotageMsg   on
     2013-09-15 13:16:00   RegL_00:        0
     2013-09-15 20:10:25   battery         ok
     2013-09-15 20:10:25   brightness      33
     2013-09-15 20:10:25   cover           closed
     2013-09-15 19:52:45   motion          on (to broadcast)
     2013-09-15 19:52:45   motionCount     73_next:4-15
     2013-09-15 19:52:45   state           motion
   Helper:
     mId        004A
     rxType     28
     Respwait:
     Role:
       chn        1
       dev        1
     Rssi:
       At_hmlan1:
         avg        -80
         cnt        7
         lst        -78
         max        -76
         min        -83
Attributes:
   actCycle   000:10
   actStatus  alive
   expert     2_full
   firmware   1.0
   model      HM-SEC-MDIR
   peerIDs    
   room       Bad
   serialNr   JEQ0155556
   subType    motionDetector