uvejota / homeassistant-edata

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

No es seleccionable para la integración de Energia de Home Assistant #22

Closed mrbluebrett closed 2 years ago

mrbluebrett commented 3 years ago

No es realmente un issue, sino más bien un enhancement... En la nueva versión de Home Assistant han añadido la pestaña de Energia, donde se puede añadir medidores de energia y consumo. Creo que para que sea seleccionable debe tener la unidad en KWh y la clase del sensor en "Measurement". No se si hay algun condicionante más. Podría generar este tipo de sensor la integración para usarlo en la pestaña estandar de Energia de HA.

Gracias.

mabusdogma commented 3 years ago

Si, muy buena idea!

mabusdogma commented 3 years ago

Si, muy buena idea!

uvejota commented 3 years ago

Hola a ambos, lo que proponéis sería muy interesante, pero a la hora de mirarlo existe un problemilla: home assistant espera leer sensores con mediciones en tiempo real, y con datadis nunca podremos tener esto ya que las distribuidoras suelen tardar como mínimo 24h en registrar consumos (siempre lleva cierto retardo incontrolable).

Es decir, el comportamiento natural de un sensor en homeassistant es que periódicamente, obtiene muestras en tiempo real (contador creciente), que se inyectan en la base de datos (sqlite por defecto) con un procedimiento muy concreto "que no permite/no está preparado para" registro de datos a pasado. Este comportamiento se ha cuestionado en un par de PRs en el repositorio oficial de la arquitectura de home assistant, sin éxito.

Es una jodienda, pero es así. Podría tratar de buscar alguna forma de registrar datos directamente sobre la base de datos sql, pero correría el riesgo de (a) fastidiaros la integridad de la BBDD (sobre todo en cambios de versión), y (b) que no supere algunas fases de validación de los datos que hace home assistant.

En el panel de energía, en cambio, creo que se están empezando a desdibujar estas líneas tan marcadas (creo que permite meter predicciones de consumo o de generación, lo que cambia el funcionamiento de las cosas, tengo que investigarlo).

Después del tocho, podría añadir un sensor acondicionado con los parámetros que comentas (la clase measurement, etc.), y podríais seleccionarlo desde el panel de energía, pero los valores saldrían desfasados en el tiempo a la hora a la que se facturaron (es decir, la hora a la que pasaron a estar disponibles en Datadis). O incluso darle un periodo de gracia y que lleve un desfase controlado de digamos 2 días (es decir, que hoy a las 00:00 muestre el consumo de antes de ayer a las 00:00).

yevon commented 3 years ago

No sería posible retener la actualización del sensor para que el panel de energia no inserte los valores hasta que pasen 24h o el tiempo que sea y tengas los valores? O home assistant los introduce cada hora se haya o no actualizado el sensor? Como bien dices iría muy bien poder actualizar valores a pasado, y es algo que deberían permitir. Creo que hay un valor de última actualización y el panel de energía lo tiene en cuenta no?

uvejota commented 3 years ago

Me temo que los valores de last_changed y last_updated los genera automáticamente el componente recorder al incorporar el dato a la base de datos, por lo que los datos saldrían desfasados en la gráfica.

Igualmente, he estado revisando el repositorio homeassistant/core y en principio veo una forma en que podría intentar encajar edata en el panel, aunque aún no lo tengo claro.

También he visto que las previsiones (futuro - mismo problema de la DB) de energía solar las "leen" mediante websockets... el panel de energía está verde, creo que aún quedan varios cambios y alguno de ellos puede venirnos bien, seguiremos atentos.

GermanDZ commented 3 years ago

¿Estáis usando Home Assistant en una Raspberry Pi? Porque estoy preparando un sensor de corriente de bajo coste (menos de 15 pavos en Ali Express), os iré comentando según avance.

Está claro que la arquitectura de sensores de HA no cuadra para las fuentes de datos que nos ofrece edata, estuve haciendo algo real-time directamente scrappeando i-de (pero ya hubo gente banneada por hacer eso). Sin embargo podemos aprovechar todos lo que nos da edata como potencia máxima, las distintas potencias del día, precios y demás.

Esto se está poniendo interesante! :)

yevon commented 3 years ago

¿Estáis usando Home Assistant en una Raspberry Pi? Porque estoy preparando un sensor de corriente de bajo coste (menos de 15 pavos en Ali Express), os iré comentando según avance.

Está claro que la arquitectura de sensores de HA no cuadra para las fuentes de datos que nos ofrece edata, estuve haciendo algo real-time directamente scrappeando i-de (pero ya hubo gente banneada por hacer eso). Sin embargo podemos aprovechar todos lo que nos da edata como potencia máxima, las distintas potencias del día, precios y demás.

Esto se está poniendo interesante! :)

Parece muy interesante, manten informado! Que serian como unas pinzas? Pero como se comunicaria con ha?

mrbluebrett commented 3 years ago

Yo uso en una maquina virtual en un NAS. Ya he visto proyectos DIY con pinza para hacer el medidor barato y sino por 50€ venden el Shelly EM que parece que se integra a la perfeccion con la parte de energia de HA. Era por ver si se podia aprovechar lo que ya tenemos sin meter mas cacharros :)

uvejota commented 3 years ago

Hola a todos, doy más info respecto al panel de energía y e-data: parece ser que los chicos de home-assistant están haciendo cambios en el código de la plataforma energy para habilitar la importación estadísticas. Si esto lo terminan y funciona, podríamos integrar los consumos de e-data de este modo. Voy a ir haciendo una serie de cambios en mis ratos libres para que, en el futuro próximo, podamos tener esto funcional medio rápido.

Igualmente, he probado la importación mediante la modificación (artificialmente) del atributo last_reset, no funciona, ya que lo muestra en el timestamp del last_updated que genera automáticamente la máquina de estados del recorder.

Sobre lo que decís de leer los datos de e-data: puedo habilitar un endpoint de la api de homeassistant para que podáis obtener todos los datos históricos accediendo a /api/edata/state?atributo1=xx... o similar. Lo tengo en el roadmap, tarde o temprano podréis hacerlo :-)

Seguiremos probando cosas :-)

GermanDZ commented 3 years ago

Parece muy interesante, manten informado! Que serian como unas pinzas? Pero como se comunicaria con ha?

sí, una pinza (SCT-013-30) y un convesor analógico digital como el ADS1115 que se conecta a la RPi y que tiene la librería python https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15. De esa forma el conversor lee la señal 0-1V de la pinza y la ofrece como I2C para leer la info.

Ya he hecho otros sensores (calidad de aire sobre todo) donde luego leo la info con Ruby, NodeJS, o Python. Pero nunca he podido meter la información en el HA. Pero creo que esta vez lo tengo más claro 🤞 .

yevon commented 3 years ago

Interesante, con el poder añadir históricos pasados por mi parte mas que suficiente. Es para gestionar si puedo mejorar algo en mis costumbres de consumo, o ver si los cambios que hago afectan. Gastarme dinero para verlo en tiempo real no me vale la pena, para quien tenga placas solares etc entonces si.

GermanDZ commented 3 years ago

Yo uso en una maquina virtual en un NAS. Ya he visto proyectos DIY con pinza para hacer el medidor barato y sino por 50€ venden el Shelly EM que parece que se integra a la perfeccion con la parte de energia de HA. Era por ver si se podia aprovechar lo que ya tenemos sin meter mas cacharros :)

Para los que no uséis una RPi, o incluso en mi caso que tal vez no quiera conectarlo directamente al nodo donde ejecuto HA (por evitar sobrecargar esa RPi y no complicar el setup), se podría hacer una "centralita" barata de sensores con una RPi Zero W.

uvejota commented 3 years ago

Sólo por dar ideas, supongo que con ESP32 + pinza + ESPHome tendréis algo ya medio hecho para su integración con HA.

GermanDZ commented 3 years ago

Sólo por dar ideas, supongo que con ESP32 + pinza + ESPHome tendréis algo ya medio hecho para su integración con HA.

Es por acotar la cantidad de cosas nuevas... tengo un kit de ESPHome en una caja esperando a darle uso :)

uvejota commented 3 years ago

Os informo que ya hay un PR en el GitHub de HA en relativo a la importación de estadísticas de fuentes externas (lo aceptan seguro, es de un miembro, creo, del equipo de desarrollo principal de HA). Cuando lo acepten empezaré a preparar esta integración para que funcione con el panel energía.

Me va a llevar un tiempo pero definitivamente va a llegar :-)

rekix85 commented 3 years ago

Buenísimas noticias! 👏👏 Muchas gracias por tu grandísimo trabajo.

yevon commented 3 years ago

Creo que ls funcionalidad para modificar registros antiguos se acaba de añadir verdad? Algun progreso al respecto? Y como se añadirá en el panel de energia, con un nuevo sensor?

uvejota commented 3 years ago

Eso es, creo que ya se ha añadido la posibilidad de exportar estadísticas externas (he estado un poco desconectado). Tengo que ver bien cómo funciona  y os comento. El 6 nov 2021 0:48 +0100, Gabriel @.***>, escribió:

Creo que ls funcionalidad para modificar registros antiguos se acaba de añadir verdad? Algun progreso al respecto? Y como se añadirá en el panel de energia, con un nuevo sensor? — You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

GermanDZ commented 3 years ago

Creo que ls funcionalidad para modificar registros antiguos se acaba de añadir verdad? Algun progreso al respecto? Y como se añadirá en el panel de energia, con un nuevo sensor?

Tienes un Link a eso? (aún voy medio perdido en como se anuncia/nombres/organización del Home Assistant).

Llevo tiempo trasteando pero muy en la periferia, a ver si logro meterme más.

Esto lo tengo funcionando con un sensor conectado a una Rasp Pi Zero y MQTT.

image

image

Aun me falta calibrarlo bien, pero de todos modos estoy a menos de un 10% de error comparado con lo que dice Iberdrola.

uvejota commented 2 years ago

Primer intento de integración con la plataforma de energía (apdo. 1 del roadmap) en versión 2021.12.1 (de momento en pruebas) (seguimos la discusión en #41)