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

Voila le capteur qui modifie l’icone et la couleur du switch

et voila le switch :

Ça me semble bon… :face_with_raised_eyebrow:

Montre l’entité dans une carte entités (avec un ‹ s ›) pas la carte avec l’entité unique.

Je m’absente pour 2/3h je repasse après.

avec une carte entités ça fonctionne mais pas avec une carte bouton :cry:

Ok tant mieux si ça marche.

Crée un nouveau topic pour ce problème.

Comme ça la prochaine fois, pour les autres, ce sera pas en fin de topic en hors sujet.

ok, ça marche merci
je vais créer un autre topic

je fais des essais dans tous les sens, mais cela peut il fonctionner avec un bouton « custom:button-card » et « entity_picture » a la place de « icon »?

j’ai un doute

Regarde les vidéos pour voir la puissance de personnalisation de la carte.

Je les ai toutes visionné deja
Mais je n’ai rien vu sur le changement dynamique de l’image

j’ai réussi a mettre une image a la place d’une icone, mais je ne trouve pas comment modifier cette image en fonction de la position (ouverte ou fermée) de mon portail.
j’ai essayé les customize comme dans ton tuto, mais je ne pige pas trop comment identifier ce custom button.
En effet, il n’apparait pas dans les entitées comme un switch
et l’argument « entity » que je dois lui donner est justement celui du switch qui commande le portail

il doit bien y avoir un moyen, mais je ne maitrise pas encore suffisamment

Partage ton code de la carte :+1:

Ca va se jouer avec du Javascript template

voici le code :

  - type: custom:button-card
    name: BPportail
    show_name: false
    show_entity_picture: true
    entity_picture: /local/images/portail.png
    tap_action:
      action: toggle
    entity: switch.cde_portail

le but est de remplacer la valeur de Entity_picture par /local/images/portail ouver.png ou /local/images/portail ferme.png selon l’etat du capteur

je suis preneur de toute nouvelle piste

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