Bonjour
je voudrais créer plusieurs sensors.
j’ai fait un test tout d’abord de mon modele qui me donne un résultat dans « outils de développement/modele/editeur de modele »
ensuite j’ai ajoute dans ma configuration yaml:
- platform: template
sensors:
power_pump_1:
friendly_name: "power_pump_1"
value_template: "{{ state('sensor.current_1') | int * 225 | round }}"
mais le resultat ne semble pas correct dans la partie « états »:
une piste svp ? qu’ai je fais de travers?
merci beaucoup et bonne journee
mcp
Juillet 5, 2023, 7:06
2
Bonjour,
Si le code de votre sensor est bien celui-ci, il manque un « s » à state s
1 « J'aime »
Bonjour,
essaie comme ca:
value_template: "{{ states('sensor.current_1') | int * 225 | round(0) }}"
1 « J'aime »
Salut…
Et remplace int
par int(default=0)
pour être tranquille
1 « J'aime »
MERCI a tous les 3 :-))))
Ca marche parfaitement maintenant :
power_pump_1:
friendly_name: "power_pump_1"
value_template: "{{ states('sensor.current_1') | int(default=0) * 225 | round (0) }}"
merci encore de votre aide, mon premier sensor et les autres vont maintenant suivre
bonne journee
1 « J'aime »
Salut,
int(default=0)
et int(0)
, c’est identique ?
oui, ça fait strictement la même chose
1 « J'aime »
Messieurs, j’en profite pour rebondir sur le code pour faire la somme de trois sensor, voici ce que j’ai fait, meme si j’ai un résultat dans l’éditeur de modele, la configuration YAML est incorrecte:
power_pump_total:
friendly_name: "power_pump_total"
value_template: {{ [ states('sensor.power_pump_1'),states('sensor.power_pump_2'), states('sensor.power_pump_3')] | map('float') | sum }}
une idee, c’est surement trop simple, j’ai du rater quelque chose…
Le message d’erreur doit t’indiquer que la syntaxe yaml est KO (en te donnant une info sur la ligne)
si tu écris value_template
avec 2 espaces de plus, c’est un attribut de friendly_name
si tu écris value_template aligné avec friendly_name
, c’est un un attribut de power_pump_total
en alignant j’ai le meme soucis :
power_pump_total:
friendly_name: "power_pump_total"
value_template: {{ [ states('sensor.power_pump_1'), states('sensor.power_pump_2'), states('sensor.power_pump_3')] | map('float') | sum }}
le message
missed comma between flow collection entries (63:123)
60 | … }}"
61 | …
62 | …
63 | … tates(‹ sensor.power_pump_3 ›)] | map(‹ float ›) | sum }}
-----------------------------------------^
64 | …
65 | …
Essaye ça
{{ [ states('sensor.power_pump_1')|float(default=0), states('sensor.power_pump_2')|float(default=0), states('sensor.power_pump_3')|float(default=0)] | map('float') | sum }}
désolé, petite coupure de courant. Bon je viens de corriger et …c’est impeccable:-) merci Pulpy :-))))
bonne journee
reste a corriger le « round » je pense
cela fonctionne bien mais impossible de supprimer les chiffres après la virgule.
J’ai tente un ‹ round › a la fin:
value_template: "{{ [ states('sensor.power_pump_1')|float(default=0), states('sensor.power_pump_2')|float(default=0), states('sensor.power_pump_3')|float(default=0)] | map('float') | sum }}{{ [ states('sensor.power_pump_1')|float(default=0), states('sensor.power_pump_2')|float(default=0), states('sensor.power_pump_3')|float(default=0)] | map('float') | sum | round (0) }}"
Tout est correct dans l’éditeur de modele. le sensor est correct (merci Pulpy), mais le résultat dans Lovelace est different:
Essaye
value_template: "{{ [ states('sensor.power_pump_1')|float(default=0), states('sensor.power_pump_2')|float(default=0), states('sensor.power_pump_3')|float(default=0)] | map('float') | sum | int(default=0) }}"
pas d’erreur mais cela n’a pas change le résultat…
j’ai un peu de mal entre les INT et FLOAT
Essaye comme ça (c’est plus lisible)
value_template: >-
{% set p1=states('sensor.power_pump_1')|float(default=0) %}
{% set p2=states('sensor.power_pump_2')|float(default=0) %}
{% set p3=states('sensor.power_pump_3')|float(default=0) %}
{{ ( p1+p2+p3 ) | int(default=0) }}
Pour info:
int (abr. de integer) : un nombre entier (positif ou negatif)
float : un nombre avec des décimals (positif ou negatif)
1 « J'aime »
{% %} c’est pour le code uniquement
{{ }} c’est pour renvoyer le résultat
1 « J'aime »