Ce projet permet de récupérer en temps réel les données d'un compteur Enedis (Linky ou autre compteur moderne) en utilisant la Télé-information client (TIC) et de les publier vers un topic MQTT.
MQTT est un protocole de messagerie publish-subscribe largement utilisé dans l'Internet des objets. De nombreux logiciels permettent de consommer et d'exploiter les données issues de ce protocole.
La téléinformation est une sortie physique acessible librement sur les compteurs Enedis. Pour la décoder, il est possible de réaliser soi-même un circuit électronique ou d'acheter des modules prêts à l'emploi.
Ce projet se décompose en deux parties :
- Le matériel permettant de lire les données de la téléinformation
- L'application permettant de décoder et publier ces données
Ma solution se base sur le PiTInfo de Charles Hallard, c'est une carte d'extension qui se branche sur un Raspberry Pi et qui permet de récupérer les données de la téléinformation sur son port série. Le PiTInfo est en vente sur Tindie.
Concernant le Raspberry, un Raspberry Pi Zero suffit largement, mais n'importe quel autre modèle devrait fonctionner.
NB : Ce projet fonctionne exclusivement sur un Raspberry Pi, mais si vous vous sentez l'âme d'un aventurier et que vous préférez l'utilisation d'un ESP8266, Charles Hallard (encore lui) a intégré la téléinfo à l'excellent firmware Tasmota.
L'application consiste en une image Docker qui embarque un flow Node-RED. Le flow écoute les données sur le port série, vérifie les informations et les publie vers un topic MQTT.
- Le système d'exploitation Raspberry Pi OS installé sur votre Raspberry Pi.
- Un broker MQTT (mosquitto par exemple) installé directement sur votre Raspberry Pi ou bien sur une autre machine du réseau.
Par défaut, le port série est désactivé. La procédure pour l'activer est disponible sur le blog de Charles Hallard : https://hallard.me/enable-serial-port-on-raspberry-pi/
- Tout d'abord, il faut installer docker ainsi que docker-compose :
$ curl -sSL https://get.docker.com | sh $ sudo apt install docker-compose
- Récupérer le fichier docker-compose.yml
- Modifier le fichier .env-sample pour renseigner les valeurs spécifiques à votre environnement et le renommer en
.env
- Lancer l'application :
docker-compose up -d
Si vous possédez un Linky, vous pouvez demander à votre fournisseur d'électricité d'activer la téléinformation en mode "historique" ou "standard".
Le mode historique est celui en place sur les anciens compteurs, il permet de récupérer de quoi suivre sa consommation mais n'est pas aussi complet que le mode "standard".
Le mode "standard" devient vraiment intéressant si vous produisez de l'électricité (panneaux photovoltaïques, etc) et que vous souhaitez suivre votre injection sur le réseau, ou bien que votre abonnement est plus compliqué que ce qui est prévu dans le mode "historique".
L'éditeur NodeRed est accessible depuis le navigateur sur http://<hostname>:1880
.
Le flow écoute les trames de la téléinformation sur le port série (/dev/ttyAMA0
), elles sont ensuite validées et transformées en un objet JSON, sous la forme "étiquette" / valeur".
Enfin chaque message est publié sur un broker MQTT, dans le topic teleinfo
.
Exemple de message avec la téléinformation "historique" du compteur Linky :
{
"timestamp": 1575315182914,
"ADCO":"XXXXXXXXXXXX",
"OPTARIF":"HC",
"ISOUSC":"45",
"HCHC":"000019212",
"HCHP":"000068306",
"PTEC":"HP",
"IINST":"008",
"IMAX":"090",
"PAPP":"01940",
"HHPHC":"A",
"MOTDETAT":"000000"
}
Le protocole MQTT étant énormément utilisé dans l'Internet des objets, de nombreuses solutions sont possibles pour exploiter vos données :
- Utilisation d'InfluxDB (et de toute la pile TICK) : c'est ma solution préférée, voir mon projet de suivi en temps réel de la consommation et de la production d'électricité de mon domicile pour la mettre en oeuvre.
- Solutions de domotique : HomeAssistant, OpenHAB, Domoticz, ...
- Et plus encore : OpenEnergyMonitor, MQTT Explorer, etc, etc...!
- Sorties de télé-information client des appareils de comptage électroniques utilisés par Enedis : https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_02E.pdf
- Sorties de télé-information client des appareils de comptage Linky utilisés en généralisation par Enedis : https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_54E.pdf
Tous les crédits vont à Charles Hallard (http://hallard.me), je n'ai fait que reprendre son travail pour l'adapter à mes besoins.