FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: cwagner am 03 November 2023, 22:39:02

Titel: RegEx in DoIF-Reading
Beitrag von: cwagner am 03 November 2023, 22:39:02
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
Titel: Aw: RegEx in DoIF-Reading
Beitrag von: Per am 03 November 2023, 22:52:31
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.
Titel: Aw: RegEx in DoIF-Reading
Beitrag von: Damian am 06 November 2023, 11:31:57
[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.

Titel: Aw: RegEx in DoIF-Reading
Beitrag von: cwagner am 09 November 2023, 22:23:33
Danke Damian, Schritt für Schritt lerne ich jedes Mal eine neue Finesse in Sachen RegESen.

Christian