uvejota / homeassistant-edata

Home Assistant integration for spanish energy data providers (e.g., datadis)
GNU General Public License v3.0
260 stars 21 forks source link

Loading perpetuo #120

Closed davakula closed 1 year ago

davakula commented 1 year ago

Buenas tardes,

no he conseguido hacer que la integración obtenga datos. En Datadis veo toda la información, pero en Home Assistant sólo veo loading, y no consigo que cargue los datos.

Uso la versión actualizada (hoy he actualizado a la 2022.11.1

2022-11-06 18:44:36.235 WARNING (MainThread) [custom_components.edata.coordinator] Some data is missing, will try to fetch later 2022-11-06 18:44:36.264 INFO (SyncWorker_6) [edata.helpers] Update requested for CUPS xxxx from 2021-11-06 18:44:36.263624 to 2022-11-05 23:59:00 2022-11-06 18:44:36.515 INFO (SyncWorker_6) [edata.connectors] No token found, fetching a new one 2022-11-06 18:44:39.649 INFO (SyncWorker_6) [edata.helpers] Supplies data has been successfully updated (2 elements) 2022-11-06 18:44:40.962 INFO (SyncWorker_6) [edata.helpers] Contracts data has been successfully updated (1 elements) 2022-11-06 18:44:40.963 INFO (SyncWorker_6) [edata.connectors] Fetching consumptions from 2022-09-30 00:00:00 to 2022-11-05 23:59:00 2022-11-06 18:44:42.033 ERROR (SyncWorker_6) [edata.connectors] https://datadis.es/api-private/api/get-consumption-data?cups=ES00xxxxxxxxxxxxxxxxxx&distributorCode=2&startDate=2022/09&endDate=2022/11&measurementType=0&pointType=5& returned {"status":500,"error":"INTERNAL_SERVER_ERROR","message":"500 Internal Server Error","timestamp":"2022-11-06T18:44:42.001+0100"} with code 500 2022-11-06 18:44:42.045 INFO (SyncWorker_6) [edata.connectors] Fetching maximeter from 2022-10-30 00:00:00 to 2022-11-05 23:59:00 2022-11-06 18:44:42.118 ERROR (SyncWorker_6) [edata.connectors] https://datadis.es/api-private/api/get-max-power?cups=xxxxxxxxxxxxxxxxxxxxxx&distributorCode=2&startDate=2022/10&endDate=2022/11& returned Consulta ya realizada en las últimas 24 horas. with code 429 2022-11-06 18:44:42.232 WARNING (MainThread) [custom_components.edata.coordinator] Some stats are missing for sv0f 2022-11-06 18:44:42.248 WARNING (MainThread) [custom_components.edata.coordinator] Some data is missing, will try to fetch later

Gracias por la ayuda y un saludo.

adrz95 commented 1 year ago

Buenas, parece que el endpoint de /get-consumption-data está devolviendo un error 500 INTERNAL_SERVER_ERROR, por lo que creo que poco podemos hacer mas que esperar.

davakula commented 1 year ago

Hola,

gracias por la respuesta. Entiendo que entonces esto le pasa a todo el mundo?

Lo digo porque llevo una semana peleándome con esta integración, y hasta el momento no he conseguido recibir datos...

Saludos.

adrz95 commented 1 year ago

Hola de nuevo, he esperado a hoy para comprobar si la API funcionaba conrrectamente.

Yo no tengo ningun error en el log, pero no obtengo nuevos datos

Última fecha en la que la datadis registró datos (no es correcto): Last registered kWh date 4 de noviembre de 2022, 03:00:00

El log del día 5:

2022-11-05 13:53:55.646 ERROR (SyncWorker_3) [edata.connectors] https://datadis.es/api-private/api/get-consumption-data?cups=XXXXXX&distributorCode=2&startDate=2022/11&endDate=2022/11&measurementType=0&pointType=5& returned Consulta ya realizada en las últimas 24 horas. with code 429
2022-11-05 13:53:55.731 INFO (SyncWorker_3) [edata.connectors] Fetching maximeter from 2022-11-04 03:00:00 to 2022-11-04 23:59:00
2022-11-05 13:53:55.833 ERROR (SyncWorker_3) [edata.connectors] https://datadis.es/api-private/api/get-max-power?cups=XXXXXX&distributorCode=2&startDate=2022/11&endDate=2022/11& returned Consulta ya realizada en las últimas 24 horas. with code 429
2022-11-05 14:54:23.000 INFO (SyncWorker_3) [edata.helpers] Update requested for CUPS XXXXXX from 2021-11-05 14:54:22.999902 to 2022-11-04 23:59:00
2022-11-05 14:54:23.001 INFO (SyncWorker_3) [edata.helpers] Skipping due to update interval

El día 06/11/2022 -> 14:00, según el log, se obtuvieron datos de supplies y contracts, pero NO de consumptions :

2022-11-06 14:01:55.750 INFO (SyncWorker_1) [edata.helpers] Update requested for CUPS XXXXXX from 2021-11-06 14:01:55.750040 to 2022-11-05 23:59:00
2022-11-06 14:01:55.980 INFO (SyncWorker_1) [edata.connectors] No token found, fetching a new one
2022-11-06 14:02:04.666 INFO (SyncWorker_1) [edata.helpers] Supplies data has been successfully updated (1 elements)
2022-11-06 14:02:06.239 INFO (SyncWorker_1) [edata.helpers] Contracts data has been successfully updated (1 elements)
2022-11-06 14:02:06.270 INFO (SyncWorker_1) [edata.connectors] Fetching consumptions from 2022-11-04 03:00:00 to 2022-11-05 23:59:00
2022-11-06 14:02:21.292 ERROR (SyncWorker_1) [edata.helpers] Timeout while updating from datadis

Ahí vemos un timeout... podría ser Datadis? @davakula tuvo un error 500 en este endpoint.

A dia de hoy los datos siguen sin actualizarse:

2022-11-07 06:07:07.755 INFO (SyncWorker_6) [edata.helpers] Update requested for CUPS XXXXXX from 2021-11-07 06:07:07.754741 to 2022-11-06 23:59:00
2022-11-07 06:07:07.756 INFO (SyncWorker_6) [edata.helpers] Skipping due to update interval
2022-11-07 07:07:29.253 INFO (SyncWorker_0) [edata.helpers] Update requested for CUPS XXXXXX from 2021-11-07 07:07:29.252599 to 2022-11-06 23:59:00
2022-11-07 07:07:29.254 INFO (SyncWorker_0) [edata.helpers] Skipping due to update interval
2022-11-07 08:07:49.751 INFO (SyncWorker_4) [edata.helpers] Update requested for CUPS XXXXXX from 2021-11-07 08:07:49.750925 to 2022-11-06 23:59:00
2022-11-07 08:07:49.752 INFO (SyncWorker_4) [edata.helpers] Skipping due to update interval

De momento es todo lo que puerdo aportar, sospecho con creces de que datadis tenga problemas en el endpoint de /get-consumption-data

EDIT:

Parece que podemos confirmar que hay un problema con Datadis.

Cuando intento comprobar el consumo en el panel de datadis.es muestra el mensaje de "Se estan consultando los consumos para dias, semanas y meses" y nunca muestra el consumo, el mensaje queda permanente.

En los logs de la consola he podido ver que tienen el error 500 en las llamadas que obtienen los conumos. POST https://datadis.es/api-private/supply-data/time-curve-data/month 500

En los request que hace el navegador respuestas con datos vacios/null...

image

uvejota commented 1 year ago

A veces le da algún infartito y cuando menos lo esperamos vuelve.

Poco que hacer de nuestra parte hay, me temo

adrz95 commented 1 year ago

@davakula lograste hacerlo funcionar ? Si es así, recuerda cerrar el issue.

davakula commented 1 year ago

HOla,

de momento sigue en loading. He reinstalado HA desde cero, he instalado la integración de edata, y continúa loading... no sé qué más probar.

SAludos

g0per commented 1 year ago

Yo estoy también en las mismas, parece que la API no funciona.

Llegué a tener error 429 con timeout de 24h para siguiente intento por demasiadas consultas inicialmente, antes de darme cuenta que llevaba bastante sin actualizar edata. Desinstalé, esperé un par de días, reinstalé, y no ha vuelto a cargar datos. Revisando los logs las consultas a la API ahora dan siempre sólo error 500.

https://datadis.es/api-private/api/get-consumption-data?cups=XXXX&distributorCode=X&startDate=2022/05&endDate=2022/11&measurementType=0&pointType=5& returned {"status":500,"error":"INTERNAL_SERVER_ERROR","message":"500 Internal Server Error","timestamp":"2022-11-13T21:37:33.540+0100"} with code 500

Y sigue con loading sin datos.

Por otro lado, en la web la interfaz de consulta de consumos sí que carga.

g0per commented 1 year ago

Vale, creo que ya lo tengo:

La consola de datadis me falla con Firefox, pero probando con Edge da los datos correctos. Hace el request con las fechas en formato YYYY/MM, pero traduce el / de las fechas a %2F. Según lo que aparece en los logs de HA, estamos haciendo los requests sin traducir ese caracter, como se puede ver en mi comentario anterior.

¿Podría ser? @uvejota

uvejota commented 1 year ago

Vale, creo que ya lo tengo:

La consola de datadis me falla con Firefox, pero probando con Edge da los datos correctos. Hace el request con las fechas en formato YYYY/MM, pero traduce el / de las fechas a %2F. Según lo que aparece en los logs de HA, estamos haciendo los requests sin traducir ese caracter, como se puede ver en mi comentario anterior.

¿Podría ser? @uvejota

Aunque se impriman por la terminal con el carácter /, la petición GET se codifica correctamente.

No obstante lo miraré, gracias.

Respecto al loading perpetuo, tengo una hipótesis difícil de validar (solo puedo hacer 1 query cada 24 horas jeje). Probaremos en la próxima versión.

sergiocasero commented 1 year ago

Buenas! Tengo la misma issue, hace unas horas que lo he puesto, y en los logs veo el error 429 de las últimas 24 horas.

@uvejota si necesitas más "intentos" yo puedo hacer una request como me digas y te puedo pasar resultados a ver, al menos son 2 pruebas cada 24 horas jajaja

uvejota commented 1 year ago

Esto está presumiblemente resuelto en 2022.11.2 (ya liberada).

Gracias por los avisos.