apiEnedis icon indicating copy to clipboard operation
apiEnedis copied to clipboard

Migration vers MyElectricalData ?

Open m4dm4rtig4n opened this issue 2 years ago • 25 comments

Hello @saniho,

Pour information Enedis vient de sortir une nouvelle version des API (v5) et revu le fonctionnement de celle-ci.

Perso je suis en train de rework le projet EnedisGateway qui devient MyElectricalData et j'appliquerais les modification uniquement sur le nouveau projet.

Du coup, faudrait qu'on ce croise pour que t'intégre les evolutions car les anciennes API d'Enedis seront hors ligne en mai 2023.

m4dm4rtig4n avatar Dec 01 '22 16:12 m4dm4rtig4n

Helo @m4dm4rtig4n Avec plaisir pour re prendre contact, dis moi ce qui évolue et je verrai comment l'implementer dans le module.

saniho avatar Dec 02 '22 17:12 saniho

Pour te facilité l'intégration, il y a dorénavant un Swagger : https://myelectricaldata.fr/swagger

Actuellement ca utilise encore les anciennes API d'Enedis (v4), je n'ai pas encore commencer l'intégration de la v5

cvalentin-dkt avatar Dec 02 '22 20:12 cvalentin-dkt

@cvalentin-dkt , j'ai regardé la nouvelle verison, par contre, à ce que je comprends, il faut refaire un consentement ? ce n'est pas le meme que celui de l'api precédente ? Si c'est le cas, cela va compliqué la migratoin pour les utilisateurs ... une solution ?

saniho avatar Dec 03 '22 21:12 saniho

Malheuresement c'est une nouvelle application déclaré chez Enedis et il faut donc refaire le consentement sur la nouvelle passerelle :/

J'ai dû abandonner le nom d'EnedisGateway suite à la demande d'Enedis.

Le fait d'avoir Enedis dans le nom de ma passerelle apporter de la confusion auprès de leurs clients qui pensez que c'était un service proposé par Enedis lui même.

m4dm4rtig4n avatar Dec 04 '22 22:12 m4dm4rtig4n

J'ai livré une premier pre-release( v2.0.0 ) qui permet de choisir son "partenaire" : soit EnedisGateway soit myElectriData Si vous pouvez tester ... et me faire un retour

saniho avatar Dec 07 '22 21:12 saniho

Merci pour la pre release Saniho !

Par contre de mon côté, j'ai une erreur 500 quand je tente d'ajouter l'intégration après l'avoir prise sur HACS .. Un problème de mon côté peut être ?

Nackophilz avatar Dec 08 '22 07:12 Nackophilz

Aurais-tu une copie ecran de l'erreur ? Un traceback?

saniho avatar Dec 08 '22 07:12 saniho

@saniho sur la prochaine MEP de la passerelle MyElectricalData, il sera possible de récupérer les jours Tempo d'EDF ainsi que les données d'Ecowatt si tu désire les intégrer dans la card.

Tempo : image

Ecowatt : image

m4dm4rtig4n avatar Dec 08 '22 08:12 m4dm4rtig4n

Juste un détail les call ecowatt et tempo ne sont pas soumis à l'authentification étant de la données public.

m4dm4rtig4n avatar Dec 08 '22 08:12 m4dm4rtig4n

Aurais-tu une copie ecran de l'erreur ? Un traceback?

Yes voici ce que j'ai dans les logs : 2022-12-08 10:49:10.909 ERROR (MainThread) [aiohttp.server] Error handling request Traceback (most recent call last): File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request resp = await request_handler(request) File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle resp = await handler(request) File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 81, in ban_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware return await handler(request) File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle result = await result File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 148, in post return await super().post(request) File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 73, in wrapper result = await method(view, request, data, *args, **kwargs) File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 71, in post result = await self._flow_mgr.async_init( File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 226, in async_init flow, result = await task File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 253, in _async_init result = await self._async_handle_step(flow, flow.init_step, data, init_done) File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 368, in _async_handle_step result: FlowResult = await getattr(flow, method)(user_input) File "/config/custom_components/myEnedis/config_flow.py", line 91, in async_step_user return self._show_setup_form(user_input, self._errors) File "/config/custom_components/myEnedis/config_flow.py", line 60, in _show_setup_form default=user_input(CONF_SERVICE_ENEDIS, serviceEnedis) TypeError: 'dict' object is not callable

Nackophilz avatar Dec 08 '22 09:12 Nackophilz

merci pou rle log, j'ai corrigé et livré la pre release 2.0.2..si tu peux tester et me tenir informé

saniho avatar Dec 08 '22 20:12 saniho

Je n'ai plus l'erreur 500 par contre je n'arrive pas à initialiser l'intégration

MyElectrical DATA, nous fourni notre numéro PDL + Notre Token

Dans le paramétrage tu demande :

Le Token Le Code --> a quoi cela correspond t-il ? :)

Edit : C'est bon j'ai trouvé pardon, mais l'extension ne semble pas démarrer, j'ai vu sa au démarrage :

'2022-12-08 22:58:10.342 WARNING (MainThread) [homeassistant.util.async_] Detected blocking call to putrequest inside the event loop. This is causing stability issues. Please report issue to the custom integration author for myEnedis doing blocking calls at custom_components/myEnedis/gitinformation.py, line 37: myURL = urlopen(self._serverName) '

2ème edit:

Au bout de quelques minutes elle démarre , j'attend d'avoir de la remontée :)

Nackophilz avatar Dec 08 '22 21:12 Nackophilz

Ok je vois pourquoi j'ai pas de remontée Je masque mon token, mais sinon le reste est d'origine sur les logs ->

2022-12-08 23:14:02.479 ERROR (SyncWorker_3) [myEnedis] ====== Appel http #17 !!! requests.exceptions.HTTPError 2022-12-08 23:14:02.479 ERROR (SyncWorker_3) [myEnedis] ************************************************************ 2022-12-08 23:14:02.480 ERROR (SyncWorker_3) [myEnedis] header : {'Authorization': 'XXXXXXXXXXXXXX', 'Content-Type': 'application/json', 'call-service': 'home-assistant-myEnedis', 'ha_sensor_myenedis_version': '2.0.2'} 2022-12-08 23:14:02.481 ERROR (SyncWorker_3) [myEnedis] params : None 2022-12-08 23:14:02.481 ERROR (SyncWorker_3) [myEnedis] data : {"type": "daily_production", "usage_point_id": "XXXXXXXXXXXX", "start": "2022-12-07", "end": "2022-12-08"} 2022-12-08 23:14:02.482 ERROR (SyncWorker_3) [myEnedis] Error JSON : {"detail":"Le sens de la mesure ne correspond pas pour le PRM demandé"} 2022-12-08 23:14:02.482 ERROR (SyncWorker_3) [myEnedis] ************************************************************ 2022-12-08 23:14:02.483 ERROR (SyncWorker_3) [myEnedis] Data answer: {'detail': 'Le sens de la mesure ne correspond pas pour le PRM demandé'}

Nackophilz avatar Dec 08 '22 22:12 Nackophilz

@saniho n'hésite pas à proposer le mode "{endpoint}/cache" qui augmente la quota à 500 demande / j (contre 50 en normal).

Par contre, si tu sais mettre un petit warning car le fait d'activer le cache sur la passerelle m'oblige à stocker de la donnée (chiffrée) des utilisateurs sur la passerelle.

Je veut que l'utilisateur soit avertie sur ce point (#RGPD). Même si je peut rien en faire vu que tt est chiffrée.

m4dm4rtig4n avatar Dec 09 '22 07:12 m4dm4rtig4n

@Nackophilz accepterais tu de m'envoyer par mail ton token pour que je puisse reproduire le problème. Mon [email protected]

saniho avatar Dec 09 '22 08:12 saniho

L'erreur de @Nackophilz c'est parce que l'intégration demande de récupérer la "production" et qu'a priori le point de livraison n'en as pas. => {"detail":"Le sens de la mesure ne correspond pas pour le PRM demandé"}

Dans le language Enedis "sens de la mesure" :

  • Mesure entrante : consommation
  • Mesure sortante : production

PRM : Point de Référence de Mesure => Point de livraison

m4dm4rtig4n avatar Dec 09 '22 08:12 m4dm4rtig4n

@saniho pas de soucis, mais le token ne sera surement pas suffisant si?

Edit : Je viens de voir que le PDL était encore dedans haha j'ai modifié, mais je peux t'envoyer ce qu'il te fait c'set pas un soucis :)

Nackophilz avatar Dec 09 '22 08:12 Nackophilz

Si tu peux l'envoyer je pourrais faire un check.

saniho avatar Dec 09 '22 09:12 saniho

@Nackophilz : si tu peux m'envoyer ton token en privée..

saniho avatar Dec 09 '22 21:12 saniho

@Nackophilz : si tu peux m'envoyer ton token en privée..

Ah Yes pardon ça m'était complètement sorti de la tête ^^ Je t'envoi sa en PV :)

Nackophilz avatar Dec 10 '22 09:12 Nackophilz

Oh !

Je viens de jeter un oeil ce matin !

Et j'ai plus de soucis :

image image

Toutes les infos remonte bien , erreur temporaire ENEDIS peut être ?

Nackophilz avatar Dec 10 '22 09:12 Nackophilz

@m4dm4rtig4n : as-tu remis le header specifique pour permet de depasser le quota de 50 pour mes tests ?

saniho avatar Dec 10 '22 22:12 saniho

@m4dm4rtig4n : as-tu remis le header specifique pour permet de depasser le quota de 50 pour mes tests ?

Ah non j'ai zapper pour le coup, j'essaie de te faire ca rapidement.

m4dm4rtig4n avatar Dec 10 '22 22:12 m4dm4rtig4n

@m4dm4rtig4n : j'ai le message : Pas de consentement détecté sur le point de livraison et impossible d'en redemander un( meme si pas normal que celui d'avant soit éperimé" ), car le site enedis HS

saniho avatar Dec 12 '22 19:12 saniho

@m4dm4rtig4n : j'ai le message : Pas de consentement détecté sur le point de livraison et impossible d'en redemander un( meme si pas normal que celui d'avant soit éperimé" ), car le site enedis HS

J'ai fait une mep ce weekend qui as mit en caraf le renouvellement des refresh_token. L'impact est que les consentements sont HS après l'expiration du 1er token fournis par Enedis...

J'aimerais bien debug sauf qu'avec le site d'Enedis HS + Sandbox arrêté la nuit je suis bloqué...

Bref je te tiens au courant.

m4dm4rtig4n avatar Dec 12 '22 22:12 m4dm4rtig4n

Hello des bonnes nouvelles ?

saniho avatar Dec 17 '22 12:12 saniho

Hello des bonnes nouvelles ?

Oui c'est bon excuse j'ai oublier de te prevenir... Tt est de nouveau opérationnel.

m4dm4rtig4n avatar Dec 17 '22 15:12 m4dm4rtig4n

Hello idem pour le header ? Meme nom qu'avant ?

saniho avatar Dec 17 '22 20:12 saniho

Bonjour @saniho Serait t'il possible d'afficher aussi la production dans la nouvelle version de ta carte ? Merci

foXaCe avatar Dec 18 '22 05:12 foXaCe

si tu peux me donner ton pdl et token( enedisgateway ) en privé .. je peux regarder ...

saniho avatar Dec 18 '22 10:12 saniho