Autor Thema: Textfarbe Label ändern mit Werten aus CALVIEW  (Gelesen 669 mal)

Offline ArduPino

  • Full Member
  • ***
  • Beiträge: 287
Textfarbe Label ändern mit Werten aus CALVIEW
« 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/ 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 ?
FHEM auf Raspberry Pi3 / nanoCUL433 mit a-CulFW
Pollin Funksteckdosen, Außentemperatursensor
Shelly 1
Digispark (Attiny85) Eigenbau Temp/Hum/Alarm Sensoren
DashButtons, günstige Bewegungsmelder

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3843
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Textfarbe Label ändern mit Werten aus CALVIEW
« Antwort #1 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.*"]'

Online amenomade

  • Hero Member
  • *****
  • Beiträge: 2717
Antw:Textfarbe Label ändern mit Werten aus CALVIEW
« Antwort #2 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ß
FHEM 5.8 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten

F:"Schatz? Mach aus bitte"
M: "Alexa? Licht aus"-"Ich bin mir leider nicht sicher"  M:"Alexa? aus Licht"-"Das weiss ich leider nicht" M:"Alexa? Schalte...
F: "Drück mal auf den blöden Knopf!

Offline setstate

  • Hero Member
  • *****
  • Beiträge: 3843
  • FHEM TabletUI
    • FHEM Tablet UI
Antw:Textfarbe Label ändern mit Werten aus CALVIEW
« Antwort #3 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.

Offline ArduPino

  • Full Member
  • ***
  • Beiträge: 287
Antw:Textfarbe Label ändern mit Werten aus CALVIEW
« Antwort #4 am: 19 März 2017, 00:27:16 »
data-limits='[".*Harry.*",".*Hermine.*"]'

Ok, das war genau die Kombination die ich anscheinend noch nicht hatte !
Danke ! So komme ich weiter.
FHEM auf Raspberry Pi3 / nanoCUL433 mit a-CulFW
Pollin Funksteckdosen, Außentemperatursensor
Shelly 1
Digispark (Attiny85) Eigenbau Temp/Hum/Alarm Sensoren
DashButtons, günstige Bewegungsmelder

Offline blane

  • Jr. Member
  • **
  • Beiträge: 50
Antw:Textfarbe Label ändern mit Werten aus CALVIEW
« Antwort #5 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