Farbige Icons je nach Sensor-Wert in Home Assistant

Wenn man sich im Dashboard von Home Assistant Werte anzeigen lรคsst, scheinen einen diese zu interessieren. Wรคre es dann nicht toll, wenn man die Werte in Abhรคngigkeit von ihrem Zustand farbig anders gestalten kรถnnen, so dass man bereits anhand der Farbe eines Wertes erkennt, wie der Zustand grob ist (also beispielsweise gut oder schlecht)? Ich habe eine HACS- Frontenderweiterung gefunden, die einem genau solche Dinge erlaubt!

Die Frontend-Erweiterung „card-mod“ erlaubt es einem รผber CSS nahezu alle Lovelace-Komponenten anzupassen und fรผr dieses Anpassen kรถnnen eigene Logiken (wie Vergleiche von Werten) genutzt werden.

Alles, was man nun tun muss, ist in HACS die Frontend-Erweiterung hinzuzufรผgen. Der Auor der Erweiterung weist explizit darauf hin, dass es fรผr einige Funktionen nรถtig sein kann, manuell in der configuration.yaml folgenden Code zu ergรคnzen:

frontend:
  extra_module_url:
    - /local/card-mod.js

Hierdurch wird das benรถtigte JavaScript zusรคtzlich eingebunden. Beachte dabei aber, dass der Pfad natรผrlich korrekt sein muss, was je nach individuellen Einstellungen abweichend vom Beispiel sein kann. Bei mir lautet der Pfad (aufgrund meiner Einstellungen) beispielsweise: /local/community/lovelace-card-mod/card-mod.js

Sobald du รผber HACS installiert und in der configuration.yaml den genannten Code ergรคnzt hast, solltest du die YAML-Dateien manuell neu laden und in deinem Browser einen „Hard-Refresh“ machen (bei Chrome ist die Tastenkombination hierfรผr STRG + SHIFT + R). Anderenfalls kann es sein, dass der Browser noch mit „altem“ Code arbeitet und deine Anpassungen nicht funktionieren! Ebenso kann natรผrlich ein Neustart von Home Assistant helfen!

Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:

Follow Home Assistant
( 424 Followers )
X

Follow Home Assistant

E-mail : *
* Ich stimme der Datenschutzerklรคrung zu!

Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!

Im GitHub-Repository zu der Erweiterung sind zahlreiche Beispiele gegeben, die die Funktionsweise erklรคren.

Ich zeige im folgenden an einer echten Anpassungen an meinem Dashboard, wie ich die Erweiterung bislang nutze:

Da die PV-Anlage endlich auf dem Dach ist, mรถchte ich natรผrlich einfach sehen kรถnnen, wie es um die aktuell produzierte Strommenge steht. Im Energie-Dashboard kann ich ja die Tageswerte sehen, ich wรผrde aber gerne zwischendurch einfach sehen kรถnnen, wie viel Strom reinkommt.

Mein Wechselrichter bietet hierfรผr รผber die entsprechende Integration eine Entitรคt sensor.rct_power_storage_all_generators_power. Diese Entitรคt gibt die aktuell produzierte Strommenge wider!

Farbige Icons im Home Assistant Dashboard

Je nach produzierter Strommenge, mรถchte ich nun, dass das Icon eine andere Farbe hat. Liegt die produzierte Strommenge รผber der รผblichen Dauerlast, soll das Icon grรผn sein, ansonsten rot. Im Screenshot siehst du, dass das Icon bei einer produzierten Strommenge von knapp 61 W rot ist!

Der Code hierfรผr sieht nun wie folgt aus:

cards:
      - type: entities
        state_color: true
        entities:
        - entity: sensor.rct_power_storage_all_generators_power
          card_mod:
              style: |
                :host {
                  {% if ( states.sensor.rct_power_storage_all_generators_power.state | float < 350 ) %}
                  --card-mod-icon-color: red;
                  {% else %}
                  --card-mod-icon-color: green;
                  {% endif %}
                  }

Ich ergรคnze eine Lovelace-Card vom Typ Entities und fรผge hier, wie รผblich, die zuvor genannte Entitรคt hinzu. Darauf folgt dann das neue card_mod mit einer If-Else-Abfrage fรผr den Zustand der Entitรคt.

Liegt die Stromproduktion unter 350 W, soll die Farbe des Icons rot sein. Liegt sie drรผber, soll es grรผn sein.

Wie du siehst, spreche ich mit –card-mod-icon-color einen konkreten Zustand an. Die Liste der verรคnderbaren Zustรคnde ist gigantisch und vermutlich hilft dir ein Blick in die zahlreichen Beispiele, was alles mรถglich ist!

Erneut keine Raketenwissenschaft – aber in meinen Augen wieder eine nette und einfache Funktionserweiterung des Smarthomes mit Home Assistant! ๐Ÿ˜‰

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

4 Gedanken zu „Farbige Icons je nach Sensor-Wert in Home Assistant“

  1. Hallo Olli,
    ich habe eine Lรถsung gefunden.
    cards:
    – cards:
    – cards:
    – type: entity
    icon: mdi:alarm-light
    entity: sensor.solar_141_power
    name: GesamtErtrag
    state_color: orange
    show_header_toggle: orange
    card_mod:
    style: |
    ha-card {
    color: teal;
    }
    ha-card {
    {% if ( states.sensor.solar_141_power.state | float < 149 ) %}
    background: red;
    {% elif ( states.sensor.solar_141_power.state | float < 299 ) %}
    background: blue;
    {% elif ( states.sensor.solar_141_power.state | float < 399 ) %}
    background: yellow;
    {% elif ( states.sensor.solar_141_power.state | float < 499 ) %}
    background: pink;
    {% elif ( states.sensor.solar_141_power.state | float < 600 ) %}
    background: green;
    {% endif %}
    }
    – type: entity
    entity: sensor.ahoy_irradiation_1
    – type: entity
    entity: sensor.ahoy_irradiation_2
    type: custom:swipe-card
    type: horizontal-stack
    type: vertical-stack

    Damit nimmt der Background die Farbe an und durch das Einbinden der sensor.ahoy_irradiationen aktualisiert der Background entsprechend den eingestellten Werten.

    GruรŸ

    Hartmut

    Antworten
  2. Hallo Olli, danke fรผr diese Lรถsung.
    Ich habe dein Beispiel aufgenommen, um meine Solarproduktion ebenfalls farbig darstellen zu lassen. Bei mir habe ich aber 4 Stufen eingebaut. Das Problem ist nun, das die Anzeigen nicht aktualisieren, das heiรŸt beim unterschreiten der Marken wird nur nach einem erneuten Aufruf des „Dashboardes“ oder des Scriptes die neue Farbe korrekt angezeigt. Hast Du dafรผr vielleicht eine Lรถsung?

    GruรŸ

    Hartmut

    Antworten
      • Danke fรผr die Antwort.
        Als schnelle Lรถsung hab ich ein Chrome AdOn – „Automatische Seitenaktualisierung“
        installiert. Dadurch wird je nach Eiinstellung des Zeitfaktors die Seite aktualisiert. รœber den Umweg klappt es erstmal.

        Antworten

Schreibe einen Kommentar