uvejota / homeassistant-edata

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

Exportar datos a InfluxDB + Grafana #143

Closed jgarridoalcazar closed 3 weeks ago

jgarridoalcazar commented 1 year ago

Antes de nada, muchas gracias por el trabajazo de llevar adelante esta integración. Esto no es un bug con la integración, que funciona todo lo fina que la API de Datadis permite, sino una consulta a ver si a alguien se le ocurre cómo se podría hacer.

Últimamente he empezado a jugar con HA + InfluxDB + Grafana para generar gráficas a más largo plazo y de manera más interactivas que lo que permite HA, y una de las cosas que más juego da es el tema del consumo eléctrico. La idea sería tratar de exportar los datos de consumo horario que se ven en el panel de energía a InfluxDB. El problema es que dichos datos no se almacenan en ningún sensor de HA (imagino que no es sencillo dado que se cargan a posteriori).

¿Alguna sugerencia de cómo se podría abordar ese problema? ¿Alguien lo ha intentado/pensado/solucionado de algún modo?

uvejota commented 1 year ago

Hola, pues haciendo una búsqueda rápida no veo nada, aunque se podría hacer con una integración.

e-data también expone sus datos por websockets (así se leen desde las tarjetas de apexcharts), aunque desconozco si influxdb da alguna posibilidad de leer/importar datos desde websockets.

Danieldiazi commented 1 year ago

Antes de nada, muchas gracias por el trabajazo de llevar adelante esta integración. Esto no es un bug con la integración, que funciona todo lo fina que la API de Datadis permite, sino una consulta a ver si a alguien se le ocurre cómo se podría hacer.

Últimamente he empezado a jugar con HA + InfluxDB + Grafana para generar gráficas a más largo plazo y de manera más interactivas que lo que permite HA, y una de las cosas que más juego da es el tema del consumo eléctrico. La idea sería tratar de exportar los datos de consumo horario que se ven en el panel de energía a InfluxDB. El problema es que dichos datos no se almacenan en ningún sensor de HA (imagino que no es sencillo dado que se cargan a posteriori).

¿Alguna sugerencia de cómo se podría abordar ese problema? ¿Alguien lo ha intentado/pensado/solucionado de algún modo?

Hola, al final entiendo que lo suyo es pasar a influxdb aquellos datos que querramos que persistan en esta base de datos y además, susceptibles de ser explotados por Grafana.

En la página de la integración explican cómo hacerlo https://www.home-assistant.io/integrations/influxdb/ . Muy importante la parte de decidir si quieres que se almacene todo lo de HA o sólo lo que tu indicas bajo la opción include. En mi opinión, mejor decir qué queremos guardar en influxdb, sino, va a almacenar muchísima información y va a ser más inmanejable, sobre todo para el que empieza.

Supongo que aquí lo complicado es como pasarle esa info a influxdb. En el caso de la info del sensor de edata, creo que simplemente en el include poner sensor.edata_XXXX, y creo que todos los atributos también los pasa.

Los datos que da el panel de energía si que no se me ocurre de dónde sacarlos. Igual podrías crearte un entorno de pruebas con influxdb, dejar que HA le pase toda la info (sin usar la opción include) y ver si por algún lado va esa info. Una vez que lo identifiques, puedes probar a meter solo ese elemento en influxdb.

Es lo que se me ocurre y por si sirve de ayuda, hay pruebas qué hacer y puede que no llegue a ningún lado, pero por si aporta....

jgarridoalcazar commented 1 year ago

Buenas:

Muchas gracias por la información

Sí, eso es lo primero que pensé. El problema, como bien dices, es que los datos más útiles serían los de consumo horario, que son los que aparece en el panel de energía. Los datos de consumo de los atributos pueden estar incompletos o no mostrarse regularmente algunos de los días, con lo que perderíamos información.

Por eso, quizás la opción más directa sería como comenta @uvejota, usando el websocket que proporciona la integración de edata para cargar los datos en InfluxDB. A ver si en estos días tengo algo de tiempo para mirar si eso se puede hacer y de qué manera.

Algo sacaremos seguro.

Saludos.

uvejota commented 3 weeks ago

He añadido info sobre los endpoints de websockets que se exponen en la última versión de edata, en https://github.com/uvejota/homeassistant-edata?tab=readme-ov-file#acceso-a-datos-descargados

Puedes ver las definiciones con más detalle en el fichero websockets.py del repositorio.

Desconozco cómo se consumen los websockets de home assistant fuera de la integración, supongo que habrá que usar una api key...

Cierro el hilo por mantener un poquito el orden. Si logras conseguirlo te animo a que lo compartas en el foro de discusión y le hago algo de publi en el README.