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 :
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 !