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