Changement de couleur d'un icône en fonction d'un input_boolean

Salut,

Tu as essayé de passer par le template cutom ?

homeassistant:
  customize:
    input_boolean.etat_chauffage:
      templates:
        icon: >
          if (state === 'on') return 'mdi:radiator';
          return 'mdi:radiator-off';
        icon_color: >
          if (state === 'on') return 'rgb(251, 210, 41)';
          return 'rgb(54, 95, 140)';

J’avais essayé un truc du genre mais en passant directement par le YAML de la carte en question. Mais je n’avais rien de bien concluant

Donc refait comme dans mon exemple… ça fonctionne

Visiblement, ça ne fonctionne pas chez moi…

Il n’y a pas de raison… Par contre c’est pas à faire dans la carte… Mais dans la partie customize du configuration.yaml

Oui, j’étais au bon endroit pour ça :
Screenshot_20220208_212101

Tu redémarré le core ?

Oui… Et rien n’y fait…

Vérifie ce que ça donne avec la carte entity

icon

Pas de changement… L’icône ne bouge pas d’un poil…

Et coté outils dev, tu as quoi ?

Hello,

Ca sent l’icone forcée dans lovelace qui prend la priorité sur le yaml de l’entité :thinking: :

Voilà ce que j’ai :

editable: true
friendly_name: Etat Radiateur - Couloir
templates:
  icon: |
    if (state === 'on') return 'mdi:radiator'; return 'mdi:radiator-off';
  icon_color: |
    if (state === 'on') return 'rgb(251, 210, 41)'; return 'rgb(54, 95, 140)';

@AlexHass aucun icône forcée

En fait je pensais à la carte lovelace.

Tu ne veux pas partager la même image que moi / le bloc complet ? Là on ne voit pas l’état actuel (on/off) et on ne voit pas la résultat du calcul pour icon et icon_color

@AlexHass Même à la carte Lovelace, aucun icône forcé…

@Pulpy-Luke voilà
Screenshot_20220209_051101

Bon après avoir fait des tests dans tous les sens.

Je viens de me rendre compte que cela fonctionne en ajoutant la ressource custom-ui.js

@Pulpy-Luke je reviens sur ces lignes concernant la customisation. Si tu veux économiser des lignes, tu peux passer de ça :

homeassistant:
  customize:
    input_boolean.etat_chauffage:
      templates:
        icon: >
          if (state === 'on') return 'mdi:radiator';
          return 'mdi:radiator-off';
        icon_color: >
          if (state === 'on') return 'rgb(251, 210, 41)';
          return 'rgb(54, 95, 140)';

à ça :

homeassistant:
  customize:
    input_boolean.etat_chauffage:
      templates:
        icon: >
          return (state === 'on') ? 'mdi:radiator' : 'mdi:radiator-off';
        icon_color: >
          return (state === 'on') ? 'rgb(251, 210, 41)' : 'rgb(54, 95, 140)';

Ça revient exactement à la même chose mais ça fait des lignes en moins. Surtout quand tu commences à customiser tout et n’importe quoi :wink:
le state === 'on', ce n’est pas une obligation de le mettre en parenthèse mais j’aime bien le faire car comme ça, je vois tout de suite la condition qui est testée.

Salut.

Oui, je fais pas trop la chasse au nombre de lignes, ni à la quantité de commentaires.
Après je trouve ça moins lisible, c’est une simple question de goût.

1 « J'aime »

Question de goût et question d’habitude, je dirai aussi.
Mais bon, dans tous les cas, j’ai quand même proposé cette solution. Ça en intéressera peut-être certains :slight_smile:

2 « J'aime »