Changer la couleur de l'icone d'un bouton sur appui (et non sur changement d'état)

Bonjour à tous,

Je vous explique les états de mon bouton pour ouvrir le portail :

  • Quand le portail est fermé :

image

  • Quand le portail est ouvert :

image

Vous avez remarqué c’est une restriction-card au passage.

  • Quand j’appui sur le bouton quand le portail est fermé, le bouton change d’état immédiatement car l’entité a changé d’état, aucun souci.
  • Quand j’appui sur le bouton quand le portail est ouvert, le bouton ne change pas d’état immédiatement car l’entité n’a pas changé d’état immédiatement c’est au bout de xx secondes que l’icone et sa couleur change (au moment ou le portail est fermé). J’ai toujours un doute de savoir si l’ordre a bien été envoyé. Et si mon doute est trop fort, je réappuie, ce qui stoppe l’ouverture du portail.

Ainsi, je souhaiterais trouver une manière de changer l’icone ou la couleur du bouton au moment où il est appuyé cela même alors que l’entité n’a pas encore changé de valeur. Je ne sais pas trop comment m’y prendre.

Auriez vous une piste que je pourrai explorer ?

Merci

Slt…
Normalement le state color doit te donner l’info.
Mais comme pas ton Yaml ?

Exemple

Salut @Sigalou

Il y’a ce genre d’animation possible avec custom-button-card :

button

Le code avec la fonction « lock » en plus :

type: custom:button-card
entity: light.sw_wc_rdc
name: Wc
show_state: false
color: white
size: 50px
lock:
  enabled: true
  duration: 10
  unlock: double_tap
state:
  - value: 'on'
    styles:
      card:
        - box-shadow: 0px 0px 14px 2px aqua
styles:
  card:
    - '--mdc-ripple-color': white
    - '--mdc-ripple-press-opacity': 0.5

ha oups @Doubledom , pas de souci

type: custom:restriction-card
card:
  type: custom:button-card
  show_name: false
  tap_action:
    action: toggle
  entity: cover.portail
  state:
    - value: close
      color: gray
    - value: open
      color: red

oui mais que ce soit state ou state color, ce n’est qu’en fonction de l’état de l’entité.
C’est ce que je j’explique, l’entité portail passe à Close au moins 15s après un clic sur le bouton. Je voudrais que le bouton « accuse réception » de la commande par un changement de commande.

je regarde, je peux changer de type de carte, pas de souci de ce côté là, c’est un bouton simple

Merci, je ne connaissais pas l’option lock de button-card, c’est pratique de savoir que cela existe avec juste un paramètre en plus. J’avais l’habitude d’utiliser restriction-card

Ok vu comme cela pas possible directement ! Voir ce que propose @Herbs du coup ! :wink:

Merci @Herbs et @Doubledom

C’est la solution de @Herbs qui est la mieux adaptée, je cherchais à changer la couleur de l’icone au clic, finalement, colorer le fond au moment du clic suffit pour montrer à l’utilisateur que son clic a fonctionné.

J’ai gardé ma carte et juste ajouté style.
Merci les amis

type: custom:restriction-card
card:
  type: custom:button-card
  show_name: false
  tap_action:
    action: toggle
  entity: cover.portail
  state:
    - value: close
      color: gray
    - value: open
      color: red
  styles:
    card:
      - '--mdc-ripple-color': blue
      - '--mdc-ripple-press-opacity': 0.5
1 « J'aime »

Une petite question !
Tu as compris comment on change la couleur de l’icone du cadenas ? ( l’icone je sais changé)

J’ai résolu le même soucis en créant un état « intermédiaire » pour ma porte du garage.
J’ai 2 capteurs sur la porte, l’un qui m’indique quand la porte est fermée, l’un quand elle est ouverte. J’ai créé un sensor qui reproduit l’état de la porte, avec un état entre ouvert et fermé:

    - name: "Position porte du garage"
      unique_id: position_porte_du_garage
      state: >-
        {% if is_state('binary_sensor.capteur_fermeture_garage_iaszone', '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 %}

Je ne sais si ça peut aider…

Salut @Doubledom

Tu posais la question pour « restriction-card » ou « button-card » ?

oui :

mais c’est un changement lié à l’état de l’entité.

tu utilises le yaml, avec un customize ?

Apparemment cela se fait dans le Thème !

1 « J'aime »

C’était pour la couleur de l’icone du « cadenas »
c.a.d pour changer la couleur soit :

locked_icon: mdi:garage-variant-lock
unlocked_icon: mdi:lock-open-variant-outline
1 « J'aime »