(geloest) Regex Optimierung mit notifyRegexpCheck Notifydev

Begonnen von riker1, 14 Dezember 2020, 07:28:43

Vorheriges Thema - Nächstes Thema

riker1

Hallo

habe bei mir ziemlich viele nicht optimierte Regex. -> kein Notifydev vorhanden.

Nun kann man diese ja überprüfen mit notifyRegexpCheck

{ notifyRegexpCheck('MAX_WT.*:(desiredTemperature|temperature|battery|measurementOffset).*|MAX_HT.*:(valveposition|battery|temperature).*') }

Hier kommen dann als Fehler:
MAX_WT.*:(desiredTemperature: devspec MAX_WT_02a19a (OK)
temperature: unknown (ignored)
battery: unknown (ignored)
measurementOffset).*: no match (ignored)
MAX_HT.*:(valveposition: devspec MAX_HT_JEQ0187040_MAX_025f8c,MAX_HT_JEQ0188720_MAX_026f74,MAX_HT_JEQ0188949_MAX_0270b9,MAX_HT_KEQ0684993_09bd6f (OK)
battery: unknown (ignored)
temperature).*: no match (ignored)


Verstehe das allerdings nicht, da die Readings vorhanden sind?
battery
temperature



die Regex scheint ja grundsätzlich gültig zu sein

MAX_WT.*:(desiredTemperature|temperature|battery|measurementOffset).*|MAX_HT.*:(valveposition|battery|temperature).*


Was übersehe ich hier?

Selbst gemerkt:
ZitatDer Parser  versteht nur sowas wie dev1 oder dev1:event1 oder dev1:event1|dev2:event2. Folgendes kapiert er nicht: dev:(event1|event2), und sowas wie dev.*event schon gar nicht. Nicht exisitierende dev's oder "Teilprobleme" fuehren auch zu einem "unoptimierten" Regex.

Danke VG T


PS. Habe nun die REGEX so gemacht und dann sie sieht optimiert aus
MAX_WT.*:desiredTemperature.*|MAX_WT.*:temperature.*|MAX_WT.*:battery.*|MAX_WT.*:measurementOffset.*|MAX_HT.*:battery.*|MAX_HT.*:valveposition.*|MAX_HT.*:temperature.*


ZitatOb der Regex "optimiert" ist sieht man daran, dass FileLog/Notify/etc ein Internal NOTIFYDEV hat, mit der Liste der betroffenen Quellen. Pruefen kann man den Regex mit
Code: [Auswählen]
{ notifyRegexpCheck('...meinRegexp...') }



FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

riker1

Hallo

von Beta-User und Rudi  habe ich

Zitatcount TYPE=notify
count TYPE=notify:FILTER=NOTIFYDEV!~.+
list TYPE=notify:FILTER=NOTIFYDEV!~.+ DEF

diese Abfragen zum Aufspüren der nicht optimierten REGEX.

Sehr hilfreich !!!

Vielen Dank
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox