Bonjour
Afin de lister les entity_id d’un groupe qui ont une batterie inferieur à 15% j’ai ce code :
{% set thermo = states
| selectattr('entity_id', 'in', state_attr('group.thermo_batterie','entity_id'))
| selectattr('state', 'lessthan', '15')
| map(attribute='name')
| list %}
{%- if thermo | length == 0 -%}
OK
{%- else -%}
Pile thermo - de 15% : {{ thermo[:-1] | join(', ') }}{{', ' if thermo | length > 2 else ' '}}et {{ thermo[-1]}}
{%- endif -%}
Le resultat est le suivant :
Type de résultat: string
Pile thermo - de 15% : Baro Zigbee Chambre C battery, Baro Zigbee Chambre E battery, Baro Zigbee Chambre Parents battery, Baro Zigbee Garage battery, Baro Zigbee Salle de Bain battery, et Baro Zigbee Salon battery
Ce modèle écoute tous les événements de changement d'état.
mon problème c’est que aucun appareil n’a moins de 15% !
Ce code me retourne ce resultat parce que il compare des chaines de caracteres (le state de mes thermo zigbee est en string)
ca se confirme avec ce code (lessthan ‹ 100 ›)
{% set thermo = states
| selectattr('entity_id', 'in', state_attr('group.thermo_batterie','entity_id'))
| selectattr('state', 'lessthan', '100')
| map(attribute='name')
| list %}
{%- if thermo | length == 0 -%}
OK
{%- else -%}
Pile thermo - de 15% : {{ thermo[:-1] | join(', ') }}{{', ' if thermo | length > 2 else ' '}}et {{ thermo[-1]}}
{%- endif -%}
j’ai le retour :
Type de résultat: string
OK
Ce modèle écoute tous les événements de changement d'état.
j’ai cherché comment comparer des choses comparables mais sans succes
Si vous avez la solution je suis preneur !
merci