[GELÖST!] Eventmonitor bzw Notify werten RegEx unterschiedlich aus?!

Begonnen von DocCyber, 15 November 2016, 17:33:05

Vorheriges Thema - Nächstes Thema

DocCyber

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
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

automatisierer

würde sagen, an Ende muss ein '.*' anstelle eines '*'

DocCyber

#2
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.
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

JensS

probier mal
define n_getLevel notify ra_.*:motor:stop:.* {getLevel($NAME)}
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

CoolTux

#4
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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

automatisierer

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.




DocCyber

[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!
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DocCyber

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...
Behandle die Menschen so, als wären sie, was sie sein sollten. Dadurch hilfst du ihnen zu werden, was sie sein können. (Goethe)


RPi-4B mit HM-CFG-LAN und viele weitere HM Komponenten, diverse Shellys, Tuya-Geräte, SMA und Solis Wechselrichter, Elgris EnergyManager, go-e Wallbox

RadioJames

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 ":".
There are 10 kind of people. Those who understand binary and those who don't.

automatisierer

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

RadioJames

Oh, sorry, hab dich mit dem TO verwechselt und dein Posting nur halb gelesen.
There are 10 kind of people. Those who understand binary and those who don't.