FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Andi.Riese am 03 Mai 2017, 10:01:57

Titel: Notify reagiert nicht
Beitrag von: Andi.Riese am 03 Mai 2017, 10:01:57
Hallo,

ich habe folgendes notify definiert:
-----------------------------------------
Andreas[^X]|Hanna[^X] {
Log 1, "*** Name: $NAME Event: $EVENT"
}
----------------------------------------
Es soll bei Ereignissen "Andreas" oder "Hanna" aktiv werden, aber nicht bei "AndreasX" oder "HannaX"
Das notify reagiert aber nur bei "Andreas" richtig, "Hanna" wird ignoriert.
Vertausche ich so, dass  Hanna[^X] am Anfang, vor dem "|" steht, ist es genau anders rum.
Was mache ich falsch`?

Danke im Voraus!

Andreas
Titel: Antw:Notify reagiert nicht
Beitrag von: DeeSPe am 03 Mai 2017, 10:41:11
Nimm doch einfach:
Andreas|Hanna {}

Gruß
Dan
Titel: Antw:Notify reagiert nicht
Beitrag von: Andi.Riese am 03 Mai 2017, 10:54:46
Hilft mir nix, weil es 2 Ereignisse gibt: Hanna und HannaX
Außerdem würde ich gerne wissen, was daran falsch ist.
Titel: Antw:Notify reagiert nicht
Beitrag von: Thorsten Pferdekaemper am 03 Mai 2017, 11:10:48
Zitat von: Andi.Riese am 03 Mai 2017, 10:54:46
Hilft mir nix, weil es 2 Ereignisse gibt: Hanna und HannaX
Ja, aber Andreas|Hanna dürfte bei HannaX nicht matchen.

Zitat
Außerdem würde ich gerne wissen, was daran falsch ist.
Ich bin mir nicht ganz sicher aber ich glaube, dass Deine Angabe

Andreas[^X]|Hanna[^X]

...implizit so geklammert wird:

Andreas([^X]|Hanna)[^X]

D.h. es matcht auf alles, was mit Andreas anfängt und danach zweimal kein X hat und auf alles, was mit AndreasHanna anfängt und danach kein X hat.
Also z.B. auf:

Andreas
AndreasY
AndreasYY
AndreasHanna
AndreasHannaY

Das hier müsste das tun, was Du willst:

(Andreas[^X])|(Hanna)[^X])

Ich bin aber auch kein echter RegEx-Held, das kann also auch falsch sein.
...wobei das halt auch auf AndreasY matchen würde, was Du vielleicht nicht willst. Dans Vorschlag ware da einfacher und meiner Meinung nach besser.
Gruß,
   Thorsten

Titel: Antw:Notify reagiert nicht
Beitrag von: DeeSPe am 03 Mai 2017, 11:26:05
Zitat von: DeeSPe am 03 Mai 2017, 10:41:11
Nimm doch einfach:
Andreas|Hanna {}

Gruß
Dan

Bin mir ziemlich sicher dass das wie gewünscht funktioniert!

Gruß
Dan

P.S. ^ und $ werden beim Matching ergänzt, also kommt heraus: m/^Andreas|Hanna$/
Das matcht auch nur auf Andreas und/oder Hanna.
Titel: Antw:Notify reagiert nicht
Beitrag von: CoolTux am 03 Mai 2017, 11:28:16
https://regex101.com/

Gibt Dir da auch Recht.



Grüße
Titel: Antw:Notify reagiert nicht
Beitrag von: Andi.Riese am 03 Mai 2017, 15:07:17
(Andreas^X)|(Hanna^X)
macht anscheinend das, was ich wollte.

Danke!