Configuration sensor pour panneaux solaire

Salut.

Rhooooo… c’est compliqué sans infos…
C’est pas tellement le nombre de message (2 en 1h) qui va te donner la chance d’avoir une réponse, mais les détails que tu fournis (sans qu’on ai besoin de refaire l’historique de tous tes messages)… Là ils sont trop légers

Tu crées tes sensors à partir de quoi . Quel code pour le sensor de base ? Qu’as-tu déjà essayé ? Quel message d’erreur ? Qu’est ce que ça produit ?

Je pensais que l’autre message n’apparaissait plus car le sujet était trop ancien. Je vais reformuler.

A chaque nouveau message, peu importe l’âge, le sujet remonte dans les sujets « récents »
Un sujet dédié c’est pas forcement plus mal

Bien merci Pulpy pour ces informations et navré pour les deux messages :face_with_diagonal_mouth:.
J’ai un sensor qui remonte ma consommation électrique en positif si je ne produis pas de courant de mes panneaux solaires et en négatif si ma production est supérieur a ma consommation.
Pour suivre ma consommation et ma production, je souhaite créer deux sensor, un qui m’indique le positif et l’autre le négatif. Mon capteur un shelly EM . Image du graphique d’aujourd’hui, j’aimerais le voir en deux graphiques pour faire deux courbes
Shelly

Ce que je souhaiterais faire ensuite

Solar

OK… et niveau code/YAML, ton sensor de base s’appelle comment ?
Par ailleurs avoir 2 graphiques, ça veut pas forcément dire avoir 2 sensors +/- ?
Et tu as déjà essayé de faire quoi et comment ?

Le non de mon sensor: sensor.shelly_shem_485519c9c2da_2_current_consumption
Je ne savais pas que c’était possible d’avoir deux graphique avec un seul sensor! :smiley:
J’ai essayer de suivre ce lien Configuration sensor Energie mais je n’arrive pas a configurer les entitées de production et de consomation.

# consommation énergie
  - platform: template
    sensors:
      solar_consumption:
        friendly_name: "solar_conso_net"
        value_template: >-
          {% set solar = states('sensor.envoy_122012103733_current_energy_consumption') | int %}
          {% set house = states('sensor.envoy_122012103733_current_energy_production') | int %}
          {{ solar if house > solar else house }}
        device_class: power
        unit_of_measurement: W
        
  - platform: template
    sensors:
      energy_import_export:
        friendly_name: "Energy"
        value_template: "{% if (states('sensor.envoy_122012103733_current_energy_production') | int - states('sensor.envoy_122012103733_current_energy_consumption') | int) > 0 %}Exporting{% else %}Importing{% endif %}"
  
        icon_template: "{% if (states('sensor.envoy_122012103733_current_energy_production') | int - states('sensor.envoy_122012103733_current_energy_consumption') | int) > 0 %}mdi:arrow-up-box{% else %}mdi:arrow-down-box{% endif %}"

# calcul power export
  - platform: template
    sensors:      
      energy_exporting:
        friendly_name: "Current Energy Exporting"
        value_template: "{{ [0, (states('sensor.envoy_122012103733_current_energy_production') | int - states('sensor.envoy_122012103733_current_energy_consumption') | int)] | max }}"
        unit_of_measurement: 'W'
        icon_template: 'mdi:flash'
        
# calcul power import 
  - platform: template
    sensors:     
      energy_importing:
        friendly_name: "Current Energy Importing"
        value_template: "{{ [0, (states('sensor.envoy_122012103733_current_energy_consumption') | int - states('sensor.envoy_122012103733_current_energy_production') | int)] | max }}"
        unit_of_measurement: 'W'
        icon_template: 'mdi:flash'
        
# Création de l'énergie exportée sur le réseau en Wh
  - platform: integration
    source: sensor.energy_exporting
    name: energy_exported_wh
    unit_prefix: k
    round: 2
    method: left
    
# Création de l'énergie importée du réseau en Wh
  - platform: integration
    source: sensor.energy_importing
    name: energy_imported_wh
    unit_prefix: k
    round: 2
    method: left

# history demarrage panneaux solaire  
  - platform: history_stats
    name: temps de production aujourd'hui
    entity_id: binary_sensor.solar_run
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"
    
#energy  
            #enphase special Net energy. calcul pour l’energie exporte ou importe avec un changement de nom et d’icon suivant si c’est de l’import ou de l’export 
  - platform: template
    sensors:
      inst_energy_difference:
        friendly_name: Instant Energy Difference
        icon_template: >
          {% if (states("sensor.inst_energy_difference") | int > 0) -%} 
            mdi:solar-panel
          {%- elif (states("sensor.inst_energy_difference") | int < 0) -%}
            mdi:transmission-tower
          {%- else -%}
            mdi:power-off
          {%- endif %}
        friendly_name_template: >
          {% if (states("sensor.inst_energy_difference") | int > 0) -%} 
            Currently Exporting
          {%- elif (states("sensor.inst_energy_difference") | int < 0) -%}
           Currently Importing
          {%- else -%}
            Balanced
          {%- endif %}
        unit_of_measurement: "W"
        device_class: power
        value_template: >
          {{ '%0.0f' | format(states('sensor.envoy_122012103733_current_energy_production') | int - states('sensor.envoy_122012103733_current_energy_consumption') | int) }}

#production consommation en KWh
  - platform: template
    sensors:
        pv_solar_production_kwh:
          friendly_name: "production_solaire_kwh"
          unit_of_measurement: 'kWh'
          value_template: "{{ states('sensor.envoy_122012103733_today_s_energy_production') | float / 1000 }}"
          
        pv_solar_todays_consumption_kwh:
          friendly_name: "pv_solar_todays_consumption_kwh"
          unit_of_measurement: 'kWh'
          value_template: "{{ states('sensor.envoy_122012103733_today_s_energy_consumption') | float / 1000 }}"

C’est quand même bien compliqué pour séparer les +/-

Bon déjà tu me parles d’1 sensor en entrée, j’en vois 2 dans ton code …

En supposant que ton sensor consumption est positif quand tu ‹ produit › plus que tu consommes et négatif quand c’est l’inverse, utilise les fonctions min/max/abs

Je le fais à la main chez moi pour démo

{%set conso=1234|int %}
Mon suivi est positif : {{ conso }}
Sensor positif/production {{ max(conso,0) }}
Sensor négatif {{ min(conso,0) }}
Sensor consommation {{ min(conso,0)|abs }}


{%set conso=-5433|int %}
Mon suivi est négatif : {{ conso }}
Sensor positif/production {{ max(conso,0) }}
Sensor négatif {{ min(conso,0) }}
Sensor consommation {{ min(conso,0)|abs }}


Reste à corriger le nom conso et mettre le template dans tes sensors

Terrible la rapidité pour faire ce template, je comprend mieux le max min merci je vais voirça de suite :grinning:

- platform: template
    sensors:
      pv_router_negatif_w:
        friendly_name: 'pv_router_negatif_w'
        value_template: >
                {{ (0-states('sensor.shelly_shem_485519c9c2da_1_current_consumption')| float(defaut=0) *1/1) | round
                if (states('sensor.shelly_shem_485519c9c2da_1_current_consumption')| float(defaut=0) < 0) else 0 }}
        icon_template: mdi:lan-pending
        unit_of_measurement: 'W'
        device_class: power
        
        {%set ('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}
    Mon suivi est positif : {{ conso }}
    Sensor positif/production {{ max(conso,0) }}
    Sensor négatif {{ min(conso,0) }}
    Sensor consommation {{ min(conso,0)|abs }}
    
    
    {%set ('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}
    Mon suivi est négatif : {{ conso }}
    Sensor positif/production {{ max(conso,0) }}
    Sensor négatif {{ min(conso,0) }}
    Sensor consommation {{ min(conso,0)|abs }}

Je me sens bête de ne pas y arriver.

C’est peut être plus cela… bon la suite demain je suis perdu :grimacing:
Merci


    {%set ('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}
    Mon suivi est positif : {{ 'sensor.shelly_shem_485519c9c2da_1_current_consumption' }}
    Sensor positif/production {{ max ('sensor.shelly_shem_485519c9c2da_1_current_consumption',0) }}
    Sensor négatif {{ min ('sensor.shelly_shem_485519c9c2da_1_current_consumption'o,0) }}
    Sensor consommation {{ min ('sensor.shelly_shem_485519c9c2da_1_current_consumption',0)|abs }}
    
    
    {%set ('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}
    Mon suivi est négatif : {{ 'sensor.shelly_shem_485519c9c2da_1_current_consumption' }}
    Sensor positif/production {{ max ('sensor.shelly_shem_485519c9c2da_1_current_consumption',0) }}
    Sensor négatif {{ min ('sensor.shelly_shem_485519c9c2da_1_current_consumption',0) }}
    Sensor consommation {{ min ('sensor.shelly_shem_485519c9c2da_1_current_consumption',0)|abs }})|int %}

Là tu rates les bases de ha où bien tu es trop fatigué

Cette syntaxe ne fait rien… Il manque la fonction
states('sensor.shelly_shem_485519c9c2da_1_current_consumption')

On parlera de la création d’un template plus tard. Là aussi il y a un sujet

Bonjour, oui j’étais bien fatigué, mais aussi je ne maîtrise pas HA :grimacing:

Dois-je modifier comme sur la ligne ci-dessous tout les endroits ou tu as écrit « conso » mais je ne sais pas si je place bien mon states.

{%set states ('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}

Avant d’aller plus loin, joue avec ce code dans les outils dev. Et corrige jusqu’à temps qu’il fonctionne.

pas d’espace pour les fonctions en premier lieu …

Ensuite je t’invite à regarder un peu la doc des templates quand même

Parce que coller le bloc comme ça dans le yaml, ça va rendre ton HA malade

Bien merci j’imagine que je vais polué mon HA si je continu les bidouilles merci de l’astuce je vais voir ça :smiley:


Pas simple pour moi vraiment…

J’avance doucement :smile:

Cela fonctionne je vais essayer de l’integré à HA…

{%set conso=states('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}
Mon suivi est positif : {{ conso }}
Sensor positif/production {{ max(conso,0) }}
Sensor négatif {{ min(conso,0) }}
Sensor consommation {{ max(conso,0)|abs }}


{%set conso=states('sensor.shelly_shem_485519c9c2da_1_current_consumption')|int %}
Mon suivi est négatif : {{ conso }}
Sensor positif/production {{ max(conso,0) }}
Sensor négatif {{ min(conso,0) }}
Sensor consommation {{ min(conso,0)|abs }}

Je suis ravis cela fonctionne merci de l’aide et d’avoir cherché seul ça aide finalement à comprendre, je ne sais pas l’utiliser et ou le placer dans yaml? :face_with_open_eyes_and_hand_over_mouth:

1 « J'aime »

Bon maintenant que tu as un code qui marche, il faut récupérer la partie du template qui t’interesse.
A mon avis ce dont tu as besoin ce sont :

  • {{ max(conso,0) }}
  • {{ min(conso,0)|abs }}

Le premier va indiquer le surprlus que tu produis, le deuxième ce que tu consommes (l’ancien négatif
Donc tu dois écrire 2 sensors dont la partie state definie par value_template contient ce code. Réfère toi au lien de la doc indiqué un peu plus haut et aux exemples que tu as produits (ceux de ta partie voltaïque) pour faire les bons copier/coller et adaptations

Merci Pulpy encore un peut de travail je vais étudier cela :blush: