Finde ich gut. Wenn man mit Jinja, HTML und Markown Sprache umgehen kann, finde ich eine Markdownkarte besser weil individuell gestaltbarer.
Damit hast Du ja auch Dein Ursprungsproblem gelöst:
Aus
{% for entity in expand('group.benzinpreise') | sort(attribute='state') | map(attribute='entity_id') | map('string') | list %}
wurde
{% for entity in (expand('sensor.benzinpreise') | sort(attribute='state'))[0:6] | map(attribute='entity_id') | map('string') | list %}
Ich hätte getippt, daß ersteres auch funktioniert weil ein sort auch ohne Klammern geht und das nur die ersten 6 genommen werden ist nur effizienteres Beiwerk.
Hallo und danke für die Idee!
Damit die if Abfrage nicht für jeden Tankstellen Brand erweitert werden muss habe ich das ganze mal etwas angepasst. Im regex_search können weitere Brands für die ein Logo vorliegt erweitert werden. Im Beispiel sind “star”, “avia” und “shell”. Der Dateiname ist dann z.B. “star.png” oder “avia.png”.
Außerdem habe ich aus “Die Tankstelle ist geschlossen” ein “Preis: -” gemacht ist dann etwas einheitlicher aber funktioniert auch ohne die Anpassung
Code:
type: markdown
content: >-
# Super E5:
{% for entity in (expand('sensor.fuel_super') | sort(attribute='state'))[0:6] | map(attribute='entity_id') | map('string') | list %}
{% set brand = state_attr(entity, "brand") | slugify("_") | lower %}
{% if brand | regex_search("^star|avia|shell|bavaria_petrol$") %}

{% endif %}
{{state_attr(entity, "friendly_name")}}
{% set superpreis = states(entity) %}
{% if superpreis != 'unknown' %}
## Preis: {{ '%.3f' | format(superpreis | float) }} €
{% else %}
## Preis: -
{% endif %}
*** {% endfor%}
Bis auf eine Tankstelle klappt es ganz gut. Schwierigkeiten gibt es bei Brand ‘Bavaria Petrol’ - hier wird das Icon nicht gefunden. Gibt es dafür eine Lösung?
Nun habe ich in der Beschreibung zur Markdown Karte gelesen, dass man durch ‚* List‘ oder ‚- List‘ bzw. ‚· List‘ eine fortlaufende Nummerierung einbauen kann.
Hast du eine Idee, wie das zu realisieren ist?
Ich hab den markdown code angepasst. Ein Leerzeichen wird nun durch einen underscore “_” ersetzt. Somit sollte aus “Bavaria Petrol” nun “bavaria_petrol.png” werden. Das kam bei meinen Tankstellen nicht vor.
Im Filter müsste dann auch “bavaria_petrol” ergänzt werden.
Somit sollte der Name dort angezeigt werden. (also zB. bavaria_petrol) womit man dann auf den Namen für das icon schließen kann. Die Zeile kann nach dem debuggen dann wieder entfernt werden.
Hab den Code oben angepasst nun werden alle Sonderzeichen entfernt und Leerzeichen durch Underscore ersetzt. Nun sollten alle Tankstellen einfach integrierbar sein!
Bzgl. der fortlaufenden Nummerierung. Die Optionen in Markdown sind für Listen gedachte. Also einfach:
a
b
c
oder
a
b
c
Habe es kurz mal ausprobiert mit dem folgenden bekommst du die aktuelle Iteration. Damit könnte man vor der Tankstelle die Nummer in der Liste anzeigen. War das die Frage oder habe ich das falsch verstanden?