notify für Bewegungsmelder

Begonnen von martin2day, 27 Januar 2017, 15:02:28

Vorheriges Thema - Nächstes Thema

martin2day

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

Otto123

#1
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

marvin78

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.

martin2day

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

Otto123

#4
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

martin2day

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