FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: martin2day am 27 Januar 2017, 15:02:28

Titel: notify für Bewegungsmelder
Beitrag von: martin2day am 27 Januar 2017, 15:02:28
Hallo,

eigentlich sollte das ja keine große Sache sein, aber der Teufel steckt wie immer im Detail.
Ich habe einen homematic Bewegungsmelder über HmUART an FHEM angeschlossen. Das funktioniert wunderbar.
Ich habe captInInterval auf on gestellt und das minIntervall auf 30s verringert.
So erkennt der Melder Bewegungen und meldet erst no Motion wenn wirklich keine Bewegung mehr ist.

Dieses Signal möchte ich jetzt in on/off an die S7 DWrite schicken.
Leider liefert der Bewegungsmelder kein Signal on/off was ich dann direkt per $EVENT übertragen kann.

Signal bei Erkennung:
2017-01-27 14:46:28 CUL_HM HM_4F9296 brightness: 164
2017-01-27 14:46:28 CUL_HM HM_4F9296 motion: on (to HmUART)
2017-01-27 14:46:28 CUL_HM HM_4F9296 motionCount: 81_next:15s
2017-01-27 14:46:28 CUL_HM HM_4F9296 motion
2017-01-27 14:46:28 CUL_HM HM_4F9296 trigDst_033810: noConfig
2017-01-27 14:46:28 CUL_HM HM_4F9296 trigger_cnt: 81


Signal bei Deaktivierung:
2017-01-27 14:46:45 CUL_HM HM_4F9296 motion: off
2017-01-27 14:46:45 CUL_HM HM_4F9296 motionDuration: 17
2017-01-27 14:46:45 CUL_HM HM_4F9296 noMotion


Ich habe es schon versucht über:
HM_4F9296:motion set Lampe on-for-timer 1

Leider unterstützt S7 DWrite kein follow-on-for-timer.
Muss ich wirklich den komplizierten Umweg gehen und zwei notify anlegen, eins für EIN und eins für AUS schalten.

Gruß Martin
Titel: Antw:notify für Bewegungsmelder
Beitrag von: Otto123 am 27 Januar 2017, 15:13:34
Hallo Martin,

HM_4F9296:motion:.(on.*|off) wäre Dein Trigger.
Dann nimmst Du $EVTPART1

HM_4F9296:motion:.(on.*|off) set Lampe $EVTPART1

bzw: wie marvin sagt  ;) aber da fehlt Dir on und off zum schalten


Gruß Otto
Titel: Antw:notify für Bewegungsmelder
Beitrag von: marvin78 am 27 Januar 2017, 15:13:50
Vorausgesetzt dein FHEM ist aktuel: Im Reading motion sollte sowohl on, als auch off gemeldet werden. Aber auch state meldet motion und noMotion. Darauf kann man schon ganz prima mit einem einzigen notify reagieren.
Titel: Antw:notify für Bewegungsmelder
Beitrag von: martin2day am 27 Januar 2017, 17:07:38
Hallo ihr zwei,

es funktioniert. Vielen Dank.
Ich hatte ja im Log schon gesehen, dass motion: onund off geliefert hat.
Aber auf den Code dazu wäre ich nie gekommen... ist das Perl oder wo kann ich mich dazu belesen? :-)

Die Logik verstehe ich ja aber die Syntax ist mir dann doch sehr fremd.

Gruß Martin
Titel: Antw:notify für Bewegungsmelder
Beitrag von: Otto123 am 27 Januar 2017, 21:48:53
Hallo Martin,

das ist weniger Perl, das ist mehr RegExp - ist aber auch nicht leichter.  8)
Hier z.B. https://wiki.selfhtml.org/wiki/Perl/Reguläre_Ausdrücke

Der regExp Wizard im notify liefert Dir viel Unterstützung. Aber dieses Konstrukt kann er auch nicht.  ;)
Das lernst Du hier im Forum, Ich habe das, glaube ich, von CoolTux.  :D

Eventmonitor kennst Du, lies Dir die commandref und das Wiki zum notify genau und oft durch.

Erklärbär  8) für diesen Trigger: HM_4F9296:motion:.(on.*|off)

HM_4F9296 -> ist das Gerät
: -> trennt das Gerät vom Event und steht nicht im Eventmonitor
motion: -> ist Teil des Events, der : gehört zum Event und ist nicht Trennzeichen
. -> steht für jedes Zeichen und in dem Fall für das Leerzeichen
(on.*|off) -> bedeutet entweder on.* oder off und nichts anderes
on.* -> steht für on und jedes beliebige Zeichen in beliebiger Anzahl danach
off -> steht für off und zwar nur für off nichts davor und nicht danach.

Verständlich?

Gruß Otto
Titel: Antw:notify für Bewegungsmelder
Beitrag von: martin2day am 27 Januar 2017, 22:05:06
Hallo Otto,

voll und ganz verstanden.
Vielen Dank für die Hilfe.

Es ist schon echt verrückt was alles geht, wenn man weiß wie man es macht.

Gruß Martin