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

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.

  - 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 

quelqu’un à une idée pour mon problème ? :innocent:

Mon code actuel :

- 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

Est-ce ce que mon dernier post Garage Ouvre Toi! 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.

1 J'aime

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 :

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.

1 J'aime

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 :sweat_smile:
Merci pour le temps de reaction !

Il aurait fallu mettre dans ce cas :

- 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"
1 J'aime

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