Addition de 2 sondes

Bonjour, est il possible de crée une entité qui additionne 2 sondes ?

J’ai une 1 sonde qui me dure ma conso électrique et une autre qui mesure ma production solaire. ( via Shelly EM )

J’aime une carte qui additionne les 2

sensor.shellyem_244cab4326d4_channel_1_power
sensor.shellyem_244cab4326d4_channel_2_power

Merci

Salut Jeremy,
il faut passer par un template
En voici un exemple :

- sensor:
  - name: Applique Murale Power
    state: >
      {{ ( (states('sensor.applique_murale_gauche_power') | float(default=0) ) + (states('sensor.applique_murale_droite_power') | float(default=0) ) ) | rou
nd(2) }}

La documentation est la : Template - Home Assistant

Comment créer un template ?

1er ligne de la doc template :
Sensor, binary sensor, button, number and select template entities are defined in your YAML configuration files, directly under the template: key and cannot be configured via the UI.

Donc avec file editor

1 « J'aime »

Salut :wave:,

Merci de participer sur le forum :+1:

:information_source: Le forum dispose de catégories afin de renforcer le référencement des sujets.

Nous avons déplacé ton sujet car nous estimions qu’il n’était pas dans la bonne catégorie.

Si tu as un doute la prochaine fois, n’hésite pas à mentionner les @Moderateur.

L’équipe HACF.

:hacf:

Merci cela fonctionne.

J’essaie de faire la meme chose avec une addition de 3 sondes mais cela ne fonctionne pas

- sensor:
  - name: Consommation Total
    unit_of_measurement: "kWh"
    state: >
     {{ ( (states('sensor.shellyem_244cab4326d4_channel_2_energy') | float(default=0) ) - (states('sensor.shellyem_244cab4326d4_channel_1_energy_returned') | float(default=0) + (states('sensor.shellyem_244cab4326d4_channel_1_energy') | float(default=0)  ) ) | round(2) }}

Qu’est ce qui n’est pas correct ?

merci

Tu a un souci de variable : a la fin tu a 3 ‹ ) ›
Je te recommande, fortement, de passer par Outils de développement / Modèle pour tester avant de crée ce type de sensor.
C’est beaucoup plus facile pour debugger et tu peut y aller par étape pour tester.

Je n’y connais pas grand chose, en général je prend des tous fais ou je n’ai cas remplacer le nom des sondes

Hello

en général je prend des tous fais

Au début cela sert j’ l’ai fait aussi , mais le fait de mettre les main dans le cambouis permet d’apprendre et de s’auto corrigé et de découvrir beaucoup de possibilité insoupçonné de HA
:grinning:

salut

ici tu peux tester les templates avec tes données

Existe il un paramètre à ajouter au template pour limiter les updates ?

Toutes les secondes c’est trop, ça fait lag tous mes graphiques lorsque j’utilise ce template.

Merci

Salut
Je crois qu’un template est basiquement triggé lorsque une des données qui sont utilisées dans le template change.

Mais on peut trigger un template sur les événements de notre choix.
C’est expliqué là:

Trigger-based entities do not automatically update when states referenced in the templates change. This functionality can be added back by defining a state trigger for each entity that you want to trigger updates.

Exemple:
J’utilise des intégrales qui se réinitialisent de temps en temps, elles sont appelées:

  • lorsque l’état de l’entrée change
  • à chaque re-initialisation

Cela donne:

template:
  - trigger:
    - platform: state
      entity_id:
        - sensor.Pw_mes_1
    - platform: state
      entity_id: input_boolean.synchro_rad
      to: 'on'
    sensor:
      - name: Cumul_radg1
        unit_of_measurement: "W"
....blabla...
1 « J'aime »

Merci Haz,

J’ai aussi des sensors avec des fréquences très élever (tous les 2 ou 3 secondes)
et je générer une dizaine de variable templetiser dessus.

Ta solution m’a permis d’économiser de la ressources CPU (et d’ici jours), de réduire la BdD de HomeAssistant ( car moins de points de mesure) et d’afficher le graphique d’historique plus vite.

N’ayant besoin que d’une granularité d’une minutes, j’ai fait ça (pour ceux qui ont la flemme de chercher comment faire, dans le fichier template.yaml si template: !include template.yaml dans configuration.yaml)

- trigger:
    - platform: time_pattern
      minutes: /1
  sensor:
  - name: cos phi
    state: >
      bla_bla_bla

au lieu de :

- sensor:
  - name: cos phi
    state: >
      bla_bla_bla
1 « J'aime »

Bonjour,
Je déterre le sujet. Je débute avec home assistant et j’ai un problème similaire car je dois créer une nouvelle variable qui est la somme de 2 capteurs de puissance de panneaux photovoltaïques. J’ai cherché les infos et j’ai testé avec l’outil de développement le script suivant:

template:
  sensors:
    - name: sun_power
      unit_of_measurement: "W"
      value_template: "{{ ( (states('sensor.sun1_sun_power') | float(default=0) ) +(states('sensor.sun2_sun2_power') | float(default=0))|round(2))}}"

ça fonctionne car j’ai bien la valeur sun_power qui est la somme des 2 autres capteurs. Je le reporte dans la configuration , l’enregistre tout est ok mais ensuite avec l’outil de développement aucune trace de l’état du capteur « sun_power » créé?
impossible de créer un graphe à partir de ce capteur car il n’apparaît nul part.
Si quelqu’un pouvait me renseigner car j’ai dû manquer une étape …
Merci

Salut @Laurent46,

sensor sans « s », un « - » manquant, et 1 ou 2 parenthèse superflux :

template:
  - sensor:
      - name: sun_power
        unit_of_measurement: "W"
        value_template: "{{ (states('sensor.sun1_sun_power') | float(default=0) + states('sensor.sun2_sun2_power') | float(default=0)) | round(2)}}"

Salut,
merci pour l’aide car je galère… J’ai fais la modification que tu m’as proposé mais j’en suis toujours au même stade.
L’entité créée ( sun_power) n’apparait pas ( outils de développement>états>définir l’état)). L’entité fonctionne car le test dans ( outils de développement>modéle) le résultat est bon.
J’ai regardé sur le dashboard si il était possible de créer une jauge à partir de cette entité mais évidemment elle n’apparait pas non plus. Si quelqu’un pouvait me dire où se trouve mon erreur.
En attendant merci

Salut @Laurent46

Désolé j’ai laissé passer une erreur, c’est « state » à la place de « value_template » :wink:

template:
  - sensor:
      - name: sun_power
        unit_of_measurement: "W"
        state: "{{ (states('sensor.sun1_sun_power') | float(default=0) + states('sensor.sun2_sun2_power') | float(default=0)) | round(2)}}"
1 « J'aime »

Merci. Par contre, je me pose une question: j’ai modifié le nom du capteur car il n’apparaissait toujours pas. Son nom ( sun_power) se retrouvé de façon composé dans d’autres capteurs ( sun1.sun_power et etc…) et là enfin ça fonctionne. Merci pour ton aide, je commençais à désespérer.

Bonjour,
Avez vous trouvé la solution afin de voir le sensor et ainsi l’ajouter au dashboard? J’en suis bloqué au même point, le modèle est validé, j’ai créé le fichier dans file éditor, mais je ne le trouve pas…

Salut, tout fonctionne correctement depuis. Dans mon cas, au début des erreurs sur la syntaxe puis des erreurs dans le nom des capteurs. As tu bien mis ton fichier dans File editor /homeassistant/configuration.yaml ?