Bien le bonjour
Enedis Gateway, kesako ?
C’est une API que j’ai développer sous Node-RED pour me permettre de récupérer ma consommation électrique depuis le API d’Enedis.
Initialement, c’était juste un POC que j’ai fait sous Node-RED, mais avec le temps c’est devenu un peu plus
Pourquoi ne pas avoir tout simplement utilisé les plugins Existant ?
La réponse est assez simple, il vont devenir obsolète d’ici très peu de temps et le sont déjà pour certaines personnes.
En gros l’ancien et le nouveau système fonctionne en parallèle et les comptes qui ont était migrer vers le nouveau système voit leur plugin actuel inutilisable.
Puis-je appeler directement les API d’Enedis ?
Oui et non
Non si vous êtes un particulier.
Oui, si vous êtes un professionnel car vous possédez une entité Juridique afin de passer un contrat avec Enedis.
Comment puis-je accéder à mes données ?
Tout est expliqué ici : https://enedisgateway.tech/
Initialement, je voulais mettre en place un « passe plat » sans y stocker aucune données utilisateur, sauf que ceci est impossible dans le sens où pour que vous puissiez appeler les API d’Enedis il faut vous identifier avec un compte Juridique.
Vous trouverez plus d’explication sur ma page d’accueil
Comment intégré mes données à Home Assistant / Grafana ?
Directement depuis Home Assistant :
@saniho est en train de dev un plugin qui va vous permettre de query mes API directement depuis HA
=> https://forum.hacf.fr/t/sensor-pour-enedis-apienedis/935
Depuis Node-RED vers InfluxDB & MQTT :
J’ai crée un flow Node-RED qui, je le précise, correspond à mon besoin !
Il est largement perfectible
https://raw.githubusercontent.com/m4dm4rtig4n/node-red-enedis-gateway/main/import.json
Vos informations de connexions sont à définir dans le flow credential en début de chaîne, ainsi que l’url de mon API à savoir :
- token : Votre token fournis lors de l’inscription à mon service.
- usage_point_id : Votre point de livraison du compteur.
- url : https://enedisgateway.tech/api
Il faut également installer les palettes :
- ajouter la node
node-red-contrib-credentials
- ajouter la node
node-red-contrib-unit-converter
- ajouter la node
node-red-contrib-simple-message-queue
- ajouter la node
node-red-contrib-influxdb
Et adapter la configuration du :
- mqtt-broker pour pointer sur votre serveur mqtt
- influxdb pour pointer sur votre serveur influx
La partie haute du flow est le coeur du moteur de récupération de données, Les injects permettent de définir sur combien de temps vous désirez récupérer l’historique et split par semaine cette historique car Enedis n’accepte pas de demande supérieurs à 1 semaines !!
MERCI DE NE PAS SATURER LE SERVICE DE DEMANDE !!
Enedis accepte uniquement 5 demandes par secondes et j’ai mit en place un système de queue, si des petits malin s’amuse à saturer le service, ceci impactera tout le monde et ne fera qu’augmenter le temps de récupération de données !
Merci également de laisser les « rates-limit », les retirer ne va pas accélérer votre temps de récupération (au contraire).
Ils sont justement la pour éviter de saturer le service de demande inutile !
=> Je vais d’ailleurs mettre en place un système de ban.
La partie base ne fait qu’exporter des données supplémentaire dans InfluxDB + MQTT pour ma card HA.
Une fois les consentements valider sur ma page d’accueil, il ne vous reste plus qu’a utiliser le service !
Dans mon cas, j’ai utiliser Node-RED pour requêter mes API et importer de la données dans un InfluxDB + MQTT.
Voici un exemple de ma dashboard Grafana :
Pour utiliser correctement la dashboard, il faut :
- Ajouter les plugins:
- grafana-piechart-panel
- farski-blendstat-panel
- blackmirror1-singlestat-math-panel
- Ajouter la datasource HASS (qui pointe sur influx)
- Modifier la dashboard variable PDL
- Changer le nombre de m2 de votre domicile pour le calcul de norme RTXXXX.
Mon intégration dans HA :
Dans mon cas, j’ai juste crée des sensors qui écoute sur les queues MQTT exporter via mon flow et affiché le tout dans un champ Markdown.
Une documentation est également accessible ici (merci @evenisse) :
https://enedisgateway.tech/doc
Bref, voila mon API est en production et je vous laisse faire joujou avec
#Enjoy