Integración externa - Ecocompteur Legrand

Hola @mutmut,

He empezado la integración del ecocontador, pero no estoy seguro del resultado

Me he permitido crear un nuevo tema para que sea más fácil de seguir :smiling_face:

Si tienes una primera versión, puedo probarla en mi instalación.
Tengo un ecocompteur ref. 412000 con firmware v3.0.17

Voy a publicar una primera versión este fin de semana

Después puedes hacer una imagen de desarrollo antes si no estás seguro del resultado
Si has seguido la plantilla de ejemplo, hay una acción de GitHub que permite publicar una imagen de desarrollo que cualquiera puede instalar y probar

Voy a mirar cómo hacerlo. Es justamente esa parte la que domino menos. ¿Hay que publicar en Build en GitHub, verdad?

La primera versión ha sido lanzada

Ecocompteur instalado :slight_smile:
Mis comentarios:

  • Estoy en Tempo (y TIC en modo histórico) y no parece existir en el desarrollo, la integración me da una suscripción básica:

  • Los nombres de los 5 circuitos están bien tomados, probaré cambiando uno de los nombres para ver la actualización
  • En cuanto a la suscripción, veo que la integración recupera la intensidad suscrita, ¿es posible recuperar la Suscripción 60A-12kVA?
  • NTARF indica 8 → ¿a qué corresponde esto?
  • Opción tarifaria indica 2 → ¿a qué corresponde esto?
  • ¿El consumo y el costo de 30 minutos están vinculados a qué?

Y mis datos del ecocompteur:


En Jeedom, seguía el desarrollo de Bernard Dandrea.
Él había puesto a disposición una lista completa de los elementos que se pueden recuperar: documentation/jeedom-EcoLegrand/doc/fr_FR/JSON_codes.txt at main · bernard-dandrea/documentation · GitHub
Allí no veo NTARF.

Y no he mirado tu código, pero ¿recuperas las informaciones TIC en modo histórico y estándar?

Gracias por tu respuesta.

No sé qué quieres decir con TIC en histórico y estándar. Solo tengo una semana con Gladys.

De hecho, recupero el data.json y el inst.json. Tal vez puedas enviarme tu data.json y inst.json

{
« option_tarifaire » : 1,
« tarif_courant » : 2,
« isousc » : 45,

"conso_base" : 0,
"conso_hc"   : 012378962,
"conso_hp"   : 011243054,
"conso_hc_b" : 0,
"conso_hp_b" : 0,
"conso_hc_w" : 0,
"conso_hp_w" : 0,
"conso_hc_r" : 0,
"conso_hp_r" : 0,

"type_imp_0" : 0,
"type_imp_1" : 1,
"type_imp_2" : 1,
"type_imp_3" : 1,
"type_imp_4" : 1,
"type_imp_5" : 1,

"label_entree1" : "General             ",
"label_entree2" : "PAC                 ",
"label_entree3" : "ECS                 ",
"label_entree4" : "Prises de Courant",
"label_entree5" : "Prises de Courant",

"label_entree_imp0" : "Gaz",
"label_entree_imp1" : "Eau",
"label_entree_imp2" : "Eau",
"label_entree_imp3" : "Eau",
"label_entree_imp4" : "Eau",
"label_entree_imp5" : "Eau",

"entree_imp0_disabled" : 0,
"entree_imp1_disabled" : 0,
"entree_imp2_disabled" : 1,
"entree_imp3_disabled" : 1,
"entree_imp4_disabled" : 1,
"entree_imp5_disabled" : 1

}
{
"data1":766.000000,
"data2":94.000000,
"data3":0.000000,
"data4":0.000000,
"data5":0.000000,
"data6":0.000000,
"data6m3":0.000000,
"data7":0.000000,
"data7m3":0.000000,
"heure":21,
"minute":11,
"CIR1_Nrj":0.000000,
"CIR1_Vol":0.000000,
"CIR2_Nrj":0.000000,
"CIR2_Vol":0.000000,
"CIR3_Nrj":0.000000,
"CIR3_Vol":0.000000,
"CIR4_Nrj":0.000000,
"CIR4_Vol":0.000000,
"Date_Time":1789938687
}

El consumo y el coste de 30 minutos se crean automáticamente con Gladys

Para NTARF y Opción Tarifaria, uno corresponde al contrato base, HC/HP Tempo, etc., y el otro a HC o HP

Para el resto, lo voy a mirar.

Ok para la recuperación. ¿No hay uno de los dos que hay que configurar? No me acuerdo, pero sé que hice FTP para modificar cosas.

Es el modo de comunicación del Linky : o es historique y se recuperan ciertas informaciones, o es standard y se recuperan otras informaciones, incluyendo la producción de electricidad y contratos específicos (HC los fines de semana y por la noche, por ejemplo), y los nombres de las variables no son los mismos entre los dos modos.

Después no sé si el ecocompteur lo gestiona solo.

Estoy de acuerdo, pero ¿a qué índice están vinculados? (en kWh)
De lo que veo, debe estar vinculado a conso_xxx del data.json

Ok, entonces ¿es posible tener algo legible en lugar de números?

data.json :

{
	"option_tarifaire" : 2,
	"tarif_courant" : 8,
	"isousc" : 60,
	
	"conso_base" : 0,
	"conso_hc"   : 0,
	"conso_hp"   : 0,
	"conso_hc_b" : 015354084,
	"conso_hp_b" : 007357072,
	"conso_hc_w" : 001951145,
	"conso_hp_w" : 000923760,
	"conso_hc_r" : 000913850,
	"conso_hp_r" : 000335072,
	
	"type_imp_0" : 0,
	"type_imp_1" : 1,
	"type_imp_2" : 1,
	"type_imp_3" : 1,
	"type_imp_4" : 1,
	"type_imp_5" : 1,

	"label_entree1" : "Eau chaude",
	"label_entree2" : "Refroidissement",
	"label_entree3" : "Chauffage",
	"label_entree4" : "Borne recharge      ",
	"label_entree5" : "Prises de Courant",
	
	"label_entree_imp0" : "Gaz",
	"label_entree_imp1" : "Eau",
	"label_entree_imp2" : "Eau",
	"label_entree_imp3" : "Eau",
	"label_entree_imp4" : "Eau",
	"label_entree_imp5" : "Eau",
	
	"entree_imp0_disabled" : 1,
	"entree_imp1_disabled" : 1,
	"entree_imp2_disabled" : 1,
	"entree_imp3_disabled" : 1,
	"entree_imp4_disabled" : 1,
	"entree_imp5_disabled" : 1
}

inst.json :

{
    "data1":0.000000,
    "data2":5.000000,
    "data3":11.000000,
    "data4":0.000000,
    "data5":298.000000,
    "data6":0.000000,
    "data6m3":0.000000,
    "data7":0.000000,
    "data7m3":0.000000,
    "heure":21,
    "minute":38,
    "CIR1_Nrj":0.000000,
    "CIR1_Vol":0.000000,
    "CIR2_Nrj":0.000000,
    "CIR2_Vol":0.000000,
    "CIR3_Nrj":0.000000,
    "CIR3_Vol":0.000000,
    "CIR4_Nrj":0.000000,
    "CIR4_Vol":0.000000,
    "Date_Time":1789940296
}

Para option_tarifaire esto debe ser posible

option_tarifaire
0 = base
1 = HC/HP
2 = Tempo

Para tarif_courant es más complicado

tarif_courant
0 =
1 = Hora Valle
2 = Hora Punta
3 =
4 =
5 =
6 =
7 =
8 = Hora Punta Azul
9 = Hora Punta Blanco
10 =

Actualmente es hora valle azul y estoy en 5.
Por lo tanto, la lógica diría:
6: HV blanco
7: HV rojo
10: HP rojo

¿Y 0, 3 y 4? :flushed_face:

tarif_courant
0 = Base
1 = Hora Valle
2 = Hora Punta
3 = Horas Normales (EJP)
4 = Horas de Punta Móvil (EJP)
5 = Hora Valle Azul
6 = Hora Valle Blanco
7 = Hora Valle Rojo
8 = Hora Punta Azul
9 = Hora Punta Blanco
10 = Hora Punta Rojo

@pierre-gilles ¿Qué información necesita la integración de Seguimiento de Energía para funcionar correctamente?

Sabiendo que, en el caso del ecocontador LEGRAND 1ª generación, se pueden explotar las siguientes informaciones:

data.json

{
"option_tarifaire" : 2,
"tarif_courant" : 8,
"isousc" : 60,

"conso_base" : 0,
"conso_hc"   : 0,
"conso_hp"   : 0,
"conso_hc_b" : 015354084,
"conso_hp_b" : 007357072,
"conso_hc_w" : 001951145,
"conso_hp_w" : 000923760,
"conso_hc_r" : 000913850,
"conso_hp_r" : 000335072,

"type_imp_0" : 0,
"type_imp_1" : 1,
"type_imp_2" : 1,
"type_imp_3" : 1,
"type_imp_4" : 1,
"type_imp_5" : 1,

"label_entree1" : "Agua caliente",
"label_entree2" : "Enfriamiento",
"label_entree3" : "Calefacción",
"label_entree4" : "Punto de carga      ",
"label_entree5" : "Enchufes de corriente",

"label_entree_imp0" : "Gas",
"label_entree_imp1" : "Agua",
"label_entree_imp2" : "Agua",
"label_entree_imp3" : "Agua",
"label_entree_imp4" : "Agua",
"label_entree_imp5" : "Agua",

"entree_imp0_disabled" : 1,
"entree_imp1_disabled" : 1,
"entree_imp2_disabled" : 1,
"entree_imp3_disabled" : 1,
"entree_imp4_disabled" : 1,
"entree_imp5_disabled" : 1

}

inst.json

{
"data1":0.000000,
"data2":5.000000,
"data3":11.000000,
"data4":0.000000,
"data5":298.000000,
"data6":0.000000,
"data6m3":0.000000,
"data7":0.000000,
"data7m3":0.000000,
"heure":21,
"minute":38,
"CIR1_Nrj":0.000000,
"CIR1_Vol":0.000000,
"CIR2_Nrj":0.000000,
"CIR2_Vol":0.000000,
"CIR3_Nrj":0.000000,
"CIR3_Vol":0.000000,
"CIR4_Nrj":0.000000,
"CIR4_Vol":0.000000,
"Date_Time":1789940296
`}

Ese famoso EJP, lo había olvidado :slight_smile:

Para responder (espero que sí), la integración se basa en índices para calcular un consumo de 30 minutos y un costo de 30 minutos, lo que significa que nos basaremos en todos los conso_xxx.

Por ahora, no será posible generar consumos y costos de 30 minutos en los 5 tores, ya que son potencias instantáneas (W) y no energías consumidas (kWh) (índices para simplificar).
En el ecocompteur, los índices de los 5 tores son recuperables, pero se vuelven falsos con el tiempo. El problema principal es que estos números están basados en 6 dígitos (duros en el código) y cuando se incrementan, pierden precisión.
El plugin de jeedom permitía hacer un reinicio cada noche a las 23:59 para siempre tener una buena precisión del índice del día.
Pero reiniciar significa que hay que almacenar el valor anterior y sumarlo al nuevo, ese es el primer desafío.
El segundo desafío es poder recuperar estos índices y no son accesibles a través de data.json e inst.json, hay que crear un nuevo json bien formateado (ver mis enlaces más arriba), enviarlo al ecocompteur por ftp en el momento de la creación, por ejemplo, y luego se pueden recuperar los índices.
A partir de ahí, creo que la integración ecocompteur hará el resto en los consumos y costos de 30 minutos.

Creo que hay que validar el plugin con los data.json e inst.json en primer lugar.
Luego habrá que ver cómo « crear » los índices de los 5 tores (eso es lo que me gustaría monitorear).

Pregunta pequeña, ¿podrías decirme si tu Linky está en modo estándar o histórico? (hay que hacer clic en los botones del Linky para desplazarse y ver la información).
Porque no sé si este viejo aparato Legrand sabe manejar el modo estándar, y si es así, habría que indicarlo en la documentación.

@mutmut versión 1.2 en línea

Corrige la detección Tempo, añade etiquetas legibles y una precisión exacta de los índices

- option_tarifaire : 2 reconocido como Tempo (confirmado por un retorno de usuario real con /data.json como prueba), además del 4 nunca observado conservado por precaución. Corrige la mala detección que hacía que las instalaciones Tempo volvieran a un simple índice Base. - Opción tarifaria y Tarifa en curso publicados en texto legible (« HC/HP », « Tempo », « Heure Pleine Bleu »…) en lugar de un código bruto o del distintivo NTARF, que no dice nada a nadie. - Conversión Wh → kWh sin pérdida (división por 1000, 3 decimales) en lugar del antiguo redondeo a la décima, para un cálculo de consumo 30 minutos más preciso en Gladys. - Doc fr/en: tabla de los 6 índices Tempo y su seguimiento de consumo/coste automático, corrección del intervalo de actualización mínimo (1 s, no 10 s).

¡Gracias @Goldorakiller por este lanzamiento, el tempo está bien presente!

Ayer actualicé y los índices, consumo y costo parecen estar bien:


Los índices están redondeados a la unidad en comparación con lo que tengo en el ecocomputador:

Si los cálculos de consumo/costo se hacen en función de los valores con decimales, entonces la visualización es correcta, de lo contrario puede haber una ligera diferencia.

Acabo de cambiar el nombre de uno de mis tores y parece que no hay verificación ni actualización.



Reinicié la integración y no hay cambios.

Y tengo cosas raras con muchos espacios en los parámetros técnicos para cada parámetro:

Respuesta de Claude :

Índices redondeados a la unidad
Tranquilo, es solo la visualización. Desde la 1.2.0, la integración publica los índices con 3 decimales, y Gladys los almacena tal cual. Es su función de visualización la que redondea según el tamaño del número: un entero por encima de 1000 kWh (de ahí 15383 para 15382,79), una decimal entre 10 y 1000 (de ahí 923,8 para 923,76). El cálculo de los consumos y costes cada 30 minutos se realiza sobre los valores almacenados, con las decimales. Por lo tanto, está bien por ese lado.

Renombrado de un toro
Tienes razón, y era nuestra documentación la que estaba equivocada, lo siento. En Gladys, una vez creado el dispositivo, los nombres de sus funcionalidades te pertenecen (como el nombre del dispositivo o su habitación). Un renombrado realizado posteriormente en el ecocontador no se aplica, incluso después de reiniciar la integración o un nuevo descubrimiento. Lo más sencillo: renombrar « Calefacción » a « Bomba de calor » directamente en Gladys. Eliminar y volver a crear el dispositivo también funciona, pero perderías el historial. La documentación se ha corregido para la próxima versión.

Los grandes espacios en « Parámetros técnicos »
No son parámetros de la integración. Los ENERGY_INDEX_LAST_PROCESSED_… son los marcadores que Gladys crea para su cálculo de energía, uno por índice (de ahí los 7 en tu caso). El diseño proviene de la pantalla de Gladys: si te molesta, merece la pena informar en el repositorio de Gladys.

Lo que llega en la próxima versión

Un índice de energía por toro: el ecocontador solo da la potencia instantánea de sus toros, por lo que la integración reconstruirá el consumo en kWh de cada uno. Gladys añadirá automáticamente el consumo y el coste cada 30 minutos. Podrás seguir así lo que cuesta tu punto de carga o tu bomba de calor. Es una estimación, calculada entre dos lecturas, que comienza en 0 en la instalación.

Un widget de panel de control « Potencia en directo », gracias a las novedades de Gladys 5.1: los 5 toros en directo, su total y la tarifa actual en color (azul, blanco o rojo en Tempo). De paso, el widget toma el nombre mostrado en el ecocontador, por lo que seguirá tu renombrado.

Se necesitará Gladys 5.1 como mínimo para esta versión. Para disfrutarla: pestaña Descubrimiento de la integración, luego « Actualizar » (no es necesario eliminar el dispositivo, el historial se conserva). Te aviso en cuanto se publique, y tus comentarios en Tempo serán valiosos para validar los índices por toro.

¡Hola @Goldorakiller!
¡Gracias por este último lanzamiento que está realmente bien!

Widget de Potencia en tiempo real :

Gráfico con la energía calculada de cada toro, quizá necesitemos un poco más de datos para saber si el cálculo es correcto o necesita mejorarse:



Lo interesante es que la página de Dispositivos de la integración muestra los antiguos nombres de los toros (que aparecen en mis gráficos) mientras que el widget toma los nombres renombrados en el ecocontador. Aclaro que he creado todo esto después de renombrar los toros en el ecocontador.

Comparativa de seguimiento energético Tempo



Y algunas diferencias (0,7kWh) que se equilibran en los 2 días:


De lo que veo, parece que hubo un error en el ecocontador con la última hora del día anterior y las dos primeras del día actual.

En cualquier caso, ¡lo valido!

¡Gracias por tu respuesta!