Où récupérer la Puissance immédiate injectée

Bonjour domoticiens, domoticiennes,

J’ai fait récemment installer des panneaux photovoltaïques et je souhaite suivre la production instantanée ainsi que la puissance instantanée réinjectée dans le réseau.
Pour la production, pas de problème je récupère l’info via l’intégration HACS APSystems API Client.
Ensuite j’ai acheté une clef Zlinky que j’ai branchée à mon compteur Linky en pensant que j’allais pouvoir récupérer la puissance réinjectée. En regardant les entités fournies par Zlinky via MQTT je ne trouve pas l’info de puissance réinjectée.
Existe-t-il un moyen de pouvoir la récupérer ? Merci pour votre aide.
Cordialement Norbert

Salut
Pour faire simple avec ce dont tu disposes non ce n’est pas possible.
Je ne sais pas si l’integration APSystems le permet mais dans tous les cas les autres infos qu’elle remonte sont des moyennes sur 5 minutes et non de l’instantané.

Pour avoir de l’instantané il te faut passer par un module disposant de pinces de mesures.

Merci @Tochy pour la rapidité de la reponse.
Dans mon cas la remontée toutes les 5 minutes de cette info me conviendrait même si cela peut perturher l’analyse au moment de l’affichage.
Ce que cherche dans l’immédiat c’est où et comment récupérer la puissance réinjectée ?

@Norbert
Dans ton équation tu connais ta valeur de production PV, ta consommation linky, mais pas la consommation des appareils.

Donc si tu as une conso linky à 0 wh et une production de 500wh, ru ne peux pas savoir combien vont dans tes appareils et combien vont dans le réseau par réinjection.

Il te manque un appareil de mesure

Et il faut faire attention car il y a des watts, des VA
Il faut que tous parlent la même unité

Ne connaissant pas cette intégration si ce n’est de nom je ne peux que te dire d’aller voir ce post qui est disponible sur le forum.

Perso je recupere l’info avec un shelly em

1 « J'aime »

Voici un lien récupéré sur le Net qui pourrait faire avancer les choses.
Linky en mode standard

En paramétrant linky en mode standard on peut récupérer 71 informations dont 2 très intéressantes dans mon cas:

  • SINSTS Puissance app. Instantanée soutirée
  • SINSTI Puissance app. Instantanée injectée

N’étant pas officiellement producteur (contrat en cours de finalisation) il semblerait que je ne puisse pas (à vériifier) encore récupérer ces infos. A suivre…

Attention à la remarque en bas de ton liens, comme cela a déjà été dis par d’autres:

Remarque: dans le cas de l’autoconsommation sans vente (donc avec un mode non producteur) il est dommage que les données relatives à l’injection ne soit pas disponible à l’utilisateur, alors que le compteur d’injection lui est disponible sur l’interface physique du compteur.

Ayant contracté en autoconsommation avec vente du surplus je devrais donc pouvoir récupérer ces infos, non ?

1 « J'aime »

Dans ce cas, c’est à ton fournisseur de contrat de te préciser la manière de récupérer ces données.

En théorie oui sur le linky avec la télé information. Ayant un cacsi (donc pas de revente de l’injection), je ne peux pas te confirmer à 100%.

J’ai fait une demande hier soir sur le site de EDF pour que le mode de télétransmission des données soit modifié (passage du mode historique à celui de standard ). EDF m’a déjà répondu que ce sera opérationnel dès demain. Réactif EDF !
A partir de demain je devrais donc être en mesure de pouvoir récupérer la puissance injectée. A suivre.

Si tu as pas ton contrat de revente validé et opérationnel ca ne marchera pas meme avec le mode standard

par contre avec Apsystem avec un ECU-C tu peux récupérer la puissance injecté via ce code ( il faut modifier l’adresse Ip par celle de votre passerelle

# Creates Home Assistant Power and Energy sensors for APSystems ECU-C

# Copy this file to /homeassistant/packages/ecu.yaml
# Add the following lines to the /homeassistant/configuration.yaml:
# homeassistant:
#   packages:
#    system: !include packages/ecu.yaml

# Update the IP (192.168.0.6) to the address your ECU runs at
# Update the ECUID (215000015509) to your ECUID. You can find this on the main webpage of the ECU

rest:
  # Fetch power data
  # This data is generated by measuring the CT clamps.
  - resource: "http://xxx.xxxx.xxxx.xxxx/index.php/hidden/set_get_app_info_json"
    method: POST
    scan_interval: 300
    payload: '{"Command_Id": "53","APS": "ASK","Command": "1","Version": "1.1","ECUID": "215000067809"}'
    sensor:
      - name: Solar Power Produced L1
        unique_id: solar_power_produced_l1
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: '{{ value_json["meter_data"]["power1"][-1]["powerA"] / 1000}}'
      - name: Solar Power Produced L2
        unique_id: solar_power_produced_l2
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: '{{ value_json["meter_data"]["power1"][-1]["powerB"] / 1000 }}'
      - name: Solar Power Produced L3
        unique_id: solar_power_produced_l3
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: '{{ value_json["meter_data"]["power1"][-1]["powerC"] / 1000 }}'

      - name: Grid Power Produced L1
        unique_id: grid_power_produced_l1
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: >-
          {% set power = value_json["meter_data"]["power2"][-1]["powerA"]  / 1000 %}
          {% if power < 0 %}
            {{ power * -1 }}
          {% else %}
            0
          {% endif %}
      - name: Grid Power Produced L2
        unique_id: grid_power_produced_l2
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: >-
          {% set power = value_json["meter_data"]["power2"][-1]["powerB"] / 1000 %}
          {% if power < 0 %}
            {{ power * -1 }}
          {% else %}
            0
          {% endif %}
      - name: Grid Power Produced L3
        unique_id: grid_power_produced_l3
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: >-
          {% set power = value_json["meter_data"]["power2"][-1]["powerC"] / 1000 %}
          {% if power < 0 %}
            {{ power * -1 }}
          {% else %}
            0
          {% endif %}
      - name: Grid Power Consumed L1
        unique_id: grid_power_consumed_l1
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: >-
          {% set power = value_json["meter_data"]["power2"][-1]["powerA"] / 1000 %}
          {% if power > 0 %}
            {{ power }}
          {% else %}
            0
          {% endif %}
      - name: Grid Power Consumed L2
        unique_id: grid_power_consumed_l2
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: >-
          {% set power = value_json["meter_data"]["power2"][-1]["powerB"] / 1000 %}
          {% if power > 0 %}
            {{ power }}
          {% else %}
            0
          {% endif %}
      - name: Grid Power Consumed L3
        unique_id: grid_power_consumed_l3
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: >-
          {% set power = value_json["meter_data"]["power2"][-1]["powerC"] / 1000 %}
          {% if power > 0 %}
            {{ power }}
          {% else %}
            0
          {% endif %}
      - name: Domestic Power Consumed L1
        unique_id: domestic_power_consumed_l1
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: '{{ (value_json["meter_data"]["power1"][-1]["powerA"] + value_json["meter_data"]["power2"][-1]["powerA"]) / 1000 }}'
      - name: Domestic Power Consumed L2
        unique_id: domestic_power_consumed_l2
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: '{{ (value_json["meter_data"]["power1"][-1]["powerB"] + value_json["meter_data"]["power2"][-1]["powerB"]) / 1000 }}'
      - name: Domestic Power Consumed L3
        unique_id: domestic_power_consumed_l3
        unit_of_measurement: kW
        state_class: measurement
        device_class: power
        value_template: '{{ (value_json["meter_data"]["power1"][-1]["powerC"] + value_json["meter_data"]["power2"][-1]["powerC"]) / 1000 }}'

# Fetch energy data
# This data is generated by measuring the CT clamps.
scrape:
  - resource: http://xxx.xxxx.xxxx.xxxx/index.php/display/historical_data/meter_lifetime_energy/
    scan_interval: 300
    sensor:
      - name: Solar Energy
        unique_id: solar_energy
        unit_of_measurement: kWh
        device_class: energy
        state_class: total
        select: "div.table-responsive > table > tbody > tr:nth-of-type(1) > td:nth-of-type(3)"
        value_template: '{{ value| float | round(3) }}'
      - name: Grid Energy
        unique_id: grid_energy
        unit_of_measurement: kWh
        device_class: energy
        state_class: total
        select: "div.table-responsive > table > tbody > tr:nth-of-type(2) > td:nth-of-type(3)"
        value_template: '{{ value| float | round(3) }}'

template:
  sensor:
    # We need the inverted Grid Energy to feed the Grid Production meter
    - name: "Grid Energy Inverted"
      unique_id: grid_energy_inverted
      state_class: total
      device_class: energy
      unit_of_measurement: "kWh"
      state: "{{ states('sensor.grid_energy') | float * -1 }}"

utility_meter:
  solar_energy_produced:
    name: "Solar Energy Produced"
    unique_id: solar_energy_produced
    source: sensor.solar_energy
    delta_values: false
    net_consumption: false
    periodically_resetting: false
  grid_energy_consumed:
    name: "Grid Energy Consumed"
    unique_id: grid_energy_consumed
    source: sensor.grid_energy
    delta_values: false
    net_consumption: false
    periodically_resetting: false
  grid_energy_produced:
    name: "Grid Energy Produced"
    unique_id: grid_energy_produced
    source: sensor.grid_energy_inverted
    delta_values: false
    net_consumption: false
    periodically_resetting: false

sensor:
  # Calculate total power values
  - platform: min_max
    name: Solar Power Produced
    unique_id: solar_power_produced
    round_digits: 3
    type: sum
    entity_ids:
      - sensor.solar_power_produced_l1
      - sensor.solar_power_produced_l2
      - sensor.solar_power_produced_l3

  - platform: min_max
    name: Grid Power Produced
    unique_id: grid_power_produced
    round_digits: 3
    type: sum
    entity_ids:
      - sensor.grid_power_produced_l1
      - sensor.grid_power_produced_l2
      - sensor.grid_power_produced_l3

  - platform: min_max
    name: Grid Power Consumed
    unique_id: grid_power_consumed
    round_digits: 3
    type: sum
    entity_ids:
      - sensor.grid_power_consumed_l1
      - sensor.grid_power_consumed_l2
      - sensor.grid_power_consumed_l3

  - platform: min_max
    name: Domestic Power Consumed
    unique_id: domestic_power_consumed
    round_digits: 3
    type: sum
    entity_ids:
      - sensor.domestic_power_consumed_l1
      - sensor.domestic_power_consumed_l2
      - sensor.domestic_power_consumed_l3

Il faut utilisé le "Grid Energy Produced " dans le module energy de HA pour avoir les Kwh renvoyé vers le réseau

It now also contains energy sensors for use in the Energy Dashboard of Home Assistant.

Grid Energy Consumed: You can use this sensor in the "Grid consumption" section
Grid Energy Produced: You can use this sensor in the "Return to grid" section**
Solar Energy Produced: You can use this sensor in the "Solar production" section
All these sensors have state_class: total_increasing. This means they contain positive, increasing values and will never reset. Have fun with your new Energy Dashboard!

Merci @bart40140 pour l’info. En première lecture je ne comprends pas grand chose. Ca à l’air du top level. Je regarderai plus attentivement à tête reposée.

si tu as deja fait quelque ligne en Yaml ca devrait le faire :slight_smile:

C’est expliqué au debut du code : `

# Creates Home Assistant Power and Energy sensors for APSystems ECU-C

# Copy this file to /homeassistant/packages/ecu.yaml
# Add the following lines to the /homeassistant/configuration.yaml:
# homeassistant:
#   packages:
#    system: !include packages/ecu.yaml

# Update the IP (192.168.0.6) to the address your ECU runs at
# Update the ECUID (215000015509) to your ECUID. You can find this on the main webpage of the ECU`

Bonjour @bart40140

J’ai recopié le fichier ecu.yaml en modifiant l’IP (à deux endroits) et mis à jour l’identifiant pour le ECUID comme indiqué. J’ai ensuite déclaré le package dans le fichier de config et redémarré HA.
Lorsque j’affiche une card avec les entités générées par ecu.yaml elles apparaissent toutes comme inconnues !
image

Je suis passé sans doute à côté de quelque chose, tu aurais une idée ?
Cdt

dans ton fichier configuration.yaml

tu as bien mis :

> homeassistant:
>   packages:
>     system: !include packages/ecu.yaml

et ton fichier ecu.yaml dans un dossier packages ?

Oui j’ai bien mis ces lignes.

… par contre je viens de m’apercevoir que le boîtier n’est pas un ECU-C mais un ECU-R !
Sans doute que le fichier ecu.yaml n’est pas compatible avec mon modèle ?

ahhh bah ne cherche pas plus loin, il te faut un ECU - C avec les tores de mesure,

ECU R ne fait que remonté ta production, sans les tore de mesure, il ne peut pas savoir combien tu consomme pour faire le calcul d’injection !

Il te faut un shelly EM ou tout autre module de suivi de consommation pour le coup ou attendre que ton contrat de revente soit opérationnel