Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suivi des coûts #2

Open
webjib opened this issue Sep 4, 2023 · 60 comments
Open

Suivi des coûts #2

webjib opened this issue Sep 4, 2023 · 60 comments

Comments

@webjib
Copy link

webjib commented Sep 4, 2023

Tout d'abord, bravo pour cette extension qui marche parfaitement bien !

Dans le paramètre du tableau de bord Energie, quand on choisit la source de données Linky, on ne peut pas choisir de suivre les coûts, notamment en indiquant un coût statique. Tu crois que c'est facile à ajouter de ton coté ?

Capture d'écran 2023-09-04 à 18 28 55
@bokub
Copy link
Owner

bokub commented Sep 4, 2023

Effectivement j'ai rencontré ce problème, mais c’est une limitation de Home Assistant, qui interdit de paramétrer un prix sur des statistiques « externes » (c’est à dire non créées par un sensor).

J’ai essayé de trouver plus d’informations et / ou des moyens de contourner cette limitation mais c’est assez difficile de trouver de la documentation. J'ai également demandé des infos ici, puis ici puis ici, mais sans succès pour l'instant.

Je l'aisse l'issue ouverte tant que ce problème n'est pas résolu

@bokub bokub pinned this issue Sep 4, 2023
@webjib
Copy link
Author

webjib commented Sep 4, 2023

Merci pour ta réactivité !

@Jacquiers687
Copy link

Bonjour à tous,
petite réponse @bokub , je crois avoir trouvé une issue, au fait que les choix 3 et 4 soit grisés.
Perso ca me fait pareil, chez moi lorsque j'ouvre l'ecran de configuration directement via l'interface HA, mais ce matin que me suis penché dans la doc ENERGY ; et en surfant ca te propose un lien pour ouvrir "ta" page de config de ta gestion d'energie, et comme par miracle ; les choix 3 et 4 sont accessibles.
image

@webjib
Copy link
Author

webjib commented Nov 6, 2023

Pour moi ton astuce ne fonctionne pas.

@bokub : penses tu qu’il serait envisageable d’exposer les données comme un sensor à place (ou en plus). Car actuellement les données ne sont exploitables que dans le tableau de bord Énergie, et ça pourrait résoudre ce problème de suivi des coûts.

@SIM0N-F
Copy link

SIM0N-F commented Nov 7, 2023

Effectivement @webjib cette réponse semble indiqué cette possibilité.
@bokub Tu pense que ça serait possible d'avoir ce capteur en + de la statistic ? Un peu à l'image de l'addon MyEnedis par exemple.
image

@bokub
Copy link
Owner

bokub commented Nov 7, 2023

Oui effectivement, il serait possible de sauvegarder le coût de chaque journée ou demi-heure dans une entité à part, mais je me demande comment faire pour que ce soit configurable facilement par tous les utilisateurs sachant qu'il faut gérer:

  • Les tarifs base (facile)
  • Les HP / HC sachant que les plages horaires dépendent de chaque contrat
  • Les tarifs tempo (compliqué, car le tarif serait stocké par une entité gérée par l'utilisateur)

J'ai réfléchi à un système de template à fournir à l'addon et qui calculerait le prix pour une plage horaire donnée. ça pourrait marcher pour tout le monde mais j'ai peur que ce soit une usine à gaz et j'ai pas eu le temps de creuser plus. L'autre solution serait de ne pas gérer les tempo, mais c'est pareil je n'ai pas trouvé de format de config qui soit élégant. Je suis preneur d'idées / suggestions si vous en avez

@SIM0N-F
Copy link

SIM0N-F commented Nov 7, 2023

Bonjour @bokub, coté MyEnedis ils fournissent un panel de conf qui prend en compte ces paramètres:
image

Le paramétrage des plages horaires HC n'est pas des plus sympa en terme d'UX mais ça reste facilement accessible je trouve.

@Smokwithme
Copy link

Bonjour,
Avez vous trouvé une solution pour fixer un prix au moins pour l'abonnement de base. J'ai tenté de créer un capteur avec la valeur en state mais même si je peux ajouter l'entité dans le paramètre de cout, le calcul ne se fait pas.
Merci d'avance

@Jacquiers687
Copy link

Bonjour
oui j'ai compris comment cela fonctionnait hier.
SI on récupere les données du linky via une intégration, ca ne fonctionnera jamais.
Moi j'ai refait des sensor, de type energy, que je met à jour toutes les 30 min.
A coté de celà j'ai fait un template pour le prix, et quand je les integre tous les deux dans HA, et ca fonctionne !

template:
  - sensor: 
      - name: "Prix du Kwh en euros"
        state_class: 'measurement'
        unit_of_measurement: "EUR/kWh"
        unique_id: 'prix_kwh_bleu'
        icon: mdi:currency-eur 
        state: "{% if ( ((now().strftime('%H:%M') >= '01:30') and (now().strftime('%H:%M') < '07:30'))or((now().strftime('%H:%M') >= '12:30') and (now().strftime('%H:%M') < '14:30')) ) -%} {{states.input_number.prix_heure_creuse_kwh.state | float(default=0)}} {%- else -%} {{states.input_number.prix_heure_pleine_kwh.state | float(default=0)}} {%- endif %} "     

@Smokwithme
Copy link

Bonjour oui j'ai compris comment cela fonctionnait hier. SI on récupere les données du linky via une intégration, ca ne fonctionnera jamais. Moi j'ai refait des sensor, de type energy, que je met à jour toutes les 30 min. A coté de celà j'ai fait un template pour le prix, et quand je les integre tous les deux dans HA, et ca fonctionne !

template:
  - sensor: 
      - name: "Prix du Kwh en euros"
        state_class: 'measurement'
        unit_of_measurement: "EUR/kWh"
        unique_id: 'prix_kwh_bleu'
        icon: mdi:currency-eur 
        state: "{% if ( ((now().strftime('%H:%M') >= '01:30') and (now().strftime('%H:%M') < '07:30'))or((now().strftime('%H:%M') >= '12:30') and (now().strftime('%H:%M') < '14:30')) ) -%} {{states.input_number.prix_heure_creuse_kwh.state | float(default=0)}} {%- else -%} {{states.input_number.prix_heure_pleine_kwh.state | float(default=0)}} {%- endif %} "     

Super intéressant ça ! Et tu as fait quoi comme sensor pour récupérer tes data d'énergie ??

@Jacquiers687
Copy link

Moi j'ai abandonné les données de ENEDIS
j'ai acheté des ShellyEM, ce sont des petits compteurs d'énergie, j'en ai mis un à l'entrée de ma maison, un autre sur la pompe à chaleur, un autre sur le chauffe-eau, et un autre sur mon atelier, et par soustraction je connais le reste de ma maison.
Ces capteurs proposent directement l'energie, et la puissance.
On a la possibilité via les 'utility-meter" de calculer l'energie dans HA, en fonction de la puissance. moi j'ai préféré lire directement le compteur d'energie des shellys parceque le résultat était plus précis.
Ensuite en fonction de heures creuses et heures pleines je stocke cela dans des input-number séparée, et l'affaire est jouée.
Il faut juste par la suite transformer les input-number en sensor via une template pour qu'ils soient compatibles avec la carte energie et ca roule.
voilà voilà....
En fait, on est obligé de refaire tout celà , parceque la gestion de l'energie calcule le prix au moment ou tu entres les points dans la base de donnée > je trouve la gestion de l'energie un peu opaque, il faut tout faire par tatonnement.

@Smokwithme
Copy link

Merci beaucoup pour ton retour. Oui je confirme que c'est très opaque et pas facile a prendre en main.

@Jacquiers687
Copy link

Bonsoir,
Encore une question : quelle intégration as tu toi? il y en a plusieurs un peu courantes ici, et perso je ne savais pas laquelle choisir ! Avant de décider de tout refaire moi même.

@Smokwithme
Copy link

Smokwithme commented Dec 11, 2023

Bonsoir, Encore une question : quelle intégration as tu toi? il y en a plusieurs un peu courantes ici, et perso je ne savais pas laquelle choisir ! Avant de décider de tout refaire moi même.

Salut, j'ai l'intégration de ce repro ici HA-LINKY, j'ai fait le test d'ajouter un sensor :

- sensor:
      - name: prix_elec
        state_class: total
        state: 0.2276

J'arrive à ajouter ce sensor dans la config du pannel energie mais le calcul ne se fait pas.

@Jacquiers687
Copy link

re
j'ai eu le meme soucis que toi, et j ai finalement abandonné.
En plus j'ai deux tarifs (HP et HC) mais ca ne change pas grand chose.
Perso, je pense que à chaque fois que ton sensor est modifié, le systeme y associe une valeur pour le prix (valeur cachée) et qu'ensuite, il en fait la somme pour afficher.
Lorque les intégrations importent les données de ENEDIS, l'importation se fait en une fois, à chaque matin, mais que pour les valeurs d'energie et la collone prix n'est pas renseignée dans cet import, du coup ca ne fonctionne pas.
Moi ca ne fait que deux jours que j'ai refait mes sensors "perso", ca compte bien les prix, mais le résultat n'est encore pas tres juste, il va aussi falloir que je comprenne pourquoi !!
image

@pihomeserver
Copy link

pihomeserver commented Feb 14, 2024

Pour Tempo j'ai installé RTE Tempo
Tout est bien récupéré et le prix en cours est correct. Il manque "juste" la visibilité du sensor dans le tableau d'énergie pour calculer le prix de la consommation

@vasilvestre
Copy link

vasilvestre commented Mar 10, 2024

De mon côté j'utilise Direct énergie et sans HC/HP. Je n'arrive pas à régler la consommation pour l'onglet énergie.. pas moyen d'utiliser Tempo donc.
Quelqu'un aurait une piste ?

J'ai tenté de multipler le prix du kwh avec la consommation totale mais la donnée n'existe pas.

@Jacquiers687
Copy link

Hello
Pour moi, ce n'est pas possible de récuperer les prix que l'on paye en automatique, puisqu'il faudrait le faire chez ton fournisseur, et que ca dépend de taxes locales, de la TVA, etc.
Moi j'ai programmé un sensor qui le fait, avec des valeurs en euro/kw (constantes) pour les différentes plages...mais ca ne prend pas en compte le coup de l'abonnement

@vasilvestre
Copy link

Hello Pour moi, ce n'est pas possible de récuperer les prix que l'on paye en automatique, puisqu'il faudrait le faire chez ton fournisseur, et que ca dépend de taxes locales, de la TVA, etc. Moi j'ai programmé un sensor qui le fait, avec des valeurs en euro/kw (constantes) pour les différentes plages...mais ca ne prend pas en compte le coup de l'abonnement

Et comment tu utilises la consommation remontée par ha-linky dans ces calculs ? Le sensor "linky consumption" n'est pas reconnu dans les templates custom.

@Jacquiers687
Copy link

En effet tu as raison, choisir linky efface automatiquement le sensor "prix" ; moi j'ai remis des tores pour mesurer la puissance à l'entrée de ma maison, reliés à un ShellyEM et j'ai tout refait ma conso moi-meme ; c'est dommage de tout devoir refaire, quand ca existe déja à 80%

@vasilvestre
Copy link

Je garde espoir que Home assistant soit + souple sur la donnée externe ou que ha-linky trouve une solution magique. Surtout que je suis en tarif fixe.

@Smokwithme
Copy link

Je garde espoir que Home assistant soit + souple sur la donnée externe ou que ha-linky trouve une solution magique. Surtout que je suis en tarif fixe.

Moi j'utilise myelectricaldata et je récupère ma consommation et le coût. Ce n'est pas dans le panel énergie mais la carte dans le dashboard est largement suffisante pour le coup d'oeil quotidien. Et quand je veux regarder mes stats je regarde l'onglet de myelectricaldata

@cyril94440
Copy link

Oui effectivement, il serait possible de sauvegarder le coût de chaque journée ou demi-heure dans une entité à part, mais je me demande comment faire pour que ce soit configurable facilement par tous les utilisateurs sachant qu'il faut gérer:

  • Les tarifs base (facile)
  • Les HP / HC sachant que les plages horaires dépendent de chaque contrat
  • Les tarifs tempo (compliqué, car le tarif serait stocké par une entité gérée par l'utilisateur)

J'ai réfléchi à un système de template à fournir à l'addon et qui calculerait le prix pour une plage horaire donnée. ça pourrait marcher pour tout le monde mais j'ai peur que ce soit une usine à gaz et j'ai pas eu le temps de creuser plus. L'autre solution serait de ne pas gérer les tempo, mais c'est pareil je n'ai pas trouvé de format de config qui soit élégant. Je suis preneur d'idées / suggestions si vous en avez

Très facile quel que soit la config, à partir du moment où on a un sensor qui suit le prix actuel et un sensor qui suit la consommation.
Avec l'extension RTE Tempo, on a bien un sensor qui suit le prix actuel (après configuration), donc si cette extension exposait également un sensor, ce serait magique !

@Zeikotsu
Copy link

Des nouvelles sur cette demande?

@bokub
Copy link
Owner

bokub commented Jul 19, 2024

Ça arrive mais je suis en vacances donc ça prend un peu de temps

@Ulyxxe
Copy link

Ulyxxe commented Jul 24, 2024

Bonjour,
merci pour cette nouveauté tant attendue. Vous évoquer une remise à zéro pour avoir le cout des consommations précédemment importées, comment faire ?
bonne semaine

@Alexterieur007
Copy link

J'ai configuer mon fichier mais je n'arrive pas à ajouter la visibilité sur les couts.

@didi31
Copy link

didi31 commented Jul 24, 2024

Bonjour, merci pour cette nouveauté tant attendue. Vous évoquer une remise à zéro pour avoir le cout des consommations précédemment importées, comment faire ? bonne semaine

@Ulyxxe Dans l'onglet configuration du module, remplacer 'sync' par 'reset'. Une fois relancé, revenir à l'onglet et remettre Sync.

@didi31
Copy link

didi31 commented Jul 24, 2024

J'ai configuer mon fichier mais je n'arrive pas à ajouter la visibilité sur les couts.

@Alexterieur007 Après remise à 0, il doit y avoir une entité Consommation Linky (costs).
Est-ce le cas?

@Alexterieur007
Copy link

@didi31 Effectivement, en suivant le reset c'est apparu. Par contre, je pense qu'il y a un soucis sur le graphique en fonction de la date la plus récente. ici 18/07 dans la capture
image

Et tout ce qui se trouve avant le 18/07 n'est plus réparti sur la journée.
image

Le 18/07 c'est ok
image

@pilou33
Copy link

pilou33 commented Jul 25, 2024

Je n'ai pas ce problème :
image

@alexandrebaldinho
Copy link

Est-ce que tu peux vérifier sur ta date d'import des couts et le graphique à J-1 ?
image

@bokub
Copy link
Owner

bokub commented Jul 25, 2024

@Alexterieur007 Oui c'est normal, je t'invite à lire la documentation, tout y est expliqué:

  • Pour les dates récentes (moins de 7 jours), HA Linky essaiera de récupérer en priorité des données par demi-heure
  • Pour les dates plus anciennes, HA Linky récupèrera seulement des données quotidiennes. Vous verrez alors une seule grande barre entre 0h et 1h du matin sur votre tableau de bord d'énergie si vous affichez le graphique détaillé d'une telle journée.

Lors de l'initialisation, HA Linky télécharge jusqu'à 1 an de données quotidiennes via Conso API.
Si vous souhaitez un historique plus long ainsi qu'une précision horaire, vous pouvez importer un fichier CSV à partir duquel HA Linky pourra extraire les données.

@bokub
Copy link
Owner

bokub commented Jul 25, 2024

@Ulyxxe il y a un paragraphe qui s'appelle "Remise à zéro" dans la documentation, honnêtement je pense que tu peux y trouver ta réponse en toute autonomie

@alexandrebaldinho
Copy link

Merci @bokub je pense qu'on ne se comprends pas. J'indique juste qu'il y a eu un impact sur les données précédentes (récentes) lors de l'ajout du calcul des couts. Là où je pouvais voir la journée du 17/07 heure par heure elle est maintenant représentée par un baton.

Dans tout les cas vous faite du super job.

@bokub
Copy link
Owner

bokub commented Jul 25, 2024

il y a eu un impact sur les données précédentes (récentes) lors de l'ajout du calcul des couts

Non, c'est impossible, les données importées ne peuvent pas être modifiées.

La seule possibilité, c'est que tu aies effacé toutes des données en demandant une remise à zéro, puis relancé une synchronisation. Dans ce cas, oui, seuls les 7 derniers jours sont importés en mode "heure par heure", comme expliqué dans la documentation et mon commentaire précédent.

@didi31
Copy link

didi31 commented Jul 25, 2024

@Alexterieur007
Importe les données enedis csv si tu veux retrouver les anciennes valeurs.

@alexandrebaldinho
Copy link

Oui j'ai fait une remise à zéro puisqu'il fallait passer le paramètre à "reset" puis redémarrer le service pour le passer à "sync".
Je vais explorer le réimport des CSV...
Merci

@ernestcoudur
Copy link

Bonsoir ! Merci pour tout le boulot j'utilise la version standalone en docker ça a l'air de fonctionner nickel.
J'aimerais y intégrer les coûts et je vois qu'il est possible de le faire dans le fichier options.json, serait-il possible d'avoir un exemple sur la façon de remplir les coûts dans ce fichier ?
Sinon sur la version standalone les options "entité prix actuel" et "prix statique" sont encore grisées.
Merci pour tout le travail

@didi31
Copy link

didi31 commented Jul 26, 2024

Top pour la consommation. Penses tu possible de faire pareil pour la production ?

@pilou33 Si quelqu'un est intéressé et sur le même principe, j'ai créé une entrée dans la table statistics_meta ainsi qu'une requête à lancer manuellement avec le module complémentaire SQLite web pour mettre à jour les revenus de production. ça fonctionne chez moi.
Correction: Le lancement automatique est possible en utilisant les triggers de SQLite (voir plus bas).

@pilou33
Copy link

pilou33 commented Jul 26, 2024

Top pour la consommation. Penses tu possible de faire pareil pour la production ?

@pilou33 Si quelqu'un est intéressé et sur le même principe, j'ai créé une entrée dans la table statistics_meta ainsi qu'une requête à lancer manuellement avec le module complémentaire SQLite web (je n'ai pas trouvé comment faire pour la lancer tous les jours automatiquement) pour mettre à jour les revenus de production. ça fonctionne chez moi.

Hello, Oui intéressé mais avec la procédure pas à pas :-) si possible. D'avance merci

@didi31
Copy link

didi31 commented Jul 26, 2024

Tout d'abord, il faut installer le module complémentaire Sqlite web
Faire une sauvegarde (On ne sait jamais)
Lancer SQLite web et entrer la requête ci-dessous dans la case Query:
ou NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)

INSERT INTO statistics_meta (statistic_id, source, unit_of_measurement, has_mean, has_sum, name) VALUES ( "NOM_PROD_REVENU", "linky_prod", "€", 0, 1, "Production Linky (revenus)" );

Cette requête n'est à faire qu'une seule fois.

De la même manière, pour créer ou ajouter les données de revenu il faut lancer périodiquement la requête ci-dessous:
ou:

  • 0.1301 est le tarif par kwh
  • NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)
  • NOM_PRODUCTION = linky_prod: + prm (ex: linky_prod:1234567890123)

INSERT INTO statistics (created,START,mean,MIN,MAX,last_reset,state,SUM,metadata_id,created_ts,start_ts,last_reset_ts) SELECT s.created, s.start, s.mean, s.min, s.max, s.last_reset, round(s.state * 0.1301 / 1000,3), round(s.sum * 0.1301 / 1000,3), (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'), s.created_ts, s.start_ts,s. last_reset_ts FROM statistics as s, statistics_meta as m WHERE s.metadata_id = m.id AND m.statistic_id = 'NOM_PRODUCTION' AND s.start_ts NOT IN ( SELECT stat.start_ts FROM statistics as stat, statistics_meta stat_m WHERE stat.metadata_id = stat_m.id AND stat_m.statistic_id = 'NOM_PROD_REVENU' ) ;
On peut aussi intégrer différents tarifs en fonction de la date en modifiant la requête mais je ne sais pas si c'est utile.

Si on veut tout supprimer et revenir comme avant:
ou NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)

DELETE FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'

Il suffit ensuite de la même manière que pour la consommation ajouter cette entité qui suit le total de l'argent reçu dans la production.
image
image

@pilou33
Copy link

pilou33 commented Jul 26, 2024

Tout d'abord, il faut installer le module complémentaire Sqlite web Faire une sauvegarde (On ne sait jamais) Lancer SQLite web et entrer la requête ci-dessous dans la case Query: ou NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)

INSERT INTO statistics_meta (statistic_id, source, unit_of_measurement, has_mean, has_sum, name) VALUES ( "NOM_PROD_REVENU", "linky_prod", "€", 0, 1, "Production Linky (revenus)" );

Cette requête n'est à faire qu'une seule fois.

De la même manière, pour créer ou ajouter les données de revenu il faut lancer périodiquement la requête ci-dessous: ou:

  • 0.1301 est le tarif par kwh
  • NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)
  • NOM_PRODUCTION = linky_prod: + prm (ex: linky_prod:1234567890123)

INSERT INTO statistics (created,START,mean,MIN,MAX,last_reset,state,SUM,metadata_id,created_ts,start_ts,last_reset_ts) SELECT s.created, s.start, s.mean, s.min, s.max, s.last_reset, round(s.state * 0.1301 / 1000,3), round(s.sum * 0.1301 / 1000,3), (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'), s.created_ts, s.start_ts,s. last_reset_ts FROM statistics as s, statistics_meta as m WHERE s.metadata_id = m.id AND m.statistic_id = 'NOM_PRODUCTION' AND s.start_ts NOT IN ( SELECT stat.start_ts FROM statistics as stat, statistics_meta stat_m WHERE stat.metadata_id = stat_m.id AND stat_m.statistic_id = 'NOM_PROD_REVENU' ) ; On peut aussi intégrer différents tarifs en fonction de la date en modifiant la requête mais je ne sais pas si c'est utile.

Si on veut tout supprimer et revenir comme avant: ou NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)

DELETE FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'

Il suffit ensuite de la même manière que pour la consommation ajouter cette entité qui suit le total de l'argent reçu dans la production. image image

Merci
J'essaies dès que possible

@bokub
Copy link
Owner

bokub commented Jul 29, 2024

@ernestcoudur

J'aimerais y intégrer les coûts et je vois qu'il est possible de le faire dans le fichier options.json, serait-il possible d'avoir un exemple sur la façon de remplir les coûts dans ce fichier ?

Y'a aucune différence, tu dois juste ajouter ta liste de tarifs dans le tableau costs qui est vide dans l'exemple de la documentation

Sinon sur la version standalone les options "entité prix actuel" et "prix statique" sont encore grisées.

Oui, si tu lis la documentation tu verras que le prix s'ajoute en choisissant Utiliser une entité de suivi des coûts totaux, les autres options ne sont pas supportées par Home Assistant comme expliqué dans les premiers messages de cette issue

@pilou33
Copy link

pilou33 commented Jul 29, 2024

Tout d'abord, il faut installer le module complémentaire Sqlite web Faire une sauvegarde (On ne sait jamais) Lancer SQLite web et entrer la requête ci-dessous dans la case Query: ou NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)

INSERT INTO statistics_meta (statistic_id, source, unit_of_measurement, has_mean, has_sum, name) VALUES ( "NOM_PROD_REVENU", "linky_prod", "€", 0, 1, "Production Linky (revenus)" );

Cette requête n'est à faire qu'une seule fois.

De la même manière, pour créer ou ajouter les données de revenu il faut lancer périodiquement la requête ci-dessous: ou:

  • 0.1301 est le tarif par kwh
  • NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)
  • NOM_PRODUCTION = linky_prod: + prm (ex: linky_prod:1234567890123)

INSERT INTO statistics (created,START,mean,MIN,MAX,last_reset,state,SUM,metadata_id,created_ts,start_ts,last_reset_ts) SELECT s.created, s.start, s.mean, s.min, s.max, s.last_reset, round(s.state * 0.1301 / 1000,3), round(s.sum * 0.1301 / 1000,3), (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'), s.created_ts, s.start_ts,s. last_reset_ts FROM statistics as s, statistics_meta as m WHERE s.metadata_id = m.id AND m.statistic_id = 'NOM_PRODUCTION' AND s.start_ts NOT IN ( SELECT stat.start_ts FROM statistics as stat, statistics_meta stat_m WHERE stat.metadata_id = stat_m.id AND stat_m.statistic_id = 'NOM_PROD_REVENU' ) ; On peut aussi intégrer différents tarifs en fonction de la date en modifiant la requête mais je ne sais pas si c'est utile.

Si on veut tout supprimer et revenir comme avant: ou NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)

DELETE FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'

Il suffit ensuite de la même manière que pour la consommation ajouter cette entité qui suit le total de l'argent reçu dans la production. image image

Merci, ça fonctionne. Mais comme tu le dis dommage de devoir le lancer à la main périodiquement.

@didi31
Copy link

didi31 commented Jul 29, 2024

@pilou33
dans SQLite saisir les requêtes SQL ci-dessous, l'une après l'autre:

  • 0.1301 est le tarif par kwh
  • NOM_PROD_REVENU= linky_prod: + prm + _revenu (ex: linky_prod:1234567890123_revenu)
  • NOM_PRODUCTION = linky_prod: + prm (ex: linky_prod:1234567890123)

CREATE TRIGGER IF NOT EXISTS linky_prod_delete
AFTER DELETE ON statistics
FOR EACH ROW
WHEN OLD.metadata_id = (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PRODUCTION')
BEGIN
DELETE FROM statistics WHERE start_ts = OLD.start_ts AND metadata_id = (SELECT id FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU');
END;

CREATE TRIGGER IF NOT EXISTS linky_prod_insert
AFTER INSERT ON statistics
FOR EACH ROW
WHEN NEW.metadata_id = (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PRODUCTION')
BEGIN
INSERT INTO statistics (created_ts,metadata_id,start_ts,state,SUM)
VALUES (
NEW.created_ts,
(SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU'),
NEW.start_ts,
round(NEW.state * 0.1301 / 1000,3),
round(NEW.sum * 0.1301 / 1000,3));
END;

CREATE TRIGGER IF NOT EXISTS linky_prod_update
AFTER UPDATE OF state ON statistics
FOR EACH ROW
WHEN NEW.metadata_id = (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PRODUCTION')
BEGIN
UPDATE statistics
SET state = round(NEW.state * 0.1301 / 1000,3),
sum = round(NEW.sum * 0.1301 / 1000,3)
WHERE
metadata_id = (SELECT ID FROM statistics_meta WHERE statistic_id = 'NOM_PROD_REVENU') AND start_ts = NEW.start_ts ;
END;

La mise à jour se fait automatiquement à la modification des données Linky.
Il faudra penser à les supprimer (ex: DROP TRIGGER linky_prod_insert ) si @bokub intègre la fonction.

@didi4yeah
Copy link

Hello,

Merci beaucoup @bokub pour la mise à jour sur les coûts bien pratique :)

J'ai bien compris que la configuration est statique dans l'add-on mais ne pourrait-elle pas être liée à des entités autres provenant de HA ?

Je dis ça car dans mon cas avec Tempo, le prix peut être différent d'un jour sur l'autre en fonction de la couleur du jour
Capture d’écran 2024-08-14 à 11 48 53

Sachant que j'ai déjà l'intégration "RTE" qui fournit des sensors des prix en fonction de la couleur, j'aurais aimé pouvoir m'en servir directement dans ton add-on ;)

Merci d'avance pour la réponse si c'est déjà possible ou envisageable ou non

@monpelaud
Copy link

Bonjour,
Merci beaucoup @bokub pour l'addon Linky.
La remontée des consommations fonctionne bien par contre après avoir lus beaucoup de posts relatifs à la gestion des coûts je ne sais plus si officiellement la gestion des coûts fonctionnent ou pas
Prix-kWh-fixe
Prix-kWh-HA-sensor
!
Personnellement j'ai testé les 3 cas suivants:

  • Utilisation de la zone costs dans l'écran de configuration
  • L'utilisation d'un coût fixe
  • L'utilisation d'un sensor HA renvoyant un coût
    Aucun de ces trois tests ne m'a permis voir l'affichage des coûts.
    Quelqu'un a-t-il réussi à faire fonctionner l'affichage de coûts?
    Merci d'avance pour un retour d'infos.
    Cordialement

@bokub
Copy link
Owner

bokub commented Aug 20, 2024

Salut,

Il faut utiliser la deuxième option comme expliqué dans la documentation

@monpelaud
Copy link

monpelaud commented Aug 20, 2024

Si j'ai bien compris la doc la procédure pour utiliser l'option "Utiliser une entité de suivi des coûts totaux" il faut:

1- Options meters:

  • prm: "184xxxxxx50"
    token: .....DQsIkklcCI6uuuxODUx...
    name: Linky consumption
    action: sync
    production: false

2- Costs:

  • price: 0.2516

3- Cliquez sur" Utiliser une entité de suivi des coûts totaux", et choisir la statistique équivalente dont le nom finit par (costs)

  • Mon problème est que j'ai sûrement raté quelque chose car je ne vois pas de "statistique équivalente dont le nom finit par (costs)". Où et comment cette statistique est-elle créée?

Merci.
Entite-Suivi-des-Coûts-Totaux

@bokub
Copy link
Owner

bokub commented Aug 20, 2024

Il faut mettre la configuration des coûts dans costs pas dans meters

@monpelaud
Copy link

C'est bien ce que j'ai fait:
Entite-Suivi-des-Coûts-Totaux-2

@didi31
Copy link

didi31 commented Aug 20, 2024

Tu as fait un reset?
action: reset > enregistrer puis action: sync à nouveau

@monpelaud
Copy link

Bien vu @didi31 ! Maintenant tout fonctionne correctement.
Merci @bokub et @didi31 pour votre aide.
Bonne journée.

@clemcoste
Copy link

bonjour, je confirme que la manip de reset et sync fonctionne, il faut bien penser à retourner au dashboard energy pour changer ensuite la variable
SCR-20240912-olza
merci pour ce beau projet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests