Regular Expressions (regex): Befehlsumfang in <pattern> von notify und Co.

1,511 views
Skip to first unread message

Klaus Schauer

unread,
Oct 23, 2012, 7:59:23 AM10/23/12
to fhem-...@googlegroups.com
In den Befehlen notify, at, watchdog und Co. z. B.
define <name> notify <pattern> <command>
habe ich den Eindruck, dass in <pattern> die Standard-Regular Expressions, siehe
nur teilweise funktionieren. Z. B.
Wassermelder_Heizung.alive:.yes oder .*[Bb]attery:.*
geht, aber
Wassermelder_Heizung.alive:.{1}yes$ oder .*(B|b]attery:.* oder Wassermelder_Heizung:.?(wet|dry|damp)
geht nicht! Ist mein Eindruck richtig, oder gibt es einen Trick? Falls tatsächlich nur ein begrenzter Befehlssatz verfügbar ist, wo finde ich eine Befehlsübersicht?
 

Rudolf Koenig

unread,
Oct 23, 2012, 8:47:37 AM10/23/12
to fhem-...@googlegroups.com
> Ist mein Eindruck richtig, oder gibt es einen Trick?

Weder, noch :) Eine Einschraenkung gibt es doch: fhem ergaenzt das regexp vorne
mit ^ und hinten mit $

Klaus Schauer

unread,
Oct 23, 2012, 9:39:05 AM10/23/12
to fhem-...@googlegroups.com
Das ist eigentlich gut, aber auch schlecht! Dann suche ich u. U. nach den falschen Strings... Ich nehme die Log-Einträge z. B. von
HM-SEC-WDS:
 
2012-10-21_08:38:28 Wassermelder_Heizung alive: yes
2012-10-21_08:38:28 Wassermelder_Heizung dry
2012-10-21_08:38:28 Wassermelder_Heizung contact: dry (to CUL_0)
2012-10-22_08:28:56 Wassermelder_Heizung alive: yes
2012-10-22_08:28:56 Wassermelder_Heizung battery: ok
2012-10-22_08:28:56 Wassermelder_Heizung dry
2012-10-22_08:28:56 Wassermelder_Heizung contact: dry (to CUL_0)
 
und bastele mir
Wassermelder_Heizung:wet|dry|damp
was geht, aber zu ungenau ist, um die doppelten Sensormeldungen (rot) abzufangen. Doch
Wassermelder_Heizung:.?(wet|dry|damp)
geht dann nicht! Mich wundert, das scheinbar ":" irgendwie gebraucht wird, obwohl im Log dies nicht auftaucht. Eigentlich sollte doch
Wassermelder_Heizung\s{1}(wet|dry|damp)
genau das richtige sein, aber?
 
 
 
  

Rudolf Koenig

unread,
Oct 23, 2012, 10:20:34 AM10/23/12
to fhem-...@googlegroups.com
> Ich nehme die Log-Eintr�ge z. B. von

Falsch. Korrekt ist EventMonitor oder inform timer. Siehe auch HOWTO, etc.
Reply all
Reply to author
Forward
0 new messages