Neues Feature: Filtern nach Ausdrücken mit Ausgabeformatierung

Begonnen von Damian, 14 Februar 2016, 17:59:32

Vorheriges Thema - Nächstes Thema

turo

#15
Zitat von: Damian am 19 Februar 2016, 16:59:22
Die Rekursion mit regulären Ausdrücken abzufangen, wird dann aber für alle drei Klammern recht aufwändig. Ich denke, ich werde es dann mit eigenen Funktionen realisieren, diese zählen die Klammern.
So schlimm sollte das nicht werden: Den Fall, dass sich verschiedene Klammern ineinander verschachteln, kann man ja ignorieren: Es zählt der Typ der äußersten Klammer. Wenn Du es brauchen kannst, mache ich meinen Ausdruck noch fertig. (Und das wäre dann als Nebeneffekt für mich der erste Einsatz von recursive matching in freier Wildbahn!)

Gruss,
turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

Damian

Zitat von: turo am 19 Februar 2016, 17:07:58
So schlimm sollte das nicht werden: Den Fall, dass sich verschiedene Klammern ineinander verschachteln, kann man ja ignorieren: Es zählt der Typ der äußersten Klammer. Wenn Du es brauchen kannst, mache ich meinen Ausdruck noch fertig. (Und das wäre dann als Nebeneffekt für mich der erste Einsatz von recursive matching in freier Wildbahn!)

Gruss,
turo

Kannst du gerne machen. Ich bastle währenddessen eine Routine in Perl, dann schauen wir welche Lösung performanter ist.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Damian am 19 Februar 2016, 17:35:33
Kannst du gerne machen. Ich bastle währenddessen eine Routine in Perl, dann schauen wir welche Lösung performanter ist.

Ich habe aktuelle Version eingecheckt inkl. "safe" Komma in beliebiger Schachtelungstiefe :).

Gruß

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

Per

In Verbinung mit Internals funktioniert das bei mir nicht :(.
Version vom 13/03
set test3 [$DEVICE:STATUS:"(.+)":"$1"])
macht nix (eventMonitor: "reading does not exist")
set test3 [$DEVICE:status:"(.+)":"$1"])
setzt text3.

Statt status $EVENT (oder $event oder [$EVENT]) zu nehmen geht auch nicht, man kann die Events nur direkt benennen.
Oder ich habe die passende Syntax noch nicht rausbekommen.

Damian

Zitat von: Per am 18 März 2016, 21:14:12
In Verbinung mit Internals funktioniert das bei mir nicht :(.
Version vom 13/03
set test3 [$DEVICE:STATUS:"(.+)":"$1"])
macht nix (eventMonitor: "reading does not exist")
set test3 [$DEVICE:status:"(.+)":"$1"])
setzt text3.

Statt status $EVENT (oder $event oder [$EVENT]) zu nehmen geht auch nicht, man kann die Events nur direkt benennen.
Oder ich habe die passende Syntax noch nicht rausbekommen.
Internals werden mit & angegeben, daher:

set test3 [$DEVICE:&STATE:"(.+)":"$1"])

Gruß

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

Per

Was soll ich sagen, du hast natürlich Recht.
Gilt das mit dem & pauschal immer, wenn im DOIF statt Readings Internals genutzt werden werden sollen?

Damian

Zitat von: Per am 19 März 2016, 16:01:43
Was soll ich sagen, du hast natürlich Recht.
Gilt das mit dem & pauschal immer, wenn im DOIF statt Readings Internals genutzt werden werden sollen?

Hier hat Ellert alles noch mal zusammengefasst:

http://fhem.de/commandref_DE.html#DOIF_Kurzreferenz

Gruß

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