Affichage dynamique icone en fonction de l'état de l'entité

Bonjour

Je souhaite dans mon lovelace avoir un icone qui change dynamiquement
Cela concerne ma porte de garage
L’icone en vert et fermé quand le garage est fermé sinon icone en rouge avec garage ouvert

J’ai regardé sur le forum et me suis inspiré de ce que j’ai vu mais ça ne fonctionne pas…

J’ai créé le fichier customize.yaml

cover.smart_garage_door_opener_msg200_garage_door_2:
  friendly_name: Porte garage
  templates:
    icon_color: "if (state === 'on') return '#ff0000'; else return '#00b300';"
    icon: "if (state === 'on') return 'mdi:garage-open'; else return 'mdi:garage-lock;"

Ensuite dans ma carte l’icone de ne se change pas dynamiquement

type: custom:mushroom-cover-card
entity: cover.smart_garage_door_opener_msg200_garage_door_2
name: Porte Garage Ju
layout: vertical
fill_container: true
primary_info: name
secondary_info: state
icon_type: entity-picture
show_buttons_control: true
show_tilt_position_control: false

Je ne comprend pas pourquoi

D’avance merci pour votre aide


Bonjour,
Voila ce que j’ai dans mes templates:

template:
  - sensor:
    - name: "Position porte du garage"
      unique_id: position_porte_du_garage
      state: >-
        {% if is_state('binary_sensor.capteur_fermeture_garage_ouverture', 'off') %}
          Fermé
        {% elif is_state('binary_sensor.capteur_ouverture_garage', 'off') %}
          Ouvert
        {% else %}
          Intermédiaire
        {% endif %}
      icon: >-
        {% if is_state('sensor.position_porte_du_garage', 'Ouvert') %}
          mdi:garage-open-variant
        {% elif is_state('sensor.position_porte_du_garage', 'Fermé') %}
          mdi:garage-variant-lock         
        {% else %}
          mdi:garage-alert-variant
        {% endif %}

Pour la couleur, je laisse la carte gérer:

Salut,

Je ne sais pas sur quoi tu t’es inspiré, mais en tous cas ce n’est pas un formatage ni une syntaxe correcte.
Pour ton customize.yaml… « templates » « icon_color » ça n’existe pas…
Pareil pour le "if .... return; else ... return" ce n’est pas une syntaxe utilisée dans les expressions template de HA. ça doit venir d’une logique d’une cart custom…

Généralement pour les couleurs d’icones… mushroom s’en charge. Et si tu veux vraiment forcer les couleurs c’est en changeant les css avec « card_mod » qui se trouve sur HACS.

Pareil pour les icones… si ton cover est bien configuré en tant que garage… les icones « garage » sont gérées directement.

Bonjour,
tu utilise des icones ( MDI ) et ta configurer sur entity-picture (images).
Faut mettre sur icon

Name Type Default Description
icon_type icon entity-picture none icon Type of icon to display

Ta bien installer custom-ui GitHub - Mariusthvdb/custom-ui: Add templates and icon_color to Home Assistant UI ?

j’ai ca:

type: custom:mushroom-template-card
primary: Diskstation
secondary: ''
icon: mdi:nas
entity: switch.diskstation
tap_action:
  action: toggle
icon_color: '{{ ''green'' if states(entity) == ''on'' else ''red'' }}'

Bonjour,
Voici de quoi je me suis inspiré
https://forum.hacf.fr/t/changer-icon-en-fonction-de-letat/23355/21

Est ce que ce n’est pas applicable dans mon cas ?

Merci

Bonjour

J’ai essayé en changeant entity-picture par icon mais ça ne change rien…

Salut,

Ca peut marcher si tu as ajouté custom-ui comme l’a dit @WarC0zes
Car sinon ça ne comprendra pas la syntaxe.

oui et j’ai bien custom-ui pourtant mais ça ne fonctionne pas…

ta bien ajouter ces lignes dans ton configuration.yaml ?

homeassistant:
  customize: !include customize.yaml

un exemple dans customize.yaml :

binary_sensor.0x00158d0007ef4edc_contact:
  friendly_name: Porte Entrée
  templates:
    icon_color: >
      if (state == 'on') return '#ff0000';
      return '#00b300';
    icon: >
      if (state == 'on') return 'phu:panel-glass-door2-open';
      return 'phu:panel-glass-door2-close';
binary_sensor.0x00158d000894bd4e_contact:
  friendly_name: Fenêtre Chambre
  templates:
    icon_color: >
      if (state == 'on') return '#ff0000';
      return '#00b300';
    icon: >
      if (state == 'on') return 'phu:double-window-open';
      return 'phu:double-window-closed';
sun.sun:
  templates:
    entity_picture: >
      if (state == 'above_horizon') return '/local/weather/animated/day2.svg';
      return '/local/weather/animated/night2.svg';

Oui j’ai bien mis ça dans mon fichier configuration.xml

Par contre quand je vais voir l’état de l’entité voici ce que j’ai
Est ce normal ?

Voila ton problème. C’est pas on/off, mais open/close.

Modifie ton code:

cover.smart_garage_door_opener_msg200_garage_door_2:
  friendly_name: Porte garage
  templates:
    icon_color: "if (state === 'open') return '#ff0000'; else return '#00b300';"
    icon: "if (state === 'open') return 'mdi:garage-open'; else return 'mdi:garage-lock;"

tu peu recharger le customize.yaml directement du UI, clique sur emplacement et personnalisations.
image

Jai modifié ce que tu m’as dit mais ça ne changeait rien …
J’ai recréé une carte de type tuile et là ça fonctionne
Par contre sur smartphone quand je fais un refresh du lovelace en tirant l’écran vers le bas mes icônes garage perdent la couleur, ils deviennent gris … il faut que j’aille dans un autre tableau de bord puis que je revienne dans celui oui il y a mes portes de garage pour la couleur revienne …