beufanet / linkyndle

Fetch dataset from Enedis portal (need Linky) and push it to grafana
53 stars 15 forks source link

Heure creuse inclus #21

Closed quentincrn closed 3 years ago

quentincrn commented 5 years ago

Bonjour, Est-il possible dans le fichier .params de choisir un intervalle d'heure en incluant les le début et la fin ? Je m'explique, chez moi les heures creuses sont de 20h à 4h, je fais donc deux intervalles un de 0h à 4h et un de 20h à 23h59, le problème est que 00h se trouve en heure pleine du coup :

2019-11-19 11:31:03,200 found value ordre( 1) : 0.09 kWh at 2019-11-17T00:00:00Z (HC:0/HP:1/HN:0) 2019-11-19 11:31:03,202 found value ordre( 2) : 0.55 kWh at 2019-11-17T00:30:00Z (HC:1/HP:1/HN:0) 2019-11-19 11:31:03,203 found value ordre( 3) : 0.28 kWh at 2019-11-17T01:00:00Z (HC:1/HP:1/HN:0) 2019-11-19 11:31:03,204 found value ordre( 4) : 0.48 kWh at 2019-11-17T01:30:00Z (HC:1/HP:1/HN:0)

Comment puis-je l'inclure ? Merci d'avance.

beufanet commented 4 years ago

Possible de checker avec la branche : https://github.com/beufanet/linkyndle/tree/v0.2/fix_time_issues

beufanet commented 4 years ago

Et me confirmer si c'est ok ? je n'ai plus d'HC/HP chez moi (et il faudrait que je fasse un set de données pour tester / valider mon code, mais plus tard :)

PlisNuX commented 4 years ago

Bonjour,

Je commence un peu à toucher à InfluxDB/Graphana et j'ai découvert votre script qui semble correspondre plus à mes besoins que domoticz. Malheureusement, je suis également confronté à ce bug.

Avec .params ci-dessous seul le second créneau horaire est pris en compte (idem si je déclare 22h30/23h59 après 0h00/6h00:

    "hc":
    [{
        "start":   { "h": 22, "m": 30 },
        "end":     { "h": 23, "m": 59 }
     },{
        "start":   { "h": 0, "m": 0 },
        "end":     { "h": 6, "m": 30 }
    }]

Résultat avec le fix_time_issues :

2020-05-20 09:36:57,744 found value ordre(717) :    0.23 kWh at 2020-05-18T22:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 09:36:57,744 found value ordre(718) :    0.49 kWh at 2020-05-18T22:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 09:36:57,745 found value ordre(719) :    0.52 kWh at 2020-05-18T23:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 09:36:57,745 found value ordre(720) :    0.50 kWh at 2020-05-18T23:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 09:36:57,745 found value ordre(721) :    0.48 kWh at 2020-05-19T00:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,745 found value ordre(722) :    0.46 kWh at 2020-05-19T00:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,745 found value ordre(723) :    0.43 kWh at 2020-05-19T01:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,746 found value ordre(724) :    0.43 kWh at 2020-05-19T01:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,746 found value ordre(725) :    0.42 kWh at 2020-05-19T02:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,746 found value ordre(726) :    0.38 kWh at 2020-05-19T02:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,746 found value ordre(727) :    0.38 kWh at 2020-05-19T03:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,746 found value ordre(728) :    0.38 kWh at 2020-05-19T03:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,746 found value ordre(729) :    0.38 kWh at 2020-05-19T04:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,747 found value ordre(730) :    0.38 kWh at 2020-05-19T04:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,747 found value ordre(731) :    0.43 kWh at 2020-05-19T05:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,747 found value ordre(732) :    0.42 kWh at 2020-05-19T05:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,747 found value ordre(733) :    0.44 kWh at 2020-05-19T06:00:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,747 found value ordre(734) :    0.19 kWh at 2020-05-19T06:30:00Z (HC:1/HP:0/HN:0)
2020-05-20 09:36:57,748 found value ordre(735) :    0.14 kWh at 2020-05-19T07:00:00Z (HC:0/HP:1/HN:0)

Avant, sans le sans le fix j'avais ça :

2020-05-20 10:17:19,455 found value ordre( 47) :    0.52 kWh at 2020-05-18T23:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,456 found value ordre( 48) :    0.50 kWh at 2020-05-18T23:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,456 found value ordre( 49) :    0.48 kWh at 2020-05-19T00:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:17:19,456 found value ordre( 50) :    0.46 kWh at 2020-05-19T00:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,456 found value ordre( 51) :    0.43 kWh at 2020-05-19T01:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,456 found value ordre( 52) :    0.43 kWh at 2020-05-19T01:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,456 found value ordre( 53) :    0.42 kWh at 2020-05-19T02:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,457 found value ordre( 54) :    0.38 kWh at 2020-05-19T02:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,457 found value ordre( 55) :    0.38 kWh at 2020-05-19T03:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,457 found value ordre( 56) :    0.38 kWh at 2020-05-19T03:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,457 found value ordre( 57) :    0.38 kWh at 2020-05-19T04:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,457 found value ordre( 58) :    0.38 kWh at 2020-05-19T04:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,457 found value ordre( 59) :    0.43 kWh at 2020-05-19T05:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,458 found value ordre( 60) :    0.42 kWh at 2020-05-19T05:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,458 found value ordre( 61) :    0.44 kWh at 2020-05-19T06:00:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,458 found value ordre( 62) :    0.19 kWh at 2020-05-19T06:30:00Z (HC:1/HP:1/HN:0)
2020-05-20 10:17:19,458 found value ordre( 63) :    0.14 kWh at 2020-05-19T07:00:00Z (HC:0/HP:1/HN:0)

Avec .params ci-dessous et le fix:

    "hc":
    [{
        "start":   { "h": 22, "m": 30 },
        "end":     { "h": 6, "m": 30 }
     }]

Résultat avec le fix_time_issues :

2020-05-20 10:09:39,934 found value ordre(717) :    0.23 kWh at 2020-05-18T22:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,934 found value ordre(718) :    0.49 kWh at 2020-05-18T22:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,934 found value ordre(719) :    0.52 kWh at 2020-05-18T23:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,934 found value ordre(720) :    0.50 kWh at 2020-05-18T23:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,935 found value ordre(721) :    0.48 kWh at 2020-05-19T00:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,935 found value ordre(722) :    0.46 kWh at 2020-05-19T00:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,935 found value ordre(723) :    0.43 kWh at 2020-05-19T01:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,935 found value ordre(724) :    0.43 kWh at 2020-05-19T01:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,935 found value ordre(725) :    0.42 kWh at 2020-05-19T02:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,935 found value ordre(726) :    0.38 kWh at 2020-05-19T02:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,936 found value ordre(727) :    0.38 kWh at 2020-05-19T03:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,936 found value ordre(728) :    0.38 kWh at 2020-05-19T03:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,936 found value ordre(729) :    0.38 kWh at 2020-05-19T04:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,936 found value ordre(730) :    0.38 kWh at 2020-05-19T04:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,936 found value ordre(731) :    0.43 kWh at 2020-05-19T05:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,936 found value ordre(732) :    0.42 kWh at 2020-05-19T05:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,937 found value ordre(733) :    0.44 kWh at 2020-05-19T06:00:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,937 found value ordre(734) :    0.19 kWh at 2020-05-19T06:30:00Z (HC:0/HP:1/HN:0)
2020-05-20 10:09:39,937 found value ordre(735) :    0.14 kWh at 2020-05-19T07:00:00Z (HC:0/HP:1/HN:0)

En espérant que ça vous aide dans la résolution.

beufanet commented 4 years ago

Je regarde dès que j'ai un peu de temps pour mettre en place un set de validation / test pour valider le comportement, car je n'ai plus d'HC/HP de mon côté ;)

Merci pour la remontée !

Xav-Pe commented 4 years ago

ce if est exécuté pour chaque plage d'heure creuse, donc le deuxième passage "écrase" le premier qui a pourtant bien vu que c'était des HC.

On a juste à ajouter : if ((creuses == 0)):

Pour donner :

if ((creuses == 0)):                 
                        if (startTS <= tres) and (endTS >= tres):
                            logging.info("Found HC, set flag for DT : {}".format(t.strftime('%Y-%m-%dT%H:%M:%SZ')))
                            creuses = 1
                            pleines = 0
                        else:
                            pleines = 1
                            creuses = 0
beufanet commented 4 years ago

Possible de faire une MR dans la branche v0.2/fix_time_issues ?