Migration custom-ui vers card-mod

Bonjour,

l’auteur de custom-ui disant clairement qu’il faut mieux utiliser card-mod, j’essaie de migrer de l’un vers l’autre.

All modifications in my entire config are now implemented using Card-mod. I am aware this only works in the actual cards in the View, and not on the more-info dialog of entities. It is an acceptable trade-off between optimal desktop customization, and optimal core handling of the state machine.

J’ai donc regardé un peu les exemples pour transformer ceci :

homeassistant:
  customize_domain:
    cover:
      templates:
        icon: >-
          if (attributes.position == 0) return '';
          if (attributes.position < 33) return 'custom-shutter:shutter-3';
          if (attributes.position < 66) return 'custom-shutter:shutter-2';
          if (attributes.position < 100) return 'custom-shutter:shutter-1';
          return 'custom-shutter:shutter-0';

en celà :

homeassistant:
  customize_domain:
    cover:
      card_mod:
        style: |
          :host {
            --card-mod-icon:
              {% set position = state_attr(config.entity, 'position') | int(default=0) %}
              {% if position == 'unknown' %} mdi:window-shutter-alert
              {% elif position == 0 %} custom-shutter:shutter-4
              {% elif position < 33 %} custom-shutter:shutter-3
              {% elif position < 66 %} custom-shutter:shutter-2
              {% elif position < 100 %} custom-shutter:shutter-1
              {% else %} custom-shutter:shutter-0
              {% endif %};
          }

Le soucis étant que ça ne marche pas et je ne comprends pas ce que j’ai fait de mal.

Salut,

J’ai pas d’idée du pourquoi ça ne marche pas, mais techniquement je ne vois pas pourquoi tu as ces 2 lignes
En ajoutant | int(default=0), tu ne peux pas sortir avec autre chose qu’un entier (celui de l’attribut, ou 0 sinon).
Donc le test d’un string juste derrière ça me semble étonnant

Dit comme ça je suis d’accord… Après, j’ai pris l’exemple de migration de l’auteur :-).

Mais, même corrigé :

homeassistant:
  customize_domain:
    cover:
      card_mod:
        style: |
          :host {
            --card-mod-icon:
              {% set position = state_attr(config.entity, 'position') | int(100) %}
              {% if position == 0 %} custom-shutter:shutter-4
              {% elif position < 33 %} custom-shutter:shutter-3
              {% elif position < 66 %} custom-shutter:shutter-2
              {% elif position < 100 %} custom-shutter:shutter-1
              {% else %} custom-shutter:shutter-0
              {% endif %};
          }

Ça me donne le même résultat. J’ai l’icône par défaut Quelle que soit ma position.

Fait le debug dans les outils de dev …

Si je test dans « Modèle » ça marche. Et dans « Etats » la propriété card_mod est bien là. Par contre j’ai pas de modification de mon icon, car c’est plus fait au niveau de l’attribut (custom-ui) mais du CSS (card-mod).

Bonjour,
sauf que card_mod est plus lourd que custom-ui. Tant que custom-ui fonctionne , je ne changerai pas de mon côté.

Tu es sûr que card_mod , s’utilise avec customize ?
je ne vois rien dans la doc de custom-ui qui en parle. Les exemples dans la doc, sont directs dans une carte.

OK, confirmé par l’auteur de card_mod : pas possible au niveau customize… Du coup je reste sur custom-ui car c’est quand même pratique de travailler par domaine.

1 « J'aime »