[Carte] Mise en forme de room-card avec mushroom et tutos

ok j'ai compris comment ça fonctionne.

Autre question, comment tu affiches l'état de plusieurs lumières par exemple ?
image

La carte en question se base sur un groupe avec toutes les lumières.

ensuite c'est une carte mushroom template avec le texte secondaire en template:
image

type: custom:mushroom-template-card
primary: Lumières
secondary: |+
  {% set all = expand(entity)| list -%}
  {% set ND1 = all | selectattr('state','eq','on')|list|count%}
  {% set D1 = all | selectattr('state','eq','off')|list|count%}
  Allumées : {{ND1}} 
  Eteintes: {{D1}}

icon: |
  {% if is_state(entity, 'on') %} 
    mdi:lightbulb-group
  {% else %}
    mdi:lightbulb-group-off
  {% endif %}
icon_color: |
  {% if is_state(entity,'on') %}
    orange
  {% else %}
    grey
  {% endif %}
badge_icon: |-
  {% set all = expand(entity)| list -%} 
  {% set open1 = all | selectattr('state','eq','on')|list|count%}
  {% if open1 <= 9 %}
    mdi:numeric-{{open1}}
  {% elif open1 >= 10 %}
    mdi:numeric-9-plus
  {% else %}
    none
  {% endif %}
badge_color: |
  {% set all = expand(entity)| list -%} 
  {% set open1 = all | selectattr('state','eq','on')|list|count%}
  {% if open1 == 0 %}
    grey
  {% else %}
    orange
  {% endif %}
entity: light.toutes_les_lumieres
layout: horizontal
tap_action:
  action: navigate
  navigation_path: /lovelace-smartphone/lumieres
hold_action:
  action: call-service
  service: homeassistant.turn_off
  data: {}
  target:
    entity_id:
      - group.lumieres_toutes
double_tap_action:
  action: more-info
multiline_secondary: true
fill_container: false
view_layout:
  position: sidebar

Il est possible de faire autrement en mettant la partie template dans un sensor template et d'afficher ça avec une tuile:
image

le sensor:

    - name: Lumières
      unique_id: sensor.tuile_lumières
      icon: >-
        {% if is_state('light.toutes_les_lumieres', 'on') %}
          mdi:lightbulb-group
        {% elif is_state('light.toutes_les_lumieres', 'off') %}
          mdi:lightbulb-group-off
        {% else %}  
          mdi:lightbulb-group-off
        {% endif %}
      state: >-
        {% if is_state('light.toutes_les_lumieres', 'on') %}
          on
        {% else %}  
          off
        {% endif %}
      attributes:
        Compteur: >-
          {% set all = expand('light.toutes_les_lumieres')| list -%} 
            {{ all | selectattr('state','eq','on')|list|count }}/{{ all|list|count }}
        Allumées: >-
          {% set all = expand('light.toutes_les_lumieres')| list -%}
            {{  all | selectattr('state','eq','on')| map(attribute='name')|list }}
        Eteintes: >-
          {% set all = expand('light.toutes_les_lumieres')| list -%}
            {{  all | selectattr('state','eq','off')|map(attribute='name')|list }}

la tuile:

type: tile
features_position: bottom
vertical: false
entity: sensor.tuile_lumieres
name: Lumières
color: accent
tap_action:
  action: navigate
  navigation_path: /lovelace-smartphone/lumieres
icon_tap_action:
  action: more-info
state_content:
  - Compteur
  - Allumées
grid_options:
  columns: 6
  rows: 2

ok. Et donc tu arrives aussi à récupérer l’état pour savoir si au moins une lumière est allumée vu que tu change la couleur de l’icone…c’est ça ?

Dans le premier cas c’est le groupe qui renvoie l’état.

Dans le second cas le code est dans le sensor (et c’est basé sur le même groupe…):

      state: >-
        {% if is_state('light.toutes_les_lumieres', 'on') %}
          on
        {% else %}  
          off
        {% endif %}

Bon j’avance avec ton tuto…J’ai cependant un truc que je pige pas .

je me bats avec une mushroom. Je veux afficher le nombre de volets ouverts ou alors qu’ils sont tous fermés.
Quand je mets 3 volets marche pas. Si j’en mets que 2 ça fonctionne :person_facepalming:t2::person_facepalming:t2:. Une idée ?

  - type: custom:mushroom-template-card
    primary: Volets
    secondary: >
      {% set shutters = [
        states.cover.volet_bureau_cover_0,
        states.cover.volet_salon_cover_0
        states.cover.volet_salle_a_manger_cover_0
      ] %}
 
      {% set total_shutters = shutters | length %}
 
      {% set open_shutters = shutters | selectattr('state', 'eq', 'open') | list
      | count %}
 
 
      {# Affiche le nombre de volets ouverts et le total #}
 
      {% if open_shutters > 0 %}
        {{ open_shutters }} / {{ total_shutters }} ouvert
      {% else %}
        Tous fermés
      {% endif %}

Salut
Peut être que tu as oublié un séparateur du style « , » entre tes différents volets.

Le nouveau design des area card de la 2025.7 semble plutôt pas mal ! Hâte de tester ça :slight_smile:

whouau ? je vais lire attentivement ce sujet qui correspond pile poil à mes besions !
j'ai par hasard trouve une card que j'ai commencé a utiliser , mais comment savoir a quoi elle correspond ?

Bonjour,
modifie ta capture, on voit ton DNS dans la barre d’adresse et en bas de la page. Ce n’est pas faute de te l’avoir déja dit plusieurs fois.

regarde le nom que porte la carte, en éditant la carte et passe en mode YAML. Regarde dans type: xxxx.

Ah Me… je fais de suite
Type: areas
-c’est donc la version qui va avec la 2025-7-1

Oui, mais elle est trop bridée à mon gout cette carte pièce.

Oui, mais elle est trop bridée à mon gout cette carte pièce.

je vais lire dès demain ce sujet et voir , là je ne suis pas chez moi

à suivre

Avec le custom-card-features en complément, c’est pas trop mal je trouve.

Oui, mais ca reste de la bidouille. Rien en natif …

Hello à tous !!
Effectivement j'ai testé vite fait cette nouvelle carte aera, mais à mon goût trop bridée...

Je n'ai toujours pas trouvé mieux. J'ai dailleurs encore amélioré la carte :

Edit avec le code, à adapter :slight_smile: :

  - type: custom:vertical-stack-in-card
    cards:
      - type: custom:mushroom-template-card
        entity: light.lampe_sp
        icon: mdi:sofa
        primary: Salon
        card_mod:
          style:
            mushroom-shape-icon$: |
              .shape {
                {% if states(config.entity) == 'on' and state_attr(config.entity, 'brightness') != none %}
                  background: linear-gradient(
                    0deg,
                    rgba(255, 152, 0, 1) calc({{ state_attr(config.entity, 'brightness') | float / 2.55 }}%),
                    rgba(255, 152, 0, 0.2) 0.1%
                  ) !important;
                {% endif %}
              }
            .: |
              ha-card {
                width: 500px;
                left: -20px;
                top: -10px;
                height: 80px !important;
                --icon-size: 80px;
              }
              ha-state-icon {
                {% if is_state(config.entity, 'on') %}
                  color: white !important;
                {% else %}
                  color: grey !important;
                {% endif %}
              }
        secondary: >
          🌡️{{ states("sensor.interieur_temperature") | float(0) | round(0) |
          default('N/A') }}°C  💧{{ states("sensor.interieur_humidite") |
          float(0) | round(0) | default('N/A') }}%   🚪{{
          states("sensor.compteur_porte_salon") | default('N/A') }}   🪟{{
          states("sensor.compteur_fenetres_salon") | default('N/A') }}   ☀️{{
          states("sensor.presence_sensor_fp2_c57c_light_sensor_light_level") |
          default('N/A') }} lux   💡{{ states("sensor.compteur_lumieres_salon")
          | default('N/A') }}  {% if is_state('light.lampe_sp', 'on') and
          state_attr('light.lampe_sp', 'brightness') != none %}
            - {{ (state_attr('light.lampe_sp', 'brightness') | float(0) / 2.54) | round(0) }}%
          {% endif %}
        layout: horizontal
        tap_action:
          action: toggle
      - type: custom:mini-graph-card
        entities:
          - entity: sensor.interieur_temperature
            name: Temperature
        height: 80
        hours_to_show: 24
        points_per_hour: 2
        line_width: 1
        animate: true
        show:
          name: false
          icon: false
          state: false
          legend: false
          fill: fade
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-light-card
        primary_info: none
        secondary_info: none
        entity: light.lampe_tv
        tap_action:
          action: toggle
        icon_color: accent
        card_mod:
          style:
            mushroom-shape-icon$: |
              .shape {
                {% if states(config.entity) == 'on' and state_attr(config.entity, 'brightness') != none %}
                  {% if state_attr(config.entity,'rgb_color') != none %}
                    background: linear-gradient(0deg, rgba{{ (state_attr(config.entity,'rgb_color')[0] * 1, state_attr(config.entity,'rgb_color')[1] * 0.85, state_attr(config.entity,'rgb_color')[2] * 0.85) + (1,) }} calc({{ state_attr(config.entity,'brightness') | float / 2.55 }}%), rgba{{ (state_attr(config.entity,'rgb_color')[0] * 0.85, state_attr(config.entity,'rgb_color')[1] * 0.85, state_attr(config.entity,'rgb_color')[2] * 0.85) + (0.2,) }} 0.1%) !important;
                  {% else %}
                    background: linear-gradient(0deg, rgba(255, 152, 0, 1) calc({{ state_attr(config.entity,'brightness') | float / 2.55 }}%), rgba(255, 152, 0, 0.2) 0.1%) !important;
                  {% endif %}
                {% endif %}
              }
            .: |
              ha-state-icon {
                {% if is_state(config.entity, 'on') %}
                  color: white !important;  # Couleur de l'icône lorsque l'entité est allumée
                {% else %}
                  color: grey !important;  # Couleur de l'icône lorsque l'entité est éteinte
                {% endif %}
              }
      - type: custom:mushroom-fan-card
        entity: binary_sensor.fil_pilote_salon
        icon_animation: true
        primary_info: none
        secondary_info: none
        show_oscillate_control: false
        show_percentage_control: false
        show_direction_control: false
        tap_action:
          action: more-info
      - type: custom:mushroom-entity-card
        primary_info: none
        secondary_info: none
        entity: binary_sensor.presence_sensor_fp2_c57c_presence_sensor_1
        fill_container: false
        tap_action:
          action: more-info
        icon_color: red
      - type: custom:mushroom-light-card
        primary_info: none
        secondary_info: none
        entity: light.lampe_aquarium
        tap_action:
          action: toggle
      - type: custom:mushroom-entity-card
        primary_info: none
        secondary_info: none
        entity: input_button.infos
        fill_container: false
        tap_action:
          action: navigate
          navigation_path: /lovelace/salon

Ohhh, j’aime beaucoup !
Tu pourrais partager le code de ta carte STP ? :pray:

bon je commence à lire et sujet et comme un boulet je butte dès le départ

j'en suis aux premiers messages j'en ai encore 436 à lire !!

je ne trouve pas la room card ??

Avant de lire les 436 messages, commence par lire à fond le premier que j'essaie de tenir à jour, ce sera plus digeste...
Puis éventuellement pour avoir les dernières actus lire le fil "à l'envers" depuis la fin...

En effet, la room card, ça n'existe pas (encore)... Donc tu risque de chercher longtemps... Il y a donc peu de solutions:

  • soit tu utilise la area card (qui est une carte core) qui a été mise à jour dans la 2025.7, mais qui est limitée, et qui n'est pas l'objet de ce fil... (Je ne ferai pas de support après vente de cette carte...)
  • soit tu fais comme dans mon premier message et tu te la fabriques toi même.

Si tu veux faire toi même, de mon point de vue, le mieux c'est de suivre le tuto que j'ai fait. Dans le premier message du fil, il faut cliquer sur les triangles pour "déplier" les explications au fur et à mesure. Et donc, si tu cliques sur tuto pas à pas, tu auras toutes les explications (là encore en cliquant sur les triangles...): Le lien direct du tuto...

Ensuite une fois que tu as compris comment ça marche, tu peux aller voir dans le premier message le raccourcis "vos réalisations" pour t'inspirer du code des copains, là encore j'ai remis dans le premier message tous les posts où des membres du forum on posté leurs réalisations et leur code.

@bbe
merci pour ces compléments , je vais faire l’idée n’est pas de vous emmerder

Loin de moi l’idée de ne pas vouloir aider…

Mais il y a déjà toutes les infos que je peux apporter dans le premier post. Par contre il faut bien le lire.

Le premier post détaille en particulier:

  • ce que j’ai fait chez moi (avec mon code)
  • le tuto pour une version simplifiée qui couvre 90% des besoins de tout le monde (avec le code et les réglages pas à pas avec capture d’écran)
  • les réalisations des copains avec des raccourcis vers les endroits de la discussion où est donné leur code…

Normalement ça permet de démarrer sereinement…

Encore faut il lire calmement et cliquer sur les triangles car il y a beaucoup d’info…