¡Hola a todos! Os presento Teleinfo, una integración externa que lee la teleinformación (TIC) de vuestro contador Linky o electrónico con el módulo LiXee TIC sobre rail DIN (USB, unos 30 €). Código fuente: github.com/prohand/gladys-teleinfo.
El punto importante: el USB
Una integración externa de Gladys no puede leer una clave USB serie. Es lo primero que hay que saber antes de comprar el módulo.
- Las integraciones externas funcionan cada una en su propio contenedor Docker, aislado por Gladys (sistema de archivos de solo lectura, sin acceso al hardware).
- El manifiesto de una integración puede solicitar acceso al hardware, pero solo entre 4 clases:
coral-usb,coral-pcie,gpuyvideo. No existe ninguna clase para un puerto serie (/dev/ttyUSB0,/dev/ttyACM0…). - Estas clases solo se conceden a los subcontenedores, y nunca en forma de ruta
/devlibre.
Consecuencia: conectar el módulo LiXee al servidor Gladys no es suficiente. La integración no lo verá, aunque esté correctamente detectado por Linux.
El ZLinky (la versión Zigbee del LiXee) no tiene este problema: pasa por Zigbee2MQTT. Pero la versión USB sobre rail DIN, más barata, necesita un relé de red.
La solución: ser2net
ser2net comparte el puerto serie del módulo en la red (TCP bruto), y la integración se conecta a él:
Contador (I1/I2) -> módulo LiXee (USB) -> ser2net (TCP 2000) -> integración Teleinfo -> Gladys
ser2net funciona en la máquina donde está conectado el módulo: el servidor Gladys mismo, o una Raspberry Pi cerca del cuadro eléctrico (práctico, el cable USB está limitado a unos 5 m).
sudo apt install ser2net
ls -l /dev/serial/by-id/
Luego /etc/ser2net.yaml:
connection: &teleinfo
accepter: tcp,2000
enable: on
options:
kickolduser: true
connector: serialdev,/dev/serial/by-id/usb-XXXX-if00-port0,1200e71,local
1200e71para el modo histórico (contadores electrónicos, y la mayoría de los Linky por defecto).9600e71para un Linky en modo estándar.- Luego
sudo systemctl restart ser2net && sudo systemctl enable ser2net.
Atención: ser2net no tiene contraseña. Mantén este puerto en tu red local, nunca abierto a Internet.
Lo que se sube a Gladys
El modo (histórico o estándar) se detecta automáticamente. Se crea un dispositivo por contador, con solo los valores que tu contador envía (monofásico o trifásico, Base, HC/HP, Tempo, EJP).
- Modo histórico: índice (Base, HC/HP, EJP, Tempo) en kWh, potencia aparente (PAPP), intensidad instantánea y máxima, intensidad suscrita, período tarifario, excedencia (ADPS).
- Modo estándar: energía total consumida y por índice, energía inyectada, potencia aparente instantánea y máxima, corriente y tensión efectivas, tensión media, curva de carga, tarifa en curso.
Las categorías y unidades son las mismas que las utilizadas por Gladys para el ZLinky en Zigbee: un contador se muestra igual en ambos casos.
Los valores se envían cada 60 s por defecto (ajustable de 15 s a 1 h), solo cuando cambian, para no llenar el historial.
Escenas y tablero de control (Gladys 5.1+)
La integración añade sus propias tarjetas en el editor de escenas (categoría Integraciones) y un widget para el tablero de control.
- Disparador «Cambio de período tarifario»: lanza la escena al pasar de HC ↔ HP. Filtro posible sobre el nuevo período (horas valle, punta, base). Ejemplo: calentador de agua en horas valle.
- Disparador «Excedencia de potencia suscrita»: advierte antes de que se dispare el interruptor. Un solo disparo por excedencia, aunque la potencia oscile alrededor del límite.
- Acción «Leer el contador»: devuelve potencia, período, índice total y excedencia, para una condición o un mensaje.
- Widget «Contador eléctrico»: potencia en directo, índice, curva de 24 h, período tarifario, excedencia y estado de la recepción.
Estas funciones requieren Gladys 5.1 o más reciente.
Instalación
- Conecta el módulo LiXee a las bornas I1 e I2 del contador (sin polaridad, corriente cortada en el cuadro).
- Instala y configura ser2net como se indica arriba.
- En Gladys, instala la integración Teleinfo, luego introduce la dirección IP de la máquina ser2net y el puerto (2000).
- Haz clic en Probar la conexión: el número del contador y la potencia actual se muestran. Añade luego el contador desde la pestaña Descubrimiento.
El estado de conexión en la pantalla de Configuración indica claramente el problema: pasarela inalcanzable, o conectado pero sin tramas válidas (velocidad incorrecta o cableado). La guía detallada está en la documentación.
Lo que busco
- Probadores con un contador real: la integración se ha probado con tramas simuladas, pero aún no en un Linky real. @mutmut, habías ofrecido probar con tu módulo LiXee TIC rail DIN aquí: ¡con mucho gusto! Si tu teleinfo2mqtt ya lee el puerto, tendrás que detenerlo durante la prueba (solo un programa a la vez en el puerto serie). También son bienvenidos los comentarios en trifásico y en modo estándar.
- Una opinión sobre el acceso serie: @pierre-gilles, una clase de hardware
serial(para/dev/ttyUSB*//dev/ttyACM*), concedida por el usuario comocoral-usbovideo, evitaría ser2net. También serviría para otras integraciones en clave USB, como el RFPlayer que también se solicita en el hilo. ¿Es posible desde Gladys?
¡Gracias por vuestros comentarios!