Synthèse Lumières

Bonjour à tous,

Tout d’abord, veuillez m’excuser pour la question de… débutant…
J’aimerais revoir intégralement mon interface HA, en ajoutant, pour commencer, la synthèse des lumieres allumées.
J’ai créé un fichier template : synthese_lumieres.yaml dans « /config/template/ », avec le code de @Clemalex
Et là, c’est le drame… Je ne sais pas ce que je dois faire après

Encore désolé, pour cette demande…

Merci beaucoup pour votre aide précieuse !

Bonsoir

Merci pour le travail, qui me donne un peu de fil à retordre ce soir :wink:

Je cherche à faire la liste des lumières allumées en excluant tous les groupes de lumières mais aussi tout ce qui est abusivement typé lumière !

En fait mes entités qui sont des lumières sont toutes nommées light.ecl_xxxxx

Code en cours de travail :

    toutes_les_lampes:
      friendly_name_template: >
        {% set domain = 'light' %}
        {% set state = 'on' %}
        {# Définition du `namespace` pour le friendly_name_template #}
        {% set friendly_light = namespace(is_light=0, is_on=0) %}
        {%- set entities = (states[domain] | map(attribute='entity_id') | list ) -%}
        {%- for entity in entities -%}
          {% if not (entity.startswith('light.grp_') or is_state_attr(entity, 'type', 'browser_mod') or is_state(entity, 'unavailable')) %}
            {% set friendly_light.is_light = friendly_light.is_light + 1 %}
            {% if is_state(entity, 'on') %}
              {% set friendly_light.is_on = friendly_light.is_on + 1 %}
            {%- endif %}
          {%- endif %}
        {%- endfor -%}
        Lampes allumées : {{ friendly_light.is_on }}/{{ friendly_light.is_light }}

      value_template: >
        {% set domain = 'light' %}
        {% set state = 'on' %}
        {# Définition du `namespace` pour le value_template #}
        {% set value_light = namespace(lights=[]) %}
        {%- set value_entities = (states[domain] | selectattr('state', 'eq', state) | map(attribute='entity_id') | list ) -%}
        {%- for entity in value_entities -%}
          {% if not (entity.startswith('light.grp_') or is_state_attr(entity, 'type', 'browser_mod')) %}
            {% set value_light.lights = value_light.lights + [state_attr(entity, 'friendly_name')] %}
          {%- endif %}
        {%- endfor -%}
        {%- if value_light.lights | length == 0 %}
          Aucune Lampe Allumée !
        {%- else %}
          {{ value_light.lights | join(', ') }}
        {%- endif %}

cela fonctionne mais c’est le nombre total de lumière qui ne va pas il y en a trop
D’où le souhait de filtrer sur ce que je connais donc la syntaxe des « vrai lumière »

Merci de votre aide

Regarde plutôt du côté de ce post :

Bonjour @Clemalex

Merci pour le lien mais c’est pareil avec cette solution en fait !

J’ai un nombre de light de 58 avec le lien et 56 avec mon code adapté déjà un peu !
Or je n’ai pas tout ça en lumière (38 en Zigbee et 4 en Zwave) donc il m’en trouve en plus
J’ai 16 Groupe de Lumières dans les entrées

Ce qui me donne bien 58 !

Mais je n’arrive pas à supprimer mes grp light.ecl_xxxxxx qui est l’appellation dans les entrées

J’ai testé comme ceci

{{ states.light 
  | rejectattr('attributes.entity_id', 'defined') 
  | rejectattr('attributes.friendly_name', 'match', 'GRP ECL')
  | selectattr('state', 'eq', 'off')
  | list | count
  }}

et mes lumières ont cette nomenclature en gros