J’utilise un contacteur Legrand 412171 pour ma prise Green’Up pour la recharge de ma voiture.
J’aimerais savoir la consommation en kWh de cette prise ainsi que le prix que ça me coûte.
J’ai donc créé une intégrale de Riemann avec calcul des rectangles a gauche.
Une minute pour sous intervalle maximum.
Modifié le Zigbe2mqtt => activePower est par defaut a 65000, mis à 60 secondes.
Est-ce que ça va marcher ?
C’est possible d’avoir la consommation mois par mois par exemple ? Et sur un an ?
Je suis abonné au tarif Tempo EDF, et en ça, j’ai une intégration qui me donne à tout instant le prix du kWh dans la journée (qui change en fonction des jours et des heures).
J’aimerais maintenant (je ne sais pas comment faire) utiliser cette consommation calculé multiplié par le prix au kWh à chaque instant. Comment faire ?
Et comme la consommation, avoir un récapitulatif par mois / par année.
Le mieux serait aussi par tarif mais c’est certainement plus compliqué (6 tarifs => bleu / blanc / rouge en HC et HP).
Voilà ce que j’ai fais, je ne suis pas certain que cela soit correct :
#╔══════════════════════════════════════════════════════════════════════════════════╗
#║ Calcul des consommations et des prix de la Green'Up ║
#║ ║
#║ Le calcul est basé sur : ║
#║ - Le capteur de puissance la Green'Up 412171 : sensor.0x0004740001246658_power ║
#║ - Le calcul du prix courant à tout instant : sensor.edf_prix_courant ║
#║ ║
#║ - Pour l'éngergie : le calcul de la consommation est une intégral de Riemann ║
#║ sur le capteur sensor.0x0004740001246658_power ║
#║ - Pour le prix : le produit de la consommation énergétique par son prix mis ║
#║ à jour en temp réel. Puis une intégrale ║
#╚══════════════════════════════════════════════════════════════════════════════════╝
# Intégrale pour calculer la consommation de la Green'Up
- name: Consommation de la Green'Up
unique_id: consumption_green_up
icon: mdi:chart-histogram
state_class: energy
unit_of_measurement: kWh
platform: integration
source: sensor.0x0004740001246658_power
round: 2
unit_prefix: k
unit_time: s
method: left
# Variable temporaire pour calculer le prix instantané par rapport à la consommation de la Green'Up
# Attention, cette donnee ne sert qu'à calculer le coût de la consommation, valeur d'entrée de l'intégrale en dessous.
- name: Coût instantané de la consommation de la Green'Up
unique_id: instantaneous_consumption_green_up_price
icon: mdi:currency-eur
state_class: measurement
state: >-
{{ (states['sensor.0x0004740001246658_power'].state | float) * (states['sensor.edf_prix_courant'].state | float) }}
# Intégrale pour calculer le prix de la consommation de la Green'Up
- name: Coût de la consommation de la Green'Up
unique_id: consumption_green_up_price
icon: mdi:currency-eur
state_class: monetary
unit_of_measurement: EUR
platform: integration
source: sensor.instantaneous_consumption_green_up_price
round: 2
unit_prefix: k
unit_time: s
method: left
Je fais une intégrale sur le capteur de puissance de la Zoé.
Ensuite, pour calculer le prix je fais le produit de la puissance par le prix à l’instant T et fait une intégrale.
Pas certain que ça soit bon.
J’aurais pu faire :
Je fais une intégrale sur le capteur de puissance de la Zoé.
Ensuite, pour calculer le prix je fais le produit de ce résultat d’intégral par le prix à l’instant T.
Pas certain que ça soit bon non plus.
Si le Legrand 412171 ne te donne pas la consommation en kWh directement, il te faut en effet:
tout d’abord calculer l’énergie consommée (transformation de la consommation en kW en énergie en kWh, en utilisant un template Intégrale de Riemann
Utiliser ce nouveau sensor dans le dashboard énergie par exemple, qui te permettra d’avoir l’énergie par heure, par jour, par mois, par année.
Si tu veux avoir un suivi des coûts, tu peux le faire dans le dashboard énergie en utilisant le sensor que tu as avec le prix, qui cahnge en fonction des heures.
Le dashboard énergie est déjà utilisé de cette façon pour la consommation de la maison tout entière.
J’ai mis en source, une puissance instantanée, somme des consommations des 3 phases remontées par mes panneaux photovoltaïques et ça a l’air de fonctionner. Il utilise peut-être les unités pour savoir s’il fait une intégrale ou pas. Mais là n’est pas la question.
Visiblement ça ne fonctionne pas !
J’ajoute le fichier avec cette commande : il y a un truc qui déconne, il ne prend pas en compte les intégrales (ni si dans le dossier YAML/integrations, ni le dossier YAML/templates (qui contient plein d’autres fichiers qui fonctionnent).
je me melange un peu les pinceaux…desolé suis novice:
en installant https://github.com/delphiki/hass-tarif-edf tu obtiendras tous les tarifs tempo et l’entité qui nous interresse: sensor.tarif_actuel_tempo_6kva_ttc dans mon cas…
Je trouve très bizarre que ça roule sans intégration. Sauf si ton tarif ne bouge pas.
Je l’utilise cette intégration : edf.
Pour le calcul du prix courant, j’utilise :
#╔══════════════════════════════════════════════════════════════════════════════════╗
#║ Calcul du prix de l'énergie en temps réel ║
#║ ║
#║ Sensors qui permettent de connaitre à chaque instant le prix de l'électricité ║
#╚══════════════════════════════════════════════════════════════════════════════════╝
sensor:
# Prix courant, en €/kWh, utilisé un peu partout
- name: edf_prix_courant
icon: mdi:currency-eur
unique_id: edf_prix_courant
state_class: measurement
unit_of_measurement: "EUR/kWh"
state: >-
{% set color = states['sensor.rte_tempo_couleur_actuelle'].state %}
{% if (color == 'unavailable') %}
0.0
{% elif is_state('binary_sensor.rte_tempo_heures_creuses', "off") %}
{{ states['sensor.tarif_' + color.lower() + '_tempo_heures_pleines_ttc'].state }}
{% else %}
{{ states['sensor.tarif_' + color.lower() + '_tempo_heures_creuses_ttc'].state }}
{% endif %}
Impossible d’ajouter un sensor de type intégration (intégrale de Riemann): HA ne voit pas le capteur.
J’ai essayé plein de choses, plein d’includes, rien à faire, HA ne voir pas ce capteur !
Pourtant, pas d’erreur dans le log.
Il y a un truc qui cloche et je ne comprend pas quoi !
Vous avez déjà intégré un sensor de type intégrale de Riemann dans un fichier yaml ?
Bonjour,
Je pense que j’ai un peu la même chose mais pour suivre la production solaire de mes panneaux via un module sur une prise.
J’ai créé un sensor via l’intégrale :
Et après j’ai fait 3 sensors compteur d’énergie :
Chacun me permet de collecter jour / mois / année.
Ils sont basés sur mon sensor « intégral » et je change juste l’intervalle de temps.
C’est basique mais efficace, il y a je pense mieux à faire.
Ps : j’ai aussi le legrand mais pour mon cumulus (donc je suis passé par le calcul d’intégrale pour avoir les kwh)
et après je pense que tu peux utiliser ces sensors pour y coller un calcul avec le prix…
Déjà, je tente de le faire en yaml. Ça me permet d’avoir tous mes capteurs sous forme texte.
Et déjà, ça je n’y arrive pas. Lorsque j’y arrive, (en tout cas pas d’erreur de config ou de log) je ne sais pas ou passe ce capteur !
Le code est le suivant :
Inclus avec : sensor: !include_dir_merge_list /config/YAML/integrations
Dans ce répertoire /config/YAML/integrations j’ai un fichier yaml qui contient ça :
- platform: integration
name: "Consommation de la Green'Up"
unique_id: consumption_green_up
source: sensor.0x0004740001246658_power
round: 2
unit_prefix: k
unit_time: s
method: left
Impossible de trouver consumption_green_up ni avec sensor.consumption_green_up ni autre chose. EDIT : Bon, j’ai trouvé la solution ; contrairement aux autres capteurs, il FAUT redémarrer HA à chaque changement. Recharger la configuration ne suffit pas !
Autre chose :
Multiplier le résultat d’une intégrale qui somme les consommations par un prix en € / kWh ne fonctionne que si le prix n’évolue pas. Or là, le prix est différent entre les jours bleu / blanc / rouge et en fonction de HP / HC.
Il doit y avoir aussi un calcul d’intégrale pour le prix. C’est pour ça qu’il faut calculer un prix instantané en multipliant la consommation instantanée par le prix à ce moment puis faire un calcul d’intégrale.
EDIT : Je pens(ais)e utiliser le sensor compteur d’énergie. C’est un peu con je pense (pas certain qu’on puisse faire sans). En fait il suffit d’avoir un compteur global, le reste c’est du calcul et de l’affichage (pas compliqué de faire des différences entre deux périodes). Je ne sais pas si ça existe sinon je ferais comme toi certainement.
Bon, déjà je vais vous montrer où j’en suis :
J’ai donc réussi à mettre sous forme yaml, un calcul Intégral de Riemann.
J’ai fais des essais avant et c’est un échec. L’intégrale ayant déjà calculé des valeurs, IMPOSSIBLE de la remettre à 0 et j’avais des valeurs complètement aberrantes !
Voir le sujet ici :
Dans le répertoires sensors j’ai le fichier template_compute_greenup_price_consumption.yaml qui contient :
#╔══════════════════════════════════════════════════════════════════════════════════╗
#║ Calcul des consommations et des prix de la Green'Up ║
#║ ║
#║ Le calcul est basé sur : ║
#║ - Le capteur de puissance la Green'Up 412171 : sensor.0x0004740001246658_power ║
#║ - Le calcul du prix courant à tout instant : sensor.edf_prix_courant ║
#║ ║
#║ - Pour l'éngergie : le calcul de la consommation est une intégral de Riemann ║
#║ sur le capteur sensor.0x0004740001246658_power ║
#║ - Pour le prix : le produit de la consommation énergétique par son prix mis ║
#║ à jour en temp réel. Puis une intégrale ║
#╚══════════════════════════════════════════════════════════════════════════════════╝
# Intégrale pour calculer la consommation de la Green'Up
- platform: integration
name: Consommation de la GreenUp
source: sensor.0x0004740001246658_power
round: 2
unit_prefix: k
unit_time: h
method: left
# max_sub_inteval:
# seconds: 10
# Variable temporaire pour calculer le prix instantané par rapport à la consommation de la Green'Up
# Attention, cette donnee ne sert qu'à calculer le coût de la consommation, valeur d'entrée de l'intégrale en dessous.
- platform: template
sensors:
instantaneous_consumption_green_up_price:
friendly_name: "Coût instantané de la consommation de la Green'Up"
unit_of_measurement: "€"
unique_id: instantaneous_consumption_green_up_price
value_template: >-
{% if states['sensor.0x0004740001246658_power'].state == "unavailable" or states['sensor.edf_prix_courant'].state == "unavailable" %}
{{ 0.0 }}
{% else %}
{{ (states['sensor.0x0004740001246658_power'].state | float) * (states['sensor.edf_prix_courant'].state | float) | float }}
{% endif %}
# Intégrale pour calculer le prix de la consommation de la Green'Up
- platform: integration
name: Coût de la consommation de la GreenUp
source: sensor.instantaneous_consumption_green_up_price
round: 2
unit_prefix: k
unit_time: h
method: left
Par contre, j’ai 4 courbes dont 2 invisibles qui sont le cumul sur la journée / semaine.
Ça fonctionne bien mais par contre les axes c’est la merde, ça ne devrait pas faire ça !
J’ai modifié :
span:
end: isoWeek
par
span:
end: week
Mais ce n’est pas ce que je veux. Si je mets isoWeek, la barre bleue est sur plusieurs jours, il y a des bugs.
Idem pour l’axe : je veux à gauche les kWh basés sur le graphe orange (et pas le rouge) et à droite l’axe des € basés sur le graphe bleu (et pas le vert).