excuse moi si mes derniers messages manquaient de clartés, j’avais confondu ton sujet avec un autre, ils se ressemblaient beaucoup.
Comme tu n’as rien dis à ce sujet, je pars du principe que tu sais déclencher une automatisation à heure fixe. Si ce n’est pas le cas, n’hésite pas.
Je te fournis un exemple où j’envoie le résultat dans une zone texte. Il faudra que tu l’adaptes pour telegram.
action: input_text.set_value
data:
value: >
{% set id = namespace(bat = []) -%} {## création d'un tableau vide ##}
{%- for x in states -%} {## on va tester tout les appareils qui communique sur leurs états ##}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%} {## est-ce que l'appareil donne des informations sur sa batterie ##}
{%- if (x.state | int(100) < 15 and not x.state[:1] =="o") -%} {## est-ce que l'information sur la batterie est un nombre inférieur à 15 et n'est pas du texte ##}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%} {## On mémorise le nom de l'appareil et son % de batterie ##}
{%- endif -%}
{%- endif -%}
{%- endfor %} {## fin du teste individuel sur tous les appareils ##}{% if id.bat | count == 0 -%} {## il n'y a aucune batterie < 15% ##}
OK
{%- else -%} {## il y a une ou plusieurs batteries < 15% ##}
{{ ' et '.join((id.bat | join(', ')).rsplit(', ', 1)) }} {## on affiche le nom des batteries en les séparant par une virgule sauf pour le dernier ou l'on remplace la virgule par 'et' ##}
{%- endif %}
target:
entity_id: input_text.mon_teste
le YAML doit être indenter correctement. Si ce n’est pas le cas HA ne te permet pas de sauvegarder.
Si tu fais un copier/coller comme ci dessous tu ne respectes pas l’indentation:
trigger:
- platform: time_pattern
seconds: /10
condition: []
action:
action: input_text.set_value
data:
value: >
{% set id = namespace(bat = []) -%} {## création d'un tableau vide ##}
{%- for x in states -%} {## on va tester tout les appareils qui
communique sur leurs états ##}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%} {## est-ce que l'appareil donne des informations sur sa batterie ##}
{%- if (x.state | int(100) < 15 and not x.state[:1] =="o") -%} {## est-ce que l'information sur la batterie est un nombre inférieur à 15 et n'est pas du texte ##}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%} {## On mémorise le nom de l'appareil et son % de batterie ##}
{%- endif -%}
{%- endif -%}
{%- endfor %} {## fin du teste individuel sur tous les appareils ##}{%
if id.bat | count == 0 -%} {## il n'y a aucune batterie < 15% ##}
OK
{%- else -%} {## il y a une ou plusieurs batteries < 15% ##}
{{ ' et '.join((id.bat | join(', ')).rsplit(', ', 1)) }} {## on affiche le nom des batteries en les séparant par une virgule sauf pour le dernier ou l'on remplace la virgule par 'et' ##}
{%- endif %}
target:
entity_id: input_text.mon_teste
mode: single
Là, tu respectes l’indentation mais pas la structure
trigger:
- platform: time_pattern
seconds: /10
condition: []
action:
action: input_text.set_value
data:
value: >
{% set id = namespace(bat = []) -%} {## création d'un tableau vide ##}
{%- for x in states -%} {## on va tester tout les appareils qui
communique sur leurs états ##}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%} {## est-ce que l'appareil donne des informations sur sa batterie ##}
{%- if (x.state | int(100) < 15 and not x.state[:1] =="o") -%} {## est-ce que l'information sur la batterie est un nombre inférieur à 15 et n'est pas du texte ##}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%} {## On mémorise le nom de l'appareil et son % de batterie ##}
{%- endif -%}
{%- endif -%}
{%- endfor %} {## fin du teste individuel sur tous les appareils ##}{%
if id.bat | count == 0 -%} {## il n'y a aucune batterie < 15% ##}
OK
{%- else -%} {## il y a une ou plusieurs batteries < 15% ##}
{{ ' et '.join((id.bat | join(', ')).rsplit(', ', 1)) }} {## on affiche le nom des batteries en les séparant par une virgule sauf pour le dernier ou l'on remplace la virgule par 'et' ##}
{%- endif %}
target:
entity_id: input_text.mon_teste
mode: single
Comme ça c’est correct
trigger:
- platform: time_pattern
seconds: /10
condition: []
action:
- action: input_text.set_value
data:
value: >
{% set id = namespace(bat = []) -%} {## création d'un tableau vide ##}
{%- for x in states -%} {## on va tester tout les appareils qui
communique sur leurs états ##}
{%- if state_attr(x.entity_id, "device_class") == "battery" -%} {## est-ce que l'appareil donne des informations sur sa batterie ##}
{%- if (x.state | int(100) < 15 and not x.state[:1] =="o") -%} {## est-ce que l'information sur la batterie est un nombre inférieur à 15 et n'est pas du texte ##}
{%- set id.bat = id.bat + [x.entity_id+": "+x.state+"%"] -%} {## On mémorise le nom de l'appareil et son % de batterie ##}
{%- endif -%}
{%- endif -%}
{%- endfor %} {## fin du teste individuel sur tous les appareils ##}{%
if id.bat | count == 0 -%} {## il n'y a aucune batterie < 15% ##}
OK
{%- else -%} {## il y a une ou plusieurs batteries < 15% ##}
{{ ' et '.join((id.bat | join(', ')).rsplit(', ', 1)) }} {## on affiche le nom des batteries en les séparant par une virgule sauf pour le dernier ou l'on remplace la virgule par 'et' ##}
{%- endif %}
target:
entity_id: input_text.mon_teste
mode: single