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 (tester 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 issu 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 (et en plus il est économique !).

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

Le RXD vient se connecter sur 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 transformateur 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 envoyer 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 librairye WifiManager : si l’ESP8266 ne peut se connecter au aucun réseau (premier démarrage) il se met en mode hotspot pour vous permettre de saisir vos identifiant.

Le code est disponible ici : esp8266teleinfo.ino


mqtt_teleinfo
Trame reçu via MQTT
Publicités

Utiliser les données OpenStreetMap sous QGIS (via SpatiaLite)

Importer des données OpenStreeMap dans une base Spatialite

qgis-spatialite-osm

Il existe une multitude de moyens d’importer des données d’OpenStreetMap pour les exploiter sous un logiciel SIG.

Je vais vous présenter ici une solution permettant d’importer les données dans une base SQLite/SpatiaLite. SpatiaLite est gérée nativement par QGIS et propose une alternative plutôt intéressante aux fichiers shapes (meilleurs performances, fichier unique et portable, requêtes SQL…).

Pré-requis

Les outils sont disponibles sur le dépôt ubuntu-gis.
Seront nécessaire :

  • sqlite3
  • spatialite
  • osmosis

Pour cet article, j’ai utilisé une distribution Ubuntu 16.04 (Xenial).

Récupérer une extraction de la base OSM

A partir de geofabrik, il est possible de récupérer des extractions sur différentes emprises. Les exports sont mis à jour quotidiennement. Les données doivent être téléchargées au format « .osm.pbf ».
Pour mon exemple, j’ai récupéré les données correspondant aux régions du nord de la France.

wget http://download.geofabrik.de/europe/france/champagne-ardenne-latest.osm.pbf
 wget http://download.geofabrik.de/europe/france/haute-normandie-latest.osm.pbf
 wget http://download.geofabrik.de/europe/france/nord-pas-de-calais-latest.osm.pbf
 wget http://download.geofabrik.de/europe/france/picardie-latest.osm.pbf

Fusionner les fichiers si nécessaire

Dans le cas où, comme moi, vous avez téléchargé plusieurs régions, il est nécessaire de concaténer ces fichiers, Osmosis s’en charge très bien :

osmosis --rb champagne-ardenne-latest.osm.pbf --rb haute-normandie-latest.osm.pbf --rb nord-pas-de-calais-latest.osm.pbf --rb picardie-latest.osm.pbf --merge --merge --merge --wb nord.osm.pbf

Pour fusionner n fichiers, répéter « –merge » n-1 fois. Indiquer le fichier en sortie après le paramètre « –wb ».

Convertir en base SQLite

Spatialite-tools propose plusieurs outils intéressants dont spatialite_osm_map. Son utilisation est extrêmement simple, il suffit d’indiquer le fichier pbf  du chapitre précédent et d’indiquer le nom de la base à créer.

spatialite_osm_map -o nord.osm.pbf -d nord.sqlite

L’outil spatialite_osm_map créé des tables pour les principaux tags. Il ne préserve pas l’intégralité de la base mais permet une exploitation directe et intuitive sur QGIS (voir les autres outils disponibles pour ça). L’opération est assez longue et le fichier sqLite généré volumineux : plus de 10 fois la taille du pbf. Des messages d’erreur « UNRESOLVED-WAY » peuvent apparaître, rien de bien grave.

Ouvrir la base sur QGIS

Trois tables sont créées pour les principaux tags (ponctuel, polygone et ligne). Consultez la doc d’OpenStreetMap pour la signification de ceux-ci (les plus utiles étant highway, landuse, natural, water, amenity, building…).

osmsqlite1

Pensez à mettre à jour vos données régulièrement en répétant les opérations précédentes afin de profiter des dernières données intégrées sur OSM.

 

La plupart des tags supplémentaires sont perdus. Pour effectuer des requêtes plus spécifiques je vous conseil l’excellent plugin QuickOSM.