Je suis confronté à un problème en jinja2 et notemment les incrémentations dans une boucle.
J’ai plusieurs capteurs (ceux-ci) et j’aimerai qu’une valeur (x) soit incrémentée à chaque fois qu’un capteur passe du statut false à true.
Voici ce que les capteurs exposent :
c’est l’attribut « contact » qui m’intéresse et {{ states(‹ binary_sensor.capteur_a_contact ›) }} affiche « on » donc j’ajoute « | bool » pour obtenir un booléen.
De ce que j’ai pu lire, le code suivant ne fonctionne pas car on ne peut pas extraire directement une valeur depuis une boucle.
{# x == nombre de capteurs #}
{% set x = 0 %}
{% set a = states('binary_sensor.capteur_a_contact') | bool %}
{% set b = states('binary_sensor.capteur_b_contact') | bool %}
{% set c = states('binary_sensor.capteur_c_contact') | bool %}
{% set capteurs = [a, b, c] %}
{% for cap in capteurs %}
{% if cap %}
{% set count = x + 1 %}
{% endif %}
{% endfor %}
{{ x }}
Ici, x est toujours égal à 0.
Comment est-ce que je peux améliorer ce code pour que x ait la bonne valeur svp ?
{# x == nombre de capteurs #}
{% set x = 0 %}
{% set a = states('binary_sensor.capteur_a') | bool %}
{% set b = states('binary_sensor.capteur_b') | bool %}
{% set c = states('binary_sensor.capteur_c') | bool %}
{% set capteurs = [a, b, c] %}
{% for cap in capteurs %}
{% if cap %}
{% set x = x + 1 %}
{% endif %}
{% endfor %}
{{ x }}