FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: DocCyber am 15 November 2016, 17:33:05

Titel: [GELÖST!] Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: DocCyber am 15 November 2016, 17:33:05
Ist es möglich, dass reguläre Ausdrücke im Eventmonitor (Event-Filter) anders ausgewertet werden, als ein RegEx für ein notify??

Bei mir scheint das so zu sein: Ich möchte nur auf Ereignisse reagieren, welche von Geräten ausgelöst werden,
deren Namen mit ra_ beginnen und bei denen der Motor steht.
Der RegEx ra_.*motor:.stop:* funktioniert beim Eventmonitor zuverlässig, aber ein notify, das auf dem selben Ausdruck basiert, löst den zugeordneten Code nicht aus.

Weiß jemand Rat?


define n_getLevel notify ra_.*motor:.stop:* {getLevel($NAME)}

sub getLevel($) {
  my $device = shift;
  my $debugging = 1;
  if ($debugging) { debug("setLevel $device"); }
}


Die zu filternden Events (von Rolladenaktoren) sehen übrigens z.B. so aus:
2016-11-15 17:42:01 CUL_HM ra_3 level: set_95
2016-11-15 17:42:01 CUL_HM ra_3 set_95
2016-11-15 17:42:01 CUL_HM ra_3 deviceMsg: on (to HM_CFG_LAN)
2016-11-15 17:42:01 CUL_HM ra_3 level: 100
2016-11-15 17:42:01 CUL_HM ra_3 motor: down:on
2016-11-15 17:42:01 CUL_HM ra_3 pct: 100
2016-11-15 17:42:01 CUL_HM ra_3 on
2016-11-15 17:42:01 CUL_HM ra_3 timedOn: off
2016-11-15 17:42:05 CUL_HM ra_3 deviceMsg: 95 (to HM_CFG_LAN)
2016-11-15 17:42:05 CUL_HM ra_3 level: 95
2016-11-15 17:42:05 CUL_HM ra_3 motor: stop:95
2016-11-15 17:42:05 CUL_HM ra_3 pct: 95
2016-11-15 17:42:05 CUL_HM ra_3 95
2016-11-15 17:42:05 CUL_HM ra_3 timedOn: off
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: automatisierer am 15 November 2016, 17:51:43
würde sagen, an Ende muss ein '.*' anstelle eines '*'
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: DocCyber am 15 November 2016, 18:07:16
danke für deinen Input.
Klappt damit aber leider auch nicht.

Habe jetzt mal   ra_\d\smotor:\sstop:*   probiert. Auch dieser Ausdrcuk funktioniert im Eventmonitor, nicht aber im notify.
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: JensS am 15 November 2016, 18:27:32
probier mal
define n_getLevel notify ra_.*:motor:stop:.* {getLevel($NAME)}
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: CoolTux am 15 November 2016, 18:44:52
Wäre schön wenn man wüsste was genau, geht nicht, bedeutet.
Wird das Notify nicht getriggert?

define n_getLevel notify ra_[1-9].motor:.stop.* {getLevel($NAME)}

Das sollte funktionieren.
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: automatisierer am 15 November 2016, 19:59:28
Das hier funzt nicht, weil bei regexp ein * alleine nicht funzt, nur zusammen mit dem Punkt gehts.

define n_getLevel notify ra_.*motor:.stop:* {getLevel($NAME)}


das hier geht aber mit sicherheit:

define n_getLevel notify ra_.*motor:.stop:.* {getLevel($NAME)}

bei diesem Event:

ra_3 motor: stop:95


und wenn das bei dir nicht das gewünschte Ergebnis liefert, dann wird das mMn an deiner Funktion

{getLevel($NAME)}

liegen.



Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: DocCyber am 15 November 2016, 20:29:24
[quhttps://forum.fhem.de/Smileys/default/wink.gifote author=CoolTux link=topic=60821.msg522165#msg522165 date=1479231892]

define n_getLevel notify ra_[1-9].motor:.stop.* {getLevel($NAME)}

Das sollte funktionieren.
[/quote]

und damit hast du auch Recht!  :)

Ich habe zwar noch nicht so recht verstanden warum, aber das ist mir wurscht - zumindest  im Moment.


Danke euch allen!
Titel: Antw:[GELÖST!] Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: CoolTux am 15 November 2016, 20:39:43
Man beachte bitte die Einschränkung der Zahl. Nur Devices mit dem Namen ra_1 bis ra_9 werden akzeptiert.
Hast Du also 10 Rolläden wird die 10 nicht klappen.


Grüße
Titel: Antw:[GELÖST!] Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: DocCyber am 17 November 2016, 22:08:05
Zitat von: CoolTux am 15 November 2016, 20:39:43
Nur Devices mit dem Namen ra_1 bis ra_9 werden akzeptiert.
Hast Du also 10 Rolläden wird die 10 nicht klappen.

Schon klar...
Ich verstehe nur noch immer nicht, warum meine Lösungen nicht funktionierten...
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: RadioJames am 18 November 2016, 07:23:07
Zitat von: automatisierer am 15 November 2016, 19:59:28
Das hier funzt nicht, weil bei regexp ein * alleine nicht funzt, nur zusammen mit dem Punkt gehts.

define n_getLevel notify ra_.*motor:.stop:* {getLevel($NAME)}


Moooooment, das * macht genau das, was es in einem RegEx tun soll. Es wird eine Wiederholung des vorherigen Ausdrucks beliebig oft, auch Null-mal definiert. Bei dir ist der letzte Ausdruck das ":".
Titel: Antw:Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: automatisierer am 18 November 2016, 07:33:43
Zitat von: RadioJames am 18 November 2016, 07:23:07
Moooooment, das * macht genau das, was es in einem RegEx tun soll. Es wird eine Wiederholung des vorherigen Ausdrucks beliebig oft, auch Null-mal definiert. Bei dir ist der letzte Ausdruck das ":".

Ja,
so isses... deswegen der . davor, dann wird ein beliebiges Zeichen 0 bis beliebig oft definiert
Titel: Antw:[GELÖST!] Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!
Beitrag von: RadioJames am 18 November 2016, 07:45:06
Oh, sorry, hab dich mit dem TO verwechselt und dein Posting nur halb gelesen.