guillaumezin / DomoticzLinky

Linky plugin for Domoticz
GNU Affero General Public License v3.0
145 stars 26 forks source link

Erreur de reprise des anciennes données #57

Closed syrhus closed 4 years ago

syrhus commented 4 years ago

Domoticz 2020.1 sur raspberry pi

Bonjour,

Tout d'abord bravo pour votre travail et votre ténacité vis à vis d'Enedis qui change tout. J'attendais avec hâte la mise à jour, chose que j'ai fait et les relevés sont téléchargés. En revanche, je viens de me rendre compte que j'ai un nouveau Appareil Enedis , donc avec un nouvel ID et qu'il a repris les données de l'ancien mais avec des valeurs totalement bizarroïdes; ci-dessous une simple extraction qui montre déjà que la reprise des chiffres n'est pas à l'identique mais surtout que pour le 22 Juin c'est totalement faux:

Avec l'ancien, ID 53 dans METER_CALENDAR:

53 | 23287 | 0 | 2020-06-21 53 | 10441 | 0 | 2020-06-22 53 | 8329 | 0 | 2020-06-23

Le nouvel ID, 78,dans MULTIMETER_CALENDAR

78 | 23763 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-06-21 78 | 381 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-06-22 78 | 7985 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-06-23

Comment expliquer cette mauvaise reprise de données?

Par avance merci

FFF3347 commented 4 years ago

Maintenant qu'il y a la distinction HC/HP, le décalage ne vient pas de là ? Avant, la consommation était globale sur la journée, maintenant il y a la distinction des plages horaires. Il n'y a que ces journées qui sont différentes ? Y a-t-il des modifications contractuelles autour de cette date ? (changement de fournisseur, de puissance souscrite, etc.)

syrhus commented 4 years ago

Je n'ai peut être pas fait cela correctement; j'ai fait une mise à jour avec "git pull" et lorsque je vais dans le Matériel, je n'ai pas les nouveaux champs de paramétrage. Sinon, je n'ai pas d' HC/HP. J'ai surtout été interpellé avec la courbe annuelle en voyant une valeur quasiment nulle. Mais globalement, les chiffres sont approximatifs. Pourquoi pas à l'identique, j'avoue ne pas comprendre.

78 | 12129 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-16 78 | 11148 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-17 78 | 7677 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-18 78 | 7379 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-19 78 | 6495 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-20 78 | 10266 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-21 78 | 14375 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2020-05-22

53 | 11880 | 0 | 2020-05-16 53 | 11258 | 0 | 2020-05-17 53 | 7593 | 0 | 2020-05-18 53 | 7392 | 0 | 2020-05-19 53 | 6521 | 0 | 2020-05-20 53 | 10136 | 0 | 2020-05-21 53 | 14472 | 0 | 2020-05-22

Je vais tenter de supprimer le matériel et le remettre pour voir si ca se passe mieux.

syrhus commented 4 years ago

Alors, après suppression et réinstallation, lors de l'ajout matériel, les champs étaient tjs les anciens. J'ai donc redémarrer le service domoticz et là, j'ai eu les nouveaux champs proposant les HC/HP. Sinon, au niveau des relevés, cela n'a rien changé. Sur le site d'Enedis, lorsque je regarde les graphes, j'ai bien 10KW environ pour le 22 juin. En revanche, lorsque je passe par les données JSON du 21 au 23 via les API, le 22 me renvoi juste une donnée à minuit: {"1":{"CONS":{"labels":["2020-06-21T00:30:00.000+0200","2020-06-21T01:00:00.000+0200","2020-06-21T01:30:00.000+0200","2020-06-21T02:00:00.000+0200","2020-06-21T02:30:00.000+0200","2020-06-21T03:00:00.000+0200","2020-06-21T03:30:00.000+0200","2020-06-21T04:00:00.000+0200","2020-06-21T04:30:00.000+0200","2020-06-21T05:00:00.000+0200","2020-06-21T05:30:00.000+0200","2020-06-21T06:00:00.000+0200","2020-06-21T06:30:00.000+0200","2020-06-21T07:00:00.000+0200","2020-06-21T07:30:00.000+0200","2020-06-21T08:00:00.000+0200","2020-06-21T08:30:00.000+0200","2020-06-21T09:00:00.000+0200","2020-06-21T09:30:00.000+0200","2020-06-21T10:00:00.000+0200","2020-06-21T10:30:00.000+0200","2020-06-21T11:00:00.000+0200","2020-06-21T11:30:00.000+0200","2020-06-21T12:00:00.000+0200","2020-06-21T12:30:00.000+0200","2020-06-21T13:00:00.000+0200","2020-06-21T13:30:00.000+0200","2020-06-21T14:00:00.000+0200","2020-06-21T14:30:00.000+0200","2020-06-21T15:00:00.000+0200","2020-06-21T15:30:00.000+0200","2020-06-21T16:00:00.000+0200","2020-06-21T16:30:00.000+0200","2020-06-21T17:00:00.000+0200","2020-06-21T17:30:00.000+0200","2020-06-21T18:00:00.000+0200","2020-06-21T18:30:00.000+0200","2020-06-21T19:00:00.000+0200","2020-06-21T19:30:00.000+0200","2020-06-21T20:00:00.000+0200","2020-06-21T20:30:00.000+0200","2020-06-21T21:00:00.000+0200","2020-06-21T21:30:00.000+0200","2020-06-21T22:00:00.000+0200","2020-06-21T22:30:00.000+0200","2020-06-21T23:00:00.000+0200","2020-06-21T23:30:00.000+0200","2020-06-22T00:00:00.000+0200"],"data":[0.194,0.184,0.186,0.174,0.174,0.158,0.206,0.26,0.252,0.258,0.252,0.242,0.244,0.25,0.222,0.174,0.372,1.564,1.192,1.444,1.688,1.484,1.656,1.386,1.36,1.992,1.67,1.966,1.67,2.07,1.874,1.19,2.126,2.39,1.734,2.306,2.086,1.964,2.252,0.342,0.288,0.452,0.458,0.494,0.458,0.454,0.418,0.344],"mesuresPasEnum":"PT30M","grandeurMetier":"CONS","grandeurPhysique":"PA","unite":"W"}}}

Il doit y avoir différents relevés pour Enedis pour qu'il me montre les bonnes valeurs pour leur graphes et celles de la consommation par heure. Donc le problème ne vient pas du plugin mais d'Enedis.

syrhus commented 4 years ago

Pour info, pour leurs graphes par semaine, ils utilisent d'autres données qui elles sont bonnes: {"1":{"CONS":{"aggregats":{"JOUR":{"labels":["Lundi 22/06/20"],"periodes":[{"grandeurPhysiqueEnum":"EA","dateDebut":"2020-06-22T00:00:00.000+0200","dateFin":"2020-06-22T00:00:00.000+0200"}],"datas":[10.441]},"SEMAINE":{"labels":["du 22/06/20 au 28/06/20"],"periodes":[{"grandeurPhysiqueEnum":"EA","dateDebut":"2020-06-22T00:00:00.000+0200","dateFin":"2020-06-28T23:59:59.000+0200"}],"datas":[10.441]},"MOIS":{"labels":["Juin 2020"],"periodes":[{"grandeurPhysiqueEnum":"EA","dateDebut":"2020-06-01T00:00:00.000+0200","dateFin":"2020-06-30T23:59:59.000+0200"}],"datas":[10.441]},"ANNEE":{"labels":["2020"],"periodes":[{"grandeurPhysiqueEnum":"EA","dateDebut":"2020-01-01T00:00:00.000+0100","dateFin":"2020-12-31T23:59:59.000+0100"}],"datas":[10.441]}},"grandeurMetier":"CONS","grandeurPhysique":"EA","unite":"Wh"}}}

guillaumezin commented 4 years ago

Bonjour,

Je travaille uniquement avec les données par demi-heure (sauf pour le calcul des pics de consommation), que je cumule pour l'affichage jour/semaine/année. Je ne sais plus de tête, mais je crois bien que je décale les données d'une heure par rapport à Enedis, pour que par exemple dans Domoticz, à 8h00, ça affiche ce qui a été consommé de 7h00 à 8h00, parce que c'est comme ça que ça me semblait cohérent (ce décalage est discutable, et je dois faire des essais à la maison pour affiner). Ce décalage peut entraîner des différences de consommation qui glissent d'un jour à l'autre. Par contre, ça n'explique pas le trou de conso que vous voyez le 22/06. Vous le constatez encore aujourd'hui ? Pouvez-vous attachez votre log avec "Debug" mis sur "Avancé" ?

syrhus commented 4 years ago

Bonjour, merci pour la réponse. Comme je le disais, précédemment, il doit y avoir différentes sources de données car j'avais essayé de regarder comment étaient rapatriées les données sur les graphes et lorsque j'utilise les données à 30mins j'ai ce "trou" du 22 juin via:

https://apps.lincs.enedis.fr/mes-mesures/api/private/v1/personnes/MON_ID/prms/MON_PDL/**courbe-de-charge**?dateDebut=21-6-2020&dateFin=23-6-2020&mesuretypecode=CONS

En revanche, avec les données agrégées par jour, j'ai la bonne valeur: https://apps.lincs.enedis.fr/mes-mesures/api/private/v1/personnes/MON_ID/prms/MON_PDL/**donnees-energie**?dateDebut=21-6-2020&dateFin=23-6-2020&mesuretypecode=CONS

Je n'ai pas regardé la doc des APIs mais peut être il y a t'il un moyen de récupérer les données antérieurs à 7j déjà au format agréger? Je sais, j'en demande trop ;-)

J'ai essayé de mettre la log en avancé mais il y en a tellement de log que ca disparait; il y a t'il un moyen de logger dans un fichier?

guillaumezin commented 4 years ago

Il y a des exemples sur les forums : https://www.domoticz.com/forum/viewtopic.php?t=8878

syrhus commented 4 years ago

Merci pour l'info, effectivement, ca aide ;-) Ci-dessous la log obtnue...et en fait rien sur le 22 juin. Ca passe du 21 au 23.

domoticz_log.log

guillaumezin commented 4 years ago

Effectivement, il manque des données dans la remontée d'Enedis, je ne peux pas les inventer...

FFF3347 commented 4 years ago

Effectivement, il manque des données dans la remontée d'Enedis, je ne peux pas les inventer...

J'ai une journée également avec conso à (quasi) 0 : 1 seule valeur dans l'Excel ENEDIS (graph à 0 sur le portail) et donc sous Domoticz à 00h30, donc pour la journée. CaptureENEDIS27-08-2020 CaptureEnedis12nov

Quand je supprime manuellement la valeur du jour sur l'historique annuel (clic + shift), il revient lors des mises à jour. Du coup, en dur dans le code, possibilité de fixer un seuil en dessous duquel une valeur à 0,X soit inhibée ? (moins de 1 kWh/jour, par exemple)

guillaumezin commented 4 years ago

Ca me paraît compliqué de décider d'un seuil de consommation à ignorer, ça va créer une exception qui risque de gêner quelqu'un d'autre. Je ne savais pas qu'on pouvait éditer l'historique avec clic shift, mais ce sera effectivement écrasé au prochain rapatriement, à moins de diminuer ensuite le nombre de jours rapatriés.

FFF3347 commented 4 years ago

Ca me paraît compliqué de décider d'un seuil de consommation à ignorer, ça va créer une exception qui risque de gêner quelqu'un d'autre. Je ne savais pas qu'on pouvait éditer l'historique avec clic shift, mais ce sera effectivement écrasé au prochain rapatriement, à moins de diminuer ensuite le nombre de jours rapatriés.

Je comprends, pas de souci. C'est une très bonne suggestion que vous m'avez donné là ! Merci. Après essai (réglage sur 30 jours), c'est nickel, ça n'a pas écrasé les anciennes valeurs.

PS : le clic+Shift je m'en sers régulièrement avec mon anémomètre, qui me renvoie des vents à + de 300 km/h 3 ou 4 fois par an... C'est plus simple que d'éditer la Bdd :)

syrhus commented 4 years ago

Effectivement, il manque des données dans la remontée d'Enedis, je ne peux pas les inventer...

Bonjour Guillaume Comme je l'avais aperçu avec mes essais, il y a une différence entre les données par tranches de 30mins via et les données agrégées des jours passés.

En regardant le code et en le modifiant pour faire des essais, j'ai pu constater que vous aviez déjà prévu la lecture des données par jour ("getdatadays") mais non mis en place.

Dans mon cas, la donnée du 22 juin n'est pas dispo pour la vue par heure, en revanche, avec les données agrégées, je l'ai:

'Data':'b'{"meter_reading":{"usage_point_id":"------","start":"2020-05-30","end":"2020-08-28","quality":"BRUT","reading_type":{"unit":"Wh","measurement_kind":"energy","aggregate":"sum","measuring_period":"P1D"},"interval_reading":[ ..., {"value":"17798","date":"2020-06-20"}, {"value":"23287","date":"2020-06-21"}, {"value":"10441","date":"2020-06-22"}, {"value":"8329","date":"2020-06-23"}, ...]}}'

Il serait intéressant de ne prendre consumption_load_curve que pour les 7j de vue par heures et le reste avec daily_consumption d'autant que cela réduit grandement le téléchargement et évite d'avoir à cumuler les valeurs pour chaque jour.

Je vais essayer un peu de mon coté à bricoler pour voir si j'arrive à faire ca.

En tout cas, bravo pour votre travail à tous, c'est super pratique votre outils

guillaumezin commented 4 years ago

J'utilisais daily_consumption avant, mais ces courbes là ne contiennent pas l'info conso jour/nuit, c'est pourquoi je fais tout avec consumption_load_curve pour trier les patates par heure, sauf pour les pics de consommation où je n'en ai pas besoin.

syrhus commented 4 years ago

ah, effectivement. Ceci explique cela ;-) Je vais voir alors ce que je peux bricoler de mon coté. Encore merci pour ta disponibilité et tes réponses.

guillaumezin commented 4 years ago

Normalement, le décalage est maintenant corrigé.