Überblick-Karte (Glance) - Iconfarbe anhand der Entitätenwerte wechseln?

calima

Member
Hallo zusammen,

ich nutze die Tankerkönig-Integration, um mir die Kraftstoffpreise der Umgebung anzeigen zu lassen und würde mir gern den jeweils günstigsten Preis durch eine andere Icon-Farbe (z.B. Grün) markieren. Card-mod 3 ist installiert. Ich kann also CSS Styles nutzen. Der Code müsste die Werte der angezeigten Entitäten vergleichen und den dafür vorgesehenen CSS Style aufrufen.

Wie geht das?
Vielen Dank im Voraus!

1739347230007.png
 
Diesen Thread hatte ich gefunden. Er beschreibt, auf welche Weise das Icon je nach dem binärem Zustand des Sensors (on/off, 0 oder 1) eingefärbt werden kann. Was ich brauche, ist allerdings ein Vergleich der numerischen Werte von mehreren Sensoren, eine Berechnung, welcher Wert der günstigste ist und ein Aufruf des CSS styles für diesen Wert.

Aus dem verlinkten Thread kann ich es leider nicht ableiten, zumal meine Kenntnisse bei YAML und CSS enden.
 
Ich weiß nicht, ob das so Sinnvoll ist, was Du vorhast.
Stell Dir vor, die eine Tanke, die 2 Km von Dir weg ist, verkauft den Sprit für 1,759. Die andere Tanke, die 10 Km weg ist, für 1,749.
Letztere wird dann grün, als vermeintlich billigste angezeigt.
Tankst Du 50 Liter, hast Du 50 Cent gespart. Aber wieviel Sprit hast Du mehr verbraucht und wieviel Zeit zusätzlich aufgewendet ?
Ich habe mir die Tankstellen mit Preis in einer Karte zur Anzeige gebracht.
1739440447019.png
So sehe ich auch, welche am billigsten ist (die eh immer zu teuren Aral habe ich gleich mal raus gelassen) und wie weit weg die ist.
 
Was ich brauche, ist allerdings ein Vergleich der numerischen Werte von mehreren Sensoren, eine Berechnung, welcher Wert der günstigste ist und ein Aufruf des CSS styles für diesen Wert.
Wenn ich jetzt davon ausgehe, dass die Integration verschiedene Sensoren zur Verfügung stellt, dann könnte man den mit dem aktuell niedrigsten Wert z.B. über einen Helfer vom Typ Template identifizieren:
YAML:
{% set sensors = ['input_number.123', 'input_number.xyz'] %}
{% set min = namespace(value = 1000, name = '') %}
{% for sensor in sensors %}
  {% if states(sensor) | float < min.value %}
     {% set min.value = states(sensor) | float %}
     {% set min.name = sensor %}
  {% endif %}
{% endfor %}
{{ min.name }}
Die Sensornamen in der ersten Zeile müssten natürlich entsprechend angepasst werden, dann gibt der Helfer immer den Namen des Sensors mit dem niedrigsten Wert aus.

Zumindest in einer einzelnen Karte ließe sich das dann so umsetzen:
YAML:
graph: none
type: sensor
entity: input_number.xyz
detail: 1
icon: mdi:bathtub
card_mod:
  style: >
    ha-state-icon {color: {{ 'green' if is_state('sensor.lowest_number', 'input_number.xyz') else 'grey' }} }
Grün, wenn der Wert des Helfers (bei mir lowest_number genannt) der verwendeten Entität entspricht, grau, wenn nicht.

Da ich die Integration nicht nutze kann ich nicht sagen welche genauen Angaben dort erforderlich wären, aber vielleicht hilft der Ansatz ja schonmal weiter.
 
Prima, Danke Euch beiden! Ich probier das aus. Die Übersichtskarte (so genannt im Home Assistant) ist ja eine Karte mit den numerischen Werte mehrerer Sensoren wie in meinem ersten Post. Sie verzeichnet nur eine Auswahl von Tankstellen, die auf dem Weg liegen. Jede stellt einen eigenen Sensor zur Verfügung.

Automatisch werden die auch auf der Map-Karte, also der geografischen Karte, platziert, wie im Beispiel von @RudiP. Wichtiger für mich ist aber die Sensoren-Übersicht (Glance), denn die Positionen der Tankstellen kenne ich, und wenn ich unterwegs bin, benötige ich einen schnellen Überblick, da es vorkommt, dass die Preise umspringen, während ich unterwegs bin. So kann ich entscheiden, ob ich an Tanke 1 oder 2 oder 3 auf meinem Weg Stopp mache.
 
Überblick meinst Du? Dann funktioniert es z.B. so:
YAML:
show_name: true
show_icon: true
show_state: true
type: glance
entities:
  - entity: input_number.xyz
    card_mod:
      style: >
        state-badge {color: {{ 'green' if is_state('sensor.lowest_number', 'input_number.xyz') else 'grey' }} }
  - entity: input_number.123
    card_mod:
      style: >
        state-badge {color: {{ 'green' if is_state('sensor.lowest_number', 'input_number.123') else 'grey' }} }
 
Moin,
@Nival
Danke für das Template in #5.
Das Problem ist, wenn eine Tankstelle geschlossen hat, dann wird für den Wert des Sensors "Unbekannt" zurückgegeben.
1739512339579.png
Damit läuft das Tamplate auf Fehler.
 
Danke, nun haben alle offen....werde heute Abend noch einmal schauen.
Das Template hat das aber erst einmal fehlerfrei gefressen.
Ich weiß, ich kann die Sensoren setzen, aber inzwischen werde ich mich mit dem Färben befassen.
 
Frage: Kann ich den Status "Unbekannt", also wenn die Tanke geschlossen ist, auswerten, um das deddiziert farblich darzustellen.
Ja.

🙃

Eine Möglichkeit, direkt mit Farben:
YAML:
entities:
  - entity: input_number.xyz
    card_mod:
      style: >
        state-badge {color:
          {% if is_state('input_number.xyz', 'unknown') %}
            grey
          {% elif is_state('sensor.lowest_number', 'input_number.xyz') %}
            green
          {% else %}
            black
          {% endif %}
        }
- beachten, hier müssen die Farbwerte ohne Anführungszeichen geschrieben werden.

Andere Möglichkeit mit Transparenz:
YAML:
entities:
  - entity: input_number.xyz
    card_mod:
      style: >
        state-badge {color: {{ 'green' if is_state('sensor.lowest_number', 'input_number.xyz') else 'grey' }} }
        * {opacity: {{ '0.5' if is_state('input_number.xyz', 'unknown') else '1' }}}
- das lässt den kompletten Sensor bei "unknown" transparent erscheinen, mit den 0.5 müsstest evtl. ein wenig rumprobieren was zusagt.
 
Ich versuche das...
Mache natürlich was falsch, bewußt als Screen hier, damit die Zeilen sichtbar sind:
1739529220218.png
Speicherfehler:
1739529253718.png
 
@Fidibus Deinem Screenshot entnehme ich, dass Du die ganze Ansicht bearbeitest, also über "Raw-Konfigurationseditor" oben rechts? Aus meiner Sicht einfacher und dann auch immer zu meinen Einrückungen passend wäre es, wenn Du die einzelne Karte bearbeitest und dann unten links auf "Code-Editor anzeigen" klickst. Das beginnt dann ohne jede Einrückung und ist der Grund, weshalb ich sowas von genau dem Punkt aus kopiere :)
 
@Nival verstanden.
Frage: ich suche gerade die Logos der Tankstellen. Ich habe alles gefunden, allerdings werden nicht alle angezeigt und ich könnte mir vorstellen, dass es irgendwo ein Repo gibt, wo das liegt.
---
Erledigt, scheint ein Darstellungsthema zu sein, auf dem Handy sehe ich alle Logos.
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.307
Beiträge
60.904
Mitglieder
6.425
Neuestes Mitglied
Luckson
Zurück
Oben