FHEM Forum

FHEM => Automatisierung => Thema gestartet von: cseuss am 11 März 2017, 21:21:10

Titel: Hilfe bei REGEX für notify benötigt
Beitrag von: cseuss am 11 März 2017, 21:21:10
Hallo zusammen,

ich benötige Hilfe bei einer Definition eines RegEx für ein Notify.

Ich möchte triggern auf das Event Motion eines Bewegungsmelders:

Tr.Bewegung_Motion motion

Das habe ich bis jetzt über Tr.Bewegung_Motion:motion:.* abgebildet.

Wichtig ist nun aber, dass das Notify nicht auch auf das Event:

Tr.Bewegung_Motion motion: off

auslösst, wenn das "Motion-Event" zu Ende ist.

Könnt Ihr mit bei der Definiton der RegEx helfen?

Vielen Dank und Gruß

Christian



Titel: Antw:Hilfe bei REGEX für notify benötigt
Beitrag von: betateilchen am 11 März 2017, 21:24:14
lass das :.* am Ende weg.
Titel: Antw:Hilfe bei REGEX für notify benötigt
Beitrag von: cseuss am 11 März 2017, 21:44:05
Hallo Betateilchen,

scheint leider nicht zu funktionieren.

Ich benötige eine Definitron, die nur genau motion zulässt.

Gruß

Christian
Titel: Antw:Hilfe bei REGEX für notify benötigt
Beitrag von: automatisierer am 11 März 2017, 22:53:45
Was genau funktioniert nicht? gar nicht, oder zu oft? oder wie oder was??


wenn das dein Event ist:

Tr.Bewegung_Motion motion

dann geht das:

Tr.Bewegung_Motion:motion

in Form von

define xyz notify Tr.Bewegung_Motion:motion set abc on


Ich erzähl es gern immer wieder:

der . (Punkt) bedeutet > ein beliebiges Zeichen - aber NICHT kein Zeichen.
der * (Stern) bedeutet > beliebige Wiederholung des vorstehenden Zeichens - auch keine Wiederholung.

Also bedeutet .* (PunktSternchen) das auf jeden Fall mindestens ein beliebiges Zeichen folgen muss.
Titel: Antw:Hilfe bei REGEX für notify benötigt
Beitrag von: cseuss am 12 März 2017, 00:22:31
Hallo,

vielen Dank für Eure Rückmeldungen:

Hier einmal die Details.

Ich habe ein Test-Notify gebaut, das einen Dummy befüllt:

defmod n_Bewegung notify Tr.Bewegung_Motion:motion|Wz.Bewegung:motion set du_notify $NAME $EVENT

Den Dummy lasse ich in ein FileLog laufen, um die Ergebnisse besser festhalten zu können.

defmod du_notify dummy
defmod FileLog_du_notify FileLog ./log/du_notify-%Y-%m.log du_notify


Hier die Ergebnisse:

2017-03-12_00:12:41 du_notify Wz.Bewegung motion
2017-03-12_00:12:58 du_notify Tr.Bewegung_Motion motion: on (to HMLAN1)
2017-03-12_00:12:58 du_notify Tr.Bewegung_Motion motionCount: 135_next:60s
2017-03-12_00:12:58 du_notify Tr.Bewegung_Motion motion
2017-03-12_00:14:00 du_notify Tr.Bewegung_Motion motion: off
2017-03-12_00:14:00 du_notify Tr.Bewegung_Motion motionDuration: 62
2017-03-12_00:15:30 du_notify Wz.Bewegung motion


Habt Ihr eine Idee, warum hier auch weitere Events ausgewertet werden?

Vielen Dank für Eure Hilfe und Gruß

Christian
Titel: Antw:Hilfe bei REGEX für notify benötigt
Beitrag von: rudolfkoenig am 12 März 2017, 07:38:18
Tipp: notify in EventMonitor durch markieren des gewuenschten Events und "Create/Modify Device" erzeugen und danach die anderen Events auf dem gleichen Weg hinzufuegen.
Titel: Antw:Hilfe bei REGEX für notify benötigt
Beitrag von: cseuss am 12 März 2017, 08:59:00
Guten Morgen zusammen,

vorab: Ich habe die Lösung!

Auch die Definiton des notify über den Eventmonitor bringt genau das gleiche Ergebnis.

Vertausche ich die beiden Devices in der REGEX, also

Tr.Bewegung_Motion:motion|Wz.Bewegung:motion

zu

Wz.Bewegung:motion|Tr.Bewegung_Motion:motion

"fange" ich mir auch die ungewollten Events vom Device Wz.Bewegung ein.

2017-03-12_08:20:33 du_notify Tr.Bewegung_Motion motion: off
2017-03-12_08:20:33 du_notify Tr.Bewegung_Motion motionDuration: 62
2017-03-12_08:26:44 du_notify Wz.Bewegung motion: on (to HMLAN1)
2017-03-12_08:26:44 du_notify Wz.Bewegung motionCount: 55_next:60s
2017-03-12_08:26:44 du_notify Wz.Bewegung motion


Die Lösung bringt letzt endlich folgende Definition:

Wz.Bewegung:motion$|Tr.Bewegung_Motion:motion$

Damit wird m.E. genau auf das String-Ende geprüft. Vielleicht haben die Heros hier eine Erklärung dazu.

Vielen Dank und schönen Sonntag.

Christian