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
Merci pour le travail, qui me donne un peu de fil à retordre ce soir
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 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
Bonjour. Je relance le sujet. Car il m’intéresse mais mon statut de « super débutant » m’empêche pour l’instant de comprendre ou il faut ajouter ces lignes de code. Désolé de ma naïveté. Merci
Et pour finir je crée un helper de type « template sensor » avec le code qui suit (ici pour le compteur de lampes allumées
{% set result = namespace(entities=[]) %}
{% set entity_list = label_entities('lampe') -%}
{% for item in entity_list -%}
{% for state in states | selectattr('state','eq', 'on' ) | selectattr('entity_id', 'eq', item)-%}
{% set result.entities = result.entities + [state.name] %}
{% endfor -%}
{% endfor -%}
{{ result.entities | count }}
Pour la version liste des lampe allumée, la même chose mais on change la dernière ligne :
{%- set result = namespace(entities=[]) %}
{%- set entity_list = label_entities('lampe') -%}
{%- for item in entity_list -%}
{%- for state in states | selectattr('state','eq', 'on' ) | selectattr('entity_id', 'eq', item)-%}
{%- set result.entities = result.entities + [state.name] -%}
{%- endfor -%}
{%- endfor -%}
{{ '\r\n - ' ~ result.entities|unique|join('\r\n- ')}}
Et si besoin pour le dashboard un affichage simpliste