Creation sensor

Bonjour :slight_smile:

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 :slight_smile:

Bonjour,

Si le code de votre sensor est bien celui-ci, il manque un « s » à states

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 :slight_smile:
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… :slight_smile:

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 :slight_smile:
reste a corriger le « round » je pense :slight_smile:

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:

Capture d’écran 2023-07-05 à 16.06.03

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 »

Pulpy, c’est plus lisible et plus beau :slight_smile: et en plus cela fonctionne a merveille :slight_smile:
Tu es un chef ! merci !

a quoi servent les % avant et après les accolades?
Merci des precisions sur les INT et FLOAT, c’est plus clair maintenant :slight_smile:
bonne journee
:slight_smile:

{% %} c’est pour le code uniquement
{{ }} c’est pour renvoyer le résultat

1 « J'aime »