Mushroom template card: Wert auslesen und anzeigen

Hi!

Ich hab mich jetzt mit den Template-cards von Mushroom befasst und es auch hinbekommen, dass zB ein rotes Icon bei state=false und ein grünes bei true angezeigt wird.

Nun wollte ich den Wert auslesen, den mir ein Sensor liefert. Konkret gehts um die Batterieladung, der Wert wird von der Entität in “W” zurückgegeben.
Ich wollte nun das Icon auf rot ändern, wenn der Wert kleiner als 0 ist, also Strom aus der Batterie gezogen wird und wenn er größer ist, in grün, weil die Batterie geladen wird.
Außerdem sollte der gelieferte Wert angezeigt werden.

      - type: custom:mushroom-template-card
        entity: sensor.solax_battery_power_charge
        icon: phu:battery-charged
        icon_color: |-
          {% if is_state('sensor.solax_battery_power_charge', '>0') %}
            green
          {% else %}
            red
          {% endif %} 
        primary: Lade/Entladeleistung

        secondary: |-
        {% if is_state('sensor.solax_battery_power_charge', '') %}
  		Wert in Watt anzeigen
	{% else %}
		Wert in Watt anzeigen
	{% endif %}

Beim Anzeigen des Wertes, also der secondary information, denk ich mir, das braucht kein if-then-else.

Wer kann mir meinen Code korrigieren?
Vielen Dank!

Versuch es mal so

icon_color: |-
  {% if states('sensor.solax_battery_power_charge') > 0 %}
    green
.....

Hat leider nicht funktioniert, das Icon wird grau dargestellt.

Wandle den Wert erst mal in eine Zahl, vielleicht liegt es daran:

icon_color: |-
  {% if states('sensor.solax_battery_power_charge') | int > 0 %}
    green

Bei deinem secondary müsste dann

"{{ states('sensor.solax_battery_power_charge') }}"

rein.

1 „Gefällt mir“

Mit is_state lassen sich keinen mathematischen vergleiche anstellen, stattdessen musst du states('sensor.xyz') >0 verwenden.

{{ iif(states('sensor.solax_battery_power_charge') | int(0) > 0, "green", "red") }}

Gruß
Osorkon

1 „Gefällt mir“

Danke euch vielmals!

Wie kann ich jetzt den integer-Wert als Text ausgeben lassen?
secondary: ???

Meinst du sowas?

{{ states('sensor.solax_battery_power_charge') }}
1 „Gefällt mir“

Wenn Du die Einheit auch mit ausgeben willst, dann so:

{{  states('sensor.solax_battery_power_charge', with_unit=True) }}

Gruß
Osorkon

1 „Gefällt mir“

Jetzt hab ichs!

        secondary: |-
          {{  states('sensor.solax_battery_power_charge', with_unit=True) }}

“|-” hat mir gefehlt…

Oder
secondary: "{{ states('sensor.solax_battery_power_charge', with_unit=True) }}"

Ein Template muss Du immer in " " einfassen, wenn es in der gleiche Zeile steht.
Oder wenn mehrzeilig:
ein > oder ein | voran stellen.

Oder Du fügst die Temples in der GUI ein und nicht in der YAML Ansicht ein, dann muss man sich um so Kleinigkeiten nicht kümmern. :wink:

Gruß
Osorkon

1 „Gefällt mir“

Tja, ich steh noch ganz am Anfang und muss noch viel lernen :wink:
Im Moment läufts eher noch auf try & error raus.

Klugschnake an: “trial & error”, Klugschnake aus! :crazy_face:

Besser als dry & error :rofl: :wink:

Hänge mich mal hier an.

Habe anhand dem oben beschriebenen versucht den Wert anzeigen zu lassen. Es blieb beim Versuch… Sehe wahrscheinlich wieder einmal den Wald vor lauter Bäumen nicht.

Ziel wäre, alles was über 20 grad ist grün und darunter blau plus halt den Wert anzeigen zu lassen.

Hab wieder den ursprüngliche Code kopiert, weil das was ich zusammengeschustert habe hinten und vorne nicht funktionert hat.

type: horizontal-stack
cards:
  - type: custom:mushroom-template-card
    primary: Küche
    secondary: |-
      {% if is_state('sensor.temp_aqara_kueche_temperature', '20') %}
      >20
      {% else %}
      <20
      {% endif %}
    icon: |-
      {% if is_state('sensor.temp_aqara_kueche_temperature', '20') %}
        mdi:thermometer
      {% else %}
        mdi:thermometer
      {% endif %}
    entity: sensor.temp_aqara_kueche_temperature
    icon_color: |-
      {% if is_state('sensor.temp_aqara_kueche_temperature', '20') %}
        green
      {% else %}
        blue
      {% endif %}
    layout: vertical

Versuch macht klug…

Soweit bin ich jetzt.
Die Farbe wird aber noch nicht geändert. :wink:

cards:
  - type: custom:mushroom-template-card
    layout: vertical
    icon: mdi:thermometer
    primary: Küche
    secondary: "{{ states('sensor.temp_aqara_kueche_temperature') }}°C "
    icon_color: |-
      {% if is_state('sensor.temp_aqara_kueche_temperature', '20') %}
        green
      {% else %}
        blue
      {% endif %}
    entity: sensor.temp_aqara_kueche_temperature

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

So geht’s :slight_smile:

    primary: Küche
    secondary: "{{ states('sensor.temp_aqara_kueche_temperature') }}°C "
    icon_color: |-
      {% if states('sensor.temp_aqara_kueche_temperature') | int > 19.9 %} 
        green
      {% else %}
        blue
      {% endif %}
    entity: sensor.temp_aqara_kueche_temperature