Automatisation condition template inférieur superieur

Bonjour,

Un jour de la semaine, je déclenche, à un heure précise, une automatisation pour savoir si la batterie de mon appareil est inférieur à 25% pour me prévenir de la changer.

Voici ce que je fais:

{{ states("sensor.pourcentage_batterie_sondeT") < '25' }}

Là la batterie est à 100 (% - unit of measurement) et il m’indique « condition remplie ».

Voici quelques screens :

En faisant:

{{ states("sensor.pourcentage_batterie_sondeT") }}

image
Et maintenant en faisant :

{{ states("sensor.pourcentage_batterie_sondeT") < '25' }}

image

Je comprends pas beaucoup, si quelqu’un peut m’éclairer, merci beaucoup :slight_smile:

Salut,

Le résultat d’un expression template dépend de ce que tu y met.
Celle qui te renvoit « true » de donne le résultat du test de comparaison {{states("sensor.pourcentage_batterie_sondeT") < '25' }} c’est totalement normal comme retour, dans quasiment tous les langages de programmation.

La première qui te renvoi « 100 » c’est le retour du « states » donc la valeur de la batterie

Bonsoir,
Pourquoi ne pas simplement faire une automatisation qui détecte que la batterie est inférieure à 25%?


Bob

Sauf que 100 < 25 devrait renvoyer false.
Je supose que c’est ce que Ayno voulais qu’on lui explique.
Ce que, personnellement, je ne sais pas faire

1 « J'aime »

En fait je n’étais pas complet et pour tout dire je n’ai pas regardé la validité du test :wink:

@Ayno tu compares des chaines de caractères.
'25' représente les caractères 2 et 5… et pas le nombre 25 :wink:

{{ sensor.pourcentage_batterie_sondeT) | int < 25 }} marchera mieux

1 « J'aime »

Moi c’est le raisonement de @Ayno que je ne saisi pas, des templates pour ça!
Une simple automatisation ferait le taf et sans attendre un jour de la semaine, ça m’échappe un peu là :smirk:

Salut,

Dans l’automatisation, tu peux tout à fait faire le test via le template (dans la partie condition). J’imagine que c’est bien le cas ici, puisqu’on parle d’une truc qui tourne 1/semaine

Ah ben oui !
Ca y est, j’ai compris. C’était comparer des pommes et des poires.
Merci AlexHass

Bonsoir @Pulpy-Luke
C’est le 1 fois par semaine que je ne saisi pas.
Le lundi il lance l’automatisation, 26%,
une semaine après 0%, pas d’alerte, le seul déclencheur devrait être le niveau de batterie !
Bon je ne vois pas trop ce que @Ayno veut faire en fait :smirk:
Bob

Breton mais je préfère la poire à la pomme, quand c’est en bouteille :laughing:

1 « J'aime »

Potentiellement, c’est mieux mais ça dépends de la vitesse de « consommation de la batterie » … A moins de 25% par semaine, ça passe. De plus san bricoler un peu, ça veut dire message à 25, 24 etc… c’est vite pénible
Chacun fait comme il le souhaite

Si c’est une batterie de capteur Zigbee, compliqué !
C’est une batterie de quoi @Ayno ?

C’est un capteur Lora

Je sais que j’en ai pour plusieurs années avant que la batterie soit morte (en prenant en compte le duty cycle)

Donc je veux que HA me prévienne à partir du moment qu’il passe en dessous et que HA me le rappelle chaque semaine

Ce que je comprends c’est pourquoi 100<25 c’est vrai

Le 100 vient d’un calcul car il est donné en V.
(Vactuel x 100 / Vmax)

Dans ta formule tu ne demande pas à comparer des chiffres mais des lettres …
ça c’est une série de caractère

'25'

ça un chiffre

25

et par défaut, ça

states("sensor.pourcentage_batterie_sondeT")

ça retourne aussi une chaine (et pas un chiffre !! et c’est sans rapport avec l’unité)

Il faut donc transformer la chaine en chiffre, pour ensuite la vérifier

{{states("sensor.pourcentage_batterie_sondeT") | int < 25 }}

et là c’est comme en mathématiques

1 « J'aime »