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

Erreurs dans le parseur Enedis à cause du changement d'heure #82

Open
zifnab0 opened this issue Feb 27, 2024 · 5 comments
Open

Erreurs dans le parseur Enedis à cause du changement d'heure #82

zifnab0 opened this issue Feb 27, 2024 · 5 comments

Comments

@zifnab0
Copy link

zifnab0 commented Feb 27, 2024

Dans enedisParser.js, ligne 36, il écrit qu'il n'y a jamais de doublon chez ENEDIS. C'est inexact, cela se produit lors du changement d'heure d'hiver. Par exemple, dans mes données :

2023-10-29T01:00:00+02:00;120
2023-10-29T01:30:00+02:00;154
2023-10-29T02:00:00+02:00;126
2023-10-29T02:30:00+02:00;128
2023-10-29T02:00:00+01:00;146
2023-10-29T02:30:00+01:00;94
2023-10-29T03:00:00+01:00;164
2023-10-29T03:30:00+01:00;116

Ce qui a pour effet d'ignorer la consommation de deux mesures correspondant à l'heure du changement d'heure

@zifnab0 zifnab0 changed the title Erreur dand le parseur Enedis à cause du changement d'heure Erreurs dand le parseur Enedis à cause du changement d'heure Feb 28, 2024
@zifnab0
Copy link
Author

zifnab0 commented Feb 28, 2024

Autre problème illustré ici :
image
au moment de la date du changement d'heure, setDate(date - 1 ) a pour effet de faire passer la date de GMT+1 à GMT+2. Ensuite, étant donnée que l'heure vaut "01:00:00", toISOString semble utiliser cette heure, y applique la timeZone (GMT +2) pour sortir une date en UTC qui est encore décalée d'un jour.
Ceci a pour conséquence d'ignorer la mesure du 29/10/2023 à 00:00 à cause du test de la ligne 37 et l'absence de else

La solution la plus simple me semble de remplacer :
formattedDate = isoDate.toISOString().split("T")[0].replace(/-/g, "/");
par
formattedDate = isoDate.getFullYear()+"/"+("0"+(isoDate.getMonth()+1)).slice(-2)+"/"+("0"+isoDate.getDate()).slice(-2);

@JC144
Copy link
Owner

JC144 commented Feb 28, 2024

Je vais regarder ça, merci pour le retour.
Ca peut être intéressant aussi de ne pas retirer si c'est lié à un changement d'heures.

@JC144
Copy link
Owner

JC144 commented Feb 28, 2024

Bon j'aurai pas le temps de tester mais le rapport Enedis donne bien le fuseau contrairement à celui d'EDF.
Je rajouterai un champ "originalDate" et je fera la comparaison dessus. Comme ça on aura bien un doublon d'heures pour la journée.

Par contre, il faut que je vérifie en sortie si on a pas une vérification sur un modulo du pas. Cela poserait problème si on se retrouve avec 50 pas au lieu de 48 par exemple.

@JC144
Copy link
Owner

JC144 commented Feb 28, 2024

Je confirme, on fait un modulo plus tard, la valeur ne change pas pour les 3 valeurs ajoutées en pas de 15. Du coup, le calcul pour la journée est encore plus éloigné de la valeur réelle.

Faute de mieux, je vais laisser cette approximation pour 2 jours dans l'année, mais je suis preneur de retours.

@zifnab0
Copy link
Author

zifnab0 commented Feb 29, 2024

Je n'ai pas compris

la valeur ne change pas pour les 3 valeurs ajoutées en pas de 15

Attention, il y a deux problèmes distinct.

1er problème : les doublons

Ce n'est pas un problème d'avoir 50 entrées au lieu de 48 puisque le modulo donne toujours le même chiffre.

Par contre en y regardant de près, c'est pire pour le changement d'heure du printemps. Dans ce cas, il y a 46 entrées au lieu de 48, ce qui a pour effet que Math.floor(data[day].hours.length / 24) vaut 1 au lieu de 2 ! En remplaçant floor par round, le problème est corrigé.

2eme problème : le 'bug' de ISOString

il me semble que la solution que j'ai proposée permette de résoudre le problème.

@zifnab0 zifnab0 changed the title Erreurs dand le parseur Enedis à cause du changement d'heure Erreurs dans le parseur Enedis à cause du changement d'heure Mar 6, 2024
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

2 participants