Bonjour à tous ! Je vous présente Teleinfo, une intégration externe qui lit la télé-information (TIC) de votre compteur Linky ou électronique avec le module LiXee TIC sur rail DIN (USB, environ 30 €). Code source : github.com/prohand/gladys-teleinfo.
Le point important : l’USB
Une intégration externe Gladys ne peut pas lire une clé USB série. C’est la première chose à savoir avant d’acheter le module.
- Les intégrations externes tournent chacune dans leur propre conteneur Docker, isolé par Gladys (système de fichiers en lecture seule, pas d’accès au matériel).
- Le manifest d’une intégration peut demander un accès matériel, mais seulement parmi 4 classes :
coral-usb,coral-pcie,gpuetvideo. Il n’existe aucune classe pour un port série (/dev/ttyUSB0,/dev/ttyACM0…). - Ces classes ne sont accordées qu’aux sous-conteneurs, et jamais sous forme de chemin
/devlibre.
Conséquence : brancher le module LiXee sur le serveur Gladys ne suffit pas. L’intégration ne le verra pas, même s’il est bien détecté par Linux.
Le ZLinky (la version Zigbee du LiXee) n’a pas ce problème : il passe par Zigbee2MQTT. Mais la version USB sur rail DIN, moins chère, a besoin d’un relais réseau.
La solution : ser2net
ser2net partage le port série du module sur le réseau (TCP brut), et l’intégration s’y connecte :
Compteur (I1/I2) -> module LiXee (USB) -> ser2net (TCP 2000) -> intégration Teleinfo -> Gladys
ser2net tourne sur la machine où le module est branché : le serveur Gladys lui-même, ou un Raspberry Pi près du tableau électrique (pratique, le câble USB est limité à environ 5 m).
sudo apt install ser2net
ls -l /dev/serial/by-id/
Puis /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
1200e71pour le mode historique (compteurs électroniques, et la plupart des Linky par défaut).9600e71pour un Linky en mode standard.- Puis
sudo systemctl restart ser2net && sudo systemctl enable ser2net.
Attention : ser2net n’a pas de mot de passe. Gardez ce port sur votre réseau local, jamais ouvert sur Internet.
Ce qui remonte dans Gladys
Le mode (historique ou standard) est détecté tout seul. Un appareil est créé par compteur, avec seulement les valeurs que votre compteur envoie (mono ou triphasé, Base, HC/HP, Tempo, EJP).
- Mode historique : index (Base, HC/HP, EJP, Tempo) en kWh, puissance apparente (PAPP), intensité instantanée et max, intensité souscrite, période tarifaire, dépassement (ADPS).
- Mode standard : énergie soutirée totale et par index, énergie injectée, puissance apparente instantanée et max, courant et tension efficaces, tension moyenne, courbe de charge, tarif en cours.
Les catégories et unités sont les mêmes que celles utilisées par Gladys pour le ZLinky en Zigbee : un compteur s’affiche pareil dans les deux cas.
Les valeurs sont envoyées toutes les 60 s par défaut (réglable de 15 s à 1 h), seulement quand elles changent, pour ne pas remplir l’historique.
Scènes et tableau de bord (Gladys 5.1+)
L’intégration ajoute ses propres cartes dans l’éditeur de scènes (catégorie Intégrations) et un widget pour le tableau de bord.
- Déclencheur « Changement de période tarifaire » : lance la scène au passage HC ↔ HP. Filtre possible sur la nouvelle période (heures creuses, pleines, base). Exemple : chauffe-eau en heures creuses.
- Déclencheur « Dépassement de puissance souscrite » : prévient avant de disjoncter. Un seul déclenchement par dépassement, même si la puissance oscille autour de la limite.
- Action « Lire le compteur » : renvoie puissance, période, index total et dépassement, pour une condition ou un message.
- Widget « Compteur électrique » : puissance en direct, index, courbe sur 24 h, période tarifaire, dépassement et état de la réception.
Ces fonctions demandent Gladys 5.1 ou plus récent.
Installation
- Branchez le module LiXee sur les bornes I1 et I2 du compteur (sans polarité, courant coupé au tableau).
- Installez et configurez ser2net comme ci-dessus.
- Dans Gladys, installez l’intégration Teleinfo, puis renseignez l’adresse IP de la machine ser2net et le port (2000).
- Cliquez sur Tester la connexion : le numéro du compteur et la puissance actuelle s’affichent. Ajoutez ensuite le compteur depuis l’onglet Découverte.
Le statut de connexion dans l’écran Configuration indique clairement le problème : passerelle injoignable, ou connecté mais aucune trame valide (mauvaise vitesse ou câblage). Le guide détaillé est dans la documentation.
Ce que je cherche
- Des testeurs avec un vrai compteur : l’intégration est testée avec des trames simulées, mais pas encore sur un vrai Linky. @mutmut, tu avais proposé de tester avec ton module LiXee TIC rail DIN ici : avec plaisir ! Si ton teleinfo2mqtt lit déjà le port, il faudra l’arrêter pendant le test (un seul programme à la fois sur le port série). Les retours en triphasé et en mode standard sont aussi bienvenus.
- Un avis sur l’accès série : @pierre-gilles, une classe matérielle
serial(pour/dev/ttyUSB*//dev/ttyACM*), accordée par l’utilisateur commecoral-usbouvideo, éviterait ser2net. Elle servirait aussi à d’autres intégrations sur clé USB, comme le RFPlayer qui est aussi demandé dans le fil. Est-ce envisageable côté Gladys ?
Merci pour vos retours !