FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Vize am 04 August 2016, 22:39:33

Titel: [gelöst] Problem mit RegEx
Beitrag von: Vize am 04 August 2016, 22:39:33
Guten Abend,

stehe gerade etwas auf dem Schlauch...

Ich lasse mir den Zustand eines Rollos über ein Symbol darstellen, das je nach Öffnungszustand wechselt.
Hier der entsprechende code-Ausschnitt:

<div data-type="symbol"
   data-device="gz_213_rollo"
   data-get="level"
   data-icons='["oa-fts_shutter_100","oa-fts_shutter_90","oa-fts_shutter_80","oa-fts_shutter_70","oa-fts_shutter_60","oa-fts_shutter_50","oa-fts_shutter_40","oa-fts_shutter_30","oa-fts_shutter_20","oa-fts_shutter_10","oa-fts_window_2w"]'
   data-get-on='["[0-9]","[1][0-9]","[2][0-9]","[3][0-9]","[4][0-9]","[5][0-9]","[6][0-9]","[7][0-9]","[8][0-9]","[9][0-9]","100"]'
   data-on-color="#606060"
   data-on-background-color="#FFFFFF"
   data-background-icon="fa-square"
   class="grande centered top-space">
</div>


Nun kann der Wert für level im device aber nicht nur ganze Zahlen annehmen, sondern auch z.B. 7.5, 20.7, 30.2 usw...
Dann wird natürlich kein entsprechendes Symbol angezeigt.

Wie müsste die entsprechende RegEx bei data-get-on aussehen, damit auch bei diesen Werten ein passendes Symbol angezeigt wird?
Per google bin ich bisher nicht schlauer geworden, bzw. verstehe nicht, wie es aussehen muss.

Beispiel:
level=7.5
[0-9].[0-9] funktioniert nicht, kein Symbol
[0.9]{1,1}.[0-9] funktioniert nicht, kein Symbol
[0123456789].[0-9] funktioniert nicht, kein Symbol
[0-9]?.[0-9] funktioniert nicht, kein Symbol

bei level=99.5 funktioniert aber [9][0-9].[0-9] und das Symbol wird angezeigt...

Vielleicht kann mir jemand helfen oder mich in die richtige Richtung schubsen?

Danke!

Gruß
Andreas
Titel: Antw:Problem mit RegEx
Beitrag von: setstate am 05 August 2016, 08:27:05
RegExen müsste ich probieren, aber was ist mit nur numerischen Werte?
0,7,15,35,...100
Dann wird ein größer-gleich Vergleich und dieser Index, ab wann diese Bedingung passt, dann ausgewählt.
Titel: Antw:Problem mit RegEx
Beitrag von: Bennemannc am 05 August 2016, 08:50:57
Hallo,

also [3][0-9] bedeutet doch 3 und eine belibige Zahl von 0-9
der Reihenfolge nach prüfst Du zuerst [0-9] einstellige Zahl, dann würde danach doch [3].* reichen - 3 mit irgendetwas dahinter - egal was.

Gruß Christoph
Titel: Antw:Problem mit RegEx
Beitrag von: Vize am 05 August 2016, 10:22:41
@Mario
Werde ich heute abend mal testen...

@Christoph
Mein Problem liegt hauptsächlich darin, dass kein Symbol bei "Dezimalzahlen" zwischen 0 und 9.9 angezeigt wird...

Wie müsste die RegEx denn aussehen, damit diese z.B. auf 7.5 oder 6.3 oder 8.4 (reading level) matcht?
[0-9].[0-9] klappt nicht, da wird dann kein Symbol angezeigt...

Diesbezüglich steht mir aber auch kein Wissen im Weg...

Gruß
Andreas
Titel: Antw:Problem mit RegEx
Beitrag von: automatisierer am 05 August 2016, 10:50:02
Zitat
Mein Problem liegt hauptsächlich darin, dass kein Symbol bei "Dezimalzahlen" zwischen 0 und 9.9 angezeigt wird...


Ist es möglich, dass die Zahlen 1-9 mit einem Leerzeichen auf zwei Stellen vor dem Komma aufgefüllt werden?
Titel: Antw:Problem mit RegEx
Beitrag von: Bennemannc am 05 August 2016, 11:08:34
Hallo,

[0-9].[0-9] kann nicht gehen, weil . ein belibiges Zeichen ist - wenn dann [0-9]\.[0-9] den Punkt ESCAPEN.

Gruß Christoph
Titel: Antw:Problem mit RegEx
Beitrag von: n4rrOx am 05 August 2016, 11:23:47
Hi,

bin wohl derjenige hier mit der wenigsten Ahnung über RegEx, aber mit Hilfe vom Online Simulator auf https://regex101.com/ (https://regex101.com/) hab ich folgende Lösung rausgefunden... Angaben ohne Gewähr ^^


Wertebereich RegEx

0.0 - 9.9 (^[0-9]$|^[0-9][.].$)
...
70.0 - 79.9 ([7][0-9].*)
...
100 (100)


Zumindest sagt der Simulator, dass es passen könnte.

Gruß
Mathias
Titel: Antw:Problem mit RegEx
Beitrag von: Vize am 05 August 2016, 11:24:59
@Christoph
Aaah...OK, danke für die Erklärung...werde ich nacher mal ändern und testen.
Mit den Feinheiten der RegExen bin ich noch nicht so vertraut...

@automatisierer
Geht, glaube ich, nur über ein zusätzliches userReading. Level wird automatisch vom Rolladen-Aktor "erzeugt"...

@Mathias
Danke für deine Hinweise!

Gruß
Andreas

Titel: Antw:Problem mit RegEx
Beitrag von: Vize am 05 August 2016, 20:40:33
Hallo nochmal an alle,

und danke für die ganzen Tipps und Hinweise!

Der "einfachste" Weg mit Marios Vorschlag zu den numerischen Werten hat auf Anhieb funktioniert...

Schönes Wochenende schonmal!
Andreas