Salut
Oui le badges des templates ne supporte qu’un icône pour l’instant car la taille est très petite et le texte peut donc être compliqué à lire. De plus, en cas de texte long, ça peut vite donner un rendu très étrange.
J’essaie de garder un équilibre entre fonctionnalités et simplicité d’usage mais je peux comprendre que certains limitations peuvent être frustrantes Après oui pour tes personnalisations comme celle-ci il faut faire un peu de CSS.
En fait ce que je veux éviter c’est d’avoir une tonne d’options comme custom button card. D’ailleurs, j’ai construit Mushroom parce que ça m’agaçait de chercher dans toutes les options Je voulais juste un truc qui marche quite a faire quelques compromis.
Oui, avec des icônes. La solution de @Herbs on peu mettre du texte ou chiffre et plusieurs caractère.
Ta solution ce base sur une icône, donc 1 caractère.
Et sa utilise les states d’une entités.
Hello,
J’ai un comportement étrange de la carte (j’ai repris le code de @jerome6994)
En mode édition, pas de problème :
Si je sors du mode édition, la pagination est dégueu:
le code :
type: custom:mushroom-template-card
primary: Ouvrants Salon
hold_action:
action: toggle
double_tap_action:
action: more-info
fill_container: true
layout: horizontal
multiline_secondary: false
secondary: |
{% set all = expand('binary_sensor.ouvrants_salon')| list -%}
{% set closed = all | selectattr('state','eq','off')|list|count%}
{% set open = all | selectattr('state','eq','on')|list|count%}
Fermés : {{closed}} / Ouverts : {{open}}
icon: |
{% if is_state('binary_sensor.ouvrants_salon', 'on') %}
mdi:door-open
{% else %}
mdi:door-closed
{% endif %}
icon_color: |
{% if is_state('binary_sensor.ouvrants_salon','on') %}
red
{% else %}
green
{% endif %}
badge_icon: >-
{% set all = expand('binary_sensor.ouvrants_salon')| 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('binary_sensor.ouvrants_salon')| list -%}
{% set open = all | selectattr('state','eq','on')|list|count%}
{% if open == 0 %}
green
{% else %}
red
{% endif %}
card_mod:
style: |
:host {
--mush-badge-icon-size: 0.95em;
--mush-icon-size: 60px;
height: 66px;
margin-left: -18px !important;
}
mushroom-badge-icon {
left: 50px;
top: 6px;
}
@jerome6994 , j’ai cette erreur qui apparait dans les journaux:
Error while processing template: Template<template=({% set all = expand('cover.all_covers'|lower) -%} {% set positions = all | map(attribute='attributes.current_position')|list-%} {% set moving = all | selectattr('state', 'in', ['opening','closing'])|list|count -%} {% set open = positions | reject("!=",100) |list |count -%} {% set closed = positions | reject("!=",0) |list |count -%} {% set other = positions|list|count - open - closed - moving -%}Fermés = {{ closed }} / Partiels = {{ other }} / Ouverts = {{ open }} {% if moving >0 -%} / Actifs ={{ moving }}{% endif %}) renders=118>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 568, in async_render
render_result = _render_with_context(self.template, compiled, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2231, in _render_with_context
return template.render(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render
self.environment.handle_exception()
File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception
raise rewrite_traceback_stack(source=source)
File "<template>", line 1, in top-level template code
jinja2.exceptions.UndefinedError: 'None' has no attribute 'state'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 694, in async_render_to_info
render_info._result = self.async_render(
^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 570, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: 'None' has no attribute 'state'
Tu aurais une idée du soucis stp?
Je te rajoute mon de code:
{% set all = expand('cover.all_covers'|lower) -%} {% set
positions = all |
map(attribute='attributes.current_position')|list-%} {% set
moving = all | selectattr('state', 'in',
['opening','closing'])|list|count -%} {% set open = positions |
reject("!=",100) |list |count -%} {% set closed = positions |
reject("!=",0) |list |count -%} {% set other =
positions|list|count - open - closed - moving -%}Fermés = {{
closed }} / Partiels = {{ other }} / Ouverts = {{ open }} {% if
moving >0 -%} / Actifs ={{ moving }}{% endif %}
Je ne suis pas en posture de te répondre déjà parce que je suis sur téléphone et compliqué de faire des manip
Ensuite je ne regarde jamais les journaux donc je sais pas les corriger mais ça tourne
Ok et ce tout le monde est fonctionnel ?
C’est pas un souci de complétude de liste, mais des éléments que ça contient.
Tu peux faire un test en désactivant tous les volets sauf 1 par exemple
Humm… Je suis pas sur en voyant le nom que c’est la bonne solution, le code a besoin de volets AVEC des attributs position, pas uniquement des positions ou uniquement des volets
Les cartes (surtout les templates) c’est pas exactement le même mécanisme que les entités
A mon avis, tu vires (temporairement) le volet de l’entrée de la liste (et les autres volets qui sont dans la même cas).
L’objectif c’est d’avoir un groupe (aussi peut-il soit-il) qui permet de faire fonctionner le code, de trouver ensuite le(s) volet(s) qui cause le souci, pour pouvoir comparer les volets qui marchent et ceux qui ne marchent pas
Ben ils sont tous pareil mes volets.
Et même en individuel, je remarque que cela ne fonctionne pas avec la carte Mushroom. Même a l’appui sur un des bouton rien ne ce passe.