Hilfe bei REGEX für notify benötigt

Begonnen von cseuss, 11 März 2017, 21:21:10

Vorheriges Thema - Nächstes Thema

cseuss

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




betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

cseuss

Hallo Betateilchen,

scheint leider nicht zu funktionieren.

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

Gruß

Christian

automatisierer

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.

cseuss

#4
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

rudolfkoenig

Tipp: notify in EventMonitor durch markieren des gewuenschten Events und "Create/Modify Device" erzeugen und danach die anderen Events auf dem gleichen Weg hinzufuegen.

cseuss

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