Ah, la hausse du coût de l'énergie — ce doux plaisir qui transforme chaque facture en petit infarctus mensuel. Entre mon fournisseur d'électricité et moi, c'est une relation passionnelle : eux me prennent mon argent, moi je me gèle le cul à baisser sans cesse le thermostat, je me nique les yeux à éteindre les lumières… et je pleure. Mais comme tout bon masochiste financier, j'ai décidé d'attaquer le problème de front : faire des économies en dépensant masse d'argent !
Vous savez, cette logique imparable où on achète un tas de gadgets pour "moins consommer", quitte à manger des pâtes pendant trois mois pour rentabiliser le tout. Bienvenue dans mon aventure entre prises connectées, bidouillages électroniques et automatisations dignes de Skynet pour, enfin, apprivoiser ma facture d'électricité. 🤖
🛍️ Mon matos pour reprendre le contrôle
Achats indispensables
- 🔌 Prises connectées : une dizaine achetées sur Amazon, installées stratégiquement dans le logement.
- ⚡ Disjoncteurs connectés : pour suivre la consommation de la climatisation et du ballon d'eau chaude.
- 🔎 Sonde Linky DIY : un module à base d'ESP et d'optocoupleur, branché sur la sortie TIC du compteur pour remonter les données dans mon système domotique (on y revient en détail plus bas).
- 🏠 Home Assistant : installé sur mon home lab, avec des automatisations pour piloter tout ce petit monde.
💻 Installation et suivi
Les prises connectées m'ont permis d'identifier clairement les pics de consommation — comme ceux liés à la cuisine entre 20h et 21h (four, plaques, micro-ondes). Voici les postes que je monitore :
- 🛜 Pôle home lab : serveur Proxmox, box Internet, antenne Wi-Fi
- 📺 Meuble TV : Apple TV, télé, barre de son
- ⚡ Électroménager : machine à laver, lave-vaisselle, sèche-serviette
- 🕹️ Bureaux : PC salon, chambre, etc.
Côté ballon d'eau chaude 💦 et climatisation ❄️, les disjoncteurs connectés permettent une gestion plus fine et automatique, avec des plages horaires programmées.
📡 La sortie TIC du Linky : c'est quoi ce truc ?
Avant de plonger dans le bricolage, prenons un moment pour comprendre ce qu'on exploite. Parce que oui, votre compteur Linky a une sortie gratuite et légale qui diffuse en permanence vos données de consommation. Et non, Enedis ne vous enverra pas les gendarmes pour y avoir branché un fil.
Le port TIC (Télé-Information Client)
La TIC est une interface série unidirectionnelle intégrée à tous les compteurs Linky (et même aux anciens compteurs électroniques). Elle se trouve sous le capot vert amovible du compteur, dans la partie basse (monophasé) ou haute (triphasé). Vous y trouverez trois bornes :
| Borne | Rôle |
|---|---|
| I1 | Signal de télé-information |
| I2 | Signal de télé-information |
| A | Alimentation (~130 mW à 50 kHz) |
Les bornes I1 et I2 transmettent le signal de données. Le branchement n'est pas polarisé : vous pouvez inverser I1 et I2 sans problème. La borne A avec I1 fournit une alimentation faible (environ 130 mW), suffisante pour alimenter un petit module Zigbee type LiXee ZLinky, mais beaucoup trop faible pour un ESP8266 ou ESP32 qui consomme bien plus.
⚠️ À ne pas confondre avec le contact sec (bornes C1/C2), qui sert à piloter des équipements comme le chauffe-eau en heures creuses, mais ne transmet aucune donnée.
Comment fonctionne le signal TIC ?
Le signal est une modulation d'amplitude sur une porteuse à 50 kHz. Concrètement, le compteur superpose les données numériques sur un signal alternatif à 50 kHz. Le récepteur (notre circuit DIY) doit donc :
- Démoduler le signal (extraire l'enveloppe du signal modulé)
- Inverser la logique (la TIC utilise une logique négative)
- Transmettre le résultat sur un port série (UART)
C'est exactement le rôle de l'optocoupleur dans notre montage : il démodule et isole galvaniquement le signal en une seule étape.
Deux modes de fonctionnement
Le Linky peut fonctionner dans deux modes de TIC :
| Mode Historique | Mode Standard | |
|---|---|---|
| Vitesse | 1200 bauds | 9600 bauds |
| Format série | 7 bits, parité paire, 1 stop | 7 bits, parité paire, 1 stop |
| Par défaut | ✅ Oui (à l'installation) | ❌ Non (sur demande) |
| Données | Basiques (index, puissance, tarif) | Plus riches (horodatage, registre de statut, profil de charge…) |
| Séparateur | Espace (0x20) | Tabulation (0x09) |
Par défaut, votre Linky est en mode historique. Pour basculer en mode standard, il faut en faire la demande auprès de votre fournisseur d'énergie (pas Enedis directement). C'est la prestation F185 d'Enedis, gratuite pour les compteurs Linky.
Qu'est-ce qu'on peut lire ?
Voici les principales étiquettes transmises par la TIC en mode historique :
| Étiquette | Description |
|---|---|
| ADCO | Adresse du compteur (identifiant unique) |
| OPTARIF | Option tarifaire (Base, HC, EJP, Tempo) |
| ISOUSC | Intensité souscrite (en ampères) |
| BASE | Index compteur option Base (en Wh) |
| HCHC | Index Heures Creuses (en Wh) |
| HCHP | Index Heures Pleines (en Wh) |
| PTEC | Période tarifaire en cours |
| IINST | Intensité instantanée (en ampères) |
| PAPP | Puissance apparente instantanée (en VA) |
| ADPS | Avertissement de dépassement de puissance souscrite |
💡 L'étiquette ADPS est particulièrement intéressante en domotique : quand elle apparaît, vous avez entre 30 secondes et 1 minute pour réduire la consommation avant que le Linky ne coupe. C'est la base d'un système de délestage automatique.
En mode standard, vous aurez accès à encore plus d'informations : énergie active soutirée totale (EAST), puissance maximale atteinte (SMAXSN), registre de statuts (STGE), courbe de charge, etc.
📝 Suivre sa consommation : les options
Option 1 : Le suivi fournisseur (basique)
Chez la plupart des fournisseurs, le suivi journalier via l'espace client est inclus. Par contre, le suivi en temps réel est souvent payant (autour de 2 €/mois soit 24 €/an chez certains fournisseurs). Et on parle d'un suivi qui passe par leurs serveurs, avec un décalage, et des pannes régulières. Bof.
Option 2 : Les solutions commerciales clé en main
Si vous n'avez pas envie de sortir le fer à souder, plusieurs solutions existent :
🟢 LiXee ZLinky TIC V2 (~44 €)
Le chouchou de la communauté domotique française. Ce petit module Zigbee 3.0 se branche directement sur les bornes I1/I2/A du Linky (plug & play). Il est autoalimenté par le compteur et transmet les données à votre box domotique (Home Assistant, Jeedom, Domoticz…) via Zigbee. Il est même labellisé "Linky Ready" par le labo Enedis. Comptez 15 à 20 mètres de portée en intérieur, extensible via le maillage Zigbee. Un module fiable, discret, et qui tient sous le capot du Linky.
🟡 Ecojoko (~199 € ou 7,99 €/mois en location)
Solution grand public avec un afficheur déporté design et une application mobile. La version avec clé Linky (ERL) se branche sur la prise TIC et transmet les données par radio. L'app identifie les postes de consommation grâce à l'IA (signatures électriques). Bien fini mais cher à l'achat. Peut être éligible aux certificats d'économies d'énergie (programme Watt Watchers, ~99,50 € après aide sous conditions).
🔵 Modules ESP tout faits (Wemos Teleinfo, T-InfoDIN…)
Des modules sur PCB prêts à l'emploi, à base d'ESP8266 ou ESP32, compatibles ESPHome ou Tasmota. Le T-InfoDIN de Tech4You se monte sur rail DIN, le Wemos Teleinfo est un shield compact. Entre 10 et 25 € selon les modèles. L'avantage : Wi-Fi natif, compatible ESPHome, et vous gardez la main sur tout.
Option 3 : Le DIY pur et dur 🧰
Et c'est là que ça devient intéressant pour nous autres bidouilleurs. Pour moins de 10 € de composants, on peut construire son propre module TIC et l'intégrer à Home Assistant via ESPHome.
🔧 Fabriquer son propre module TIC
Le principe du circuit
Le signal TIC est un signal modulé en amplitude sur une porteuse de 50 kHz. Pour le décoder, on utilise un optocoupleur qui fait double emploi :
- Isolation galvanique : protection entre le circuit du compteur et notre microcontrôleur
- Démodulation : l'optocoupleur, grâce à ses deux LEDs internes montées en antiparallèle, redresse naturellement le signal et produit une enveloppe exploitable
En sortie de l'optocoupleur, on obtient un signal série inversé. Optionnellement, on ajoute un transistor MOSFET pour obtenir des fronts bien propres, ce qui améliore la fiabilité surtout en mode standard (9600 bauds).
Liste du matériel
| Composant | Référence | Rôle | Prix approx. |
|---|---|---|---|
| Optocoupleur | LTV-814 (ou SFH620A) | Isolation galvanique + démodulation du signal TIC | ~0,50 € |
| MOSFET (optionnel) | 2N7000 | Mise en forme du signal (fronts propres) | ~0,20 € |
| Résistance R1 | 1,2 kΩ | Limitation du courant dans la LED de l'optocoupleur (côté TIC) | ~0,05 € |
| Résistance R2 | 10 kΩ | Pull-up sur le collecteur de l'optocoupleur (tiré au 3,3 V) | ~0,05 € |
| Résistance R3 (si MOSFET) | 10 kΩ | Pull-up sur le drain du MOSFET (tiré au 3,3 V) | ~0,05 € |
| Microcontrôleur | ESP32 (recommandé) ou ESP8266 | Réception UART + transmission Wi-Fi vers Home Assistant | ~4 € |
| Plaque de prototypage | — | Support de soudure | ~1 € |
| Bornier 2 positions | — | Connexion des fils venant du Linky (I1/I2) | ~0,30 € |
Coût total : moins de 10 € (si vous avez déjà un fer à souder et du fil).
Choix de l'optocoupleur : LTV-814 plutôt que SFH620A
Le SFH620A de Vishay est le composant historique utilisé dans tous les montages de téléinformation depuis des années. Il fonctionne, mais Charles Hallard (l'un des pionniers du sujet en France, créateur de la PiTInfo et de la MicroTeleinfo) a démontré après des tests à l'oscilloscope que le LTV-814 (de Lite-On) offre de bien meilleurs résultats, avec des signaux plus propres et moins de soucis, notamment avec les ESP8266/ESP32. Il est aussi moins cher que le SFH620A.
L'astuce : le LTV-814 dispose de deux LEDs internes montées en antiparallèle (optocoupleur à entrée bidirectionnelle), ce qui lui permet de démoduler nativement le signal AC de la TIC.
Choix du microcontrôleur : ESP32 plutôt qu'ESP8266
L'ESP32 est préférable à l'ESP8266 pour ce projet, pour plusieurs raisons :
- Plus de puissance de calcul pour traiter le flux série sans erreurs de CRC
- Plusieurs UART matériels disponibles (l'UART2 sur GPIO16 est idéal, ce qui évite les conflits avec le debug sur UART0)
- Meilleure stabilité dans les retours d'expérience de la communauté
- Prix quasi identique aujourd'hui
Si vous utilisez quand même un ESP8266, il faudra utiliser le pin RX natif (GPIO3) et désactiver le logger série dans ESPHome (baud_rate: 0).
Le schéma électronique

Explication détaillée du circuit
Étage optocoupleur (obligatoire) :
- Le signal TIC arrive sur les bornes I1/I2 du compteur via R1 (1,2 kΩ) en série avec la LED interne de l'optocoupleur
- R1 limite le courant à environ 1-2 mA dans la LED, ce qui est suffisant pour la conduction du phototransistor
- La spécification Enedis demande une impédance d'entrée supérieure à 1 kΩ : avec 1,2 kΩ on respecte la norme tout en ayant un signal suffisamment fort
- R2 (10 kΩ) est une résistance de pull-up reliée au 3,3V. Elle maintient la sortie à l'état haut quand le phototransistor ne conduit pas (repos = état haut, c'est la convention série UART)
- En sortie du collecteur (Pin 4), on récupère un signal inversé et démodulé
💡 Pourquoi 1,2 kΩ pour R1 et pas plus ? La spécification Enedis recommande de se rapprocher de 2 kΩ pour permettre le branchement de plusieurs appareils en parallèle. Mais en pratique, avec une valeur trop haute (4,7 kΩ par exemple), le courant dans l'optocoupleur est trop faible et le signal en sortie ne descend pas assez bas pour être lu correctement par l'ESP. Les tests à l'oscilloscope de Charles Hallard montrent qu'à 4,7 kΩ + pull-up 1 kΩ, le signal ne descend qu'à 3,08 V au lieu de 0 V. Avec 1,2 kΩ + pull-up 10 kΩ, on obtient un signal propre qui descend bien à 0,2 V.
💡 Pourquoi 10 kΩ pour R2 ? Avec un pull-up trop faible (1 kΩ), l'optocoupleur n'arrive pas à "tirer" la sortie vers le bas. Avec 10 kΩ, le courant nécessaire est faible (~0,3 mA) et l'optocoupleur bascule correctement.
Étage MOSFET (optionnel mais recommandé) :
- Le MOSFET 2N7000 en configuration source commune agit comme un inverseur logique avec des fronts très nets
- Sans MOSFET, le signal peut présenter des oscillations résiduelles de la porteuse 50 kHz, surtout en mode standard (9600 bauds)
- R3 (10 kΩ) est le pull-up du drain du MOSFET
- Le Gate est relié à la sortie de l'optocoupleur, le Source au GND, le Drain au GPIO de l'ESP
⚠️ Note importante : Si votre montage fonctionne bien sans le MOSFET (cas fréquent en mode historique à 1200 bauds), inutile de l'ajouter. Plusieurs utilisateurs font tourner un simple optocoupleur + une résistance de pull-up depuis des années sans souci. Le MOSFET est surtout utile si vous constatez des erreurs de CRC ou si vous passez en mode standard.
⚡ Alimentation de l'ESP
On n'alimente PAS l'ESP par le compteur Linky. La borne A ne fournit que ~130 mW, alors qu'un ESP8266 en Wi-Fi consomme autour de 250 mA sous 3,3 V, soit environ 800 mW. C'est 6 fois trop.
Solutions d'alimentation :
- Alimentation USB 5V classique (chargeur de téléphone) — le plus simple
- Alimentation 5V sur rail DIN si le module est dans le tableau électrique
- Si le compteur est éloigné du logement, prévoir un câble blindé type SYT2 (câble téléphonique torsadé blindé) entre les bornes I1/I2 et le module, jusqu'à ~50 mètres
💻 Configuration logicielle avec ESPHome
Pourquoi ESPHome ?
ESPHome dispose d'un composant teleinfo natif qui gère nativement le décodage des trames TIC. Pas besoin d'écrire du code Arduino à la main : tout se configure en YAML. L'intégration avec Home Assistant est automatique.
Étape 1 : Installer ESPHome
Si vous avez déjà Home Assistant, ESPHome s'installe comme un add-on en quelques clics. Sinon, il peut aussi tourner en standalone.
Étape 2 : Configurer le firmware
Voici un fichier de configuration ESPHome complet pour un ESP32 en mode historique avec un contrat Heures Creuses / Heures Pleines :
esphome:
name: teleinfo-linky
friendly_name: "Téléinfo Linky"
esp32:
board: esp-wrover-kit
framework:
type: arduino
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Désactiver le logger sur l'UART pour ne pas interférer
logger:
baud_rate: 0
api:
encryption:
key: !secret api_encryption_key
ota:
- platform: esphome
# Configuration du port série sur UART2 (GPIO16)
uart:
id: uart_tic
rx_pin: GPIO16
baud_rate: 1200 # 9600 si mode standard
parity: EVEN
data_bits: 7
# Composant Teleinfo
teleinfo:
id: my_teleinfo
uart_id: uart_tic
update_interval: 10s
historical_mode: true # false si mode standard
# Capteurs
sensor:
# Puissance apparente instantanée
- platform: teleinfo
tag_name: "PAPP"
name: "Puissance apparente"
unit_of_measurement: "VA"
device_class: apparent_power
state_class: measurement
icon: mdi:flash
# Intensité instantanée
- platform: teleinfo
tag_name: "IINST"
name: "Intensité instantanée"
unit_of_measurement: "A"
device_class: current
state_class: measurement
icon: mdi:current-ac
# Index Heures Creuses (en Wh)
- platform: teleinfo
tag_name: "HCHC"
name: "Index Heures Creuses"
unit_of_measurement: "Wh"
device_class: energy
state_class: total_increasing
icon: mdi:counter
# Index Heures Pleines (en Wh)
- platform: teleinfo
tag_name: "HCHP"
name: "Index Heures Pleines"
unit_of_measurement: "Wh"
device_class: energy
state_class: total_increasing
icon: mdi:counter
# Intensité souscrite
- platform: teleinfo
tag_name: "ISOUSC"
name: "Intensité souscrite"
unit_of_measurement: "A"
icon: mdi:current-ac
# Signal Wi-Fi
- platform: wifi_signal
name: "Signal Wi-Fi"
update_interval: 60s
text_sensor:
# Période tarifaire en cours
- platform: teleinfo
tag_name: "PTEC"
name: "Période tarifaire"
icon: mdi:clock-outline
# Option tarifaire
- platform: teleinfo
tag_name: "OPTARIF"
name: "Option tarifaire"
icon: mdi:file-document
binary_sensor:
- platform: status
name: "Statut Teleinfo"📌 Pour un contrat Base, remplacez les sensors HCHC/HCHP par un seul sensor avec
tag_name: "BASE".
📌 Pour le mode standard, changez
baud_rate: 9600ethistorical_mode: false. Les étiquettes sont différentes (EAST, SINSTS, SMAXSN…), consultez la documentation Enedis Enedis-NOI-CPT_54E pour la liste complète.
Étape 3 : Flasher et brancher
- Compilez et flashez le firmware via USB depuis ESPHome
- Branchez le module TIC aux bornes I1/I2 du compteur
- Alimentez l'ESP en USB
- Dans Home Assistant, le nouveau périphérique apparaît automatiquement dans les intégrations ESPHome
Étape 4 : Configurer le module Energy de Home Assistant
Le module Energy de Home Assistant est puissant : il vous permet de suivre votre consommation jour/mois/année avec calcul automatique des coûts. Pour l'activer :
- Allez dans Paramètres > Tableaux de bord > Énergie
- Ajoutez une source de consommation en sélectionnant vos capteurs d'index (HCHC, HCHP ou BASE)
- Renseignez le coût du kWh pour chaque tranche tarifaire
- Les graphiques se remplissent au fil du temps
📉 Le talon de consommation : l'ennemi invisible
Le talon (ou consommation de base), c'est ce que votre logement consomme en permanence, même quand vous dormez ou que vous n'êtes pas là. C'est le frigo qui tourne, la box Internet, le serveur, les veilles, les chargeurs branchés à vide…
Avant mes optimisations, mon talon était d'environ 250 W. Grâce à Home Assistant et mes automatisations, je l'ai réduit à 180 W.
70 W de moins en permanence, ça ne semble pas énorme, mais calculons :
- 70 W × 24 h × 365 jours = 613 kWh/an
- À 0,25 €/kWh : ~153 €/an d'économies 💰
Et ça, c'est juste le talon. Sans compter les économies sur le ballon d'eau chaude et les pics de consommation optimisés.
Mes automatisations dans Home Assistant
- Ballon d'eau chaude : fonctionnement limité aux heures creuses, coupure si la température de l'eau est suffisante
- Prises connectées : extinction automatique du meuble TV la nuit, extinction du bureau quand l'ordinateur est éteint (détection de consommation < 5 W)
- Alerte surconsommation : notification si la puissance instantanée dépasse un seuil anormal
- Délestage : si la puissance s'approche du maximum souscrit (via l'étiquette ADPS), coupure automatique des charges non prioritaires
🧪 Dépannage : ça ne marche pas !
Quelques pistes si vous n'arrivez pas à décoder les trames TIC :
-
Vérifiez le mode TIC de votre compteur : appuyez sur les boutons +/- du Linky et cherchez "Mode TIC : Historique" ou "Mode TIC : Standard". Adaptez la config ESPHome en conséquence (1200 vs 9600 bauds).
-
Vérifiez le câblage : les fils I1/I2 ne sont pas polarisés, mais vérifiez que R1 est bien en série avec la LED de l'optocoupleur et pas en parallèle.
-
Trop d'erreurs de CRC ? Essayez :
- D'ajouter l'étage MOSFET si vous ne l'avez pas
- De baisser R1 à 1 kΩ (voire 680 Ω dans les cas difficiles)
- D'utiliser du câble torsadé blindé si la distance est longue
-
Signal visible sur le moniteur série de l'IDE Arduino mais pas dans ESPHome ? Vérifiez que
baud_rate: 0est bien dans la sectionlogger:pour libérer l'UART. -
Utilisez un convertisseur USB-TTL pour tester le signal en sortie de l'optocoupleur sur un PC avec un terminal série (1200 bauds, 7E1). Si vous voyez des trames lisibles, le circuit est bon et le souci est côté logiciel.
☀️ Et après ?
Ce système de monitoring m'a permis de comprendre ma consommation avant de chercher à la réduire. C'est la base. On ne peut pas optimiser ce qu'on ne mesure pas.
Prochaine étape : les panneaux solaires et l'autoconsommation, avec le mode standard du Linky qui permet de suivre la production injectée sur le réseau. J'en parle dans cet article : Je tombe dans le panneau !
📚 Ressources et liens utiles
- 📄 Documentation Enedis - Sorties TIC — Le document de référence officiel
- 🔧 Démystifier l'optocoupleur SFH620 — Charles Hallard — L'article fondateur sur le choix des résistances
- 🏠 ESPHome - Composant Teleinfo — Documentation officielle ESPHome
- 🛒 LiXee ZLinky TIC — Solution Zigbee clé en main
- 💬 HACF - Communauté francophone Home Assistant — Forum et tutoriels en français
- 📐 Faire soi-même - Module TIC — Le site de Sylvain (créateur du ZLinky)
- 📡 TIC2UART — Interface TIC matérielle bien documentée avec analyse de signal
Nickel Merci Bilou 🤩
Je n'ai pas tout compris, mais c'est plutôt bien documenté. Je vais réétudier tout l'article à tête, reposée, mais ça ressemble plutôt à ce que j'aimerais faire.