Je souhaiterais changer dynamiquement l’icone et la couleur de fond d’un bouton en fonction de l’état d’une entité.
J’ai tenté de le faire à partir de card-mod, cela a bien fonctionné pour la couleur de fond mais pas pour l’icone…
Voici ce que j’ai programmé:
Bonjour,
ca devrais ressembler plutôt a ça:
Par contre l’icone ne fonctionne pas, que le background. C’est plus pousser pour modifier l’icone avec c’est carte.
Tu as aussi mushroom qui est une collection de cartes 100% configurables a travers de l’interface graphique.
Parmi les cartes mushroom, il y a:
la mushroom template qui permet de définir l’icone, sa couleur, les affichages en fonction de templates jinja2
la mushroom chip en version template qui permet de faire un bouton plus petit le cas échéant.
Exemple d’une carte mushroom template dédiée aux volets où l’icone change de forme (volet ouvert ou fermé) et de couleur en fonction des volets (vert fermé, bleu ouvert), où le texte change pour indiquer le nombre de volets ouverts et fermés, et où une mini icone indique le nombre de volets ouverts:
le code
Bien sur il faut installer les cartes Mushroom, qui sont disponibles dans HACS
type: custom:mushroom-template-card
primary: Volets
secondary: |
{% set all = expand(entity)| list -%}
{% set ND1 = all | selectattr('state','eq','open')|list|count%}
{% set D1 = all | selectattr('state','eq','closed')|list|count%}
Ouverts : {{ND1}}
Fermés : {{D1}}
icon: |
{% if is_state(entity, 'open') %}
mdi:window-shutter-open
{% else %}
mdi:window-shutter
{% endif %}
icon_color: |
{% if is_state(entity,'open') %}
light-blue
{% else %}
green
{% endif %}
badge_icon: |-
{% set all = expand(entity)| list -%}
{% set open1 = all | selectattr('state','eq','open')|list|count%}
{% if open1 <= 9 %}
mdi:numeric-{{open1}}
{% elif open1 >= 10 %}
mdi:numeric-9-plus
{% else %}
none
{% endif %}
badge_color: |
{% set all = expand(entity)| list -%}
{% set open1 = all | selectattr('state','eq','open')|list|count%}
{% if open1 == 0 %}
green
{% else %}
orange
{% endif %}
entity: cover.tous_les_volets
layout: horizontal
hold_action:
action: navigate
navigation_path: /lovelace-smartphone/volets
double_tap_action:
action: more-info
multiline_secondary: true
tap_action:
action: navigate
navigation_path: /lovelace-smartphone/volets
mais sans aller jusqu’aux templates, tu as les cartes mushroom entity, et les cartes tuiles (tiles) basique de home assistant pour les volets ou l’icone sera dynamique si tu as défini le bon type. éventuellement modifiable avec customize.
Et enfin les tuiles et les cartes mushroom cover qui font bien le job avec la possibilité d’afficher les boutons de contrôle:
Encore une fois merci @WarC0zes et @BBE .
Je me suis inspiré de vous conseils.
J’ai réussi à changer dynamiquement la forme d’une icone de volet en fonction de son état (à la fois avec less interfaces card-mod et button_card.
Je n’arrive pas à changer l’état et le Name en parallèle… Possible ?
Serait-il possible en parallèle de faire clignoter l’état en fonction de son state.
Possible de mettre un fond coloré sur la carte ?
Pas simple card-mod même avec les tutos
En gros j’ai 4 boutons card dans un panel horizontal pour mon portail (partiel, total, Stop, Fermeture).
Je gère la fermeture avec un timer. Et dans l’état affiché je voudrais rajouter (concatener) le temps restant en secondes avant la fermeture.
Ca c’est la demande initiale. Si en plus j’arrive à faire clignoter en rouge l’état ou le nom c’est top.
Je voudrais aussi au click, que le backgournd change de couleur pour bien voir qu’on a appuyer dessus. il reviendrait à son état initial à la fin de l’action demandée.
Concernant les états du portail j’ai open, closed, unknown (qui veut dire que l portail est soit en mouvement soit arreté dans un état non ouvert ou non fermé).
Merci
Je n’ai pas de code spécifique pour l’instant si ce n’et pas button-card.
J’ai essayé le card-mod, je n’arrive qu’à changer la couleur du fond et la couleur du nom.
Je ne suis même pas sur que ça soit optimisé…