Appréhender le dashboard Energy avec enphase

Salut,

Oui avec les pinces tu pourra tout faire.

Les pince sur le réseaux te donneront ta consommation total.

Ceux sur ta production, tu devines hihi

Tu as aussi d’autres informations que tu va récupérer depuis l’intégration enphase (sur HACS car l’officiel s’arrête a une certaines version de s-metered).

Je pense que tu peux déjà récupérer pas mal d’informations via l’intégration (production, export, consommation de ce que tu as produit au moins). Les pinces te permettent d’avoir les informations a l’instant T et remonter ta consommation totale.

Merci @McFly,
Pour l’instant je n’ai pas les pinces et les seules infos que je remonte sont les puissances des MO individuelles et le la puissance totale. J’ai créer des helper pour avoir l’énergie en kwh et un helper utility merter pour une remise à zéro chaque jour.
Je n’ai pas l’info. de l’export pour l’instant.

Ce qui me rassure dans ce que tu dis c’est que je n’aurai pas besoin d’acheter d’autre matériel.

Les pinces ne sont pas bidirectionnelles, je ne comprends pas comment la mesure de l’export se fait…

Merci

Si consommation total =0 alors production=export

Merci, Tout commence à s’éclairer.
Consommation réseau => Mesure fournie par les pinces
Production solaire => Mesure fournie par les pinces
Import => Par calcul
Export => Par calcul
Conso globale => Par calcul
J’ai tout bon ?

Bonjour,
Je relance le fil car j’ai mes pinces de connectées mais par contre je pense que je ne comprends pas la philosophie du dashboard energie et les fils du forum ne m’aident pas du tout.
Ma première question concerne le dashboard en lui-même. Pourquoi est-ce qu tout le monde passe par des cartes différentes que celle proposé par le dashboard énergie? Moi, elle me convient très bien cette représentation (bon mis à part que j’arrive à n’afficher que ma conso et ma prod. Les capteurs d’export et import se font jeter). Peut-être que ceci explique cela…
Ma deuxième question, concerne le yaml. tout le monde balance les lignes de codes mais ou doit on les mettre? Moi j’ai créer un nouveau fichier sensor donc si on en met un peu ici et un peu dans le configuration.yaml ca devient illisible…
Enfin est-ce que quelqu’un est capable de mefaire marcher mon dashboard? Pour l’instant j’arrive à entre la conso réseau, la production solaire mais le retour réseau bloque complètement. Dès que je mets un capteur il me dit qu’il n’est pas de la bonne classe.
Bref je creuse pour pouvoir afficher mes données sur la carte originale.

Le dashboard energie est pas mal une vue historique par heure.
Si des gens (pas tout le monde) veut voir des stats avec une plus petite granularité alors ils le refont. Faut aussi savoir que le dashboard énergie a été ajouté à l’été 2021, certains posts qui présentent des cartes datent d’avant ça.

Plus généralement on fait des cartes pour avoir une vue instantanée de la situation, donc pas en kWh mais en W.

Le Yaml en verion simple est basé sur les domaines principaux, les mots clés en début de ligne, donc si tu fait un fichier « sensor » avec la ligne ci-dessous dans configuration.yaml, tout ce que tu met dans le nouveau fichier est considéré comme étant sur le mot clé « sensor; »

sensor: !include sensor.yaml

Donc les codes Yaml que les gens postent dépendent de quel domaine ils font partie, sensor, mqtt, binary_sensor…
La lisibilité vient plutôt avec l’habitude.

Comme tu me l’as demandé sur l’autre post, voilà une version courte. :slight_smile:
Pour commencer tu as tes 2 entités de conso et production instantanés qui viennent de la passerelle.

sensor.envoy_xxxxxxxxxxxx_current_power_production
sensor.envoy_xxxxxxxxxxxx_current_power_consumption

L’import et l’export son basés sur la même valeur : la différence entre la prod et la conso.
Donc on a une première entité a créer dans le fichier sensor.

- platform: template
    sensors:
      prod_cons_diff:
        value_template: "{{ states('sensor.envoy_xxxxxxxxxxxx_current_power_production') | int(default=0) - states('sensor.envoy_xxxxxxxxxxxx_current_power_consumption') | int(default=0) }}"
        unit_of_measurement: "W"
        device_class: power

Avec ça on calcule l’import et l’export.
L’import c’est cette différence si elle est inférieure ou égale à 0.
Donc à la suite du précédent sensor on ajoute:

      grid_to_house_entity:
        device_class: power
        unit_of_measurement: W
        value_template: >
          {% if states('sensor.prod_cons_diff')|int(default=0) <= 0 %}
            {{ states('sensor.prod_cons_diff')|int(default=0) * -1 }}
          {% else %}
            0
          {% endif %}

L’export c’est presque pareil mais quand la différence est supérieure à 0.
Encore à la suite:

      generation_to_grid_entity:
        device_class: power
        unit_of_measurement: W
        value_template: >
          {% if states('sensor.prod_cons_diff')|int(default=0) > 0 %}
            {{ states('sensor.prod_cons_diff')|int(default=0)}}
          {% else %}
            0
          {% endif %}

Donc là tu as 2 entités qui te donnent les imports et exports instantanés en W.
Pour passer en kWh il faut passer par une intégrale, comme tu as fait dans les « entrées ».
Moi j’ai encore ça en Yaml, je l’avais fait avant que ça n’existe en « entrée ».
Du coup j’ai 2 nouveaux sensors à ajouter au fichier sensor:

 - platform: integration
   source: sensor.grid_to_house_entity
   name: energy_spent
   unit_prefix: k
   unit_time: h
   round: 2
   method: left
 - platform: integration
   source: sensor.generation_to_grid_entity
   name: energy_exported
   unit_prefix: k
   unit_time: h
   round: 2
   method: left

Dans le Dashboard énergie, du coup je met mes « energy_spent » « energy_exported » et le cumul de production d’aujourd’hui fourni par la passerelle comme production solaire.

C’est tout. chez moi ça marche bien.

1 « J'aime »

Bonjour,
Un grand merci @AlexHass. J’avoue me trouver un peu bête quand je vois la solution sous mes yeux…
Bon après le yaml est assez déconcertant avec les % en début et fin de lignes (il faut le savoir…ça ne s’invente pas). A ce propos existe t-il des tutos pour apprendre le yaml ?

Une autre ligne de code ou je suis pas à l’aise c’est:
- platform: template
A quoi sert cette ligne ? De ce que je comprends de l’aide HA, cela sert à modifier les propriétés d’une entité qui ne peut pas se faire par l’UI. J’ai juste ?

Pour ma part, un historique par heure me suffit largement et je vais peut être passer par des helpers pour les capteurs d’intégration car ca permet assez facilement de rajouter un coût d’export et d’import…
En plus la comme ils sont définis je ne vois pas la remise à zéro de ces capteurs. il se remettent à zéro chaque jour ?

En tout cas merci d’avoir passé du temps sur mon soucis qui m’ont aidé à comprendre pas mal de choses :slight_smile:

Salut,

Content que ça marche :slight_smile:

Sinon pour la syntaxe. Le YAML c’est juste la façon de définir des entités ou autre et de donner tous les paramètres nécessaires à la configuration ou les options à activer.
Dans certains cas, comme l’import ou l’export, la valeur d’état du sensor nécessite un calcul plus complexe, on ne peux pas juste mettre un nombre fixe. C’est là qu’on ajoute une expression template qui est dans une langage spécifique, dans HA c’est du JINJA2, c’est ça qui utilise des {% … %} ou les {{…}}. C’est pour dire à HA qu’il faut interpréter ce qui suit et ne pas juste prendre le texte tel qu’il est donné.

Donc en simples les {% %} contiennent les calculs et la logique qui doivent donner comme résultat la valeur qu’on veut donner au paramètre. Donc ici, {% prod - conso %}.

La plateforme définit le type d’intégration que HA doit utiliser pour les infos qui suivent, ici template c’est pour dire que c’est quelque chose que nous définissions nous même.
La doc de chaque intégration donne la valeur à mettre…
Exemples:

  - platform: systemmonitor
  - platform: integration
  - platform: history_stats
  - platform: xiaomi_cloud_map_extractor
  - platform: emby
...

Non… là comme ça, c’est suffisant pour le dashboard energie. Mais les compteurs ne se mettent pas à 0.
Pou ça il faut rajouter une surcouche comme un utility_meter qui aura pour but de faire les totaux au intervalles définies.

Hello moi j’arrive même pas a mettre le premier bout de code dans le fichier sensors.yaml…


Salut, je ne suis pas le meilleur pour les fichiers .yaml mais là je crois que c’est juste un problème d’indentation: Ton premier « s » de sensors doit être juste en dessous de ton « p » de platform.
Je sais ça ne correspond pas avec ce que nous a dit AlexHass mais moi ca marche chez moi. Du coup voici mon code en plein:

  - platform: template
    sensors:
      prod_cons_diff:
        value_template: "{{ states('sensor.envoy_xxxxxxxx_current_power_production') | int(default=0) - states('sensor.envoy_xxxxxxxxxx_current_power_consumption') | int(default=0) }}"
        unit_of_measurement: "W"
        device_class: power

      grid_to_house_entity:
        device_class: power
        unit_of_measurement: W
        value_template: >
          {% if states('sensor.prod_cons_diff')|int(default=0) <= 0 %}
            {{ states('sensor.prod_cons_diff')|int(default=0) * -1 }}
          {% else %}
            0
          {% endif %}

      generation_to_grid_entity:
        device_class: power
        unit_of_measurement: W
        value_template: >
          {% if states('sensor.prod_cons_diff')|int(default=0) > 0 %}
            {{ states('sensor.prod_cons_diff')|int(default=0)}}
          {% else %}
            0
          {% endif %}

  - platform: integration
    source: sensor.grid_to_house_entity
    name: energy_spent
    unit_prefix: k
    unit_time: h
    round: 2
    method: left

  - platform: integration
    source: sensor.generation_to_grid_entity
    name: energy_exported
    unit_prefix: k
    unit_time: h
    round: 2
    method: left

J’espère que ça résoudra ton problème pas bien méchant

Salut,

Il faut faire attention aux indentations!!
Le « - platform… » ne doit pas être en début de ligne! il y a un espace avant!
Cela vient du fait qu’il faut prendre le YAML dans tes différents fichier comme un « tout ».

Donc dans le configuration.yaml, comme tu as ajouté une ligne « sensor: » suivi par l’include de sensors.yaml, ils faut faire comme si le contenu de sensors.yaml venait à la suite de « sensor: »

Je ne sais pas si j’étais clair, mais je me comprends

1 « J'aime »

Effectivement c’est ok, le copié/collé n’aligne pas directement

Merci beaucoup

C’est dur a comprendre au premier abord, entre les espace et les - les {"(

Salut @AlexHass
tout d’abord merci pour le taff je viens de suivre ce que tu as fait pour la partie energy par contre je ne comprends pas un truc.
energy_spent ne correspond pas a ce que j’ai sur enedis par jour ni même par heure. Je crois comprendre que c’est la différence entre la consommation moins la production mais vu que l’on se base sur de l’instantanée, j’ai du mal a comprendre. Ce que j’importe d’enedis + ce que je produis me donne ma consommation de ma maison au global normalement.
Pour la partie export je suis d’accord.

Je ne sais pas si je suis compréhensible :smiley:

Salut,

Ces calculs sont pour nécessaires dans la cas de Enphase, si on utilise leurs mesures basées sur des pinces en entrée de la maison et en sortie des panneaux. Les valeurs reçues de la passerelle pour la consommation fait déjà la somme « enedis + part solaire autoconsommée ».
Donc il faut re-décomposer… pas le choix.

Ensuite, la somme de Riemann, ça reste une approximation donc la précision va dépendre de la fréquence de mises à jour des valeurs d’entrée et de la variabilité des valeurs…
Mais elle a pour but ici de convertir des W Instantanés en quantité d’énergie en kWh.

Donc la différence avec ce que dit ton compteur existe… mais dans les grandes lignes ça devrait être assez proche, a quelques Wh près… D’ailleurs ton compteur électrique lui aussi doit utiliser ce genre de calcul je pense.

Exemple d’approximation, si ton entité reçoit une valeur de W toutes les minutes.
Exemple : 1000W.
Et qu’en réalité tu consommes 30sec à 1000W puis 30sec à 0W…
Tu aura utilisé 500Wm
Mais le calcul lui ne vois que 1000W pdt 1 min… et enregistrera 1000Wm

Oui d’accord j’avais cru que c’était générique. Je peux utiliser uniquement la partie export ? Où il faut modifier un peu la méthode de calcul ?

J’utilise pour la partie énergie energy_exported. Et pour le temps réel avec power flow le sensor.generation_to_grid_entit

Ca dépend vraiment des valeurs que tu as!
Et surtout d’où provient la mesure de consommation de la maison.
Autre chose a prendre en compte c’est la fréquence de mise à jour de la conso et la prod… elle doivent être synchro si possible.

Pour la partie tableau Energie de HA j’utilise le sensor.lixee_east il doit faire uniquement le calcul par jour car le compteur est à plus de 14 000 Kwh… et pour la partie panneau j’utilise les données que me remonte la passerelle AP system sensor.ecu_today_energy en kwh également.

Pour la partie instantanée j’ai pour mes panneaux de l’instantanée en W (5 minutes) et en VA (que j’utilise en W) pour le lixee sensor.lixee_sinsts

Au niveau réseau enedis et sur ma passerelle ECU j’ai exactement les mêmes valeurs, reste juste la partie surplus pour le moment avec ta méthode que j’utilise.

Alors effectivement si tu as à dispo en kWh la prod et la conso basé sur un compteur.
C’est totalement suffisant pour la Dashboard, pas besoin de calculer.

Pour l’export jen e pense pas que tu puisse utiliser sensor.lixee_sinsts car cette valeur en plus d’être en VA est aussi faussée par l’autoconsommation je pense.
Je ne peux pas confirmer, je n’ai pas de linky, mais normalement il fournit aussi un index d’export directement en W je crois. Donc tu ne devrait pas avoir trop de calculs à faire si c’est le cas. (valeur sinsti)

La valeur sinsti pour le moment a toujours été à zéro donc je ne sais même pas si ça marche :rofl: en même temps vu le temps horrible je risque de pas de surproduire. De tout façon ça sera qu’une valeur en instantané je pense ?
Par contre pour le Dashboard il me faut une valeur en kw … Ce que tu as fait c’était bien mais un peu faussé par mes données du coup