Abfallkalender mit bestimmter Symbolfarbe bei mehreren Abholungen am selben Tag?

Begonnen von NoMercy, 26 Mai 2019, 08:37:03

Vorheriges Thema - Nächstes Thema

NoMercy

Hallo Zusammen,

ich nutze derzeit mit TabletUI den Abfallkalender (was auch super funktioniert). Jetzt möchte ich für eine Statusseite eine einzelne Tonne darstellen, die mir die nächste Abholung (und davon abhängig, was abgeholt wird) ein entsprechend eingefärbtes Symbol anzeigen. Das funktioniert auch, solange an einem Tag nur eine Abholung stattfindet.

Was ich erreichen möchte ist, das wenn mehrere Abholungen am selben Tag anstehen, die Tonne eine besondere Farbe, z.B. rot, bekommt. Allerdings bekomme ich das irgendwie nicht hin.

Das data-device heißt "myAbfall". Das data-get, welches ich auswerte, heißt "ftui_next". Und so sehen z.B. die Inhalte aus:

  • bei einer Tonne: Abfallkalender_Biomuell_1
  • bei mehreren Tonnen pro Tag: Abfallkalender_Biomuell|Abfallkalender_Restmuell_1
So sieht mein device im Moment aus (ohne die "rote" Tonne):

<!-- Das Symbol -->
<div data-type="symbol"
     data-device="myAbfall"
     data-get="ftui_next"
     data-get-warn=".*([0|1|2]).*"
     data-get-on='["Abfallkalender_Restmuell_.*","Abfallkalender_Biomuell_.*","Abfallkalender_GelberSack_.*","Abfallkalender_Papier_.*","Abfallkalender_Sperrmuell_.*","Abfallkalender_Sondermuell_.*"]'
     data-on-color='["black","#663300","yellow","#3300FF","#663300","yellow"]'                             
     data-icons='["fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-biohazard"]'
     class="large warn top-space">
</div>
<!-- Beschreibung der Abholung -->
<div data-type="label"
     data-device="myAbfall"
     data-get="ftui_text"
     class="small top-narrow">
</div>
<!-- Datum der Abholung -->
<div data-type="label"
     data-device="myAbfall"
     data-get="ftui_datum"
     class="small top-space">
</div>


Meine Idee war jetzt, daß ich im data-get-on/data-on-colors bei einem Wert, der das "|"-Zeichen enthält, eine bestimmte Farbe für das Tonnen-Symbol setze.

Kann mir ggf. jemand sagen, wie das geht?

Danke und Gruß,
Michael

OdfFhem

Hallo,

Du bräuchtest vermutlich noch einen Eintrag ".*|.*". Im folgenden Beispiel habe ich zusätzlich die Einträge um den Ausdruck "Abfallkalender" gekürzt, da dies besser zu lesen ist und vermutlich auch nicht benötigt wird.

  data-get-on='[".*|.*",".*_Restmuell_.*",".*_Biomuell_.*",".*_GelberSack_.*",".*_Papier_.*",".*_Sperrmuell_.*",".*_Sondermuell_.*"]'
  data-on-color='["red","black","#663300","yellow","#3300FF","#663300","yellow"]'                             
  data-icons='["fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-biohazard"]'


Viele Grüße

NoMercy

Hi,

danke für die schnelle Antwort. Das hatte ich probiert, aber funzt nicht.

Kann es sein, daß es hier Probleme gibt, weil das "|" ja auch das logische Oder in Regexp ist?

Gruß

OdfFhem

Hallo,

stimmt; ich habe es gerade mal selbst in anderem Zusammenhang ausprobiert und "\|" statt "|" sollte es lösen.

  data-get-on='[".*\|.*",".*_Restmuell_.*",".*_Biomuell_.*",".*_GelberSack_.*",".*_Papier_.*",".*_Sperrmuell_.*",".*_Sondermuell_.*"]'
  data-on-color='["red","black","#663300","yellow","#3300FF","#663300","yellow"]'                             
  data-icons='["fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-biohazard"]'

NoMercy


OdfFhem

Hallo,

der von mir getestete andere Zusammenhang erforderte nur ein einzelnes Maskierungszeichen; in Deinem Fall sind aber wohl 2 Maskierungszeichen notwendig ...

  data-get-on='[".*\\|.*",".*_Restmuell_.*",".*_Biomuell_.*",".*_GelberSack_.*",".*_Papier_.*",".*_Sperrmuell_.*",".*_Sondermuell_.*"]'
  data-on-color='["red","black","#663300","yellow","#3300FF","#663300","yellow"]'                             
  data-icons='["fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-trash-o","fa-biohazard"]'


OdfFhem

Hallo,

nachdem die Sonntagsaktivitäten erledigt sind, habe ich nochmals Zeit gefunden, einen eigenen Test mit dem Symbol-Widget zu machen. Folgende Definition liefert bei mir das (vermutlich) gewünschte Ergebnis.


<div data-type="symbol" data-device="Testdevice"
  data-get="testreading"
  data-states='[".*\\|.*","Abfall1","Abfall2",".*"]'
  data-colors='["red","green","blue","orange"]'
  data-icons='["fa-trash-o","fa-trash-o","fa-trash-o","fa-question"]'></div>



  • Abfall1 liefert green
  • Abfall2 liefert blue
  • Abfall3 liefert orange
  • Abfall1|Abfall2 liefert red

Wenn ich data-get-on statt data-states verwende, ändert sich nichts am obigen Verhalten. data-on-color habe ich nicht probiert. Verwendest Du data-get-on, weil Du in diesem konkreten Anwendungsfall tatsächlich on- und off-Zustände hast? Ansonsten würde ich auf jeden Fall dazu raten, besser data-states sowie die dazugehörigen Attribute zu nutzen (s.a. Einstellung bei mehreren Werten unter https://wiki.fhem.de/wiki/FTUI_Widget_Symbol).

NoMercy

Hi,

nachdem ich meine Sonntagsaktivitäten abgeschlossen habe, konnte ich das Ganze nochmal ausprobieren  ;)

Großartig!!! Es funktioniert jetzt perfekt!!! 1000 Dank

Gruß,
Michael