Hauptmenü

RegEx in DoIF-Reading

Begonnen von cwagner, 03 November 2023, 22:39:02

Vorheriges Thema - Nächstes Thema

cwagner

In diesem Device:Reading-Ausdruck gibt es folgende Möglichkeiten, bei denen im Laufe des Tages einer nach dem anderen ein Event erzeugt:
[DWD:fc0_1_TTT] [DWD:fc0_2_TTT] [DWD:fc0_3_TTT]

Die Idee, mit einem RegEx jedes dieser drei Events für ein DoIf-Reading abzufragen führt lediglich lzum Rückgabewert 0: [DWD:fc0_[0-3]_TTT] Verschiedene Versuche mit Anführungszeichen und Maskierung mit \ habe ich durchgespielt.

Offenbar habe ich ein Verständnisproblem, oder?

Christian
PI5 Raspbian 12, Perl 5.36.0, FHEM 6.4: 297 Devices in MariaDB: Steuerung Heizkessel & Speicher, FBH, Solarthermie, kontroll. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM ESP3), MQTT2, Shelly. DOIF, PID20, Threshold, OWX; Micropelt IRTV, SolarForecast

Per

Die Syntax, damit DOIF das als RegEx erkennt, und damit ein Wert und nicht nur ein OK zurück gegeben werden, sieht lt commandref etwas anders aus.

Damian

[DWD:fc0_[0-3]_TTT] so etwas ist eine typische Readingangabe, die wird in eine entsprechende ReadingsVal-Funktion übersetzt und dort sind keine Regex-Angaben möglich.

Regex-Angaben kannst nur bei Auswertung von Events angegeben, das sind die Angaben, wo man Regex in Anführungszeichen setzt, also [DWD:"fc0_[0-3]_TTT"]
Diese liefern aber nur wahr oder falsch Werte, eine Ausnahme gibt es, wenn man kommagetrennt einen Defaultwert angibt: [DWD:"fc0_[0-3]_TTT",""]
Dann wird das Event ausgewertet und versucht den Wert hinter dem Readingnamen im Event zu nehmen.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cwagner

Danke Damian, Schritt für Schritt lerne ich jedes Mal eine neue Finesse in Sachen RegESen.

Christian
PI5 Raspbian 12, Perl 5.36.0, FHEM 6.4: 297 Devices in MariaDB: Steuerung Heizkessel & Speicher, FBH, Solarthermie, kontroll. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM ESP3), MQTT2, Shelly. DOIF, PID20, Threshold, OWX; Micropelt IRTV, SolarForecast