Mushroom-chips-card qui montre l'état d'un capteur d'ouverture

Hello tout le monde.

Je tente de créer une chips-card pour me montrer l’état de mon capteur d’ouverture sonoff sous forme d’icône. Ouvert, il est rouge avec une icône port ouverte et fermé, il est vert avec l’icône porte fermé.

seulement voilà, lorsque je formate la carte et l’enregistre, l’icône s’affiche correctement mais en rentrant à nouveau sur le mode édition de la carte, je constate que l’indentation a complètement changé automatiquement. Ce code provient d’une autre de mes carte qui lui, ne change pas et reste bien comme je l’ai fait au départ… La seule manip’ que je fais en copiant, c’est de modifier le capteur cible.
je vous montre le code:

type: horizontal-stack
  cards:
    - type: custom:mushroom-chips-card
      chips:
        - type: template
          tap_action: none
          entity: binary_sensor.capteur_fenetre_chambre_parents_contact
          icon: >
            {% set
            state=states('binary_sensor.capteur_fenetre_chambre_parents_contact')
            %}

            {% if state=='off' %}

            phu:panel-door-close

            {% elif state=='on' %}

            phu:panel-door-open    

            {% endif %}
          icon_color: >-
            {% set
            state=states('binary_sensor.capteur_fenetre_chambre_parents_contact')

            %}

            {% if state=='off' %}

            green

            {% elif state=='on' %}

            red

            {% endif %}
          content: >
            {% set

            state=states('binary_sensor.capteur_fenetre_chambre_parents_contact')

            %}

et le code de la carte d’origine:

type: horizontal-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        tap_action: none
        entity: binary_sensor.capteur_fenetre_salon_contact
        icon: |
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          phu:panel-door-close
          {% elif state=='on' %}
          mdi:panel-door-open    
          {% endif %}
        icon_color: |-
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          green
          {% elif state=='on' %}
          red
          {% endif %}
        content: '{% set state=states(''binary_sensor.capteur_fenetre_salon_contact'') %}'

J’ai beau remettre en forme à la main avec les caractères spéciaux devant les éléments icon, ca revient toujours après enregistrement de la carte.
Quelqu’un arrive à voir ce que je fait de mal dans ce code?

Bonjour,
Ta oublier un bout de code pour la partie content:, j’ai corriger le code et une erreur d’icone mdi:panel-door-open au lieu de phu:panel-door-open:

chip template

type: horizontal-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        tap_action: none
        entity: binary_sensor.capteur_fenetre_salon_contact
        icon: |
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          phu:panel-door-close
          {% elif state=='on' %}
          phu:panel-door-open    
          {% endif %}
        icon_color: |-
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          green
          {% elif state=='on' %}
          red
          {% endif %}
        content: |-
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          Fermé
          {% else %}
          Ouvert
          {% endif %}

Merci @WarC0zes .

Pour le content, je voudrais afficher uniquement l’icône sans texte. Ca fonctionne bien sur la carte du deuxième code que je montre.

Et le mdi, ca fait déjà 3 fois que je remet phu… pourquoi il change tout seul??? :exploding_head::thinking:
Cette carte va me rendre chèvre :sweat_smile::sweat_smile:

Supprime la partie content et tu aura plus de satut:

chip template2

type: horizontal-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        tap_action: none
        entity: binary_sensor.capteur_fenetre_salon_contact
        icon: |
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          phu:panel-door-close
          {% elif state=='on' %}
          phu:panel-door-open    
          {% endif %}
        icon_color: |-
          {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
          {% if state=='off' %}
          green
          {% elif state=='on' %}
          red
          {% endif %}

Normal que tu vois rien avec ton deuxième code, vu que la partie content est pas correcte sa affiche rien.

Ta bien ajouter ces lignes dans ton configuration.yaml pour les icones PHU ?

frontend:
  extra_module_url:
    - /hacsfiles/custom-brand-icons/custom-brand-icons.js

Ben si, justement, le deuxième code avec le capteur salon marche bien. Le code demande d’afficher l’état du capteur ou je me trompe?

Je vois ça a midi ou ce soir car je suis au taf mais je pense que oui

ton code est incorrecte, et comme c’est incorrecte rien s’affiche. La partie content: est pour afficher un statut, comme tu le veut pas ca ne sert a rien de l’écrire dans le code de la carte :

content: '{% set state=states(''binary_sensor.capteur_fenetre_salon_contact'') %}'

Ta des doubles ' dans ''binary_sensor.capteur_fenetre_salon_contact'' c’est incorrecte et c’est pour ca que rien s’affiche et que tu croit que le code est bon.

D’accord je comprend à quoi sert la ligne content mais pensais qu’elle était nécessaire pour que la carte fonctionne correctement. J’aurais du tester sans cette ligne.

Par contre, je vien de faire un copié collé de la correction que tu as posté plus haut en modifiant les binary_sensor pour qu’ils correspondent à la pièce ou se trouve la carte et encore là, le code est remis en forme par le lovelace…

  type: horizontal-stack
  cards:
    - type: custom:mushroom-chips-card
      chips:
        - type: template
          tap_action: none
          entity: binary_sensor.capteur_fenetre_chambre_parents_contact
          icon: >
            {% set
            state=states('binary_sensor.capteur_fenetre_chambre_parents_contact')
            %}

            {% if state=='off' %}

            phu:panel-door-close

            {% elif state=='on' %}

            phu:panel-door-open    

            {% endif %}
          icon_color: >-
            {% set
            state=states('binary_sensor.capteur_fenetre_chambre_parents_contact')
            %}

            {% if state=='off' %}

            green

            {% elif state=='on' %}

            red

            {% endif %}

pourquoi dans le dashboard de la chambre, il est remis en forme alors que la même carte avec le même code sur le dashboard du salon ne bouge pas??

J’ai aussi vérifié le configuration.yaml et j’ai bien la ligne extra module url dans la partie frontend

EDIT: Pour l’instant, le phu reste en place donc ce n’est plus le problème de la carte. je regarderai de temps en temps

Tu passe par quel éditeur pour faire t’es carte ?

Aucun soucis pour copier/coller le code enregistrer et éditer, c’est bien formater.

Je fait directement sur l’éditeur de code de HA. je vais tester en copiant le code dans une nouvelle carte pour voir

Alors, j’ai créé une nouvelle carte dans une pile horizontale sur un autre dashboard et le soucis est le même: je copie le code que tu as modifié (celui sans la balise « content »), j’enregistre, je reviens sur l’édition de la carte et l’indentation est dans son état d’origine. Je modifie les capteurs (de binary_sensor.capteur_salon_contact, je change les trois ligne pour binary_sensor.capteur_fenetre_chambre_arriere_contact) j’enregistre, je reviens dans le mode édition et là, l’indentation a changé! :crazy_face:

type: horizontal-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        tap_action: none
        entity: binary_sensor.capteur_fenetre_chambre_arriere_contact
        icon: >
          {% set
          state=states('binary_sensor.capteur_fenetre_chambre_arriere_contact')
          %}

          {% if state=='off' %}

          phu:panel-door-close

          {% elif state=='on' %}

          phu:panel-door-open    

          {% endif %}
        icon_color: >-
          {% set
          state=states('binary_sensor.capteur_fenetre_chambre_arriere_contact')
          %}

          {% if state=='off' %}

          green

          {% elif state=='on' %}

          red

          {% endif %}

sur la capture, le résultat quand j’enregistre sans changer les capteurs

C’est un soucis de longueur de nom, chez pas si on peut le corriger.

Avec trop de caractère ca change | en >

J’ai un soucis identique mais tout fonctionne :wink:

Ha ok. Si tu dis que ça ne posera pas de soucis alors je te fais confiance :slightly_smiling_face:

Je n’ai pas trouve la doc qui explique à quoi servent ces caractères spéciaux au moment de l’appel de la condition mais je suppose que chacun à sa propre utilité :wink:

Merci pour ton aide sur ce sujet en tout cas​:slightly_smiling_face::wink:

Bonsoir @WarC0zes
je remonte ce sujet car j’ai un soucis avec le code de cette chips card.

tout fonctionnait bien jusqu’à hier mais je me suis rendu compte que 3 de mes capteurs d’ouverture sonoff étaient hors ligne sur z2m. J’ai du les supprimer pour les réinstaller et depuis, l’icône de la chips-card ne s’affiche plus.
J’ai tenté de copier coller l’ID complet du sensor dans les paramètres au cas ou je n’aurais pas remis le même nom (faute de frappe ou oubli d’un mot) mais rien ne change.
J’ai aussi testé avec l’ID d’un des deux autre capteur que j’ai réinstallé et là, le code fonctionne bien et l’icone s’affiche correctement.

je n’arrive pas à comprendre ce qu’il se passe… l’id de l’entité dans HA et dans z2m correspondent bien et je n’ai rien changé dans le code à part les tests en modifiant l’id de l’entité par un autre.

il y a quelque chose que j’ai du faire de travers mais quoi?

EDIT: je viens de redemarrer HA et vider mon cache, ca ne change rien non plus. toujours pas d’icone qui apparait

je remets le code pour plus de facilité

type: custom:mushroom-chips-card
chips:
  - type: template
    tap_action: none
    entity: binary_sensor.capteur_fenetre_salon_contact
    icon: |
      {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
      {% if state=='off' %}
      phu:panel-door-close
      {% elif state=='on' %}
      phu:panel-door-open    
      {% endif %}
    icon_color: |-
      {% set state=states('binary_sensor.capteur_fenetre_salon_contact') %}
      {% if state=='off' %}
      green
      {% elif state=='on' %}
      red
      {% endif %}

Bon, je viens de supprimer à nouveau le capteur pour le re- appairer et l’icone est réapparut…
L’appariage précédent à surement du mal se passer.

problème dans Icon: | ??
Essaie comme ça, un peu plus simple

type: custom:mushroom-chips-card
chips:
  - type: template
    tap_action: 
      action: none
    entity: binary_sensor.capteur_fenetre_salon_contact
    icon: "{{ is_state(entity, 'off') | iif('phu:panel-door-close','phu:panel-door-open') }}"
    icon_color: "{{ is_state(entity, 'off') | iif('green','red') }}"

Abel

Merci d’avoir répondu @Abel.
peux-tu me dire ou tu vois un problème dans icon|? je suis encore assez novice dans le jinga2 et ne vois pas ou cela pourrait poser soucis.

Je retiens ta syntaxe au cas ou j’ai de nouveau le soucis. Je me permet juste de signaler que dans l’éditeur de modèle, la répose est donnée si je mets l’entité entre apostrophes → '{{ is_state('entity', 'off') | iif('phu:panel-door-close','phu:panel-door-open ') }}

Si tu copies dans l’éditeur visuel, pas besoin d’apostrophe

image

Si tu copies dans l’editeur de code, ma syntaxe fonctionnea et sera par la suite modifíée par HA

du genre

type: custom:mushroom-chips-card
chips:
  - type: template
    entity: input_boolean.examples_scene_1
    icon: |2-
        {{ is_state(entity, 'off') |
        iif('phu:panel-door-closed','phu:panel-door-open') }}
    icon_color: '{{ is_state(entity, ''off'') | iif(''green'',''red'') }}'

ou bien

type: custom:mushroom-chips-card
chips:
  - type: template
    entity: input_boolean.examples_scene_1
    icon: >-
      {{ is_state(entity, 'off') |
      iif('phu:panel-door-closed','phu:panel-door-open') }}
    icon_color: '{{ is_state(entity, ''off'') | iif(''green'',''red'') }}'

entity est une variable et n’est pas entre apostrophes.

Pourtant, quand j’essaie sans apostrophe, j’ai ce resultat:

et avec les apostrophes:

Salut Gram,
Ok, si tu utilises binary_sensor…. Effectivement , il faut les apostrophes.
Une fois dans lune carte, tu peux utiliser par example is_state(‘binary_sensor.xxxx’ ,’off’) ou is_state(entity, ‘off’) si tu as definis entity: au niveau de la carte. L’avantage de la seconde notation au niveau des cartes est que si tu veux la meme fonction pour une autre porte, tu peut faire un copier coller, et uniquement replacer enity: avec celle de porte2, porte3…le is_state(entity,’off’) lui n’aura pas besoin d etre changé

Abel