Badge mushroom (volets/lumières/portes)

Bonsoir,

Ayant une petite fenêtre de temps je me suis lancé dans l’amélioration de mon dashboard et je rencontre quelques difficultés et je me tourne vers vous…
Je souhaite pouvoir renseigner le nombre de fenêtres/portes ouvertes dans un badge, de même pour le nombre de lumières et de volets ouverts…mais j’ai des chiffres incohérents par rapport à la réalité…


nb

Le nombre exact se situe dans la deuxième photo à savoir 1 pour les lumière et 2 pour les ouvrants et les volets sont aux nombres de 6 fermés…et je n’ai pas les mêmes chiffres sur mes badges…

Voici le code de ma carte:

type: horizontal-stack
cards:
  - type: custom:mushroom-template-card
    primary: Sécurité
    icon: mdi:shield
    icon_color: orange
    layout: vertical
    tap_action:
      action: navigate
      navigation_path: /lovelace/securite
    badge_icon: |
      {% set all = expand('nb_portes')| list -%}  {% set open1 = all |
      selectattr('state','eq','on')|list|count%} {% set closed1 = all |
      selectattr('state','eq','off')|list|count%}       {% if open1 == 1 %}
        mdi:numeric-1
      {% elif open1 == 2 %}
        mdi:numeric-2
      {% elif open1 == 3 %}
        mdi:numeric-3
      {% elif open1 == 4 %}
        mdi:numeric-4
      {% elif open1 == 5 %}
        mdi:numeric-5
      {% elif open1 == 6 %}
        mdi:numeric-6
      {% elif open1 == 7 %}
        mdi:numeric-7
      {% elif open1 == 8 %}
        mdi:numeric-8
      {% elif open1 == 9 %}
        mdi:numeric-9
      {% elif open1 == 10 %}
        mdi:numeric-10
      {% else %}
        mdi:numeric-5
      {% endif %}
    badge_color: |
      {% set all = expand('nb_portes')| list -%} 
      {% set open = all | selectattr('state','eq','on')|list|count%}
      {% if open == 0 %}
        orange
      {% else %}
        red
      {% endif %}
    secondary: ""
  - type: custom:mushroom-template-card
    primary: Lumières
    secondary: ""
    icon: mdi:lightbulb
    layout: vertical
    icon_color: blue
    tap_action:
      action: navigate
      navigation_path: /lovelace/lumieres
    badge_icon: |
      {% set all = expand('nb_lumières_allumées')| list -%} 
      {% set on1 = all | selectattr('state','eq','on')|list|count%}
      {% if on1 == 0 %}
        mdi:numeric-0
      {% elif on1 == 1 %}
        mdi:numeric-1
      {% elif on1 == 2 %}
        mdi:numeric-2
      {% elif on1 == 3 %}
        mdi:numeric-3
      {% elif on1 == 4 %}
        mdi:numeric-4
      {% elif on1 == 5 %}
        mdi:numeric-5
      {% elif on1 == 6 %}
        mdi:numeric-6
      {% elif on1 == 7 %}
        mdi:numeric-7
      {% elif on1 == 8 %}
        mdi:numeric-8
      {% else %}
        none
      {% endif %}
    badge_color: |
      {% set all = expand('nb_lumières_allumées')| list -%} 
      {% set open1 = all | selectattr('state','eq','on')|list|count%}
      {% if open1 == 0 %}
        red
      {% else %}
        orange
      {% endif %}
  - type: custom:mushroom-template-card
    primary: Volets
    secondary: ""
    icon: mdi:window-shutter
    multiline_secondary: false
    icon_color: purple
    layout: vertical
    tap_action:
      action: navigate
      navigation_path: /lovelace/volets
    badge_icon: |-
      {% set all = expand('nb_volets')| list -%} 
      {% set open1 = all | selectattr('state','eq','on')|list|count%}
      {% if open1 == 1 %}
        mdi:numeric-1
      {% elif open1 == 2 %}
        mdi:numeric-2
      {% elif open1 == 3 %}
        mdi:numeric-3
      {% elif open1 == 4 %}
        mdi:numeric-4
      {% elif open1 == 5 %}
        mdi:numeric-5
      {% elif open1 == 6 %}
        mdi:numeric-6
      {% elif open1 == 7 %}
        mdi:numeric-7
      {% elif open1 == 8 %}
        mdi:numeric-8
      {% else %}
        none
      {% endif %}
    badge_color: |
      {% set all = expand('nb_volets')| list -%} 
      {% set open1 = all | selectattr('state','eq','on')|list|count%}
      {% if open1 == 0 %}
        green
      {% else %}
        red
      {% endif %}
  - type: custom:mushroom-template-card
    primary: T°
    secondary: ""
    icon: mdi:temperature-celsius
    layout: vertical
    tap_action:
      action: navigate
      navigation_path: /lovelace/tv
    icon_color: "#f1d08d"

Dans mes template.yaml, j’ai bien les sensor nb_lumières_allumées, nb_volets et nb_portes.

De plus, j’essaie aussi d’uniformiser les couleurs pour chaque types, et je souhaiterai pouvoir mettre en violet les volets…


Est il possible d’avoir pratiquement la même icône en violet sans le gris?
Voici mon code:

type: custom:mushroom-cover-card
entity: cover.volets_rdc
show_position_control: false
show_buttons_control: true
name: RDC
card_mod:
  style: |
    ha-state-icon {
      color: purple;
    }
    mushroom-shape-icon$: |
       .shape {
        --shape-color: orange !important;
    }

Je pense que sur cette partie mon code est faux mais je ne trouve pas mon erreur !

Un grand merci pour votre patience et votre aide.
Bonne soirée.

Salut

Si tu as les sensors pourquoi ne pas les utiliser.
Voici mon code en exemple pour le badge_icon.

Si cela peut t’aider.

badge_icon: |-
  {% if is_state('sensor.total_lumieres_allumees', '0') %}  
  {% elif (states('sensor.total_lumieres_allumees')|float(0) == 1 ) %}
     mdi:numeric-1
  {% elif (states('sensor.total_lumieres_allumees')|float(0) == 2 ) %}
     mdi:numeric-2
  {% elif (states('sensor.total_lumieres_allumees')|float(0) == 3 ) %}
     mdi:numeric-3
  {% elif (states('sensor.total_lumieres_allumees')|float(0) == 4 ) %}
     mdi:numeric-4  
   {% elif (states('sensor.total_lumieres_allumees')|float(0) == 5 ) %}
     mdi:numeric-5
  {% elif (states('sensor.total_lumieres_allumees')|float(0) > 5 ) %}
     mdi:plus     
  {% endif %}

voila un code optimiser est plus lisible le nombres de lignes est diviser presque par 2 ici et qui devrait te remonter les bonne infos.

  • Si tu as déjà défini des sensors comme sensor.nb_volets_ouverts, tu peux remplacer expand('nb_volets') par simplement states('sensor.nb_volets_ouverts') | int.
  • Pour un style encore plus propre, les badge_icon pourraient être gérés via des templates dans template.yaml (si beaucoup de réutilisation).
type: horizontal-stack
cards:
  - type: custom:mushroom-template-card
    primary: Sécurité
    icon: mdi:shield
    icon_color: orange
    layout: vertical
    tap_action:
      action: navigate
      navigation_path: /lovelace/securite
    badge_icon: >
      {% set open1 = expand('nb_portes') | selectattr('state','eq','on') | list | count %}
      {% if open1 <= 9 %}
        mdi:numeric-{{ open1 }}
      {% else %}
        mdi:numeric-9-plus
      {% endif %}
    badge_color: >
      {% set open1 = expand('nb_portes') | selectattr('state','eq','on') | list | count %}
      {{ 'orange' if open1 == 0 else 'red' }}
    secondary: ""

essaie ce code

type: custom:mushroom-cover-card
entity: cover.volets_rdc
name: RDC
show_position_control: false
show_buttons_control: true
icon_type: i.e. icon  # ou shape selon ton config


card_mod:
  style: |
    ha-state-icon {
      color: purple !important;
    }

Tu a un aussi un sujet ici qui peut t’intéresser

Pour les volets, tu as les cartes tuiles natives à HA avec choix de couleur et options

Bonsoir tout le monde,

un grand merci à vous tous pour vos propositions…j’obtiens enfin ce que je souhaite…

Concernant la couleur des volets, voici ce que j’obtiens:


Quand les volets sont fermés à 100%, j’ai bien ce que je souhaite mais dès qu’ils sont ouverts ou semi ouverts ils sont avec le fond bleu…

Bonne soirée.

dans les cartes Mushroom ça s’active automatiquement pour indiquer que l’entité est « active » (autrement dit : ouverte ou en mouvement).