FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: oli82 am 26 Februar 2015, 15:17:24

Titel: HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: oli82 am 26 Februar 2015, 15:17:24
Guten Morgen.

Ich bin noch recht neu, was Fhem und Perl angeht und möchte mir einen Plot erstellen, der die Bewegungen von einem HM-SEC-MDIR-2 darstellt.
"Normale" Plots sind mittlerweile kein Problem, aber da der Bewegunsgmelder nur ein "motion" sendet, oder den "motion count" erhöht, komme ich gerade nicht weiter.

Kann mir jemand bei dem Problem helfen und mir erklären, wie ich die Bewegungen darstellen kann?

Leider funktioniert mein Ansatz nicht
# Bewegungsmelder Bewegungserkennung
define Motion dummy
define FileLog_Motion FileLog ./log/Motion-%Y.log Motion
attr FileLog_Motion logtype text
define MotionNotifyAn notify OG_Bewegungsmelder:motion {fhem ("set Motion 1")}
define NoMotionDummy dummy
define MotionNotifyAus notify OG_Bewegungsmelder:motion {fhem ("sleep 17;; set NoMotionDummy on")}
define NoMotionDummyNeu notify NoMotionDummy:on {fhem ("set Motion 0") if ( (time - time_str2num(ReadingsTimestamp("Motion","state",0 ))) > 16 )}

Danke
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: frank am 26 Februar 2015, 17:17:38
Zitat"Normale" Plots sind mittlerweile kein Problem
genauso für motion. zusätzlich in das funktionsfeld im svg-editor:

$fld[3]=~"motion"?1:0

$fld[3] bedeutet, in spalte 4 taucht motion auf. eventuell anpassen.
linientyp points. dann sollte bei jedem motion ein point mit wert 1 geplottet werden.
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: oli82 am 27 Februar 2015, 09:11:55
Danke Frank für die Hilfe und Erläuterung.
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: Icinger am 27 Februar 2015, 09:28:10
Machs doch einfach über ein userReading direkt im Bewegungsmelder:

attr OG_Bewegungsmelder userReadings status {ReadingsVal("OG_Bewegungsmelder","trigger_cnt",0) % 2 ? "1" : "0"}

Damit hast du ein zusätzliches Reading, welches du loggen oder anderweitig verwenden kannst.

lg, Ici
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: tbals am 14 Oktober 2015, 18:22:49
Hallo zusammen,

ich klinke mich mal mit ein, auch wenn das schon ein alter Thread ist.
Ich habe auch ein HM-SEC-MDIR-2 und logge die Bewegungen mit. Das tut auch soweit wie von Icinger beschrieben.
Ich wundere mich aber über die Zweit-Meldung, also wann der/die/das PIR ein zweites Reading erzeugt.

Eingestellt ist mein HM-SEC-MDIR-2 wie folgt:

define PIR1 CUL_HM 33xxx2
attr PIR1 IODev HMLAN1
attr PIR1 DbLogExclude motionCount,motion,state
attr PIR1 actCycle 000:10
attr PIR1 actStatus alive
attr PIR1 autoReadReg 4_reqStatus
attr PIR1 expert 2_full
attr PIR1 firmware 1.6
attr PIR1 model HM-SEC-MDIR-2
attr PIR1 peerIDs 00000000,
attr PIR1 room Wohnzimmer
attr PIR1 alias Bewegungsmelder
attr PIR1 serialNr LEQxxxxxx4
attr PIR1 subType motionDetector
attr PIR1 userReadings movement {ReadingsVal("PIR1","trigger_cnt",0) % 2 ? "1" : "0"}
attr PIR1 event-min-interval brightness:300,battery:14400

Readings:
R-brightFilter 7
R-captInInterval off
R-evtFltrNum 1
R-evtFltrPeriod 1 s
R-ledOnTime 0 s
R-minInterval 60


Durch "R-minInterval 60" hätte ich jetzt erwartet, das nach einer erkannen Bewegung erst 60 Sekunden vergehen müssen bevor das Teil nochmal prüft, ob es eine Bewegung gibt. Also sollte min 60 Sekunden Abstand zwischen zwei Logeinträgen vorhanden sein.
Sind es aber nicht:


| 2015-10-14 16:58:15 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:02:04 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:02:16 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:03:04 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:04:05 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:05:40 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:07:26 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:08:07 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:09:11 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:10:23 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:12:03 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:12:45 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:12:50 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:13:12 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:14:13 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:15:04 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:15:13 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:17:57 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:17:58 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:19:02 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:22:57 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:23:16 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:26:02 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:27:36 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:28:48 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:28:49 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:30:02 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:34:34 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:39:21 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:43:40 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:49:39 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:55:06 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 17:59:40 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 17:59:40 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |
| 2015-10-14 18:00:06 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 18:04:08 | PIR1   | CUL_HM | movement: 0 | movement | 0     |      |
| 2015-10-14 18:07:50 | PIR1   | CUL_HM | movement: 1 | movement | 1     |      |


Also z.B meldet der Sensor um 17:30:02 eine Bewegung und erst um 17:34:34 kommt die nächste Meldung. 4,5 Minuten sind vergangen.
Spannend sind die 1 auf 0 wechsel, also wenn keine weitere Bewegung erkannt wird.

17:55:06 = Bewegung, 17:59:40 = keine Bewegung. Wieder über 4 Minuten.
17:07:26 = Bewegung, 17:08:07 = keine Bewegung, Das ist weniger als 60 Sekunden

Ich sehe da kein System. Habe ich das nicht verstanden?

Gruss
  Thomas
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: tbals am 26 Januar 2016, 18:15:28
Zitat von: Icinger am 27 Februar 2015, 09:28:10
Machs doch einfach über ein userReading direkt im Bewegungsmelder:
attr OG_Bewegungsmelder userReadings status {ReadingsVal("OG_Bewegungsmelder","trigger_cnt",0) % 2 ? "1" : "0"}
Damit hast du ein zusätzliches Reading, welches du loggen oder anderweitig verwenden kannst.
lg, Ici

Hallo Ici,

was beutet diese Zeile denn genau?
Ich habe das so für meinen HM-SEC-MDIR-2 übernommen, aber der meldet regelmässig Bewegung wo aber keine ist. Das Reading bleibt dann auf 1, obwohl keiner im Raum ist.
Hier mal ein screenshot (ich hoffe der hängt hier jetzt auch dran.)

Hast du ein Tip was da falsch läuft? Donn so ist der PIR recht unbrauchbar.

Danke und Gruss
  Thomas
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: Icinger am 26 Januar 2016, 19:40:26
Scheint, dass dein HM-SEC den Count "verkehrt" macht

Mach einfach mal
attr OG_Bewegungsmelder userReadings status {ReadingsVal("OG_Bewegungsmelder","trigger_cnt",0) % 2 ? "0" : "1"}

Zur Erklärung:
trigger_cnt wird jedesmal um eins hochgezählt. Also bei motion und bei "nicht-motion".
Bei dem Attr wird dann dieser Wert durch 2 geteilt, und je nach gerader oder ungerader Zahl dann "0" oder 1" in das Reading geschrieben.
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: stromer-12 am 26 Januar 2016, 20:53:38
Dein userreading triggert auf alles. Da du kein event-on-change gesetzt hast auch auf die Infomeldeung des Pir, welche ca. alle 4,5Minuten kommt.
Der trigger_cnt wird nur bei erkannter Bewegung um eins erhöht.
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: tbals am 27 Januar 2016, 19:19:55
Zitat von: Icinger am 26 Januar 2016, 19:40:26
Scheint, dass dein HM-SEC den Count "verkehrt" macht

Mach einfach mal
attr OG_Bewegungsmelder userReadings status {ReadingsVal("OG_Bewegungsmelder","trigger_cnt",0) % 2 ? "0" : "1"}

Zur Erklärung:
trigger_cnt wird jedesmal um eins hochgezählt. Also bei motion und bei "nicht-motion".
Bei dem Attr wird dann dieser Wert durch 2 geteilt, und je nach gerader oder ungerader Zahl dann "0" oder 1" in das Reading geschrieben.

Hi,

Danke für die Antwort. Doch so richtig "verkehrt" kann der counter auch nicht sein, denn wenn der mal keine Bewegung anzeigt (siehe mein screenshot im letzten Post von nachts 1:00 bis 4:00) ist das ja korrekt, dann da gab es definitv keine Bewegung. Aber es gab halt auch keine Bewegung von ca. 10:00 bis 19:00h.
Da wird also das verdrehen der Formel das Ergebnis nicht besser machen.

Gruss
  Thomas
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: tbals am 27 Januar 2016, 19:28:20
Zitat von: stromer-12 am 26 Januar 2016, 20:53:38
Dein userreading triggert auf alles. Da du kein event-on-change gesetzt hast auch auf die Infomeldeung des Pir, welche ca. alle 4,5Minuten kommt.
Der trigger_cnt wird nur bei erkannter Bewegung um eins erhöht.

Hallo Stromer,

verstehe ich nicht ganz. Wie sollte meine Config denn am besten aussehen, damit ich (mit oder ohne userreading) einen auswertbaren Zustand habe, ob Bewegung erkannt wird, oder nicht. Ich hätte gerne sowas wie "if 10min keine Bewegung then Licht aus" oder sowas.

Vielen Dank und Gruss
  Thomas
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: tbals am 29 Januar 2016, 21:19:31
Ich habe es nun anders gelöst und so scheint es zu funktionieren:

define PIR1 CUL_HM 33BD82
attr PIR1 IODev HMLAN1
attr PIR1 DbLogExclude motionCount,motion,state
attr PIR1 actCycle 000:10
attr PIR1 actStatus alive
attr PIR1 autoReadReg 4_reqStatus
attr PIR1 expert 2_full
attr PIR1 firmware 1.6
attr PIR1 model HM-SEC-MDIR-2
attr PIR1 serialNr LEQ129xxxxx
attr PIR1 subType motionDetector
attr PIR1 event-min-interval brightness:300,battery:14400,cover:14400


define PIR1_Trigger notify PIR1:motion {\
        fhem ("setreading PIR1 movement 1 ;; define PIR1_movement_off at +00:03:00 setreading PIR1 movement 0");;\
}


Fertig.
Damit habe ich ein reading, was bei jeder Bewegung 3min auf 1 ist und  es damit überall weiterverwerten kann.

Gruss
  Thomas
Titel: Antw:HM-SEC-MDIR-2 Bewegung loggen
Beitrag von: errazzor am 05 April 2016, 19:57:39
Zitat


define PIR1_Trigger notify PIR1:motion {\
        fhem ("setreading PIR1 movement 1 ;; define PIR1_movement_off at +00:03:00 setreading PIR1 movement 0");;\
}


Fertig.
Damit habe ich ein reading, was bei jeder Bewegung 3min auf 1 ist und  es damit überall weiterverwerten kann.

Gruss
  Thomas

Perfekt. Vielen Dank für diese wirklich einfache Lösung.