Récupérer les informations du compteur EDF en wifi avec un ESP8266

Les compteurs EDF, même assez anciens (sauf les très vieux à roue 😉 ) disposent d’une sortie de téléinformation permettant de récupérer différentes informations, notamment : l’index de consommation, la période tarifaire (heures creuses), la puissance souscrite, etc.. Ceci permet de suivre sa consommation en temps réel et peut également s’interfacer avec une solution domotique.

graphe_consoedf
Affichage sous Jeedom (plugin Suivi Conso)

Je propose ici un montage lowcost permettant de récupérer la téléinformation du compteur EDF sur un broker MQTT. Le MQTT est un protocole de communication léger particulièrement adapté à la domotique, je l’utilise quasi-exclusivement sur mon système basé sur Jeedom.

Montage


Matériel nécessaire (5 à 10€) :

  • ESP8266-01
  • MOSFET BS170
  • Optocoupleur LTV814
  • Résistances : 10k (x2) + 4,7k
  • Convertisseur AC-DC 5V (testé avec 700mA, devrait être ok avec un 500mA)
  • Convertisseur DC-DC 5v->3.3V (type AMS1117)
  • Bornier pour circuit intégré (x2)
  • Plaque de prototypage

Le principe du montage va être de transformer l’information issue du compteur en une information lisible sur le port série de l’ESP8266. Plusieurs montages circulent sur le web, celui de Charle semble particulièrement fiable et propre d’après ses test (en plus d’être cheap !).

schema-final-teleinfo-transistor-fet
Schéma du montage. Charle’s blog

Le RXD sur le schéma vient se connecter sur le pin RXD (Réception) de l’ESP8266. Ne pas oublier de connecter le CH_PD au +3.3v pour que la carte fonctionne.

esp-01-pinout
ESP-01. The Garage Lab

Concernant l’alimentation, il existe des transformateurs AC-DC qui sortent directement du 3.3V mais l’alimentation semble alors particulièrement instable et peut faire planter l’ESP8266. Après quelques mauvaises expériences j’utilise toujours un transfo 5V et un AMS1117.

Programmation de l’ESP8266

L’ESP est programmé via l’interface Arduino à l’aide d’un convertisseur USB-TTL. Si vous n’avez jamais programmé un ESP8266 avec cette méthode, je vous suggère de lire la documentation du projet.

Attention : lorsque vous envoyez le code sur l’ESP8266, déconnectez la téléinformation car celle-ci arrive également sur le RX. Pour rappel, le GPIO0 doit être relié à la masse pour démarrer l’ESP8266 en mode « programmation ».

La connexion au wifi se fait grâce à la bibliothèque WifiManager : si l’ESP8266 ne peut se connecter au aucun réseau (premier démarrage) il passe en mode hotspot pour vous permettre de saisir vos identifiants.

Le code est disponible ici : esp8266teleinfo.ino


mqtt_teleinfo
Trame reçu via MQTT
Publicités