Modifier l'icone d'un switch en fonction d'un binary_sensor

Comme ceci ?

animate

type: custom:button-card
name: BPportail
show_name: false
show_entity_picture: true
entity: switch.cde_portail
entity_picture: |
  [[[
    return entity.state === 'on' ? '/local/images/garage-door-open.png' : '/local/images/garage-door-close.png';
  ]]]

ça devient tres interessant

Le « entity.state », peut il provenir de l’info de mon capteur fin de course qui me donne l’etat réel du portail?

oui, en lisant la documentation de la carte, cela donne :

type: custom:button-card
name: BPportail
show_name: false
show_entity_picture: true
entity: switch.cde_portail
entity_picture: |
  [[[
    return states['binary_sensor.garage'].state === 'on' ? '/local/images/garage-door-open.png' : '/local/images/garage-door-close.png';
  ]]]

GENIAL

t’es un chef

cela fonctionne a merveille

il faut que je me penche en détail sur cette syntaxe de HA

une question par rapport a cette syntaxe :
dans ce cas, nous avons 2 possibilitées : ON ou OFF

quelle serait la syntaxe si il y avait 3 (ou plus) de possibilité

j’imagine que c’est un genre de if … else en YAML?

C’est du Javascript : La documentation →

j’avais pas ça en tete dans mes connaissances de Javascript

donc, est ce que quelques chose comme ça serait coherent ?

    entity_picture: |
      [[[
        return states['sensor.tempo_aujourd_hui'].state === 'TEMPO_ROUGE' ? '/local/images/tempo rouge.png' : 
        return states['sensor.tempo_aujourd_hui'].state === 'TEMPO_BLANC' ? '/local/images/tempo blanc.png': 
        '/local/images/tempo bleu.png';
      ]]]

ps : c’est pour l’affichage de ma couleur EDF Tempo

je crois que j’ai trouvé :

    entity_picture: |
      [[[
        return states['sensor.tempo_aujourd_hui'].state === 'TEMPO_ROUGE' ? '/local/images/tempo rouge.png': states['sensor.tempo_aujourd_hui'].state === 'TEMPO_BLANC' ? '/local/images/tempo blanc.png': '/local/images/tempo bleu.png';
      ]]]

ça a l’air de fonctionner, mais la ligne est longue

plus qu’a trouver comment la mettre sur plusieurs lignes

Voici un exemple :

type: custom:button-card
show_icon: true
icon: |
  [[[
     if (states['input_boolean.cat'].state == 'on' )
       return 'mdi:cat';
     if (states['input_boolean.dog'].state == 'on' )
       return 'mdi:dog';
     if (states['input_boolean.home'].state == 'on' )
       return 'mdi:home';
     return 'mdi:car';
  ]]]

top

effectivement, vu comme ça, cela ressemble un peu plus a du javascript

merci de ton aide