Ich habe versucht bei meinem Dashboard eine card-mod Karte mit einem Sensor zu verbinden und möchte den Hintergrund der Card abhängig vom Wert farblich verändern, aber ich bekomme die farbliche Änderung des Hintergrundes einfach nicht hin.
Iconsänderung, Textfarbe ändern alles funktioniert aber der Hintergrund kann nur in einer Farbe dargestellt werden und ändert sich nicht auf Grund des Dateninhaltes.
Ich möchte mir die Feuchtigkeit im Keller anzeigen lassen und dabei die Farbe der Dashboardcard wie folgt einrichten:
bis 60% - grün
von 61 bis 75 % - gelb
ab 76 % rot
Folgende Bedingung habe ich eingefügt. - Funktioniert als Templatetest in Homeassistant.
green
{% elif (int(states('sensor.feuchtigkeit_keller'))) | int >60 and (int(states('sensor.feuchtigkeit_keller'))) | int <=75 %}
yellow
{% elif (int(states('sensor.feuchtigkeit_keller'))) | int >75 %}
red
{% endif %}
so schaut der Yaml Code in meiner Dashboard Card aus:
entity: sensor.feuchtigkeit_keller
card_mod:
style: |
:host {
{% if (int(states('sensor.feuchtigkeit_keller'))) | <=60 %}
background: green;
{% elif (int(states('sensor.feuchtigkeit_keller'))) | int >60 and (int(states('sensor.feuchtigkeit_keller'))) | int <=75 %}
background: yellow;
{% elif (int(states('sensor.feuchtigkeit_keller'))) | int >75 %}
background: red;
{% endif %}
aber der Hintergrund bleibt unverändert WEISS.
Was mache ich da falsch??
Vielen Dank - perfekt. Jetzt funktioniert es so wie ich es wollte.
Aber wie setzt du ChatGPT ein. Ich habe mit ChatGPT noch überhaupt keine Erfahrung und auch nicht damit gearbeitet. Kannst du mir da bitte ein bisschen weiterhelfen?
Ich nutze in ChatGPT einen der individuellen GPT’s “HomeAssistant Helper” oder bei Datenbanken relevanten Fragen auch gerne “SQL Expert”.
In Deinem Fall habe ich dann Dein Script hineinkopiert und gesagt “improve”. Sehr oft nehme ich danach auf dem PC das Tool Winmerge und vergleiche vorher und nachher und versuche zu verstehen und die nächsten Schritte hängen dann davon ab was ich will. ChatGPT liefert selten gleich beim ersten Mal den richtigen Code und man muß dann probieren. Je mehr Erfahrung Du hast, je besser erkennst Du Unregelmäßigkeiten und kannst direkt nachfragen. Manchmal nehme ich ein Stück Code heraus und bitte um extra Erklärung und um ein Beispiel. Manchmal ist es auch sinnvoll eine neue Session aufzumachen wenn die letzte in die falsche Richtung ging. Damit verhinderst Du, daß er seine Antworten auf die vorigen Kommentare bezieht was ja sonst eher gewünscht ist.
Jetzt der beste Tipp: Einfach anfangen und eigene Erfahrungen sammlen
Gutes Gelingen!
PS: Denk an den Datenschutz, den es bei ChatGPT nur bedingt gibt. Wenn Du Interna hast, die keiner kennen soll, würde ich die vorher mit Suchen und Ersetzen umbenennen.
Ich habe pragmatisch im Beispiel einen Zeitraum gesetzt. Das setzt voraus innerhalb dieses Zeitraum schaut man auch auf das Dashboard.
Man könnte auch sagen, Du mußt einen Schalter irgendwo tippen und erst dann wird die Farbe wieder normal.
Ich selbst lasse HA mir Mails schicken wenn ein wichtiges Gerät Fehler wirft. Farbliche Änderungen nutze ich auch aber die werden automatisch wieder normal wenn Zustand normal.
Mach bitte einen neuen Post auf wenn Du eine für Dich gültige Lösung finden möchtest.
Die Einfärbung soll erst einmal dauerhaft bestehen bleiben. Will es jetzt nicht zu kompliziert machen. Ich kann ja, nachdem ich die Ursache überprüft habe, meine Parameter im Quellcode wieder anpassen.
Warum soll ich einen neuen Post machen? Soll man nicht lieber an bestehende Posts anknüpfen?
Edit: hab den Quellcode nochmals angepasst, weil ich eigentlich bemerken will, wenn der Fehlerspeicher einen neuen Eintrag erhält.
Funktioniert trotzdem nicht.
Mit “scheint” triffst Du auf den Punkt. Das dieser Jinja Code funktioniert ist eher eine Zufälligkeit der HA Engine.
= → == (nur so wird verglichen)
{ % → {% (kein Leezeichen dazwischen) und ebenso die abschließenden %}
Den Timestring als Vergleich zu nehmen hat Charme weil Du mußt den Code ändern nachdem Du den Fehler beseitigt hast, sonst wird es nie grün. Aber es ist etwas fragil weil Du unbeabsichtigt immer Code Fehler machen könntest.
Bei diesem allgemein formulierten Titel kann man debattieren …
Ich finde neuen Post besser aber soll der Eigentümer @Heli-wolf entscheiden
Ja, die Gefahr verstehe ich.
Aber wie sollte ich am besten vorgehen? Mir ist einfach wichtig, sofort zu sehen, wenn ich das Dashboard aufrufe, dass die Wärmepumpe einen Fehler produziert hat.
Das ist derzeit weder an der WP direkt, noch mit diversen Apps sofort ersichtlich. Und das ist ärgerlich.
Mit der o. g. Lösung sehe ich zumindest sofort, wenn der Hintergrund nicht mehr grün ist.
Wenn es natürlich eine elegantere Lösung gibt, ohne im Quellcode pfuschen zu müssen, immer her damit.
Vorstellbar wäre mit der Sichtbarkeit einer Karte auf der Startseite zu arbeiten.
Als Kriterium das Fehler code Attribut, daß Du vorher in Deinem Code verwendet hattest. Wie ist der wenn kein Fehler vorliegt?
Da die Sichtbarkeit eine Entrity verlangt, müßte man vorher einen Template Helfer anlegen als {{state_attr('sensor.luxtronik_200401_0df_error_reason', "code") == 'was immer bei dem Sensor steht wenn kein Fehler vorliegt'}}
Dieser Helfer ergäbe true oder false.
Das wäre dann die Entity mit der Du die Sichtbarkeit der Karte auf der Startseite steuern könntest.
Wenn Du es einfach haben willst, brauchst Du dann nur wenig Card_mod arbeiten
Es liegt immer ein Fehler vor, weil die alten nicht gelöscht werden. Es wird lediglich ein neuer Fehler zusätzlich angezeigt. An der Wärmepumpe zeigt er mir die letzten 5 Fehler an. In HA zeigt er mir nur einen an. Keine Ahnung, ob man das ausweiten kann.
Ziel wäre, wenn ein neues Datum erscheint, dass dann eine Karte / Hintergrundfärbung o. ä. erscheint. Ich schau mir deinen Vorschlag mal in Ruhe an. Erstmal danke.
Hm, soweit hat alles geklappt. Bis auf das Anklicken. Da tut sich nichts.
Kann man das irgendwie nachvollziehen, ob der Eintrag gesetzt wird?
Oder woran der Fehler liegt?
Edit: hab’s gefunden. Da waren zuviele “input_text” enthalten. Die habe ich jetzt entfernt.