Mushroom Templete Karte anpassen

Hallo zusammen, ich bin neu hier und bin leider mit Yaml so gar nicht vetraut. Ich möchte in einem Dashboard (Tablet) an der Haustüre den Status von Fenster und Türen anzeigen lassen.

Mit Mushroom Templates habe ich für jedes Fenster festgelegt, dass das Badge nur dann angezeigt wird, wenn ein Fenster einen anderen Status als “geschlosssen” hat. Soweit klappt das auch.

Bei “Primär Info” lasse ich den Klartext Namen des Fensters oder der Türe anzeigen, bei “Sekundär Info” habe ich - dank eines Beitrages hier im Forum von 2023 gefunden Artikels finden können, dass ich tatsächlich den Status anzeigen lassen kann. Das mache ich aktuell mit: {{states.binary_sensor.NAME_DES_Sensors.state}}

Das reicht mir aber noch nicht… :slight_smile:
Ziel ist: Je nach Zustand soll ein andersfarbiges Icon angezeigt werden, wenn ein Fenster "Offen ist “Rot”, der Status “Unbekannt” “Blau” oder “Nicht verfügbar” (Lila), Orange, wenn “Gekippt”,

Zudem werden durch {{states.binary_sensor.NAME_DES_Sensors.state}} die Stati nicht in Deutsch sondern Englisch angezeigt, diese würde ich gerne übersetzt mit übergeben.

Ich nutze verschiedene Arten von Sensoren:
Sensor Typ 1: verfügbare Stati: Geöffnet, Geschlossen, Nicht verfügbar oder unbekannt.
Sensor Typ 2: verfügbare Stati: Geöffnet, Geschlossen, Gekippt, Nicht verfügbar oder unbekannt.

Wäre jemand so nett mir zu helfen mit der Lösung…
Mit anderen Worten: Was muss ich als Text /STRING exakt für alle verschiedenen Fälle eintragen,

a) damit das “Symbol” je nach Zustand unterschiedlich eingefärbt wird und

b) bei der “Sekundärinfo” Geschlossen nicht als “off”, Offen nicht als “on” und Gekippt nicht als “Tilted” etc. angezeigt werden sondern eben als “offen”, “geschlossen”, “gekippt”, “nicht verfügbar” oder “unbekannt”

Ich wäre super dankbar, wenn mir jemand die Zeilen Code hier als Klartext vorgeben würde für a) + b) und sage vorab: ganz erzliches DANKÖ

LEM

Zum Thema Icon-Farbe:

Im Feld Icon-Farbe kannst du folgendes eingeben:

{% if is_state(entity, 'on') %}
  red
{% elif is_state(entity, 'off') %}
  green
{% elif is_state(entity, 'gekippt') %}
  orange
{% else %}  
  grey
{% endif %}

on = offen
off = geschlossen
Bei gekippt musst du schauen, was der dir da als Wert zurück gibt und das dann entsprechend anpassen.

Wenn nichts davon zutrifft, dann ist das Icon grau.
Das kannst du dann beliebig erweitern.

LG
Sebastian

Wow vielen Dank @SebastianVoigt … Also wäre, bezogen auf meine Beispiel - Entität der String wie folgt?

{% if is_state(SI_OG_Dach_Garten, 'on') %}
  red
{% elif is_state(SI_OG_Dach_Garten, 'off') %}
  green
{% elif is_state(SI_OG_Dach_Garten, 'gekippt') %}
  orange
{% else %}  
  grey
{% endif %}

Das ist dann ja die halbe Miete und Klasse… Wie kann ich nun noch für die Anzeige der “Sekundär Info! als Text"übersetzung” off= geschlossen, on=geöffnet, Tilgted=gekippt etc. anzeigen lassen?

Ich habe hier eine angepasst mushroom-card - vieleicht kannst du dir ja aus diesem Code ein paar Ideen holen:

image

type: custom:mushroom-template-card
primary: |-
  {% if states('input_boolean.heizen_aktiv_lena') == 'on' %}
    an
  {% else %}
    aus
  {% endif %}
secondary: "{{states('sensor.tmp_lena_temperature')}} °C"
icon: |-
  {% if states('input_boolean.heizen_aktiv_lena') == 'on' %}
    mdi:radiator
  {% else %}
    mdi:radiator-disabled
  {% endif %}
tap_action:
  action: toggle
entity: input_boolean.heizen_aktiv_lena
icon_color: |-
  {% if states('input_boolean.heizen_aktiv_lena') == 'on' %}
    {% if states('person.lena') == 'home' %}
      green
    {% else %}
      blue
    {% endif %}
  {% else %}
    gray
  {% endif %}
fill_container: true
layout: vertical
badge_icon: |-
  {% if states('binary_sensor.wnd_lena_contact') == 'on' %}
    mdi:window-open-variant
  {% else %}
    mdi:window-closed-variant
  {% endif %}
badge_color: |-
  {% if states('binary_sensor.wnd_lena_contact') == 'on' %}
    orange
  {% else %}
    gray
  {% endif %}

Oder auch noch diese:

image

type: custom:mushroom-template-card
primary: >-
  {% from 'relative_time_plus.jinja' import relative_time_plus %}{% if
  is_state('lock.aqara_u200_schloss','locked') %}Abgeschlossen {% else
  %}Aufgeschlossen{% endif%} vor {{
  relative_time_plus(states.lock.aqara_u200_schloss.last_changed, language='de')
  }}
secondary: >-
  {% set battery_level = (states('sensor.aqara_u200_batterie') | int / 1) |
  round(0) | int * 1 %}

  {% if is_state('binary_sensor.wnd_haustuer_contact','off') %}Tür ist
  geschlossen{% else %}Tür ist geöffnet{% endif%} / Akku bei {{ battery_level }}
  %
icon: |-
  {% if is_state('lock.aqara_u200_schloss','locked') %}
    mdi:lock
  {% else %}
    mdi:lock-open
  {% endif%}
icon_color: |-
  {% if is_state('lock.aqara_u200_schloss','locked') %}
    green
  {% else %}
    red
  {% endif%}
badge_icon: >-
  {% set battery_level = (states('sensor.aqara_u200_batterie') | int / 10) |
  round(0) | int * 10 %}

  {% if battery_level == 100 %}
    mdi:battery
  {% elif battery_level > 0 %}
    mdi:battery-{{ battery_level }}
  {% else %}
      mdi:battery-alert-variant-outline
  {% endif %}
badge_color: |-
  {% set battery_level = states('sensor.aqara_u200_batterie') | int %}
  {% if battery_level > 90 %} green
  {% elif battery_level > 60 %} light-green
  {% elif battery_level > 50 %} lime
  {% elif battery_level > 40 %} yellow
  {% elif battery_level > 30 %} amber
  {% elif battery_level > 20 %} orange
  {% elif battery_level > 10 %} deep-orange
  {% else %} red
  {% endif %}
fill_container: false
multiline_secondary: true
tap_action:
  action: toggle
entity: lock.aqara_u200_schloss
layout_options:
  grid_columns: 4
  grid_rows: auto

Gruß, Lars

@lemonbiter

Bei meiner Waschmaschine hab ich es so:

{% set d ={
'run': 'Läuft', 
'ready': 'Bereit',
'inactive': 'Fertig',
'Off': 'Off'
} %}
{{ d.get(states(entity)) }} 

Dabei sind die vorderen Worte die Zustände der Entität und die hinteren die angezeigten Werte.

Das könntest du dann bei secondary verwenden.

1 „Gefällt mir“

Hallo zusammen,
ich habe das nun wie folgt versucht… Ich weiss, war scheinbar falsch… Leider verschwindet in der ersten Zeile der Name und naja, das Badge passt sich beim Icon von der Farbe nicht an.
Wie gesagt, ich bin absoluter Beginner… MEA CULPA… wo muss ich was genau eintragen… die syntax und einrücken scheint ja auch wichtig irgendwie…
?

Wenn mich jemand wirklich step-4 step an die Hand nehmen würde… das wäre toll

Wolltest du das nicht als Farbe haben? Warum schreibst du es dann nicht bei Icon-Farbe rein?

1 „Gefällt mir“

Lieber @maxe … siehsde… Ich sag doch keine Ahnung… Danke für die Hilfe
So sieht es jetzt aus…
Aktuell ist die Türe gekippt. Ich habe das nun bei “Icon-Farbe” eingetragen dank Deines Hinweises. Habe bei der Entität als Zustandsauswahl:

Bei dem Script in “Icon-Farbe” bei dem Zustand Gekippt, gekippt, Tilted und tilted versucht, aber es bleibt grau

Und mein Zusatzwunsch war ja, dass anstelle des komischerweise englischen Entitätszustand Deutsch angezeigt werden soll.

Du brauchst doch nur 3 Farben

{% if is_state(entity, 'on') %}
  red
{% elif is_state(entity, 'off') %}
  green
{% else %}  
  orange
{% endif %}
1 „Gefällt mir“

Lieber Maxe leider nein… ich habe, wie oben beschrieben unterschiedliche Zustände je nach Entität. Einige Fenster Sensoren können nur auf und zu, sprich on und off, andere das was ich oben im Screenshot zeige, also auch gekippt, geöffnet, geschlossen.

In diesem Thread ganz am Anfang hatte ich versucht das zu beschrieben…

{% if is_state(entity, 'on') %}
  red
{% elif is_state(entity, 'off') %}
  green
{% elif is_state(entity, 'tilted') %}
  orange
{% else %}  
  grey
{% endif %}
1 „Gefällt mir“

So hatte ich es ja oben auch schon geschrieben. :sweat_smile:

So wie du es hier hast, ist es falsch.

Einfach den Coden, den wir dir dazu geschrieben haben bei Icon rein kopieren.
Dann sollte es schon funktionieren.

{% if is_state(entity, 'on') %}
  red
{% elif is_state(entity, 'off') %}
  green
{% elif is_state(entity, 'tilted') %}
  orange
{% else %}  
  grey
{% endif %}

Da du für die Kachel ja den Sensor als Entität ausgewählt hast, bezieht sich das Wort “entity” in dem Code automatisch auf diesen.

In diesem Code (wie du ja schon gemacht hast), musst du nur hinten die Zustände dementsprechend anpassen, was dir der Sensor ausgibt.

1 „Gefällt mir“

HURRA, Danke Euch Beiden, das funktioniert. Habt Ihr nun noch eine Idee wie ich die Sekundäre Info zu einer deutschen Antwort verleiten kann, sprich sie soll aus on bzw open: Geöffnet, aus off bzw. closed Geschlossen aus tilted Gekippt und aus unreach Nicht erreichbar und aus unknown unbekannt machen? und bei der Farbe des icons, kann man den string erweitern, dass es eben beides, also on und open und off und closed versteht, damit ich den Text für beide Sensoren verwenden kann??

Meine Helden des Tages seid Ihr

den text für die Farbe brauchst du nicht übersetzen.
Das funktioniert schon so, wie es jetzt ist.


Zeig mal deinen ganzen Code von der Kachel.
Wenn du die Kachel bearbeitest, links unten auf “Code anzeigen”.

Dann hier als vorformatierten Text mit </> einfügen.
Bildschirmfoto 2025-01-14 um 20.17.24 PM

1 „Gefällt mir“

Hallo Sebastian, währned Du geantwortest hast habe ich noch ergänz… vielleicht magst Du da noch mal schauen. Also der Text wird wie im Screenshot oben angezeigt leider englisch angezeigt, auch wenn bei der Auswahl des Entitätszustand der deutsche angezeigt wird.
Kann man im string eintragen

{% if is_state(entity, 'on' **or open**) %}
  red

oder so?

hier der Yaml Text:

type: custom:mushroom-template-card
primary: |
  UG Peter Büro Terrasse
secondary: "{{states.sensor.si_ug_peter_buero.state}}"
icon: mdi:door-open
visibility:
  - condition: state
    entity: sensor.si_ug_peter_buero
    state_not: closed
entity: sensor.si_ug_peter_buero
icon_color: |-
  {% if is_state(entity, 'on') %}
    red
  {% elif is_state(entity, 'off') %}
    green
  {% elif is_state(entity, 'tilted') %}
    orange
  {% else %}  
    grey
  {% endif %}


Ja, das “or open” kannst dir aber sparen.
Sollte auch so funktionieren.
Oder geben dir die 2 verschiedenen Sensoren die 2 Werte für “Offen” aus?

Probier es mal so:

type: custom:mushroom-template-card
primary: |
  UG Peter Büro Terrasse
secondary: |-
      {% set d ={ 
      'on': 'Offen',
      'off': 'Geschlossen',
      'tilted': 'Gekippt',
      'UNAVAILABLE': '-',
      'Unavailable': '-',
      } %}
      {{ d.get(states(entity)) }}
icon: mdi:door-open
visibility:
  - condition: state
    entity: sensor.si_ug_peter_buero
    state_not: closed
entity: sensor.si_ug_peter_buero
icon_color: |-
  {% if is_state(entity, 'on') %}
    red
  {% elif is_state(entity, 'off') %}
    green
  {% elif is_state(entity, 'tilted') %}
    orange
  {% else %}  
    grey
  {% endif %}

Edit: Einrückung bearbeitet.

1 „Gefällt mir“

@SebastianVoigt

Danke schon mal… es gibt leider unterschiedliche Werte, zumindest bei Offen und Geschlossen

  1. on oder open
  2. off oder closed
  3. tilted
  4. unreach
  5. unknown

und dann noch die Frage, kann ich natürlich ausprobieren, kann ich das schript dann für alle einsetzen, also die die on oder open anzeigen und auch die, die kein gekippt haben??

Ja, kannst du einsetzen.

1 „Gefällt mir“

danke, dann nur noch die Frage der Syntax mit dem “or” bei wahlweise on oder open bzw. off oder closed… :slight_smile:

und so weiter…

Btw, du kannst dann auch die Werte “unreach” und “unknown” mit beim secondary hinterlegen und übersetzen.

Einfach unter

'Unavailable': '-',

neue Zeilen einfügen:

'unreach': 'nicht erreichbar',
'unknown': 'unbekannt',