# Intégration - Teleinfo : votre compteur Linky dans Gladys avec le module LiXee TIC

**URL:** <https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025>\
**Category:** Développement\
**Tags:** integration-externe\
**Created:** [Octobre 10, 2026, 4:12 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025 "2026-10-10T16:12:12Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 10, 2026, 4:12 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025/1 "2026-10-10T16:12:12Z")

</div>

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](https://www.domadoo.fr/fr/interface-domotique/8827-lixee-compteur-tic-sur-rail-din-linky-ou-classique.html) (USB, environ 30 €). Code source : [github.com/prohand/gladys-teleinfo](https://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`, `gpu` et `video`. 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 `/dev` libre.

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 :

```auto
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).

```auto
sudo apt install ser2net
ls -l /dev/serial/by-id/

```

Puis `/etc/ser2net.yaml` :

```auto
connection: &teleinfo
  accepter: tcp,2000
  enable: on
  options:
    kickolduser: true
  connector: serialdev,/dev/serial/by-id/usb-XXXX-if00-port0,1200e71,local

```

- `1200e71` pour le mode **historique** (compteurs électroniques, et la plupart des Linky par défaut).
- `9600e71` pour 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

1. Branchez le module LiXee sur les bornes I1 et I2 du compteur (sans polarité, courant coupé au tableau).
2. Installez et configurez ser2net comme ci-dessus.
3. Dans Gladys, installez l’intégration **Teleinfo** , puis renseignez l’adresse IP de la machine ser2net et le port (2000).
4. 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](https://github.com/prohand/gladys-teleinfo/blob/main/docs/fr.md).

## 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](https://community.gladysassistant.com/t/point-detape-sur-mes-24-integrations-audit-corrections-et-nouvelles-versions-7-et-8-octobre/10990/2) : 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 comme `coral-usb` ou `video`, é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 !

---

<div class="post-metadata">

**Author:** ![mutmut](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/mutmut/32/14064_2.png) [@mutmut](https://community.gladysassistant.com/u/mutmut)\
**Post date:** [Octobre 10, 2026, 9:04 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025/2 "2026-10-10T21:04:02Z")

</div>

Merci @prohand !  
Je vois que ce n’est pas si simple dès qu’on doit brancher un truc en USB pour l’instant, je m’attendais a du plug&play comme je l’ai avec teleinfo2mqtt ☹

> [@prohand](#):
>
> ser2net tourne sur la machine où le module est branché : le serveur Gladys lui-même

Tu l’installes sur le host ou dans le docker Gladys ou dans le docker de l’intégration externe ?

> [@prohand](#):
>
> - `1200e71` pour le mode **historique** (compteurs électroniques, et la plupart des Linky par défaut).
> - `9600e71` pour un Linky en mode **standard**.

Ca veut dire que le jour où je passe de `historique` à `standard`, il faut modifier le yaml et restart le service ?

> [@prohand](#):
>
> Le mode (historique ou standard) est détecté tout seul.

Comment est-il détecté tout seul ? par le code ci-dessus ?  
Ce n’est pas possible de lire les trames, analyser le contenu et en déduire si `historique` ou `standard` ?  
Les variables dedans sont bien distinctes pour l’un et l’autre, je pensais que c’était plus simple que ça ☹

> [@prohand](#):
>
> 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.

Très bien car teleinfo2mqtt renvoie toutes les informations à chaque polling (10s actuellement car trop de données sinon), même si certaines ne changent pas (Tempo jour rouge par exemple).  
Par contre pour le **PAPP** (puissance instantanée en historique, je ne connais pas l’équivalent en standard), c’est possible de le régler plus bas (jusqu’à 1s par ex) ?  
Je m’en sers pour voir si il n’y a pas de dépassement (et gérer du délestage) et en 15s on peut avoir le linky qui «&nbsp;disjoncte&nbsp;» si trop de puissance tirée à l’instant T (charge voiture + eau chaude + chauffage par ex).

Dernier point, j’ai des appareils virtuels MQTT pour gérer mes index Tempo, comment est-ce qu’il faudrait que je m’y prenne pour migrer (historique, conso30, cout30, etc.) vers cette intégration ?

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 10, 2026, 9:24 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025/3 "2026-10-10T21:24:40Z")

</div>

Merci @mutmut pour ces bonnes questions ! Je reprends point par point.

**1. Où installer ser2net ?**

- Directement **sur la machine (l’hôte)** où le module LiXee est branché en USB, avec sudo apt install ser2net.
- Ni dans le Docker de Gladys, ni dans celui de l’intégration : aucun des deux ne voit le port USB.
- Pour info, teleinfo2mqtt est « plug & play » parce que tu lui donnes le port avec --device dans son propre docker run. Une intégration externe ne peut pas faire ça : c’est Gladys qui crée son conteneur, et sans accès au port série.

**2. Passage historique → standard : modifier le yaml ?**

- Oui : tu remplaces 1200e71 par 9600e71, puis sudo systemctl restart ser2net.
- Ça n’arrive normalement qu’une fois dans la vie du compteur, quand tu demandes le passage en mode standard.
- Si tu oublies, l’intégration te le dit dans son statut : « Connecté, mais aucune trame TIC valide : vérifiez la vitesse ser2net (1200 ou 9600 bauds) ».

**3. Comment le mode est-il détecté ?**

- Exactement comme tu le décris : l’intégration lit les trames. En historique, les champs sont séparés par un espace, en standard par une tabulation. Les noms des champs (PAPP, SINSTS…) changent aussi.
- Mais la vitesse se joue un cran plus bas. À la mauvaise vitesse, on ne reçoit que des octets illisibles, donc aucune trame à analyser. Et c’est ser2net qui ouvre le port série, avec la vitesse de son fichier de config, pas l’intégration.
- Une piste à creuser : ser2net gère le protocole RFC 2217, qui permet au client de changer la vitesse à distance. L’intégration pourrait alors essayer 1200 puis 9600 toute seule.

**4. PAPP plus souvent que toutes les 15 s ?**

- Les **valeurs publiées** dans Gladys ne descendent pas sous 15 s. Gladys limite une intégration à 300 valeurs par minute, et chaque valeur devient une ligne d’historique. Un compteur triphasé en mode standard dépasserait vite cette limite.
- Mais pour le délestage, pas besoin de l’historique. **Le déclencheur « Dépassement de puissance souscrite » analyse chaque trame** , donc toutes les 1 à 2 s, quel que soit l’intervalle de publication :
  - en historique, il se base sur ADPS, que le compteur envoie dès que l’intensité souscrite est dépassée ;
  - en standard (l’équivalent de PAPP est SINSTS), il compare SINSTS à la puissance souscrite (PREF).

- Il se déclenche une seule fois par dépassement. Le dépassement est considéré comme fini après 60 s sans nouveau signal.
- L’action « Lire le compteur » renvoie elle aussi la dernière trame reçue (1 à 2 s d’âge), et pas la dernière valeur publiée. Tu peux donc t’en servir dans une condition de scène.

**5. Migrer tes appareils MQTT (index Tempo, historique, conso30, cout30)**

- **conso30 / cout30 :** rien à recréer. Gladys les calcule tout seul à partir des index envoyés par l’intégration, comme pour le ZLinky. Les prix Tempo se règlent dans le contrat d’énergie de Gladys.
- **Historique :** l’intégration ne peut pas importer d’anciennes valeurs, elle publie seulement les valeurs actuelles.
- Gladys a une fonction « Migrer » qui déplace d’un appareil à l’autre l’historique, les scènes et les tableaux de bord. Aujourd’hui, le bouton n’existe que sur les intégrations dépréciées (Netatmo, Tuya, Hue…), pas sur MQTT. @pierre-gilles, est-ce qu’on pourrait l’ouvrir aux appareils MQTT ?
- Attention aux unités : l’intégration publie les index en **kWh**. Si tes index MQTT sont en Wh, une migration déplacerait les valeurs sans les convertir.
- En attendant : garde tes anciens appareils MQTT pour leur historique, et laisse tourner les deux en parallèle

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 12, 2026, 10:10 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025/4 "2026-10-12T10:10:16Z")

</div>

Hello à tous 👋

Petit point sur la partie **serial** (connexion du module Lixee TIC en USB/série) : pour avancer proprement, j’ai créé 3 issues GitHub, une par dépôt concerné.

- **Gladys** (le cœur) :  
[External integrations: allow access to a USB serial device · Issue #3194 · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/issues/3194)
- **Integration Store** :  
[External integrations: allow access to a USB serial device · Issue #18 · GladysAssistant/integration-store · GitHub](https://github.com/GladysAssistant/integration-store/issues/18)
- **Integration SDK JS** :  
[External integrations: allow access to a USB serial device · Issue #39 · GladysAssistant/integration-sdk-js · GitHub](https://github.com/GladysAssistant/integration-sdk-js/issues/39)

N’hésitez pas à aller voir, à commenter ou à ajouter vos retours directement sur les issues. Si vous avez déjà testé le module en série et rencontré des soucis, vos infos sont les bienvenues 🙏

Je vous tiens au courant ici de l’avancement !

---

<div class="post-metadata">

**Author:** ![mutmut](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/mutmut/32/14064_2.png) [@mutmut](https://community.gladysassistant.com/u/mutmut)\
**Post date:** [Octobre 12, 2026, 3:21 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025/5 "2026-10-12T15:21:35Z")

</div>

Avec la release de Gladys 5.2, j’ai (enfin !) jeté un œil sur la [doc](https://gladysassistant.com/fr/docs/dev/external-integrations/) développeur d’intégration externe et j’ai vu ça :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/a/1/a15c6dced259de9619ee67c4480f7de40f473b5d.png)  
Ca veut dire que c’est possible de brancher directement le serial USB ou il y a un truc qui m’échappe ?

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 12, 2026, 4:29 UTC](https://community.gladysassistant.com/t/integration-teleinfo-votre-compteur-linky-dans-gladys-avec-le-module-lixee-tic/11025/6 "2026-10-12T16:29:01Z")

</div>

Bonne question @mutmut ! Malheureusement non, ça ne change rien pour le LiXee.

- Le « dongle USB » de la doc, c’est le **Coral USB** (la puce d’IA utilisée par Frigate), pas une clé série. L’exemple juste en dessous le montre : d.class === «&nbsp;coral-usb&nbsp;».
- Les seuls accès matériels possibles sont toujours coral-usb, coral-pcie, gpu et video. Je viens de revérifier dans la doc et dans le schéma du store : il n’y a pas de classe pour un port série (/dev/ttyUSB\*, /dev/ttyACM\*).
- Et ces accès ne sont donnés qu’aux sous-conteneurs, jamais sous la forme d’un chemin /dev libre.

Donc pour l’instant, ser2net reste nécessaire. C’est justement l’objet des 3 issues ouvertes (Gladys #3194, integration-store #18, integration-sdk-js #39) : ajouter une classe serial que l’utilisateur accorderait comme coral-usb ou video. Si ça t’intéresse, un 👍 ou un commentaire sur l’issue Gladys aide à la faire avancer.

Dès qu’une classe serial existera, je mettrai l’intégration à jour pour lire le module directement, sans ser2net.
