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

Timeout while updating from datadis #124

Closed
Danieldiazi opened this issue Nov 15, 2022 · 16 comments
Closed

Timeout while updating from datadis #124

Danieldiazi opened this issue Nov 15, 2022 · 16 comments

Comments

@Danieldiazi
Copy link
Contributor

En la instalación de HA de un colega, en la que ha instalado la integración el 29/10/2022, no consigue descargar ningún dato.
Aparecen en el log estos mensajes:

2022-11-15 11:34:23.916 INFO (SyncWorker_11) [edata.connectors] Fetching consumptions from 2021-11-15 11:34:19.769860 to 2022-11-14 23:59:00
2022-11-15 11:34:38.937 ERROR (SyncWorker_11) [edata.helpers] Timeout while updating from datadis

imagen

Si que se ven datos como el "contract_p1", etc, pero datos de consumo ninguno.

Igual es un tema de datadis, pero por si acaso, creo esta "issue"

@MikelMirror
Copy link

Hola Daniel,
Yo estaba igual y además tenía puesto una autorización para reiniciar HASS cada día a las 6hAM, con lo que cada vez que "podía" volver a lanzar la solicitud a datados, se encontraba con el reinicio de HASS y con sus correspondientes timeout, con lo que nunca conseguía actualizarse correctamente 😓

Mi solución temporal ha sido reiniciar HASS sólo una vez a la semana.

Creo que aquí podríamos proponer dos soluciones/mejoras:

1-Al reiniciar HASS o este complemento, no consultar a datadis hasta pasado unos minutos y solo si hace más de 24h de la última respuesta OK por parte de datadis.

2-Disponer de una entidad con la fecha/hora de la última respuesta OK de datadis, y que la podamos modificar desde la herramienta para desarrolladores (estados).

3-Disponer de una entidad con la periodicidad con la que se lanzan las consultas, actualmente cada 24h (modificable).

@Danieldiazi
Copy link
Contributor Author

Hola Daniel, Yo estaba igual y además tenía puesto una autorización para reiniciar HASS cada día a las 6hAM, con lo que cada vez que "podía" volver a lanzar la solicitud a datados, se encontraba con el reinicio de HASS y con sus correspondientes timeout, con lo que nunca conseguía actualizarse correctamente sweat

Mi solución temporal ha sido reiniciar HASS sólo una vez a la semana.

Creo que aquí podríamos proponer dos soluciones/mejoras:

1-Al reiniciar HASS o este complemento, no consultar a datadis hasta pasado unos minutos y solo si hace más de 24h de la última respuesta OK por parte de datadis.

2-Disponer de una entidad con la fecha/hora de la última respuesta OK de datadis, y que la podamos modificar desde la herramienta para desarrolladores (estados).

3-Disponer de una entidad con la periodicidad con la que se lanzan las consultas, actualmente cada 24h (modificable).

Gracias por la respuesta.
En este caso, el colega me cuenta que nunca reinicia Home Assistant.

Interesantes tus propuestas!

@uvejota
Copy link
Owner

uvejota commented Nov 16, 2022

Gracias por las sugerencias, yo además tengo alguna que otra cosita ya preparada :)

Se viene una release con muchos cambios.

@adrz95
Copy link

adrz95 commented Nov 17, 2022

Yo no tengo que reiniciar home assistant para que la integración funcione bien.

Cada dia va haciendo intentos de obtener datos, cuando no han pasado las 24h, el logger registra "Skipping due to update interval", cuando han pasado las 24h, la primera petición obtiene datos, se refrescan las graficas y atributos de la integración correctamente, eso si, si el servicio de datadis está caído (error 500, timeout, etc...) hasta que no esté restablecido no vuelve a obtener datos.

@erikvelasco
Copy link

Revisando los tiempos de la consulta, en datadis vi que mi petición tardaba unos 30s en ser completada, este tiempo es superior al timeout que hay por defecto, dependiendo de la cantidad de datos parece que puede no ser suficiente. Subí ese timeout y conseguí tener los datos.

@MikelMirror
Copy link

@erikvelasco muchas gracias por tu aportación. Por favor, me podrías indicar dónde está el parametro del timeout?

@uvejota
Copy link
Owner

uvejota commented Nov 18, 2022

Revisando los tiempos de la consulta, en datadis vi que mi petición tardaba unos 30s en ser completada, este tiempo es superior al timeout que hay por defecto, dependiendo de la cantidad de datos parece que puede no ser suficiente. Subí ese timeout y conseguí tener los datos.

Eso que comentas lo tengo localizado y corregido para la próxima versión, pero no así, porque aumentar el timeout no siempre funciona (aumenta el # de veces que obtenemos error 500). Lo que tengo implementado es la fragmentación de la consulta en periodos de máximo 2-3 meses.

Pero como workaround funcionará a la mayoría.

@MikelMirror
Copy link

@uvejota y no podrías hacer la consulta mensual y en vez un único fichero, dejar uno para cada mes? Lo digo pq lanze el servicio de regeneración de estadísticas y me borró en HASS todos los datos desde mayo'21 hasta octubre '21, lo que me entristeció mucho. ¿Como podríamos evitarlo?

@uvejota
Copy link
Owner

uvejota commented Nov 19, 2022

@uvejota y no podrías hacer la consulta mensual y en vez un único fichero, dejar uno para cada mes? Lo digo pq lanze el servicio de regeneración de estadísticas y me borró en HASS todos los datos desde mayo'21 hasta octubre '21, lo que me entristeció mucho. ¿Como podríamos evitarlo?

Realmente creo que la clave está en que el servicio de regeneración sólo borre las estadísticas desde hace 1 año (y no todo el histórico).

No obstante no es mi mayor prioridad ahora, hay mucha gente que tiene problemas para echar esto a andar y quiero dar solución cuanto antes.

PD: a mí me pasó lo mismo, sí que entristece, sí jeje

@Danieldiazi
Copy link
Contributor Author

@erikvelasco muchas gracias por tu aportación. Por favor, me podrías indicar dónde está el parametro del timeout?

@erikvelasco A mi también me interesaría saber donde cambiarlo!!

@erikvelasco
Copy link

@MikelMirror @Danieldiazi El parámetro esta en la línea 67 de connectors.py de la librería edata

@Danieldiazi
Copy link
Contributor Author

@MikelMirror @Danieldiazi El parámetro esta en la línea 67 de connectors.py de la librería edata

Localizado! Graciassss

@al21883
Copy link

al21883 commented Nov 21, 2022

@MikelMirror @Danieldiazi El parámetro esta en la línea 67 de connectors.py de la librería edata

Gracias por la respuesta. Tengo el mismo problema descrito en este hilo, pero no consigo encontrar el archivo connectors.py. He estado leyendo todo lo que he podido antes de postear y creo entender que las instalaciones de HA sobre máquinas virtuales (como es mi caso) tienen algún problema con python, pero no he logrado entender cuál, ni como solucionarlo.
Si pudiérais arrojar algo de luz o pasarme un link del que tirar, os lo agradecería.

@Danieldiazi
Copy link
Contributor Author

@MikelMirror @Danieldiazi El parámetro esta en la línea 67 de connectors.py de la librería edata

Gracias por la respuesta. Tengo el mismo problema descrito en este hilo, pero no consigo encontrar el archivo connectors.py. He estado leyendo todo lo que he podido antes de postear y creo entender que las instalaciones de HA sobre máquinas virtuales (como es mi caso) tienen algún problema con python, pero no he logrado entender cuál, ni como solucionarlo. Si pudiérais arrojar algo de luz o pasarme un link del que tirar, os lo agradecería.

En mi caso el fichero esta en esta ruta:

./usr/local/lib/python3.10/site-packages/edata/connectors.py

@al21883
Copy link

al21883 commented Nov 21, 2022

Gracias por tu respuesta @Danieldiazi .
Desafortunadamente, mi instalación no me permite ver más arriba de la carpeta config/ Imagino que es por utilizar una máquina virtual, pero no entiendo por qué. Me falta base XD

@uvejota
Copy link
Owner

uvejota commented Nov 27, 2022

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

Gracias por los avisos.

@uvejota uvejota closed this as completed Nov 27, 2022
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

6 participants