FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: ArduPino am 18 März 2017, 22:09:06

Titel: Textfarbe Label ändern mit Werten aus CALVIEW
Beitrag von: ArduPino am 18 März 2017, 22:09:06
Hallo.

Ich habe einen Kalender per CALVIEW angelegt.
Readings:
t_001_summary Früh [Harry]
t_002_summary Früh [Hermine]
t_003_summary Spät [Harry]
t_004_summary Spät [Hermine]

Nun möchte ich anhand der Readings, die Farbe des Labels ändern.
<div data-type="label"
           data-device="cv_schichten"
           data-get="t_001_summary"
           data-colors='["blue","green"]'
           data-limits='[".Harry.",".Hermine."]'>
          </div>


Nun versuche ich, anhand von Wildcards auf die Wörter "Harry" und "Hermine" zu reagieren, um diese dann per data-colors in der entsprechenden Farbe anzuzeigen.
Ich kenne mich mit diesem RegEx leider nicht wirklich aus. Ich habe per Seite https://regex101.com/ (https://regex101.com/) versucht das mal zu testen, aber blicke da nicht ganz durch.
Oder es liegt an diesen eckigen Klammern, die so in den Kalender eingetragen werden und die ich nicht ändern kann.
Habe schon alles mögliche an Kombinationen mit .* durch.

Kann mir hierzu jemand was sagen ?
Gibt es eine Liste mit Wildcards bzw. der Anwendung dieser ?
Titel: Antw:Textfarbe Label ändern mit Werten aus CALVIEW
Beitrag von: setstate am 18 März 2017, 22:46:34
In deiner Kombination soll es blau werden, wenn der Text aus Harry und genau einem beliebigen Zeichen ( der Punkt .) vor und nach Harry. Du willst aber Null oder mehr beliebige Zeichen vor und nach dem Wort erlauben.
Dann muss du einen Quantifizier setzen, z.B. den * für null oder mehr.

data-limits='[".*Harry.*",".*Hermine.*"]'
Titel: Antw:Textfarbe Label ändern mit Werten aus CALVIEW
Beitrag von: amenomade am 18 März 2017, 23:17:58
Ich befürchte aber, dass es nicht reichen wird.

So weit ich weiss, vergleicht das Widget Label die Werte aus data-limits (wenn Wert >= Limit(n) dann color(n))

Im Beispiel, "Früh [Harry]" < "Früh [Hermine" < "Spät [Harry]" < "Spät [Hermine]".

Ist "Früh [Harry]" grösser als ".*Harry.*" ? Grösser als ".*Hermine.*" ?

Ich würde data-limits-part="2" (oder "1", ich weiss nicht, ob er ab 0 oder ab 1 zählt) nutzen, und genau vergleichen: data-limits='["\[Harry\]","\[Hermine\]"]'

(nicht getestet)
Gruß
Titel: Antw:Textfarbe Label ändern mit Werten aus CALVIEW
Beitrag von: setstate am 18 März 2017, 23:25:42
 data-limits wird inzwischen generisch ausgewertet. Wenn ein RegEx passt, wird dieser genommen. Nur bei Zahlenwerten kommt der numerische Größer/Gleich Vergleich zur Anwendung.
Titel: Antw:Textfarbe Label ändern mit Werten aus CALVIEW
Beitrag von: ArduPino am 19 März 2017, 00:27:16
Zitat von: setstate am 18 März 2017, 22:46:34
data-limits='[".*Harry.*",".*Hermine.*"]'

Ok, das war genau die Kombination die ich anscheinend noch nicht hatte !
Danke ! So komme ich weiter.
Titel: Antw:Textfarbe Label ändern mit Werten aus CALVIEW
Beitrag von: blane am 18 Juli 2018, 22:45:37
Hallo zusammen,

stehe vor einem ähnlichem Problem.
Habe folgendes versucht, doch bei mir klappt es nicht

data-colors='["blue","green"]'
data-limits='[".*Bday.*",".*Sonstiges.*"]'


Im Anhang eine Zeile der Callview.

Jemand eine Idee wie ich das hinbekomme?

Grüße