Bouton personnalisé pour piloter une entité

Bonjour à tous,

j’ai recement ajouter un switch à ma porte de garage pour l’ajouter dans Home assistant. Ce switch est de type cover, et se présente comme ceci dans mes entités

Si je l’ajoute par défaut au tdb de bord, il me propose çà
2024-03-12 10_57_11-Aperçu – Home Assistant

et en version yaml, il s’agit de piloter une entité

A votre avis, avec un custom button, est-il possible de piloter une entité ou lorsque je clic sur le bouton, il se met en rouge si le garage est ouvert et si je reclic dessus il se met en vert si le garage est fermé ?

Merci

Tu dois pouvoir faire ça de plusieurs façons:

  • Avec une carte Bouton
  • Avec une carte Tuile
  • Avec une carte mushroom (via HACS) soit cover, soit template, soit même via des chips.
  • Avec une carte buble via HACS
  • Avec une button card via HACS…

Il doit exister au bas mot des dizaines de façons de le faire…

Ok merci pour la confirmation que c’est bien possible, je me penche de ce pas sur ce bouton :slight_smile:

Essaie déjà la séquence suivante:

  • modifier ton dashboard
  • ajouter une nouvelle carte:
  • choisir une carte bouton ou une carte tuile
  • explorer les réglages qu’elle propose
  • essayer avec l’autre

déjà tu devrais répondre à une partie de ton besoin (sans la partie couleur) avec la carte bouton:
image
image

Ensuite vu ta question, tu semble débuter ton dashboard. Je t’invite donc à regarder si le look des cartes Tuiles te plait, tu peux installer mushroom via HACS qui t’offre une collection de cartes supplémentaires très facile à personaliser via l’interface graphique (pas besoin de YAML).

Pour faire exactement ça (rouge/vert, un seul clic), j’ai peur qu’il faille un peu plus que le bouton ou la tuile.

Mais c’est en particulier faisable à moitié avec les cartes mushroom simples (cover ou entity) ou tu vas pouvoir choisir une des deux couleurs, spécifier le comportement (toggle) en cas d’appui simple, et ne pas afficher les info principales et secondaires pour n’avoir qu’un bouton (dont tu pourrais en plus personnaliser l’icone).

Et c’est faisable entièrement avec les cartes mushroom template ou mushroom chips template, en faisant comme à l’étape au dessus. Il va aussi falloir coder des templates avec la syntaxe jinja2 pour la couleur et éventuellement l’icone (rien d’insurmontable non plus…)
image

Enfin on peut le faire à 100% en YAML avec d’autres cartes custom…

Si tu veux des exemples de mushroom, tu peux cliquer sur mon profil et aller voir ma presentation… Ou regarder la doc du mushroom plus haut…

Je vais regarder çà tout de suite. Je suis pas forcément « débutant », mais je ne me suis encore jamais penché sur les custom button.
Pour les mushroms je les utilisent déjà pour mes volets roulants de la maison

1 « J'aime »

Bonjour,
ta la carte button-card qui permet beaucoup de choses.

Ta des exemples sur le github.

  type: 'custom:button-card'
  entity: switch.ac
  state:
    - value: 'on'
      color: red
      icon: mdi:window-shutter-open
    - value: 'off'
      color: green
      icon: mdi:window-shutter
1 « J'aime »

Voilà, c’est à celle là que je pensait :

Mais comme je n’utilise pas cette carte…

Avec toute vos réponses, j’ai pu en effet assez facilement mettre un bont qui gère mon entité.
Pour la couleur, je me demande si le mieux n’est pas de passer par un booléan qui va changer à chaque clic de bouton et de conditionner la couleur suivant l’état de ce booléan

Tout est possible… mais franchement, il y a plus simple que de créer un booléen…

Voir les pistes proposées par @WarC0zes et moi a base de template jinja2 si tu pars sur du mushroom, ou a base de yaml si tu pars sur de custom-button-card.

Voici un exemple avec button-card:


type: custom:button-card
entity: switch.0x50325ffffe304677
name: garage
show_state: true
state:
  - value: 'on'
    color: red
    icon: mdi:garage-open
  - value: 'off'
    color: green
    icon: mdi:garage
state_display: |
  [[[
    if (states['switch.0x50325ffffe304677'].state == 'on')
    return '<font color= "red">Ouvert</font>' ; else return '<font color= "green">Fermer</font>';
  ]]]

Bon la solution fonctionne, c’est super.

J’ai pu en effet le faire avec des conditions sur l’état de l’entité directement. Au niveau de mon garage et même de mon portail qui lui gère un bolléen car aucun retour de l’etet ouvert ou fermé. (Pour le moment car je suis en train de me créer un capteur laser de distance à base d’esphome pour voir si le portail est vraiment ouvert ou fermé)

Voici mon code si vous voyez des choses qui sont à améliorer ?

square: false
type: grid
cards:
  - type: custom:button-card
    color_type: icon
    name: Portail
    size: 10%
    entity: input_boolean.boolean_portail
    state:
      - value: 'on'
        color: green
        icon: mdi:door-sliding
      - value: 'off'
        color: red
        icon: mdi:door-sliding-open
    tap_action:
      action: call-service
      service: automation.trigger
      target:
        entity_id: automation.gestion_portail_kiosk
      data:
        skip_condition: true
    hold_action:
      action: none
    card_mod:
      style: |
        ha-card {
          background-color: RGBA( 135, 206, 250, 0.6 );
        }
  - type: custom:button-card
    entity: cover.smart_garage_door_opener_porte
    name: Garage
    size: 10%
    tap_action:
      action: toggle
    state:
      - value: open
        color: red
        icon: mdi:window-shutter-open
      - value: closed
        color: green
        icon: mdi:window-shutter
    card_mod:
      style: |
        ha-card {
          background-color: RGBA( 135, 206, 250, 0.6 );
        }
columns: 2

Salut,
tu peu changer le background-color directement de button-card sans passer par card-mod.

    styles:
      card:
        - background-color: rgba( 135, 206, 250, 0.6 )

exemple:

square: false
type: grid
cards:
  - type: custom:button-card
    color_type: icon
    name: Portail
    size: 10%
    entity: input_boolean.boolean_portail
    state:
      - value: 'on'
        color: green
        icon: mdi:door-sliding
      - value: 'off'
        color: red
        icon: mdi:door-sliding-open
    tap_action:
      action: call-service
      service: automation.trigger
      target:
        entity_id: automation.gestion_portail_kiosk
      data:
        skip_condition: true
    hold_action:
      action: none
    styles:
      card:
        - background-color: rgba( 135, 206, 250, 0.6 )
1 « J'aime »