apiEnedis
apiEnedis copied to clipboard
Migration vers MyElectricalData ?
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.
Helo @m4dm4rtig4n Avec plaisir pour re prendre contact, dis moi ce qui évolue et je verrai comment l'implementer dans le module.
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 , 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 ?
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.
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
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 ?
Aurais-tu une copie ecran de l'erreur ? Un traceback?
@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 :
Ecowatt :
Juste un détail les call ecowatt et tempo ne sont pas soumis à l'authentification étant de la données public.
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
merci pou rle log, j'ai corrigé et livré la pre release 2.0.2..si tu peux tester et me tenir informé
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 :)
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é'}
@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.
@Nackophilz accepterais tu de m'envoyer par mail ton token pour que je puisse reproduire le problème. Mon [email protected]
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
@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 :)
Si tu peux l'envoyer je pourrais faire un check.
@Nackophilz : si tu peux m'envoyer ton token en privée..
@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 :)
Oh !
Je viens de jeter un oeil ce matin !
Et j'ai plus de soucis :


Toutes les infos remonte bien , erreur temporaire ENEDIS peut être ?
@m4dm4rtig4n : as-tu remis le header specifique pour permet de depasser le quota de 50 pour mes tests ?
@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 : 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
@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.
Hello des bonnes nouvelles ?
Hello des bonnes nouvelles ?
Oui c'est bon excuse j'ai oublier de te prevenir... Tt est de nouveau opérationnel.
Hello idem pour le header ? Meme nom qu'avant ?
Bonjour @saniho Serait t'il possible d'afficher aussi la production dans la nouvelle version de ta carte ? Merci
si tu peux me donner ton pdl et token( enedisgateway ) en privé .. je peux regarder ...