Carte mushroom à modifier

Bonjour,

Voici une carte qui fonctionne mais je souhaite la modifier mais je n’y arrive pas.

Il me semble que le code de départ vient de @BBE

Voici le visuel

image

Et voici le code

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    icon: mdi:pool
    icon_color: blue
    primary: Piscine
    secondary: >-
      {{ states("sensor.piscine_temperature") }} °C / {{
      states("sensor.piscine_battery") }} % batterie / {{
      states("sensor.piscine_linkquality") }} link
    tap_action:
      action: navigate
      navigation_path: /lovelace/piscine
    double_tap_action:
      action: none
    hold_action:
      action: none
    badge_icon: ""
    badge_color: ""
    multiline_secondary: false
    fill_container: true
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.volet_piscine
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:window-shutter-open
          {% else %}
            mdi:window-shutter
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            red
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Volet ON
          {% elif is_state(entity, 'off') %}
            Volet OFF
          {% endif %}
      - type: template
        entity: switch.filtration
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:fan
          {% else %}
            mdi:fan-off
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Filtration ON
          {% elif is_state(entity, 'off') %}
            Filtration OFF
          {% endif %}
      - type: template
        entity: switch.lumiere_piscine
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:light-flood-up
          {% else %}
            mdi:light-flood-down
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Lumière ON
          {% elif is_state(entity, 'off') %}
            Lumière OFF
          {% endif %}
    alignment: end
    card_mod:
      style: |
        ha-card {
          padding-top: 0px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
        }

Bon à présent mon, mes souhaits :

  • réalisé la rotation de l’icon fan si la filtration est en on
  • est-il possible d’avoir des icon sur la ligne avec la température, batterie

voici un code simplifié pour essai mais rien

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    icon: mdi:pool
    icon_color: blue
    primary: Piscine
    secondary: >-
      {{ states("sensor.piscine_temperature") }} °C / {{
      states("sensor.piscine_battery") }} % batterie / {{
      states("sensor.piscine_linkquality") }} link
    tap_action:
      action: navigate
      navigation_path: /lovelace/piscine
    double_tap_action:
      action: none
    hold_action:
      action: none
    badge_icon: ""
    badge_color: ""
    multiline_secondary: false
    fill_container: true
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.prise_essai_tempo
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:fan
          {% else %}
            mdi:fan-off
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Filtration ON
          {% elif is_state(entity, 'off') %}
            Filtration OFF
          {% endif %}
    alignment: end
    card_mod:
      style: |
        ha-icon {
          {% if is_state('switch.prise_essai_tempo', 'on') %}
            animation: spin 2s linear infinite;
          {% else %}
            animation: none;
          {% endif %}
        }
        @keyframes spin {
          0% { transform: rotate(0deg); }
          100% { transform: rotate(360deg); }
        }
        ha-card {
          padding-top: 0px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
        }

Merci d’avance

Salut

pour l’animation du fan, essaye ce code :

  - type: template
    entity: switch.filtration
    icon: |
      {% if is_state(entity, 'on') %} 
       mdi:fan
      {% elif is_state(entity, 'off') %} 
       mdi:fan-off            
      {% endif %}                                               
    icon_color: |-
      {% if is_state(entity, 'on') %} 
       green
      {% elif is_state(entity, 'off') %} 
       grey            
      {% endif %}
    tap_action:
      action: none
    hold_action:
      action: none
    card_mod:
      style: |
        {% if is_state('switch.filtration,'on') %}
         ha-card { animation: spin 2s linear infinite; }
         @keyframes blink { 50% {opacity: 0;} }
        {%- endif %}  

Je pense pas

Hello,

en même temps ça risque d’être compliqué vu que tu empiles les cartes verticalement avec custom:vertical-stack-in-card :wink:

tente avec horizontal-stack

1

il faudra peut-être encore ajuster le code

cdt

Merci pour votre aide mais avec horizontal ou autre

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    icon: mdi:pool
    icon_color: blue
    primary: Piscine
    secondary: >-
      {{ states("sensor.piscine_temperature") }} °C / {{
      states("sensor.piscine_battery") }} % batterie / {{
      states("sensor.piscine_linkquality") }} link
    tap_action:
      action: navigate
      navigation_path: /lovelace/piscine
    double_tap_action:
      action: none
    hold_action:
      action: none
    badge_icon: ""
    badge_color: ""
    multiline_secondary: false
    fill_container: true
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.prise_essai_tempo
        icon: |-
          {% if is_state(entity, 'on') %} 
           mdi:fan
          {% elif is_state(entity, 'off') %} 
           mdi:fan-off            
          {% endif %}                                               
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           green
          {% elif is_state(entity, 'off') %} 
           grey            
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Filtration ON
          {% elif is_state(entity, 'off') %}
            Filtration OFF
          {% endif %}
        tap_action:
          action: none
        hold_action:
          action: none
        card_mod:
          style: |
            {% if is_state('switch.prise_essai_tempo,'on') %}
             ha-card { animation: spin 2s linear infinite; }
             @keyframes blink { 50% {opacity: 0;} }
            {%- endif %} 
    alignment: end
    card_mod:
      style: |
        ha-icon {
          {% if is_state('switch.prise_essai_tempo', 'on') %}
            animation: spin 2s linear infinite;
          {% else %}
            animation: none;
          {% endif %}
        }
        @keyframes spin {
          0% { transform: rotate(0deg); }
          100% { transform: rotate(360deg); }
        }
        ha-card {
          padding-top: 0px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
        }

et

type: horizontal-stack
cards:
  - type: custom:mushroom-template-card
    icon: mdi:pool
    icon_color: blue
    primary: Piscine
    secondary: >-
      {{ states("sensor.piscine_temperature") }} °C / {{
      states("sensor.piscine_battery") }} % batterie / {{
      states("sensor.piscine_linkquality") }} link
    tap_action:
      action: navigate
      navigation_path: /lovelace/piscine
    double_tap_action:
      action: none
    hold_action:
      action: none
    badge_icon: ""
    badge_color: ""
    multiline_secondary: false
    fill_container: true
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.prise_essai_tempo
        icon: |-
          {% if is_state(entity, 'on') %} 
           mdi:fan
          {% elif is_state(entity, 'off') %} 
           mdi:fan-off            
          {% endif %}                                               
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           green
          {% elif is_state(entity, 'off') %} 
           grey            
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Filtration ON
          {% elif is_state(entity, 'off') %}
            Filtration OFF
          {% endif %}
        tap_action:
          action: none
        hold_action:
          action: none
        card_mod:
          style: |
            {% if is_state('switch.prise_essai_tempo,'on') %}
             ha-card { animation: spin 2s linear infinite; }
             @keyframes blink { 50% {opacity: 0;} }
            {%- endif %} 
    alignment: end
    card_mod:
      style: |
        ha-icon {
          {% if is_state('switch.prise_essai_tempo', 'on') %}
            animation: spin 2s linear infinite;
          {% else %}
            animation: none;
          {% endif %}
        }
        @keyframes spin {
          0% { transform: rotate(0deg); }
          100% { transform: rotate(360deg); }
        }
        ha-card {
          padding-top: 0px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
        }

Re,

je n’ai modifié que la ligne type du 1er code

type: horizontal-stack
cards:
  - type: custom:mushroom-template-card
    icon: mdi:pool
    icon_color: blue
    primary: Piscine
    secondary: >-
      {{ states("sensor.piscine_temperature") }} °C / {{
      states("sensor.piscine_battery") }} % batterie / {{
      states("sensor.piscine_linkquality") }} link
    tap_action:
      action: navigate
      navigation_path: /lovelace/piscine
    double_tap_action:
      action: none
    hold_action:
      action: none
    badge_icon: ""
    badge_color: ""
    multiline_secondary: false
    fill_container: true
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.volet_piscine
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:window-shutter-open
          {% else %}
            mdi:window-shutter
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            red
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Volet ON
          {% elif is_state(entity, 'off') %}
            Volet OFF
          {% endif %}
      - type: template
        entity: switch.filtration
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:fan
          {% else %}
            mdi:fan-off
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Filtration ON
          {% elif is_state(entity, 'off') %}
            Filtration OFF
          {% endif %}
      - type: template
        entity: switch.lumiere_piscine
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:light-flood-up
          {% else %}
            mdi:light-flood-down
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Lumière ON
          {% elif is_state(entity, 'off') %}
            Lumière OFF
          {% endif %}
    alignment: end
    card_mod:
      style: |
        ha-card {
          padding-top: 0px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
        }

image

cdt

oui @freetronic et j’ai ajouté le code @pascal_ha et cela ne fonctionne pas

Re,

je n’ai pas regardé au code de @pascal_ha

je me suis concentré sur le placement, c’est l’effet voulu?

type: horizontal-stack
cards:
  - type: custom:mushroom-template-card
    icon: mdi:pool
    icon_color: blue
    primary: Piscine
    secondary: >-
      {{ states("sensor.piscine_temperature") }} °C / {{
      states("sensor.piscine_battery") }} % batterie / {{
      states("sensor.piscine_linkquality") }} link
    tap_action:
      action: navigate
      navigation_path: /lovelace/piscine
    double_tap_action:
      action: none
    hold_action:
      action: none
    badge_icon: ""
    badge_color: ""
    multiline_secondary: false
    fill_container: true
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.volet_piscine
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:window-shutter-open
          {% else %}
            mdi:window-shutter
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            red
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Volet ON
          {% elif is_state(entity, 'off') %}
            Volet OFF
          {% endif %}
      - type: template
        entity: switch.filtration
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:fan
          {% else %}
            mdi:fan-off
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Filtration ON
          {% elif is_state(entity, 'off') %}
            Filtration OFF
          {% endif %}
      - type: template
        entity: switch.lumiere_piscine
        tap_action:
          action: none
        icon: |-
          {% if is_state(entity, 'on') %}
            mdi:light-flood-up
          {% else %}
            mdi:light-flood-down
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'on') %} 
            orange
          {% elif is_state(entity, 'off') %} 
            green
          {% endif %}
        content: |-
          {% if is_state(entity, 'on') %}
            Lumière ON
          {% elif is_state(entity, 'off') %}
            Lumière OFF
          {% endif %}
    alignment: end
    card_mod:
      style: |
        ha-card {
          padding-top: 18px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
        }

cdt

C’est étrange, chez moi cela fonctionne.


Bonjour,
il faut juste modifier le margin-top pour avoir les chips au même niveau que la carte mushroom template

@WarC0zes merci mais mon but n’est pas de l’avoir sur la même ligne mais de mettre en rotation mon fan si = on

j’ai mal compris.

tu ne peux pas mettre d’icone sur la ligne, mais tu peut utiliser des emoji.

image

      secondary: >-
        AV:🌡{{
        states("sensor.temperature_humidity_sensor_exterieur_av_temperature")
        |round(1)}}°C / 💧{{
        states("sensor.temperature_humidity_sensor_exterieur_av_humidity")
        |round(0)}}%

:thermometer::battery::link:

Salut
Pour la rotation :

type: custom:mushroom-chips-card
card_mod:
  style:
    mushroom-template-chip:nth-child(1)$: |
      {% if is_state('switch.vmc', 'on') %}
        ha-state-icon {
          animation: spin 1s linear infinite;
        }
      {% endif %}
      @keyframes spin {
        from {transform: rotate(0deg);}
        to {transform: rotate(360deg);}
      }
chips:
  - type: template
    entity: switch.vmc
    icon: mdi:fan
    icon_color: |-
      {% if is_state('switch.vmc', 'on') %}
        green
      {% endif %}
    content: |-
      {% if is_state('switch.vmc', 'on') %}
        {% if is_state('switch.vitesse_vmc', 'off') %}
          - 1 -
        {% else %}
          - 2 - 
        {% endif %}
      {% else %}
        Off
      {% endif %}
    tap_action:
      action: more-info

A adapter à tes entités bien sur.
De plus dans ton cas la chip est en seconde position du coup la ligne :

mushroom-template-chip:nth-child(1)$: |

Deviendra :

mushroom-template-chip:nth-child(2)$: |
1 « J'aime »

Ce sujet m’a donné envie de le faire et ça donne ça.

  - type: template
    entity: switch.p_nous_1_commutateur
    icon: mdi:fan
    tap_action:
      action: more-info
    hold_action:
      action: none
    icon_color: |-
      {% set var=states('sensor.p_nous_1_puissance') | float %}
      {% if var<=1 %} 
        grey
      {% elif var >=50 %}
        red
      {% else %}
        green
      {% endif %}
    content: ""
    card_mod:
      style: >
        ha-card { {{ 'animation: spin 3s linear infinite;' if
        (is_state('switch.p_nous_1_commutateur','on')) }} }  

Oui celà fonctionne aussi à condition de ne pas avoir de ‹ content › parce que avec ha-card c’est toute la carte qui tourne.
Rajoute juste un content sur ta card et admire le resultat :

- type: template
    entity: switch.p_nous_1_commutateur
    icon: mdi:fan
    tap_action:
      action: more-info
    hold_action:
      action: none
    icon_color: |-
      {% set var=states('sensor.p_nous_1_puissance') | float %}
      {% if var<=1 %} 
        grey
      {% elif var >=50 %}
        red
      {% else %}
        green
      {% endif %}
    content: "test"
    card_mod:
      style: >
        ha-card { {{ 'animation: spin 3s linear infinite;' if
        (is_state('switch.p_nous_1_commutateur','on')) }} }
2 « J'aime »

:rofl: effectivement ça fait pas pareil

1 « J'aime »

@David

Il te manque un ’ après le O de tempo.

('switch.prise_essai_tempo,'on')
('switch.prise_essai_tempo','on')

Essayé ce code complet, dans une nouvelle carte.(Je l’ai simplifié pour essai)

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    entity: switch.prise_essai_tempo
    icon: |
      {% if is_state(entity, 'on') %}
        mdi:toggle-switch
      {% elif is_state(entity, 'off') %}  
        mdi:toggle-switch-off    
      {% endif %}
    icon_color: |-
      {% if is_state(entity, 'on') %} 
       orange
      {% elif is_state(entity, 'off') %} 
       grey
      {% endif %}    
    primary: PRISE ESSAI
    secondary: ""
    layout: horizontal
    tap_action:
      action: toggle
    badge_icon: ""
    badge_color: ""
    card_mod:
      style: null
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: switch.prise_essai_tempo
        icon: |
          {% if is_state(entity, 'on') %} 
           mdi:fan
          {% elif is_state(entity, 'off') %} 
           mdi:fan-off             
          {% endif %}                                               
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           green
          {% elif is_state(entity, 'off') %} 
           grey             
          {% endif %}
        tap_action:
          action: toggle
        hold_action:
          action: more-info
        card_mod:
          style: |
            {% if is_state('switch.prise_essai_tempo','on') %}
             ha-card { animation: spin 2s linear infinite; }
             @keyframes blink { 50% {opacity: 0;} }
            {%- endif %}               
    alignment: end
    card_mod:
      style: |
        ha-card {
          padding-top: 0px;
          margin-top: -8px;
          padding-bottom: 8px;
          padding-left: 8px;
          padding-right: 8px;
         }
card_mod:
  style: |
    ha-card {
      margin: 10px;
      background: var(--mantle2);
    }

1 « J'aime »

@pascal_ha ok merci cela fonctionne
@Tochy effectivement avec et sans content c’est pas pareil, donc question il y a un autre moyen de placer un texte si off ou on ?

mais la carte tourne également dans les deux cas

1 « J'aime »

Regarde mon premier post plus haut tu as la solution pour la rotation de l’icône seulement

re,

du coup j’avais rien compris :sweat: désolé…

cdt