# Icône changeant en fonction de l'état de la porte, 3 états possible

**URL:** <https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649>\
**Category:** Entraide Home Assistant\
**Created:** [Mars 16, 2021, 10:30 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649 "2021-03-16T22:30:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pierre\_Ma](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pierre_ma/32/670_2.png) [@Pierre\_Ma](https://forum.hacf.fr/u/Pierre_Ma)\
**Post date:** [Mars 16, 2021, 10:30 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649/1 "2021-03-16T22:30:16Z")

</div>

## Mon problème

_Changement d'etat icone en fonction de l'ouverture de. porte de poulailler_

Bonjour, j'aimerai changer la couleur ou l'icone en fonction de l'etat de la porte. Je précise, il y 3 etats possible:

1. Ouvert : la porte est en position haute
2. Fermé : la porte est en position bas
3. Entre ouvert: la porte est en cours de fermeture ou ouverture, ou coincé entre ouvert et fermé.

La difficulté vient sur le fait que je n'arrive pas à gérer l'état 3, j'ai réussi à rajouter l'information suivant dans l'esp, mais pas à retranscrire l'info dans une card.  
Pour info, j'utilise principalement la button card.

```auto
  - platform: template
    name: "Statut de la porte"
    lambda: |-
        if((id(poule_haut).state)==(id(poule_bas).state)){
            return {"porte entre ouverte"};
         }else if((!id(poule_haut).state)&&(id(poule_bas).state)){
            return {"porte fermée"};
         } else {
            return {"porte ouverte"};
         }
    update_interval: 5s 

```

 ![Capture d’écran 2021-03-16 à 23.21.15](https://forum.hacf.fr/uploads/default/original/2X/0/0bdecf5ffe03525a07bf72b3378542d4e93717e8.png)

quelqu'un à une idée pour mon problème ? 😇

Mon code actuel :

```auto
- platform: template
  sensors:
    sensor.statut_de_la_porte:
      friendly_name: "Etat Porte poulailler"
      device_class: door
      icon_template: >-
        {% if is_state("sensor.statut_de_la_porte", "poule_bas") %}
          mdi:garage-open-variant
        {% elif is_state("sensor.statut_de_la_porte", "poule_haut") %}
          mdi:door-open
        {% else %}
          mdi:door-closed
        {% endif %}
          mdi:help-circle

```

---

<div class="post-metadata">

**Author:** ![Argonaute](https://forum.hacf.fr/user_avatar/forum.hacf.fr/argonaute/32/4951_2.png) [@Argonaute](https://forum.hacf.fr/u/Argonaute)\
**Post date:** [Mars 16, 2021, 11:16 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649/2 "2021-03-16T23:16:06Z")

</div>

Est-ce ce que mon dernier post [Garage Ouvre Toi!](https://forum.hacf.fr/t/garage-ouvre-toi/3630) avec l’utilisation d’un custom button card répondrait a ton problème ? Il permet effectivement de changer l’icone et la couleur du bouton en fonction de l’état de la porte (rouge si entre ouvert). Il clignote même pendant l’ouverture et la fermeture.

---

<div class="post-metadata">

**Author:** ![Clemalex](https://forum.hacf.fr/user_avatar/forum.hacf.fr/clemalex/32/3691_2.png) [@Clemalex](https://forum.hacf.fr/u/Clemalex)\
**Post date:** [Mars 17, 2021, 6:45 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649/3 "2021-03-17T06:45:59Z")

</div>

> [@Pierre\_Ma](#):
>
> `mdi:help-circle`

Le problème vient de là.

Lorsque tu mets ton code dans l’interpréteur (_Outils de développement → Onglet MODELE_) tu te rendra compte que cela renvoi 2 icônes.

Si, par exemple, `sensor.statut_de_la_porte` renvoi `poule_bas` alors tu auras :

```auto
icon_template: >-
          mdi:garage-open-variantmdi:help-circle

```

Tu vois le soucis ? L’interpréteur concatène les deux. Il va donc aller chercher dans sa base l’icône `garage-open-variantmdi:help-circle` et comme il ne la trouve pas, il renvoi l’icône par défaut.

Tu devrais donc enlever `mdi-help-circle`.

---

<div class="post-metadata">

**Author:** ![Pierre\_Ma](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pierre_ma/32/670_2.png) [@Pierre\_Ma](https://forum.hacf.fr/u/Pierre_Ma)\
**Post date:** [Mars 17, 2021, 7:31 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649/4 "2021-03-17T07:31:08Z")

</div>

Ca fonctionne parfaitement, je voulais recréer un template, alors que j’en avait deja un dans le code dans l’ESP. Du coup ca faisait conflit 😅  
Merci pour le temps de reaction !

---

<div class="post-metadata">

**Author:** ![Clemalex](https://forum.hacf.fr/user_avatar/forum.hacf.fr/clemalex/32/3691_2.png) [@Clemalex](https://forum.hacf.fr/u/Clemalex)\
**Post date:** [Mars 17, 2021, 7:49 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649/5 "2021-03-17T07:49:49Z")

</div>

> [@Pierre\_Ma](#):
>
> Du coup ca faisait conflit

> [@Pierre\_Ma](#):
>
> ```auto
> - platform: template
> sensors:
> sensor.statut_de_la_porte:
> friendly_name: "Etat Porte poulailler"
> 
> ```

Il aurait fallu mettre dans ce cas :

```auto
- platform: template
  sensors:
    statut_de_la_porte_ha: #<--- le 'sensor.' n'est pas utile
    # j'ai ajouté le '_ha', et de l'autre côté tu pourrais mettre '_esp' par exemple
      friendly_name: "Etat Porte poulailler"

```

---

<div class="post-metadata">

**Author:** ![Pierre\_Ma](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pierre_ma/32/670_2.png) [@Pierre\_Ma](https://forum.hacf.fr/u/Pierre_Ma)\
**Post date:** [Mars 17, 2021, 8:01 UTC](https://forum.hacf.fr/t/icone-changeant-en-fonction-de-letat-de-la-porte-3-etats-possible/3649/6 "2021-03-17T08:01:00Z")

</div>

Ahh mais c’est super utile ca du coup ! je vais peut etre garder recréer mon template dans HA alors
