LaMetric Time: wie dynamsiche Icons darstellen

Hallo zusammen,

ich lasse mir mit einer HA Automation einige Entitäten auf der LaMetric Time anzeigen. Jetzt hätte ich gerne je nach Wert der Entität verschiedene Icons dargestellt.

Hiermit lasse ich mir z.B. den SOC vom Batteriespeicher anzeigen:

{
  "text": "{{ states('sensor.sn_battery_soc_total') | round(0) }}%",
  "icon": "6357",
  "duration": "3000"
}

Wie legt man hier unter Icon eine if Anweisung fest, die z.B. die Icons wie folgt anzeigt:

0-24% - Icon6354
25- 49% - Icon6355
50-74% - Icon 6357
75-100% - Icon 6358

Danke schonmal für einen Tip in die richtige Richtung.

Versuch mal folgendes:

{
  "text": "{{ states('sensor.sn_battery_soc_total') | round(0) }}%",
  "icon": "{% set soc = states('sensor.sn_battery_soc_total') | round(0) %}{% if soc <= 24 %}6354{% elif soc <= 49 %}6355{% elif soc <= 74 %}6357{% else %}6358{% endif %}",
  "duration": "3000"
}

Erklärung des Codes:

  1. {% set soc = states('sensor.sn_battery_soc_total') | round(0) %}: Zunächst wird der Wert des Sensors sensor.sn_battery_soc_total abgerufen und auf die nächste ganze Zahl gerundet. Dieser wird in der Variablen soc gespeichert.
  2. if-Anweisung: Basierend auf dem Wert von soc wird ein anderes Icon ausgewählt:
  • <= 24: Icon 6354
  • <= 49: Icon 6355
  • <= 74: Icon 6357
  • Alles darüber: Icon 6358
  1. text und icon: Der text zeigt weiterhin den aktuellen SOC in Prozent an, während die icon-ID dynamisch basierend auf den definierten Bedingungen gesetzt wird.
1 „Gefällt mir“

Danke callidus2000, es funktioniert! Auch für die Erläuterungen.
Das ganze kann ich mir für andere Entitäten weiter anpassen.

1 „Gefällt mir“

Wie kann ich denn den aktuellen Tag des Monats ermitteln und je nach Tag ein anderes Symbol darstellen? Die ‚Time & Date‘ Integration habe ich installiert.

Die Abfrage müsste dann ja vermutlich mit now().day gebaut werden und im Anschluss mit der o.g. if/elseif Abfrage verglichen werden :interrobang:

Habe es so gelöst:

"icon": "{% set day = now().day %}{% if day == 1 %}11543{% elif day == 2 %}11544{% elif day == 3 %}11545{% elif day == 4 %}11546{% elif day == 5 %}11547{% elif day == 6 %}11548{% elif day == 7 %}11549{% elif day == 8 %}11572{% elif day == 9 %}11550{% elif day == 10 %}11551{% elif day == 11 %}11552{% elif day == 12 %}11553{% elif day == 13 %}11554{% elif day == 14 %}11555{% elif day == 15 %}11556{% elif day == 16 %}11557{% elif day == 17 %}11558{% elif day == 18 %}11542{% elif day == 19 %}11559{% elif day == 20 %}11560{% elif day == 21 %}11561{% elif day == 22 %}11562{% elif day == 23 %}11563{% elif day == 24 %}11564{% elif day == 25 %}11565{% elif day == 26 %}11566{% elif day == 27 %}11567{% elif day == 28 %}11568{% elif day == 29 %}11569{% elif day == 30 %}11570{% elif day == 31 %}11571{% endif %}",

Scheint zu funktionieren. :wink: