Piloter sa consommation électrique avec MyElectricalData

Je me suis mis à vouloir piloter ma consommation électrique, le Linky étant connecté il y a certainement moyen de faire quelque chose. Et là j’ai découvert tout un univers pour pouvoir piloter et contrôler sa consommation électrique.

Tout commence par MyElectricalData, c’est un site qui fait l’interface avec le gestionnaire du réseau électricité Enedis et qui va récupérer les informations de votre Linky. Mais pour cela il faut faire la demande consentement auprès d’Enedis.

On est renvoyé sur le site d’Enedis et on accepte de partager ses données vers MyElectricalData.

Il faudra ensuite activer la collecte de la consommation horaire.

Une fois la collecte activée, il faudra attendre au moins 24h pour avoir les premiers résultats de la consommation horaire.

On revient sur MyElectricalData et on voit que la connexion s’est bien faite, on retrouve son numéro de point de livraison ainsi que la clef d’accès qui nous servira pour récupérer les données à partir de scripts.

On récupérera maintenant le client MyElectricalData sur github.

Le seul intérêt de cette archive est de récupérer le fichier config.exemple.yaml qu’on placera sous /etc/myelectricaldata/config après avoir créé préalablement /etc/myelectricaldata, on le renomme config.yaml. Voici son contenu avec un abonnement EDF de type tempo :

port: 5000
debug: true
log2file: false
wipe_influxdb: false # Work only with influxdb > 2.X
# Par défaut le backend en local dans le /data/cache.db du conteneur.
# Mais il est possible de basculer sur une base de données externe de type SQLite ou PostgreSQL
# Exemple pour Postgres :
#storage_uri: postgresql://myelectricaldata:myelectricaldata@postgres:5432/myelectricaldata
home_assistant: # WITH MQTT DISCOVERY
enable: false
discovery: true
discovery_prefix: homeassistant
home_assistant_ws: # FOR ENERGY TAB
enable: false
ssl: true
token: HOME_ASSISTANT_TOKEN_GENERATE_IN_PROFILE_TABS_(BOTTOM)
url: myhomeassistant.domain.fr
max_date: "2021-06-01"
purge: false
ssl:
gateway: true
certfile: "/data/fullchain.pem"
keyfile: "/data/privkey.pem"
influxdb:
enable: false
scheme: http
hostname: influxdb
port: 8086 # 8086 pour influxdb, 8428 pour victoriametrics
token: myelectricaldata
org: myelectricaldata
bucket: myelectricaldata
# ATTENTION, L'activation de l'importation asynchrone va réduire fortement le temps d'importation dans InfluxDB
# mais va augmenter la consommation mémoire & CPU et donc à activer uniquement sur un hardware robuste.
method: synchronous # Mode disponible : synchronous / asynchronous / batching
vm_mode: true # Active le mode VictoriaMetrics true sinon false pour influxdb
# batching_options permet uniquement de configurer la methode `batching`.
# Pour plus d'information : https://github.com/influxdata/influxdb-client-python#batching
batching_options:
batch_size: 1000
flush_interval: 1000
jitter_interval: 0
retry_interval: 5000
max_retry_time: 180_000
max_retries: 5
max_retry_delay: 125_000
exponential_base: 2
mqtt:
enable: false
hostname: mosquitto
port: 1883
username: null
password: null
prefix: myelectricaldata
client_id: myelectricaldata # DOIT ETRE UNIQUE SUR LA TOTALITE DES CLIENTS CONNECTE AU SERVEUR MQTT
retain: true
qos: 0
# ca_cert: /certs/ca.pem # Certificate Authority a utiliser pour etablir une connection SSL au server MQTT
# Configuration SSL optionnel.
#ssl:
# keyfile: "/data/key.pem"
# certfile: "/data/cert.pem"
myelectricaldata:
# Configuration de mon point de livraison (ne pas oublier d'adapter MON_PDL_1 avec votre numéro de PDL)
"mon-numéro-de-point-de-livraison":
enable: 'true'
token: ma-clé
name: "Maison"
addresses: 'true'
cache: 'true'
consumption: 'true'
consumption_detail: 'true'
consumption_price_base: '0.145907'
consumption_price_hc: '0.124364'
consumption_price_hp: '0.164915'
consumption_max_date: "2021-06-01"
consumption_detail_max_date: "2021-06-01"
offpeak_hours_0: 22H00-6H00 # LUNDI
offpeak_hours_1: 22H00-6H00 # MARDI
offpeak_hours_2: 22H00-6H00 # MERCREDI
offpeak_hours_3: 22H00-6H00 # JEUDI
offpeak_hours_4: 22H00-6H00 # VENDREDI
offpeak_hours_5: 22H00-6H00 # SAMEDI
offpeak_hours_6: 22H00-6H00 # DIMANCHE
#plan: HC/HP
# Configuration spécifique pour le tarif TEMPO
plan: "tempo"
heures_creuses:
# Les heures creuses Tempo d'EDF sont nationales et fixes : 22h00 à 6h00
tempo: "22:00-06:00"
production: 'false'
production_detail: 'false'
production_price: '0.0'
production_max_date: "2021-06-01"
production_detail_max_date: "2021-06-01"
refresh_addresse: 'false'
refresh_contract: 'false'

Pour le certificat et la clé au niveau de ssl, à ce stade j’ai copié les fichiers de Let’s Encrypt et je les ai placés sous /etc/myelectricaldata/config, ce n’est pas une solution définitive.

Maintenant j’ai tapé la commande qui va permettre de récupérer la dernière version du container :

docker run -d \
--name myelectricaldata \
-p 5000:5000 \
-v /etc/myelectricaldata/config:/data \
m4dm4rtig4n/myelectricaldata:latest

voilà le résultat :


Unable to find image 'm4dm4rtig4n/myelectricaldata:latest' locally
latest: Pulling from m4dm4rtig4n/myelectricaldata
8a1e25ce7c4f: Pull complete
1103112ebfc4: Pull complete
e71929d49167: Pull complete
c529235f83c8: Pull complete
a47354887c31: Pull complete
a86e52eb2556: Pull complete
f297f518b699: Pull complete
56d83d166ced: Pull complete
03d27ac053ee: Pull complete
55a6eac66f05: Pull complete
20c76b952045: Pull complete
35e42e6197cc: Pull complete
43eef3f2fe1d: Pull complete
35ce6a254223: Pull complete
e1b8f31ea252: Pull complete
Digest: sha256:386547e1413a5201dd30aa752eda779dd0b91fe7e489653ee3de65df4582767c
Status: Downloaded newer image for m4dm4rtig4n/myelectricaldata:latest
e3a13139689c7735b6f8fc58a23d52c4ddae17c803999e78260d3b83bd268220

Voilà ce que renvoie les logs en tapant docker logs -f myelectricaldata :

2026-11-08 18:06:39.499 -     INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ __ __ _____ _ _ _ _ ____ _ ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ | \/ | _ _ | ____|| | ___ ___ | |_ _ __ (_) ___ __ _ | || _ \ __ _ | |_ __ _ ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ | |\/| || | | || _| | | / _ \ / __|| __|| '__|| | / __| / _` || || | | | / _` || __| / _` | ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ | | | || |_| || |___ | || __/| (__ | |_ | | | || (__ | (_| || || |_| || (_| || |_ | (_| | ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ |_| |_| \__, ||_____||_| \___| \___| \__||_| |_| \___| \__,_||_||____/ \__,_| \__| \__,_| ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ |___/ ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.499 - INFO : ▌│█║▌║▌║ VERSION : 0.13.4 ║▌║▌║█│▌
2026-11-08 18:06:39.499 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.523 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.523 - INFO : RUN IN PRODUCTION MODE
2026-11-08 18:06:39.523 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.523 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.523 - INFO : CHARGEMENT DU CONFIG.YAML...
2026-11-08 18:06:39.523 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:39.523 - INFO : numéro-point-livraison
2026-11-08 18:06:39.528 - INFO : => Success
2026-11-08 18:06:39.528 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(...)
2026-11-08 18:06:57.543 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:57.543 - INFO : ▌│█║▌║▌║ Point de livraison : numéro-point-livraison ║▌║▌║█│▌
2026-11-08 18:06:57.543 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:57.885 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:57.885 - INFO : [numéro-point-livraison] RÉCUPÉRATION DES INFORMATIONS DU COMPTE :
2026-11-08 18:06:57.885 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:58.021 - INFO : valid: True
2026-11-08 18:06:58.021 - INFO : information:
2026-11-08 18:06:58.021 - INFO : consent_expiration_date: 2029-11-08T16:44:08
2026-11-08 18:06:58.021 - INFO : call_number: 119
2026-11-08 18:06:58.021 - INFO : quota_reached: False
2026-11-08 18:06:58.021 - INFO : quota_limit: 500
2026-11-08 18:06:58.021 - INFO : quota_reset_at: 2026-11-08T23:59:59.999999
2026-11-08 18:06:58.021 - INFO : last_call: 2026-11-08T16:44:08.149227
2026-11-08 18:06:58.021 - INFO : ban: False
2026-11-08 18:06:58.032 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ TERMINE ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(...)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:58.041 - INFO : [numéro-point-livraison] RÉCUPÉRATION DE LA CONSOMMATION JOURNALIÈRE :
2026-11-08 18:06:58.041 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:06:58.046 - INFO : Récupération des données : 2023-11-11 => 2026-11-10
2026-11-08 18:06:59.846 - INFO : Chargement des données depuis MyElectricalData 2023-11-11 => 2026-11-10
2026-11-08 18:07:04.006 - INFO : Récupération des données : 2023-11-10 => 1935-08-10
2026-11-08 18:07:04.006 - INFO : => Toutes les données sont déjà en cache.
2026-11-08 18:07:04.006 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ TERMINE ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:07:04.006 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:07:04.006 - INFO : [numéro-point-livraison] RÉCUPÉRATION DE LA CONSOMMATION DÉTAILLÉE :
2026-11-08 18:07:04.006 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:07:04.011 - INFO : Récupération des données : 2026-11-03 => 2026-11-10
2026-11-08 18:07:04.015 - INFO : - 11519m absente du relevé.
2026-11-08 18:07:04.015 - INFO : Chargement des données depuis MyElectricalData 2026-11-03 => 2026-11-10

2026-11-08 18:08:28.454 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:08:28.454 - INFO : ▌│█║▌║▌║ ___ _ _____ _ _ _ _ _ _ ║▌║▌║█│▌
2026-11-08 18:08:28.454 - INFO : ▌│█║▌║▌║ |_ _| _ __ ___ _ __ ___ _ __ | |_ | ___|(_) _ __ (_) ___ | |__ | || || | ║▌║▌║█│▌
2026-11-08 18:08:28.454 - INFO : ▌│█║▌║▌║ | | | '_ ` _ \ | '_ \ / _ \ | '__|| __| | |_ | || '_ \ | |/ __|| '_ \ | || || | ║▌║▌║█│▌
2026-11-08 18:08:28.454 - INFO : ▌│█║▌║▌║ | | | | | | | || |_) || (_) || | | |_ | _| | || | | || |\__ \| | | ||_||_||_| ║▌║▌║█│▌
2026-11-08 18:08:28.454 - INFO : ▌│█║▌║▌║ |___||_| |_| |_|| .__/ \___/ |_| \__| |_| |_||_| |_||_||___/|_| |_|(_)(_)(_) ║▌║▌║█│▌
2026-11-08 18:08:28.454 - INFO : ▌│█║▌║▌║ |_| ║▌║▌║█│▌
2026-11-08 18:08:28.454 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2026-11-08 18:08:32.132 - INFO : ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◦ ❖ ◦ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Maintenant à l’adresse de mon serveur personnel https://ultra.kervao.fr:5000, je tombe sur l’interface d’affichage de mes informations avec un panel de vues de l’année, au mois, au jour, jusqu’à l’heure.

Comme j’ai l’abonnement TEMPO, à ce stade il n’y a pas de corrélation avec les jours bleu/blanc/rouge, ce sont des données qui sont à récupérer sur le site d’EDF, et il faudra d’autres outils pour agréger les données d’ENEDIS et celles d’EDF. Ça sera la prochaine étape, à suivre !

Laisser un commentaire