Linky : comment récupérer ses données de consommation électrique ?
En 2007, Enedis (anciennement ERDF) a commencé à travailler sur un projet de compteur communiquant destiné à moderniser le réseau électrique français en permettant principalement de piloter et relever à distance les compteurs électriques des particuliers. La pièce maîtresse de ce projet : le compteur Linky.
Le compteur Linky a subi une forte opposition de la population française, et c’est assez peu de le dire. Des associations de consommateurs inquiètes du coût indirect de ce compteur pour les clients, des citoyens particulièrement effrayés des risques du Linky en matière de santé ou de vie privée, des maires qui prennent publiquement position contre le compteur, des compteurs cadenassés, bref il y aura eu un peu de tout (et ce n’est sans doute pas fini). Mais cela n’a pas empêché un déploiement à grande échelle d’être initié en 2015 par Enedis qui a déjà fêté les 7 millions de compteurs installés fin 2017. Et si tout se déroule comme prévu, 90 % des foyers français devraient être équipés d’un compteur Linky d’ici la fin de l’année 2021 (soit environ 35 millions d’unités).
Je ne vais pas m’étendre sur le débat de l’utilité du Linky ou de ses risques potentiels puisque beaucoup de choses ont déjà été dites et il parait à ce stade inutile de vouloir en rajouter. Je vais donc me contenter de détailler, aussi brièvement que possible, les aspects relatifs aux données mesurées et donc à la vie privée des usagers.
Il y a un peu plus de 2 ans, lorsque j’ai été contacté pour la première fois par un sous-traitant d’Enedis dans le but de changer mon ancien compteur pour le nouveau modèle communicant, je dois avouer que, sans y être farouchement opposé, j’étais quelque peu réticent à l’idée d’introduire chez moi un compteur connecté qui avait la capacité de divulguer de manière très détaillée ma consommation électrique. En effet, un relevé électrique détaillé peut permettre de donner de nombreuses informations sur une personne : quand part-elle en vacances, est-elle généralement chez elle le week-end, à quelle heure se lève t-elle, quand part-elle au travail, etc. Ces informations ne sont pas anecdotiques et peuvent même être très révélatrices de nos habitudes personnelles les plus intimes.
Cependant, bien que le compteur Linky possède techniquement la capacité de mesurer et transmettre à Enedis la consommation électrique d’un foyer de manière presque continue, Enedis a finalement décidé (en concertation avec la CNIL) de limiter la fréquence des mesures à une toutes les 30 minutes. (Un pas de 10 minutes était envisagé comme en atteste cette délibération de la CNIL datant de 2012 mais il semble avoir été abandonné).
Une précision de 30 minutes dans les données reste toujours très importante et parait surtout particulièrement disproportionnée par rapport à l’usage qui en est fait par Enedis et les fournisseurs d’électricité. En effet ces données sont essentiellement utilisées par votre fournisseur d’électricité (EDF par exemple) pour facturer votre consommation mensuelle exacte sans se déplacer. Cet usage ne justifie donc aucunement une telle précision temporelle dans les relevés réalisés par le Linky. (D’autres usages, à des fins de diagnostic par exemple, sont possibles mais ne nécessitent que des mesures ponctuelles et non un relevé systématique). Pour cette raison, la CNIL a imposé que 2 jeux de données soit séparés : les données quotidiennes (une mesure par jour aux alentours de minuit) et les données horaires et semi-horaires. Les premières sont automatiquement et par défaut stockées dans le compteur en local et transmises à Enedis et au gestionnaire (EDF par exemple). Le deuxième jeu de données plus précise (généralement désigné par le terme “courbe de charge” par Enedis ou la CNIL) n’est lui pas transmis de manière automatique. Par défaut, les données horaires sont ne sont que enregistrées en local par le compteur Linky et non transmises à Enedis ou toute entreprise tierce. L’usager a par la suite plusieurs options possibles : désactiver le stockage en local de ces données (sans avoir à justifier sa décision), supprimer les données déjà enregistrées sur le compteur (en cas de déménagement notamment) ou à l’inverse, autoriser l’envoi automatique de ces données à Enedis (et d’éventuelles entreprises tierces).
Il est également important de noter que l’envoi et le stockage des données est sécurisé et anonymisé comme le prévoit la législation sur les données personnelles.
Pour ceux qui voudraient un peu plus de détails sur la transmission des données, ce communiqué de la CNIL de juin 2018 dont est extrait l’image ci-dessus est particulièrement clair et explicite sur ce qui est fait et les actions qu’il est possible de réaliser par rapport à cette collecte.
Maintenant que la situation est clairement définie, voici ce qui nous intéresse : comment récupérer ses propres données de consommation énergétique ?
Aucune information concernant les possibilités de consultation de mes données de consommation électrique ne m’a été transmise lors de l’installation du compteur Linky (ni avant ni après d’ailleurs) mais une simple recherche internet (ou une lecture du communiqué de la CNIL mentionné plus haut) suffit : les données sont facilement accessibles sur le site d’Enedis.
Si c’est, comme moi, la première fois que vous vous connectez sur votre espace personnel Enedis, l’inscription est assez simple et nécessite principalement de fournir le numéro de PDL (pour Point De Livraison) associé à votre compteur. Ce qui est d’ailleurs une bonne raison pour garder ce numéro confidentiel.
Une fois connecté à l’espace personnel, il suffit de se diriger vers Consommation > Suivre ma consommation pour pouvoir visualiser ses données de consommation électrique.
Comme vu précédemment, seules les données quotidiennes sont accessibles par défaut et peuvent être visualisées mois par mois (depuis la date d’installation du Linky) avec une visualisation claire et sympathique (JS/SVG avec la librarie amCharts).
Si c’est ce que vous vouliez, vous pouvez donc vous arrêter ici.
Mais il faut reconnaître qu’une inspection visuelle simple ne permet pas d’apprendre grand chose sur sa consommation à part de confirmer qu’elle baisse de manière importante lorsque vous êtes en vacances.
En fait, ce qui m’a personnellement le plus étonné c’est la très forte variation de la consommation d’un jour à l’autre : même en mettant de coté les vacances et les week-ends, la consommation varie très souvent du simple au double voir triple entre deux jours de semaine consécutifs. Il est donc très délicat d’en tirer de réelles informations. Nous allons donc voir comment récupérer les données pour les analyser nous-même.
Petite remarque : les données montrent des valeurs de consommation électrique (en kWh) puisqu’il s’agit de la seule information dont dispose Enedis. Si vous désirez voir le coût quotidien de votre consommation, il faut autoriser EDF (ou autre fournisseur) à accéder à vos données puisque c’est lui qui vous fournit et facture l’électricité, Enedis se “contentant” de l’acheminer. Dans le cas d’EDF cette action peut être réalisée sur leur site, dans votre espace personnel, assez simplement. Si comme moi, vous préférez transmettre vos données à un minimum d’acteurs possibles, vous pouvez tout à fait reconstituer le coût journalier puisque vous connaissez le prix fixe de votre abonnement et le prix facturé au kWh (ou du moins, c’est indiqué dans votre contrat). C’est évidemment un peu plus complexe que de demander à EDF de réaliser ce calcul pour vous mais cela reste largement faisable même avec des outils de bureautique classiques (Excel suffit largement).
Une des dispositions phares du règlement européen général sur la protection des données (RGPD) est la portabilité des données qui est exprimée ainsi par la CNIL :
Les personnes concernées ont le droit de recevoir les données à caractère personnel les concernant qu’elles ont fournies à un responsable du traitement, dans un format structuré, couramment utilisé et lisible par machine […].
Et sur ce point, Enedis est en conformité : un bouton “Télécharger” est disponible dans l’espace de suivi de la consommation.
Parfait ?
Pas vraiment.
En effet, il est possible de télécharger ses données par le biais de ce bouton. Mais le fonctionnement est le suivant : il est possible de demander le téléchargement des données de consommation qui sont actuellement visualisées et comme on ne peut visualiser que 31 jours de données quotidienne de manière simultanée, une demande de téléchargement ne peut pas porter sur une plus grande fenêtre temporelle. A noter aussi que le téléchargement n’est pas immédiat, en réalité le bouton “Télécharger” envoie une requête de téléchargement et le fichier correspondant est ensuite disponible dans une section dédiée de l’espace personnel après un temps de quelques minutes.
Mon compteur Linky était installé depuis un peu plus de 2 ans, cela me faisait 24 fichiers à télécharger, ce qui n’est pas rapide mais loin d’être impossible. C’est donc ce que j’ai fait.
Cependant, après avoir observé mes 24 fichiers téléchargés, je me suis rendu compte d’une chose : contrairement aux représentation graphiques en diagrammes à bandes de l’espace de visualisation, les fichiers ne présentent pas directement des consommations journalières mais les index du compteur relevés chaque jour aux alentours de minuit. Et pour une raison mystérieuse, l’index du premier jour de la série de données n’est jamais donné (si on demande un mois du 1 au 31, les index vont du 2 au 31) ce qui fait qu’il n’est pas possible de calculer la consommation journalière du premier et dernier jour de chaque série.
Il me faudrait redemander tous les fichiers un par un en faisant se chevaucher les plages de 31 jours pour obtenir tous les index et ainsi obtenir mes données complètes.
J’ai donc cherché un autre moyen.
J’ai essayé de contacter Enedis pour essayer de savoir si il existait une technique permettant de télécharger l’intégralité de ses données dans un seul fichier. Cette tentative n’a pas particulièrement été couronnée de succès.
Étant donné qu’il est impossible de trouver une adresse email permettant d’écrire à Enedis et que le formulaire de contact ne fonctionne pas, je me suis rabattu sur Facebook/Messenger où on m’a répondu que ce n’était pas possible.
Bonjour, Je suis désolée mais notre système ne permet pas de télécharger plus de 31 jours à la fois.
Je suis donc vite passé à autre chose.
Mon approche suivante a été de voir si il était possible d’utiliser une API qui me permettrait de récupérer mes données de manière automatique.
La réponse est : “d’une certaine manière”.
En effet, quand on utiliser l’outil de visualisation sur le site d’Enedis, il utilise des appels API pour aller chercher les données, il est donc possible de faire la même chose. On trouve un certains nombre de scripts sur internet permettant de le faire (ici ou là par exemple) mais Enedis ne fournit absolument aucune documentation sur cette API ce qui fait qu’il n’est possible de s’en sortir qu’après une certaine dose de reverse-engineering. (En cherchant “Enedis API”, on tombe sur une documentation mais elle correspond à Enedis Open Data, une initiative intéressante, mais différente de ce que nous cherchons à obtenir).
De plus, une des choses qui ressort des différentes choses que j’ai pu lire des personnes qui ont écrit des scripts utilisant cette API c’est que des changements, petits ou plus conséquents, ont surgit de manière assez fréquente et sans préavis, perturbant le fonctionnement de leurs projets. Un certain nombre de scripts semblaient d’ailleurs ne plus fonctionner lorsque je suis tombé dessus.
L’utilisation d’une API semble être pour moi la meilleure façon d’obtenir ces données mais j’ai décidé de changer d’approche pour deux raisons :
- Le manque de stabilité et l’absence de documentation ne sont pas très engageants. Je préfère attendre et voir si Enedis décide de rendre cette technique officielle et plus pratique.
- Comme je n’ai pu observer les données que de manière assez superficielle, je ne sais pas vraiment si je pourrai en tirer des informations intéressantes (et pour être honnête, je ne sais pas encore ce que je cherche). Il me semble donc qu’il est plus sage de les récupérer d’une manière plus simple et les analyser un minimum avant de décider de me lancer dans quelque chose de plus poussé nécessitant une récupération automatique.
J’ai donc décidé de jeter un œil au code JavaScript de la page de suivi des données et j’ai fini par trouver une solution simple pour récupérer l’intégralité de mes données facilement.
Lorsqu’on demande la mise à disposition d’un fichier de données (par le biais du bouton “Télécharger”, assez mal nommé soit dit en passant), la fonction suivante est appelée :
effectuerDemandeTelechargement(type, $(this), début, fin)
Il lui faut seulement comme paramètre le type de données (quotidiennes, mensuelles, etc), l’objet jQuery courant et les dates de début et de fin. La limitation de 31 jours qui s’applique à la visualisation fait donc qu’il n’est pas possible, en utilisant l’interface graphique du site, d’appeler cette fonction avec des paramètres de début et de fin couvrant plus de 31 jours. Mais aucune vérification n’est faite au sein de la fonction elle-même ce qui fait qu’il est possible de demander autant de données que voulu si on appelle la fonction soit même avec les paramètres de notre choix.
effectuerDemandeTelechargement("jours", $(this) "01/01/2016", "31/10/2018")
Ma date de début est ici le premier jour des mesures (le jour d’installation du compteur Linky) mais cela fonctionnera même si vous spécifiez une date antérieure (votre fichier de données commencera simplement par une série de lignes vides).
Pour entrer la fonction, utilisez simplement la console disponible dans votre navigateur internet (ici Firefox Developer Edition mais la version classique de Firefox ou Google Chrome permettent de faire la même chose, sans doute comme la plupart des navigateurs web modernes). Lorsque vous réalisez l’appel à la fonction, un message apparaît au bout de quelques secondes sur le site pour confirmer la demande de téléchargement.
Au bout de quelques minutes, le fichier demandé est disponible dans l’espace de téléchargement.
Le fichier de donnée est un fichier .csv standard qui contient les index de consommation envoyés chaque jour par le Linky. Les données y sont présentées de manière assez claire mais il est également possible de télécharger un document explicatif sur le site d’Enedis.
J’ai donc importé ce fichier sous R, nettoyé un peu les données à ma convenance (suppression des colonnes inutiles, utilisation d’un autre format de date, etc.) et calculé les consommations quotidiennes à partir des index en utilisant la fonction diff
de R.
Je pensais que les données étaient prêtes à ce stade mais après une rapide utilisation de la fonction summary()
je me suis rendu compte que certains jours avaient une consommation nulle, ce qui n’arrive jamais.
Après enquête, j’ai fini par comprendre que le problème est causé par le changement d’heure qui entraîne une irrégularité dans les données 2 fois par an :
- En octobre, l’index de consommation électrique est relevé deux fois au même moment le même jour ce qui donne donc 2 valeurs de consommation pour la même journée, une correcte et une de valeur nulle. Il suffit donc de supprimer cette valeur inutile.
- En mars, le problème est moins visible et plus délicat puisqu’une date est tout simplement manquante dans la série de données. Un index est absent lors du changement d’heure ce qui donne dans les données de consommation quotidienne une date absente et une date indiquant une consommation très importante qui correspond en fait à la consommation de ce jour et du jour précédent. Ce problème peut être résolu de manière automatique par un script R (ou autre) en cherchant et ajoutant les dates manquantes et en répartissant la consommation électrique de manière égale sur ce jour et le suivant. On ne peut donc pas, avec ces données, calculer la consommation exacte de ces deux jours-ci, une moyenne sur 2 jours donne cependant une bonne approximation.
Étonnamment, si on observe les données de consommation quotidiennes directement sur le site d’Enedis on voit que le deuxième de ces cas de figure ne se présente pas et qu’ils disposent bien de la consommation exacte des jours de changement d’heure.
Cela veut dire à première vue que les données qui sont envoyées ne sont pas strictement les même que celles dont ils disposent pour réaliser les graphiques sur le site.
Une fois ces corrections faites, on dispose d’un set de données complet et relativement précis de la consommation électrique quotidienne :
Yay ! ;)