[gelöst] Geburtstagsliste mit mit List-Template

Begonnen von LuGu, 10 April 2022, 17:26:45

Vorheriges Thema - Nächstes Thema

LuGu

Hallo zusammen,
ich wollte mit dem neuen mit List-Template eine Geburtstagsliste basierend auf einem Calview Device erstellen. Klappt auch soweit aber..
Die Icons aus dem Iconset werden nicht so angezeigt, wie geplant.
Ab 4 Tage daysleft soll das ichon cake-variant-outline angezeigt werden. Ab 2 Tage dasy left soll dann auf das icon cake-variant gewechselt werden.
Es wird aber nicht der komplette Wert des readings t_00x_daysleft ausgewertet sondern es reicht auch nur ein Teil.
Bei 15 Tagen daysleft wird z.B. die "1" gefunden und dann das icon cake-variant angezeit (siehe Anhang).

Was mache ich falsch?
Wer hat einen Tip?

Geburtstagsliste

{
"template": "list",
"room": "Termine",
"name": "Geburtstage",
"setup": {
"expanded": true,
"iconSet": [
{ "val": "4", "icon": "mdi-cake-variant-outline" },
{ "val": "3", "icon": "mdi-cake-variant-outline" },
{ "val": "2", "icon": "mdi-cake-variant" },
{ "val": "1", "icon": "mdi-cake-variant" }
],
"listItems": [
{
"class1": "col-2 text-center",
"icon1": ["t_001_daysleft::%n"],
"class2": "col-2 text-center",
"text2": ["t_001_daysleft::in::text"],
"text21": ["t_001_daysleft::%n:font-weight-bold"],
"class3": "text-left",
"text3": ["t_001_summary::%s:font-weight-bold"],
"text31": ["t_001_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_001_age::Alter:text"],
"text51": ["t_001_age::%n:text"],
"divider": true
},
{
"class1": "col-2 text-center",
"icon1": ["t_002_daysleft::%n"],
"class2": "col-2 text-center",
"text2": ["t_002_daysleft::in::text"],
"text21": ["t_002_daysleft::%n:font-weight-bold"],
"class3": "text-left",
"text3": ["t_002_summary::%s:font-weight-bold"],
"text31": ["t_002_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_002_age::Alter:text"],
"text51": ["t_002_age::%n:text"],
"divider": true
},
{
"class1": "col-2 text-center",
"icon1": ["t_003_daysleft::%n"],
"class2": "col-2 text-center",
"text2": ["t_003_daysleft::in::text"],
"text21": ["t_003_daysleft::%n:font-weight-bold"],
"class3": "text-left",
"text3": ["t_003_summary::%s:font-weight-bold"],
"text31": ["t_003_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_003_age::Alter:text"],
"text51": ["t_003_age::%n:text"],
"divider": true
},
{
"class1": "col-2 text-center",
"icon1": ["t_004_daysleft::%n"],
"class2": "col-2 text-center",
"text2": ["t_004_daysleft::in::text"],
"text21": ["t_004_daysleft::%n:font-weight-bold"],
"class3": "text-left",
"text3": ["t_004_summary::%s:font-weight-bold"],
"text31": ["t_004_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_004_age::Alter:text"],
"text51": ["t_004_age::%n:text"],
"divider": true
},
{
"class1": "col-2 text-center",
"icon1": ["t_005_daysleft::%n"],
"class2": "col-2 text-center",
"text2": ["t_005_daysleft::in::text"],
"text21": ["t_005_daysleft::%n:font-weight-bold"],
"class3": "text-left",
"text3": ["t_005_summary::%s:font-weight-bold"],
"text31": ["t_005_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_005_age::Alter:text"],
"text51": ["t_005_age::%n:text"],
"divider": true
},
{
"class1": "col-2 text-center",
"icon1": ["t_006_daysleft::%n"],
"class2": "col-2 text-center",
"text2": ["t_006_daysleft::in::text"],
"text21": ["t_006_daysleft::%n:font-weight-bold"],
"class3": "text-left",
"text3": ["t_006_summary::%s:font-weight-bold"],
"text31": ["t_006_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_006_age::Alter:text"],
"text51": ["t_006_age::%n:text"],
"divider": true
}
],
"info": {

}
}
}
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

draddy

moin,

steht in dem reading echt nur 1 2 3 4 .... 365?

hatte ähnliche Probleme bei der Anrufliste


"iconSet": [
{ "val": "<=", "icon": "mdi-phone-outgoing" },
{ "val": "=> X", "icon": "mdi-phone-missed" },
{ "val": "=> O_O", "icon": "mdi-phone-message" },
{ "val": "=>", "icon": "mdi-phone-incoming" }


anfangs war die zeile { "val": "=>", "icon": "mdi-phone-incoming" } die 2. zeile - hatte zur folge, dass missed und message nicht ausgewertet wurden, darum habe ich diese ans ende gesetzt ....

in deinem fall - vielleicht dummys mit 90 80 70 ....20 10 "vorschalten" die alle werte über 10 abfangen? 4 ist nunmal nicht 40, aber 40 könnte mit 4 ausgewertet werden (hoffe du verstehst was ich meine ^^)

OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

#2
vll wäre auch das ein ansatz
https://forum.fhem.de/index.php?topic=102230.0

wenn du führende nullen setzen lässt ...
userreading (ungetestet)

t_00x_daysleft:* {sprintf("%02d",ReadingsNum($name,"t_00x_daysleft",0))}


dann könntest du auf 01 02 03 04 ... abgleichen, damit sollte 10 20 30 ... raus sein halt
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

LuGu

@draddy

Danke für die schnelle Antwort. Dann werde ich wohl die Variante mit den Dummy umsetzen.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

jemu75

Warum schreibst du in val nicht den kompletten Wert, den das reading liefert? Dann sollte die Zuordnung des jeweiligen Icons korrekt funktionieren.

LuGu

Zitat von: jemu75 am 10 April 2022, 20:49:38
Warum schreibst du in val nicht den kompletten Wert, den das reading liefert? Dann sollte die Zuordnung des jeweiligen Icons korrekt funktionieren.

Das reading enthält die Anzahl der verbleibenden Tage bis zum Geburtstag. Wenn es ein val mit ,,1" gibt und das reading ,,15" ist, wird leider val ,,1" aktiv.
Es wird also nicht das komplette reading verglichen, sondern ein Teil des readings reicht auch.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

draddy

@jemu
wenn das val wirklich nur 1 2 3 ... zurück gibt, kann das durch aus sein, wiegesagt, habe ähnliches bei meiner Anrufliste festgestellt, darum die idee mit userreading auf 01 02 03 ...

bei der Anrufliste hat es halt gereicht die Reihenfolge zu ändern.

lg
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Ich würde das lieber sauber in FHEMapp lösen, bevor wir für sowas noch ein userreading schaffen.

LuGu

Zitat von: draddy am 10 April 2022, 18:37:31
in deinem fall - vielleicht dummys mit 90 80 70 ....20 10 "vorschalten" die alle werte über 10 abfangen? 4 ist nunmal nicht 40, aber 40 könnte mit 4 ausgewertet werden (hoffe du verstehst was ich meine ^^)

Das mit den Dummy funktioniert nicht, bzw. wäre sehr aufwendig.
Dummys mit 90 80 70 ....20 10 reicht nicht. Es müssten schon dummys mit 99 98 97 ... 12 11 10 sein, und das kann nicht wirklich die Lösung sein.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

draddy

ok
dann kannst nochmal das mit der vorgestellten 0 versuchen, oder eben auf jemu warten, das er nen Bugfix liefert. (Jens ist ja immer schnell mit sowas ;))
eventuell ist es wirklich ne Kleinigkeit, warum vue da nicht voll auswertet sondern auf 1st match geht.
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Ich habe mir das nochmal angesehen. Der Abgleich zwischen val und dem Wert des definierten readings erfolgt über regexp und kann somit auch das geschilderte Problem lösen.
Probiere bitte mal für die explizite Prüfung des Wertes "1" in val 1$ statt 1 (siehe auch https://regex101.com/)
Ein userreading sollte damit nicht erforderlich sein.

LuGu

@jemu75

Fast richtig!  ;)
Wenn man Start of String "^" zu dem End of Strin "$" auch noch dazu nimmt, dann geht es. Mit nur 1$ ist für ihn 21, 31 usw. ja auch richtig.
Mit ^1$ klappt es!  :)

Wieder was gelernt!

Nachdem das geklärt ist, habe ich gleich die nächste Frage.
Kann man im List Template auch eine status bar definieren?
Ich würde die gerne färben, wenn nur noch 1 Tag bis zum nächsten Geburtstag ist, oder wenn die Anzahl der Anrufe in Abwesenheit in der Anrufliste >0 ist oder.. oder..

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

draddy

sollte gehen


"status":  { "bar": ["count-missed-calls:1:100:red"] },


hab nur 2 aufm AB - wenn ich aber das Att
answMachine-is-missed-call auf 1 setze, habe ich 2 missed, und meine statusbar ist rot - setze ich das att auf 0 - ist die bar leer  :)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

LuGu

@draddy
Prima, danke für den Tip.
Ich hatte in der Beschreibung im git nichts zu status bar im Template List gefunden, aber einfach auspribieren ist auch ne gute Idee.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

LuGu

Danke für eure Tips.
Für mich ist das Thema abgeschlossen. Vielleich kann es jemand nutzen oder als Vorlage für eine andere Liste gebrauchen.

Ich habe der Geburtstagsliste noch eine status bar hinzugefügt.
Ab 10 Tage bis zum nächsten Termin "wächst" die status bar in color succsess.
Ab 3 Tage bis zum nächsten Termin "wächst" die status bar weiter in color warning.
Ab 1 Tag bis zum nächsten Termin "wächst" die status bar weiter in color error.

Geburtstagsliste mit einem CALVIEW device

{
"template": "list",
"room": "Termine",
"name": "Geburtstage",
"setup": {
"expanded": true,
"status":  { "bar": ["t_001_daysleft:4:%n:success:invert","t_001_daysleft:3:%n:warning:invert","t_001_daysleft::%n:error:invert"],
"min": 0,
    "max": 10
},
"listItems": [
{
"class1": "col-4 text-center",
"text1": ["t_001_daysleftLong::%s:text"],
"class3": "text-left",
"text3": ["t_001_summary::%s:font-weight-bold"],
"text31": ["t_001_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_001_age::Alter:text"],
"text51": ["t_001_age::%n:text"],
"divider": true
},
{
"class1": "col-4 text-center",
"text1": ["t_002_daysleftLong::%s:text"],
"class3": "text-left",
"text3": ["t_002_summary::%s:font-weight-bold"],
"text31": ["t_002_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_002_age::Alter:text"],
"text51": ["t_002_age::%n:text"],
"divider": true
},
{
"class1": "col-4 text-center",
"text1": ["t_003_daysleftLong::%s:text"],
"class3": "text-left",
"text3": ["t_003_summary::%s:font-weight-bold"],
"text31": ["t_003_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_003_age::Alter:text"],
"text51": ["t_003_age::%n:text"],
"divider": true
},
{
"class1": "col-4 text-center",
"text1": ["t_004_daysleftLong::%s:text"],
"class3": "text-left",
"text3": ["t_004_summary::%s:font-weight-bold"],
"text31": ["t_004_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_004_age::Alter:text"],
"text51": ["t_004_age::%n:text"],
"divider": true
},
{
"class1": "col-4 text-center",
"text1": ["t_005_daysleftLong::%s:text"],
"class3": "text-left",
"text3": ["t_005_summary::%s:font-weight-bold"],
"text31": ["t_005_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_005_age::Alter:text"],
"text51": ["t_005_age::%n:text"],
"divider": true
},
{
"class1": "col-4 text-center",
"text1": ["t_006_daysleftLong::%s:text"],
"class3": "text-left",
"text3": ["t_006_summary::%s:font-weight-bold"],
"text31": ["t_006_bdate::%s:text"],
"class5": "col-3 text-right",
"text5": ["t_006_age::Alter:text"],
"text51": ["t_006_age::%n:text"],
"divider": true
}
],
"info": {

}
}
}


Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt