Tankerkönig - Probleme mit Markdown Card

Hallo,

als Umsteiger von openhab 3 auf HA versuche ich zunächst einmal, meine bevorzugten Module zum Laufen zu bringen. Das gelingt mir bisher eigentlich auch ganz gut.
Aktuell habe ich allerdings das Problem, unter Tankerkönig eine Liste nach Preisen zu erstellen. Als Vorlage diente mir dieses 3 Jahre alte YT-Video:

https://www.youtube.com/watch?v=XrKz6mjWWFk&t=1s

Hier wird die Gruppe mit dem Namen “Benzinpreise” über die configurations.yaml als group.all erstellt. Ich verwende Home Assistant Core 2024.11.2 und erstelle die Gruppe über Helfer. Die Markdown Karte zum Anzeigen der bevorzugten Tankstellen funktioniert auch.
Das Video habe ich jetzt mehrfach mit meiner Konfiguration abgeglichen und hier im Forum nach Lösungen gesucht, eine Sortierung nach Preisen gelingt mir allerdings nicht. Kann es eventuell daran liegen, dass die Gruppen in den aktuellen Versionen anders erzeugt werden?

Vielleicht hat jemand damit schon Erfahrung gemacht und kann mir einen Tip geben.

type: markdown
content: >-
  # E5: {% for entity in  expand('group.benzinpreise') | sort(attribute='state')
  | map(attribute='entity_id') | map('string')  | list %}

  {% if 'Shell' in state_attr(entity, "friendly_name") %} 
    ![Image](/local/shell.png) 
  {% elif 'JET' in state_attr(entity, "friendly_name") %} 
    ![Image](/local/JET.png) 
  {% endif %}
    {{state_attr(entity, "friendly_name")}}

    ## {{states(entity) }} €
    ***
  {% endfor%}

Grüße

Warum nutzt du nicht die Tankerkoenig Integration
Da wählst die Tankstellen in der Nähe einfach aus.

Die habe ich bereits integriert. Mit der Markdown Karte sollen dann noch jeweils die günstigsten Tankstellen, sortiert in absteigender Reihenfolge angezeigt werden.

Ich würde kein Markdown nehmen, lieber battery-state-card

2 „Gefällt mir“

Erzeugt bei mir leider eine Fehlermeldung, oder mache ich den Fehler?

Ja. Es ist eine custom card und muss erst über HACS installiert werden.

1 „Gefällt mir“

Vielen Dank - leider bekomme ich mit dem Code nicht die gewünschte Sortierung angezeigt. Die Tanke mit dem niedrigsten Preis zuerst, danach in aufsteigender Reihenfolge. Mit “sort: by: state” und “desc: false” habe ich bereits ein wenig experimentiert, aber ohne Erfolg. Vielleicht hast du ja noch eine Idee?

Wie sieht denn jetzt dein Code aus und was wird angezeigt? Bei mir funktioniert es genau so

Der Code

type: custom:battery-state-card
secondary_info: "{last_changed}"
icon: mdi:fuel
colors:
  steps:
    - value: 1.7
      color: lightgreen
    - value: 1.8
      color: orange
    - value: 2
      color: red
filter:
  include:
    - name: entity_id
      value: sensor.*_super
sort:
  by: state
  desc: true
layout_options:
  grid_columns: full

Das Ergebnis

Foto_vom_2024-11-17_um_09-11-49

Von HA bin ich eigentlich sehr begeistert. Was mir jedoch aufgefallen ist, dass durch die häufigen Updates viele Anleitungen und auch Videos im Netz überholt sind.

So wird natürlich absteigend sortiert. desc: false ist besser.

1 „Gefällt mir“

Stand auch im ursprünglichen Post.

Ok, sry, habe ich übersehen. Dann hier ein letzter Vorschlag bezüglich der Battery-Card meinserseits. Hinter icon: mdi:fuel füge mal das ein.

    non_battery_entity: true
    value_override: "{state|float(0)|round(3)}"

Ich nutze die Karte auch um Shelly Temperaturen anzeigen zu lassen und dort geht die Sortierung in beide Richtungen.

Wozu soll das für sein?
Der Spritpreis ist doch schon 3 Stellen nach dem Komma.
Und battery entities werden doch durch den Filter schon ausgefiltert.

Probieren geht über studieren. Bei meinen Shellytemps ging es erst damit. Ich vermute nicht alle states kommen sauber.

Das Ergebnis stimmt doch, nur die Sortierung ist/war falsch, oder?

Das ich mit “sort by state” und “desc false” schon experimentiert habe, schrieb ich bereits oben. Das Ergebnis wird auch nicht besser, wenn ich “ascending” verwende. Und ja, so wie @maxe es beschrieben hat, ist die aktuelle Situation: das Ergebnis stimmt, nur die Sortierung nicht.
Als Umsteiger von openhab sind für mich noch einige Fragen offen. Eine davon wäre, ob beispielsweise noch Attribute hinzugefügt werden können. Vielleicht wäre dann über diesen Weg ein Lösung möglich.

Du müsstest einfach desc: false nehmen.

Kannst du mal posten, wie es mit desc: false angezeigt wird?

so,

sort:
  by: state
  desc: false

und anschließend einen Neustart, jetzt passt es.

Ich bedanke mich für die Unterstützung!

1 „Gefällt mir“

Ich habe noch ein wenig gebastelt und bin zu folgendem Ergebnis gekommen:

code

type: markdown
content: >-
  # Super E5:  

  {% for entity in (expand('sensor.benzinpreise') |
  sort(attribute='state'))[0:6] | map(attribute='entity_id') | map('string')  |
  list %} {% if 'TotalEnergies Castroper Str. 123' in state_attr(entity,
  'friendly_name') %}  ![Image](/local/img/total.png) {% elif 'ARAL
  Friedrich-Ebert-Str. 14' in state_attr(entity, 'friendly_name') %} 
  ![Image](/local/img/aral3.png)   {% elif 'ARAL Kaiserstr. 145' in
  state_attr(entity, 'friendly_name') %}  ![Image](/local/img/aral3.png)  {%
  elif 'Bavaria Bochumer Str. 1' in state_attr(entity, 'friendly_name') %} 
  ![Image](/local/img/bavaria.png)  {% elif 'ESSO Akkoallee 63' in
  state_attr(entity, 'friendly_name') %}  ![Image](/local/img/esso2.png)  {%
  elif 'ESSO Schützenstr. 38' in state_attr(entity, 'friendly_name') %} 
  ![Image](/local/img/esso2.png)  {% elif 'Freie Castroper Str. 298' in
  state_attr(entity, 'friendly_name') %}  ![Image](/local/img/freie.png)  {%
  elif 'JET Kurt-Schumacher-Allee 5' in state_attr(entity, 'friendly_name') %} 
  ![Image](/local/img/Jet5.png)  {% elif 'Markant Herner Str. 249' in
  state_attr(entity, 'friendly_name') %}  ![Image](/local/img/markant.png)  {%
  elif 'Markant Resser Weg 20' in state_attr(entity, 'friendly_name') %} 
  ![Image](/local/img/markant.png)  {% elif 'Shell Hertener Str. 100' in
  state_attr(entity, 'friendly_name') %}  ![Image](/local/img/shell.png)  {%
  elif 'Shell Blitzkuhlenstr. 97' in state_attr(entity, 'friendly_name') %} 
  ![Image](/local/img/shell.png) {% endif %}

    {{state_attr(entity, "friendly_name")}}
    {% set superpreis = states(entity) %}
    
      {% if superpreis != 'unknown' %}
    ## Preis: {{ '%.3f' | format(superpreis | float) }} €
  {% else %}
    ## Die Tankstelle ist geschlossen
  {% endif %}
   
    ***
  {% endfor%}

Wem die Icon zu groß sind, kann natürlich kleinere einfügen. Die Anzahl der angezeigten Tankstellen werden durch die in Klammern gesetzten Werte (0:6) bestimmt. Bei Bedarf kann die Anzeige natürlich erhöht, oder sogar eine zweite Karte (dann 5:xx) mit weiteren Tanken angelegt werden.

Feedback und eventuelle Verbesserungen erwünscht!

Grüße

1 „Gefällt mir“