Enedis Gateway

En gros je me suis inscrit chez Enedis comme prestataire de service, ce qui m’a permit d’avoir accès au API d’Enedis et donc de pouvoir faire des requêtes sur leur API.
Le même style de contrat que ton fournisseur d’électricité passe avec eu pour récupérer ta consommation et ainsi te facturer.

Ma passerelle ne fait rien de plus que celle d’Enedis (à part gérer pour vous l’expiration des token).
Quand vous faites une demande chez moi, je ne fait que prendre votre champ « data » et de le forward sans aucune surcharge à Enedis.
=> Le format d’entrée des mes APIs et le même que celui d’Enedis.

Je me permet juste de stocké en base de données votre « vrai » token & refresh_token afin de me permettre de le renouveler à votre place et ainsi éviter de devoir gérer coté client cette rotation.

A savoir que les 2 tokens sont encrypter en base de données avec une clef AES 128bit (celle qui vous est fourni pour appeler mes API).

Bref, même moi je suis incapable d’avoir accès à vos données sans votre token.

1 J'aime

Compris et ça a l’air d’être un super projet, techniquement bien réalisé.
Cependant je reste septique sur le coté sécuritaire et légal de la chose.

Je ne ferai pas un discours sur la CNIL et la base de donnée dont tu parles… :yawning_face:
OK tu cryptes les clé d’API mais à un moment tu récupère les infos d’Enedis qui ne le sont pas…

Si ce n’était que des infos anodines OK mais là ce sont les habitudes de consommation d’énergie qui transitent sur un serveur perso…
Or à travers ces informations on peut en déduire pas mal de choses. Déjà potentiellement ces infos sont revendables aux prestataires d’énergie (à partir de ces données ils pourraient cibler leur démarchage commercial afin de vous proposer des contrats qui correspondent à vos habitudes de consommation).
Ensuite à partir de ces données on peut très facilement savoir quand tu es chez toi et quand tu ne l’es pas. Il y’a certainement d’autres exemples que je n’ai pas en tête qui prouvent la criticité de ces données.

Bref en aucun cas je ne doute de tes bonnes intentions et sincèrement critiquer ce projet me fait de la peine car techniquement il est génial. Mais je doute que ce mode de fonctionnement puisse être pérenne ou sécurisé.

C’est la « solution » imaginée par Enedis qui n’est ni pérenne ni sécurisée. A l’heure de l’opendata, plutôt que de fournir une API documentée et accessible à tous pour que ceux qui sont intéressés puissent faire des requêtes, Enedis a mis en place ce système qui impose un intermédiaire professionnel.
Pourquoi?
Si c’est pour éviter d’investir dans une infra décente pour servir l’API de façon raisonnable c’est mesquin… Donc, il faut quelqu’un au milieu. Est-ce que c’est mieux d’avoir cette solution là ou un revendeur qui fera payer le service auquel tu pourrais reprocher le même genre de chose. Vaste débat. Quand à ma courbe d’usage d’électricité, la seule chose qu’on y voit, c’est quand on met la machine à laver ou le lave-vaisselle. Infos cruciales s’il en est :slight_smile:

Je suis d’accord sur la critique d’Enedis mais hélas ça ne change pas le problème que je soulève. Projetons nous : ça fonctionne bien, M4dm4rtig4n récupère 100 000 utilisateurs… Qui va payer les frais d’hébergement pour son infra ? Il faudra sécuriser, créer une boite etc… Et pour l’utilisateur final payer un abonnement pour accéder à ces infos. Dans cette configuration pourquoi pas je comprendrai que ça puisse fonctionner. Mais en l’état je ne vois pas trop…

J’ai déjà parler plusieurs fois de ce sujet, oui effectivement derrière c’est un programme informatique et comme tout programme, si je le désire je peut passer facilement en mode « debug » et logger la totalité des infos qui transite sur ma passerelle.

=> Le debug est désactivé depuis le passage en production.

Je pense que c’est justement l’une des raisons qui fait qu’Enedis ne met à disposition les données en temps réel.
Pour éviter qu’une personne mal intentionné sachent à la demi-heure prêt si le logement est occupé ou non.

Les flux qui transitent entre vous et ma passerelle (puis vers Enedis) sont en HTTPS en donc chiffré afin d’éviter qu’une personne mal intentionné capture les trames.

Après pour ce qui est des informations revendables à des prestataires d’énergie, qu’est-ce qui te prouve qu’actuellement ton prestataire électrique ne le fait pas déjà ? concrètement rien à part si il respecte la RGPD & co.
Dans mon cas j’ai fait en sorte de respecter la RGPD en ne stockant que le strict minimum de ce qui était nécessaire au fonctionnement des APIs.

La seul information en clair que je stocke est le PDL qui me permet d’authentifier l’utilisateur (comme un username classique).
Le PDL ne me permet de connaitre la personne physique et encore moins son adresses, c’est juste un ID de compteur.

Comme expliqué plus haut, c’était juste un POC à la base que j’ai décidé de rendre public vu la demande qu’il y avait dérrière.
Je ne force personne à utilisé mon service, et comme le dit @golfvert c’est à Enedis de proposer ce service normalement…
Où même vos prestataire énergétique qui ont accès à la même information que moi.
Maintenant est-ce qu’il vont le faire ? peut être un jour, peut être pas…

J’espère avoir répondu à toutes tes questions :wink:

1 J'aime

Plusieurs passerelle du même type que la mienne sont en train de voir le jours, si tu prend Jeedom par exemple ils sont en train de développer un plugin officiel.
Et il me semble que d’autre box sont en train de le faire également.

Si j’atteint les 100 000 utilisateurs :partying_face: !
Pour être franc je ne sais même pas si mon programme va tenir la charge correctement :smiley:

Pour l’hébergement, divers personnes m’ont déjà proposer de me fournir un serveur dédié gratuitement si jamais mon VPS ne tiens pas la charge.
Maintenant, j’attend de voir comment va grandir le service avant de faire des projections pour la suite.

Si demain il me faut prendre un dédiée qui me coûte 100€ / mois, il est clair que je ne prendrais pas tt à ma charge.
Mais on en est encore très très loin :wink:

Merci M4dm4rtig4n pour ces réponses claires. Je vais suivre le projet, je trouve l’idée super et franchement même je garde certains doutes/craintes je trouve que c’est sympa de le partager :slight_smile: surtout que le besoin est évident !

Bonjour à tous,

J’ai toujours pas réussi à résoudre ce problème du pourquoi la consommation n’est pas injectée dans influxdb.
J’ai bien renseigné les informations dans le fichier node-red (voir mes différentes captures, peut être que c’est là que se situe mon problème).
Les catégories de consommation remontent dans influxdb mais sont vierges…
Je sais que mes explications sont hachées… je ne sais pas par où commencer.
Quand j’active le mode debug message, j’ai bien mon adresse qui s’affiche ainsi que le contrat souscrit.
Lorsque j’effectue la commande curl -X toutes les valeurs s’affichent.
On dirait vraiment un problème d’injection dans la base.
Quelles actions puis-je entreprendre pour trouver d’où provient l’anomalie ? (désolé pour mon pti niveau de compétence)

Tu as un tarif de base ?
Il y a un soucis avec les contrats en forfait de base et qui ne remonte pas les heures HC/HP.
(Perso je suis en forfait de base, mais j’ai quand même l’info HC/HP).

Faut que je regarde :smiley:

Hello,
Tu m’as donné un doute ! :joy:
J’ai bien heures pleines et heures creuses sur mon contrat.
Quand je clique dans node-red sur 2 jours ça m’affiche contrat 9kVA heures creuse 00h00-8h00.

Met un debug sur le node juste avant l’insertion :

Et regarde ce qui est envoyé dans ton infuxdb.

Je viens de push une nouvelle version du flow NR qui :

  • Permet de prendre en compte les contrats qui n’ont pas de HC/HP.
  • Retirer la boucle qui boot loop en cas d’erreur sur la demande d’information sur le contrat.
  • Affiche un message dans la console de debug en cas de ban.

Merci @M4dm4rtig4n pour ton travail.
Des conseils pour faire la MAJ ? Je fais un nouvel import ?
Merci

Bonjour Floww77,
C’est effectivement ce que j’ai fait de mon côté, le code en haut de page a été mis à jour.
J’ai fait un nouvel import.

Yep, il te faudra juste reconfigurer tes credentials :slight_smile:

J’ai fait la MAJ mais j’ai cette erreur:
« non-http transport requested »

Hello,

Je viens de push une nouvelle version avec :

  • Retrait d’un node debug inutile
  • Possibilité de set la configuration en mode global du token + usage_point_id
  • Insertion de l’url de la gateway en dur.

Les 2 derniers points faciliterons l’import du flow et ainsi éviter de devoir reconfigurer le node credentials à chaque import :slight_smile:

1 J'aime

Bonjour M4dm4rtig4n,

Je viens de tout refaire, et j’ai mis le debug, et les données apparaissent bien, et figure toi que tout apparait dans influxdb désormais…
J’ignore complètement ce qui a pu se passer…
Peut-être une erreur que je n’ai pas commise au bout de la 12ième fois…

Un grand merci pour ton soutien et ta dispo !

1 J'aime

Bonjour,
Je viens de me conneter sur le site avec mes identifiants Enedis, et j’ai recupérer mon token .
Mais le curl ne marche pas, il me répond « Bad Gateway »…
Est ce que qqn sait pourquoi cela fait ça?

Merci

Je pense qu’il y a des problèmes sur chez Enedis. J’ai la même chose today. Il faudra prendre son mal en patience