FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: grooves am 26 Mai 2020, 17:45:00

Titel: Notify trigger nur bei Nummern
Beitrag von: grooves am 26 Mai 2020, 17:45:00
Hallo,

ich habe da n kleinen Problem, und hoffe auf Hilfe,
habe mir ein Notify gebastelt das nur auf Nummern 1-100 getriggert werden soll,
das funktioniert schon ganz gut, allerdings triggert es auch auf Sachen die mit dem Device gar nichts zu tun haben,
überall wo Nummer drin sind, :-(

define Rollo_cmd notify Rollo:[0-9]|[0-9][0-9]|[1][0][0] {\
Log 1, "Rollo event: $EVENT EV0: $EVTPART0";;\
}



das log zeigt:
2020.05.26 17:36:28 1: Rollo event: T: 21 °C F: 36 % W: 10 km/h P: 1034 hPa EV0: T:
2020.05.26 17:36:55 1: Rollo event: Next: 17:37:55 EV0: Next:
2020.05.26 17:36:58 1: Rollo event: 60 EV0: 60
2020.05.26 17:36:59 1: Rollo event: 40 EV0: 40
2020.05.26 17:37:00 1: Rollo event: 20 EV0: 20


und im Event monitor werden richtig nur die drei gewollten Trigger angezeigt:
2020-05-26 17:36:58 dummy Rollo 60
2020-05-26 17:36:59 dummy Rollo 40
2020-05-26 17:37:00 dummy Rollo 20


Vielen Dank für jede Hilfe
Grooves
Titel: Antw:Notify trigger nur bei Nummern
Beitrag von: Beta-User am 26 Mai 2020, 17:54:35
Ein paar Klammern könnte helfen:

define Rollo_cmd notify Rollo:([0-9]|[0-9][0-9]|[1][0][0]) {\
Log 1, "Rollo event: $EVENT EV0: $EVTPART0";;\
}

Evtl. etwas kürzer (siehe ggf. https://regexr.com/):
define Rollo_cmd notify Rollo:([0-9]{1,2}|100) {\
Log 1, "Rollo event: $EVENT EV0: $EVTPART0";;\
}


Titel: Antw:Notify trigger nur bei Nummern
Beitrag von: grooves am 26 Mai 2020, 18:01:40
perfekt, :-)
besten Dank für die schnelle Antwort,
was so ein paar Klammern ausmachen können :-)
da hab ich nicht gesucht, weil es ja generell funktioniert hat,
Kannst du mir noch bitte kurz erklären wieso das notify ohne die Klammern auf sämtliche Events triggert,
die auch gar nichts mit dem Device zu tun haben ? und die auch nicht im Event Monitor sichtbar sind ?

Besten Dank,
Grooves
Titel: Antw:Notify trigger nur bei Nummern
Beitrag von: Beta-User am 26 Mai 2020, 18:14:40
weil es auf folgende logischen Teile reagiert hat (jede Zeile für sich):
Rollo:[0-9]
[0-9][0-9]
[1][0][0]

Du solltest sowas mit dem verlinkten Tool (oder regex101.com) anschauen, da kann man auch testen und rumspielen...
Titel: Antw:Notify trigger nur bei Nummern
Beitrag von: grooves am 26 Mai 2020, 18:18:55
ahhh, da muß man erst mal drauf kommen,

Danke,
ich hatte den Regex mit https://www.regexpal.com/ ausprobiert,
da waren die Klammern noch dabei, :-)
^([0-9]|[1-9][0-9]|[1][0][0])$
irgendwie erschien mir das zuviel, :-)

anyway, wieder was gelernt,
Besten Dank und Grüße,
grooves