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
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

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
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB