Mushroom custom:mushroom-chips-card template et decluttering_card

Bonjour,
pour mon tableau de bord j’utilise beaucoup de mushroom-card et notamment des templates chips
j’utilise aussi decluttering_card pour alléger mon code
tout fonctionne séparément, mais impossible de créer un template decluttering_card pour un chip template
avez vous rencontré ce problème ou réussi à les faire fonctionner ensemble?
mon decluttering_template

card:
  type: template
  entity: [[entity_1]]
  # icon: mdi:home-thermometer
  icon: |
    {% if state_attr([[entity_1]], 'preset_mode') == 'economy' %} 
    mdi:fire
    {% elif state_attr([[entity_1]], 'preset_mode') == 'comfort' %} 
    mdi:fire
    {% else %}
    mdi:snowflake
    {% endif %}           
  icon_color: |-
    {% if state_attr([[entity_1]], 'preset_mode') == 'economy' %} 
    blue
    {% elif state_attr([[entity_1]], 'preset_mode') == 'comfort' %} 
    red
    {% else %}
    grey
    {% endif %}

l’insertion dans mon code

      - type: custom:mushroom-chips-card # https://github.com/piitaya/lovelace-mushroom/blob/main/docs/cards/chips.md
        chips:
          - type: custom:decluttering-card
            template: chip_climate
            variables:
              - entity_1: climate.salon  

Salut Papoo,
Content de te revoir sur ce forum, ca faisait un bail depuis DZ… A l’époque ou je pompais tes scripts :grinning:
Cela ne doit rien changer mais

custom:decluttering-card

a été repris et devient https://github.com/brunosabot/streamline-card

J’ai fait le test et voici le code :

streamline_templates:
  chip_climate:
    card:
      type: custom:mushroom-chips-card
      chips:
        - type: template
          icon_color: red
          icon: >-
            {% if state_attr('[[entity]]', 'preset_mode') == 'eco' %} mdi:fire
            {% elif state_attr('[[entity]]', 'preset_mode') == 'comfort' %}
            mdi:fire {% else %} mdi:snowflake {% endif %}   

Et la carte :

type: custom:streamline-card
template: chip_climate
variables:
  entity: climate.bsb_lan_thermostat_radiateur

Bonjour Jeffodilo,
heureux de te lire ici.
ta solution m’impose de templatiser tout mes chips ce qui n’est pas le cas, je ne voulais templatiser qu’un seul chip pas la card complete

Salut,

Je pense que ça ne fonctionne pas. J’avais essayé à l’époque aussi.
Par contre il y a moyen de faire une carte auto-entity pour générer les chip templatisés.
J’avais ça pendant un moment ce genre de truc

  - type: custom:auto-entities
    view_layout:
      grid-area: menu
      alignement: center
    show_empty: false
    card:
      type: horizontal-stack
    card_param: cards
    filter:
      template: |
        {%- from 'myentities.jinja' import top_menu %}
        {{ top_menu()}}

Et dans un custom_templates

{%- macro top_menu() -%}
  {%- set ns = namespace(select=[]) -%}
  
  {# Structure du tableau entity_id ou extend_id

  Le tableau entity_id contient des sous-tableaux qui représentent chacune une entité de Home Assistant.
  Chaque sous-tableau contient les informations suivantes, dans cet ordre :

  0 (entity_id) : Le nom de l'entité dans Home Assistant, comme binary_sensor.jour_presence.
  1 (target_value) : La valeur que l'entité doit avoir pour que certaines actions (comme l'affichage d'une icône ou d'une couleur spécifique) soient effectuées. Par exemple, on ou une valeur dynamique comme states('sensor.tarif_heures_creuses_ttc').
  2 (icon_match) : L'icône à afficher lorsque l'entité a la valeur spécifiée dans target_value.
  3 (color_match) : La couleur de l'icône lorsque l'entité a la valeur spécifiée dans target_value.
  4 (icon_else) : L'icône à afficher lorsque l'entité n'a pas la valeur spécifiée dans target_value.
  5 (color_else) : La couleur de l'icône lorsque l'entité n'a pas la valeur spécifiée dans target_value.
  6 (display_match) : Une valeur spécifique à l'entité qui permet d'afficher l'icône uniquement si l'entité correspond pas à la valeur dans target_value. Par exemple, on ou une expression conditionnelle, si chaine vide l'affichage sera systématique.
  7 (attribute_to_display) : L'attribut de l'entité qui doit être utilisé pour le nom affiché. Si c'est "state", l'état de l'entité sera utilisé, sinon, l'attribut spécifié.
  8 (additional_string) : Une chaîne de texte supplémentaire qui sera ajoutée au contenu affiché. Elle peut être vide ou remplie avec une chaîne comme l'unité de mesure.
  9 (action) : "acion: none" par défaut, "action: toogle" par ex
  #}

  {%- set list=[
    ['binary_sensor.jour_presence','on','mdi:numeric-'~states('zone.home')~'-circle-outline','green','mdi:numeric-'~states('zone.home')~'-circle-outline','white','','friendly_name','',act_none],
    ['calendar.invites','on','mdi:account-group','blue','mdi:account-group','disabled','on','friendly_name','',act_none],
    ['calendar.conges','on','mdi:calendar','yellow','mdi:calendar','disabled','on','friendly_name','',act_more_info],
    ['calendar.teletravail','on','mdi:lan-connect','purple','mdi:lan-connect','disabled','on','friendly_name','',act_none],
    ['calendar.menage','on','mdi:spray-bottle','red','mdi:spray-bottle','disabled','on','friendly_name','',act_more_info],
    ['calendar.maison_vide','on','mdi:home-remove-outline','green','mdi:home-remove-outline','disabled','on','friendly_name','' if states('sensor.retour24h')|int(0) != 0 else states('sensor.retour24h'),act_more_info],
    ['sensor.retour24h','on','mdi:airplane-landing','green','mdi:airplane-landing','disabled','on','friendly_name','',act_more_info],
    ['sensor.tarif_actuel_ttc',states('sensor.tarif_heures_creuses_ttc'),'mdi:power-plug','green','mdi:power-plug','red','','state', ''~state_attr('sensor.tarif_actuel_ttc','unit_of_measurement'),act_conso_path],
    ['calendar.ecowatt_downgraded_level','off','mdi:power-plug','green','mdi:power-plug-off-outline','red','on','friendly_name','',act_more_info],
    ['binary_sensor.heliotropie','Isolation','mdi:sun-compass','blue','mdi:sun-compass','yellow','on','friendly_name','',act_more_info],
    ['input_select.mode_volets_canicule','Canicule','mdi:sun-thermometer','pink','mdi:beach','orange','' if states('input_select.mode_volets_canicule') != "Automatique" else '-','state','','action: more-info'],
  ] -%}

    {%- for chip in list -%}
    {%- if chip[7] == "state" -%}
      {%- set name = ct_state_translated(chip[0], 'fr') | title -%}
    {%- elif chip[7] != "" -%}
        {%- set name = state_attr(chip[0],chip[7])| title -%}
    {%- else-%}
        {%- set name = '' -%}
    {%- endif -%}
    {%- set icon = iif( states(chip[0]) == chip[1], chip[2], chip[4]) -%}
    {%- set icon_color = iif( states(chip[0]) == chip[1], chip[3], chip[5]) -%}
    {%- if states(chip[0]) == chip[6]  or chip[6] == '' -%}
      {%- set ns.select = ns.select + [{
        'type': 'template',
        'entity': chip[0],
        'card_mod': {
          'style': 'ha-card {background-color: rgba(25,25,25,60.5%) !important; }'
        },
        'icon': icon,
        'content': (name ~ ' ' ~ chip[8])|trim,
        'icon_color': icon_color,
        'tap_action': chip[9]
      }] -%}
    {%- endif -%}
  {%- endfor -%}
  {{ ns.select }}
{%- endmacro -%}

L’idée etait d’avoir le même menu peu partout sans repeter sa création, mais tu dois pouvoir piocher des idées pour faire tes templates

Je n’ai pas réussi non plus
Merci pour vos réponses