[gelöst] event-on-change-reading für bestimmte Readings unterdrücken

Begonnen von Rampler, 13 Dezember 2022, 11:26:00

Vorheriges Thema - Nächstes Thema

Beta-User

Na ja, unabhängig von diesem etwas überraschenden Ergebnis: Das "^" zwischendrin kann eigentlich nicht stimmen, das sollte eigentlich den Anfang markieren, ist vermutlich hier nur mehr oder weniger komplett wirkungslos, weil fhem.pl da sowieso was ergänzt. Wäre mir das nicht ins Auge gestochen hätte ich dazu auch nichts geschrieben, so ist es halt einfach nur sehr "seltsam"...

Ohne diese "Garnitur" für Anfang und Ende wäre es dann:
.*(?!last_seen|uptime|snr|lastUpdate|utilization).*
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Wernieman

Würde ich auch so sehen. Eigentlich ein "Bug", das es funktioniert mit einem ^ mittendrin ... zum Glück aktuell nur ein "Schönheitsfehler".

Nur sollte man sich so einen "Schwachsinn" nicht angewöhnen!
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

bartman121

ich lasse mich gern belehren ....

Dann bitte doch mal die korrekte Syntax dafür empfehlen, bisher bekomme ich außer "ist unfug" nichts korrektes zu lesen, zumindest wenn ich regex101.com glauben darf.

Schaut euch doch die Screenshots an ....

Für mich jedenfalls funktioniert der Schwachsinn....

Wernieman

y aber eine Lösung wurde Dir schon geschrieben. Und ja .. auch regex101.com arbeitet "nur" mit fertigen Libarys, welche genau so etwas wahrscheinlich ausbügeln.

P.S. Rate mal, warum ich "Schwachsinn" in "" gesetzt habe ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Damian

Vieles wird klar, wenn man weiß, dass Routinen vom Rudi ^ am Anfang und $ am Ende der Regex hinzufügen. DOIF macht das z. B. nicht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bartman121

wo wurde mir denn eine fertige Lösung geboten?

ich will einfach nur XXX_<auf gar keinen fall das oder dies oder ....>.... haben ...

Ich kenne die Namen von XXX nicht ....

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

bartman121

okay, regex101 zeigt mir aber, dass #15 trotzdem auf alles matched...  (siehe Screenshot oben)

Kann das jetzt Jemand verifizieren?

Beta-User

Wirklich interessantes Thema...

Für regex101:
^(?!.*(?:last_seen|uptime|snr|lastUpdate|utilization)).*$

Im Attribut dann ohne die Anfangs-/End-Markieungen:
(?!.*(?:last_seen|uptime|snr|lastUpdate|utilization)).*
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

bartman121

okay .... klappt nicht :/
Argument (?!.*(? for attr unificontroller event-on-change-reading is not a valid regexp: Sequence (?$...) not implemented in regex; marked by <-- HERE in m/^(?!.*(?$ <-- HERE / at fhem.pl line 3186.


Hat Jemand eine Idee?

Beta-User

Argh... - der Threshold-Trenner "Doppelpunkt" ist ja nochmal eine "Spezialität" in diesem Zusammenhang. Dann klappt das hier nicht mit dem Vermeiden der capture group, aber ohne akzeptiert es FHEM:
(?!.*(last_seen|uptime|snr|lastUpdate|utilization)).*
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors