homeassistant-edata icon indicating copy to clipboard operation
homeassistant-edata copied to clipboard

Missing consumptions when no data exists

Open fherreror opened this issue 2 years ago • 10 comments

Ante todo, gracias por la integración. He tenido muchos problemas para que se actualizara, pero borrando de .storage, parece que al final ha vuelto a actualizar. A ver si sigue.

He detectado que cuando el consumo es 0 en un periodo (0 real, estuve de obras y tengo consumo 0 durante bastantes días en que la luz estuvo cortada 100%), la integración no lo detecta como 0, sino como un Missing Consumption, es decir, un consumo para el que Datadis no ha ofrecido dato, por lo que indica que volverá a intentar descargarlo en el futuro. Esto es un problema porque significa que 1 vez por hora va a intentar descargar una serie de consumos que nunca va a encontrar, ya que son 0.

Copio lo que dice el log:

DatadisConnector: still missing the following consumption ranges [{'from': datetime.datetime(2021, 10, 7, 15, 0), 'to': datetime.datetime(2021, 10, 8, 9, 0)}, {'from': datetime.datetime(2021, 10, 8, 16, 0), 'to': datetime.datetime(2021, 10, 11, 8, 0)}, {'from': datetime.datetime(2021, 10, 11, 16, 0), 'to': datetime.datetime(2021, 10, 13, 8, 0)}, {'from': datetime.datetime(2021, 10, 13, 12, 0), 'to': datetime.datetime(2021, 10, 18, 10, 0)}, {'from': datetime.datetime(2021, 10, 18, 11, 0), 'to': datetime.datetime(2021, 10, 20, 9, 0)}, {'from': datetime.datetime(2021, 10, 20, 16, 0), 'to': datetime.datetime(2021, 10, 21, 8, 0)}, {'from': datetime.datetime(2021, 10, 21, 16, 0), 'to': datetime.datetime(2021, 10, 22, 8, 0)}, {'from': datetime.datetime(2021, 10, 22, 16, 0), 'to': datetime.datetime(2021, 10, 25, 9, 0)}, {'from': datetime.datetime(2021, 10, 25, 16, 0), 'to': datetime.datetime(2021, 10, 26, 9, 0)}, {'from': datetime.datetime(2021, 10, 26, 16, 0), 'to': datetime.datetime(2021, 10, 27, 8, 0)}, {'from': datetime.datetime(2021, 10, 27, 16, 0), 'to': datetime.datetime(2021, 10, 28, 8, 0)}, {'from': datetime.datetime(2021, 10, 28, 15, 0), 'to': datetime.datetime(2021, 11, 5, 13, 0)}, {'from': datetime.datetime(2021, 11, 5, 16, 0), 'to': datetime.datetime(2021, 11, 8, 8, 0)}, {'from': datetime.datetime(2021, 11, 8, 12, 0), 'to': datetime.datetime(2021, 11, 9, 8, 0)}, {'from': datetime.datetime(2021, 11, 16, 17, 0), 'to': datetime.datetime(2021, 11, 17, 10, 0)}, {'from': datetime.datetime(2022, 5, 2, 23, 0), 'to': datetime.datetime(2022, 5, 3, 21, 47, 16, 111140)}], will try again later

Todos los periodos salvo el último (que es, en verdad, lo que sí falta por descargar), son periodos en los que el consumo es 0, no periodos missing.

Quizás al descargar se podría comprobar si es 0 o error/null, y en caso de que sea 0 de verdad, no registrarlo como un periodo missing. Otra opción que se me ocurre es que hubiera una opción de configuración en que, una vez hecha la descarga inicial, ponerle una fecha a partir de la cual descargar los datos, de manera que no esté intentando descargar datos antiguos continuamente.

Espero que mi aportación sirva para mejorar esta integración.

Gracias de nuevo por el trabajo.

fherreror avatar May 03 '22 20:05 fherreror