saniho / apiEnedis

a custom_component to get Enedis data consumption
https://github.com/saniho/apiEnedis
173 stars 36 forks source link

Pas de remontées d'info du site Enedis #234

Open jlc71710 opened 11 months ago

jlc71710 commented 11 months ago

Depuis le 21 septembre, il n'y a plus de mise à jour de la carte

Holborn13200 commented 11 months ago

Idem

Holborn13200 commented 11 months ago

Pourtant j'arrive bien à récupérer mes données dans un script Python via l'API : https://enedisgateway.tech/api avec le token récupéré via la passerelle .. Etrange ! Alors que dans HA j'ai le message suivant : 2023-09-30 12:31:46.309 ERROR (SyncWorker_4) [myEnedis] Data answer: {'detail': 'Le point de livraison ne correspond au token fournis, pour le réinitialiser il vous suffit de refaire un consentement'}

Token pourtant identique ..

r-jean-pierre commented 11 months ago

Aucun idée si c'est lié, mais moi j'ai ça en log depuis aussi (j'ai aussi perdu la remonté depuis le 21 sept):

2023-10-01 20:55:59.724 INFO (SyncWorker_0) [myEnedis] ====== Appel http #1 !!! data : {'type': 'daily_consumption', 'usage_point_id': 'xxxxxxxxxxxxxxxx', 'start': '2023-09-30', 'end': '2023-10-01'} =====
2023-10-01 20:55:59.724 INFO (SyncWorker_0) [myEnedis] ====== Appel http #1 !!! reponse : {'meter_reading': None} =====
2023-10-01 20:55:59.725 ERROR (SyncWorker_0) [myEnedis] xxxxxxxxxxxxx- last call : updateYesterday
2023-10-01 20:55:59.725 ERROR (SyncWorker_0) [myEnedis] myEnedis ...xxxxxxxxxxxxx update termine, on retentera plus tard(B)
2023-10-01 20:55:59.726 ERROR (SyncWorker_0) [myEnedis] ------------------------------------------------------------
2023-10-01 20:55:59.726 ERROR (SyncWorker_0) [myEnedis] Erreur inconnue call ERROR 'NoneType' object is not subscriptable
2023-10-01 20:55:59.727 ERROR (SyncWorker_0) [myEnedis] Erreur last answer 'NoneType' object is not subscriptable
2023-10-01 20:55:59.727 ERROR (SyncWorker_0) [myEnedis] Erreur last call updateYesterday
2023-10-01 20:55:59.727 ERROR (SyncWorker_0) [myEnedis] Erreur last answer {'meter_reading': None}
2023-10-01 20:55:59.809 ERROR (SyncWorker_0) [myEnedis] Traceback (most recent call last):
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1191, in update
self.callConsommation()
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1075, in callConsommation
self.updateYesterday()
File "/config/custom_components/myEnedis/myClientEnedis.py", line 723, in updateYesterday
data = self._yesterday.updateData(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/myEnedis/myDataEnedis.py", line 99, in updateData
self._value = myCheckData().analyseValue(self._data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/myEnedis/myCheckData.py", line 41, in analyseValue
return int(data[API.METER_READING]["interval_reading"][0]["value"])
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1284, in update
raise Exception(inst)
Exception: 'NoneType' object is not subscriptable
2023-10-01 20:55:59.809 ERROR (SyncWorker_0) [myEnedis] ------------------------------------------------------------
2023-10-01 20:55:59.809 WARNING (SyncWorker_0) [myEnedis] (<class 'Exception'>, Exception(TypeError("'NoneType' object is not subscriptable")), <traceback object at 0x7fafd2fc0b80>)
2023-10-01 20:55:59.810 ERROR (SyncWorker_0) [myEnedis] LastMethodCall : updateYesterday

Je suis en HA 2023.10.0b4 et je précise que d'autres composants ont aussi eu quelques heures/jours de bugs , depuis 2023.10.0b1 A force de mettre à jour les customs_component et HA, pas mal de choses sont rentrés dans l'ordre, sauf pas encore Enedis et il me semble que le pb était déjà la avec la version stable 2023.9.3

C'est du coup un problème HA, du gateway, du CC lui-même ou alors Enedis?

tson0n0 commented 11 months ago

Aucun idée si c'est lié, mais moi j'ai ça en log depuis aussi (j'ai aussi perdu la remonté depuis le 21 sept):

2023-10-01 20:55:59.724 INFO (SyncWorker_0) [myEnedis] ====== Appel http #1 !!! data : {'type': 'daily_consumption', 'usage_point_id': 'xxxxxxxxxxxxxxxx', 'start': '2023-09-30', 'end': '2023-10-01'} =====
2023-10-01 20:55:59.724 INFO (SyncWorker_0) [myEnedis] ====== Appel http #1 !!! reponse : {'meter_reading': None} =====
2023-10-01 20:55:59.725 ERROR (SyncWorker_0) [myEnedis] xxxxxxxxxxxxx- last call : updateYesterday
2023-10-01 20:55:59.725 ERROR (SyncWorker_0) [myEnedis] myEnedis ...xxxxxxxxxxxxx update termine, on retentera plus tard(B)
2023-10-01 20:55:59.726 ERROR (SyncWorker_0) [myEnedis] ------------------------------------------------------------
2023-10-01 20:55:59.726 ERROR (SyncWorker_0) [myEnedis] Erreur inconnue call ERROR 'NoneType' object is not subscriptable
2023-10-01 20:55:59.727 ERROR (SyncWorker_0) [myEnedis] Erreur last answer 'NoneType' object is not subscriptable
2023-10-01 20:55:59.727 ERROR (SyncWorker_0) [myEnedis] Erreur last call updateYesterday
2023-10-01 20:55:59.727 ERROR (SyncWorker_0) [myEnedis] Erreur last answer {'meter_reading': None}
2023-10-01 20:55:59.809 ERROR (SyncWorker_0) [myEnedis] Traceback (most recent call last):
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1191, in update
self.callConsommation()
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1075, in callConsommation
self.updateYesterday()
File "/config/custom_components/myEnedis/myClientEnedis.py", line 723, in updateYesterday
data = self._yesterday.updateData(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/myEnedis/myDataEnedis.py", line 99, in updateData
self._value = myCheckData().analyseValue(self._data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/myEnedis/myCheckData.py", line 41, in analyseValue
return int(data[API.METER_READING]["interval_reading"][0]["value"])
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1284, in update
raise Exception(inst)
Exception: 'NoneType' object is not subscriptable
2023-10-01 20:55:59.809 ERROR (SyncWorker_0) [myEnedis] ------------------------------------------------------------
2023-10-01 20:55:59.809 WARNING (SyncWorker_0) [myEnedis] (<class 'Exception'>, Exception(TypeError("'NoneType' object is not subscriptable")), <traceback object at 0x7fafd2fc0b80>)
2023-10-01 20:55:59.810 ERROR (SyncWorker_0) [myEnedis] LastMethodCall : updateYesterday

Je suis en HA 2023.10.0b4 et je précise que d'autres composants ont aussi eu quelques heures/jours de bugs , depuis 2023.10.0b1 A force de mettre à jour les customs_component et HA, pas mal de choses sont rentrés dans l'ordre, sauf pas encore Enedis et il me semble que le pb était déjà la avec la version stable 2023.9.3

C'est du coup un problème HA, du gateway, du CC lui-même ou alors Enedis?

Même probleme ici

B4dC4rd commented 11 months ago

Je ne connais pas la date precise du debut de mes soucis, mais de mon coté l'intégration en fonctionne plus correctement et mes deniers logs donnent ceci, malgré un renouvellement de consentement:

This error originated from a custom integration.

Logger: myEnedis Source: custom_components/myEnedis/myClientEnedis.py:287 Integration: myEnedis sensor (documentation, issues) First occurred: 18:36:52 (33 occurrences) Last logged: 20:39:41

Erreur last answer {'meter_reading': None} Traceback (most recent call last): File "/config/custom_components/myEnedis/myClientEnedis.py", line 1191, in update self.callConsommation() File "/config/custom_components/myEnedis/myClientEnedis.py", line 1075, in callConsommation self.updateYesterday() File "/config/custom_components/myEnedis/myClientEnedis.py", line 723, in updateYesterday data = self._yesterday.updateData( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/myEnedis/myDataEnedis.py", line 99, in updateData self._value = myCheckData().analyseValue(self._data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/myEnedis/myCheckData.py", line 41, in analyseValue return int(data[API.METER_READING]["interval_reading"][0]["value"]) ~~~~~~~^^^^^^^^^^^^^^^^^^^^ TypeError: 'NoneType' object is not subscriptable During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/myEnedis/myClientEnedis.py", line 1284, in update raise Exception(inst) Exception: 'NoneType' object is not subscriptable

(<class 'Exception'>, Exception(TypeError("'NoneType' object is not subscriptable")), <traceback object at 0x7f3e1f0e3a40>) LastMethodCall : updateYesterday

jacme31 commented 11 months ago

Problème identique de mon coté, avec les messages dans les logs HA identiques 'NoneType' object is not subscriptable 'Erreur last answer {'meter_reading': None}

Par ailleurs la commande curl pour valider que la collecte horaire est bien activée auprès d'Enedis, ainsi que toutes les commandes pour récupérer la production me donnent le résultat suivant, : { "meter_reading": null } Je précise que la collecte horaire parait bien activée sur le site Enedis.

M3te0r commented 11 months ago

Hello, problème identique depuis le 21/09, voici le traceback obtenu en rafraichissant l'intégration:

2023-10-04 20:02:45.606 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry [REDACTERD] for myEnedis
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/myEnedis/__init__.py", line 132, in async_setup_entry
    await _enable_scheduled_myEnedis()
  File "/config/custom_components/myEnedis/__init__.py", line 125, in _enable_scheduled_myEnedis
    await coordinator_enedis.async_refresh()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 266, in async_refresh
    await self._async_refresh(log_failures=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 246, in _async_update_data
    return await self.update_method()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/myEnedis/__init__.py", line 222, in _async_update_data_enedis
    return await self.hass.async_add_executor_job(self.update_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError: aiohttp connection lost
2023-10-04 20:02:51.801 ERROR (SyncWorker_12) [myEnedis] [REDACTED]- last call : updateYesterday
2023-10-04 20:02:51.803 ERROR (SyncWorker_12) [myEnedis] myEnedis ...[REDACTED] update termine, on retentera plus tard(B)
2023-10-04 20:02:51.807 ERROR (SyncWorker_12) [myEnedis] ------------------------------------------------------------
2023-10-04 20:02:51.810 ERROR (SyncWorker_12) [myEnedis] Erreur inconnue call ERROR 'NoneType' object is not subscriptable
2023-10-04 20:02:51.820 ERROR (SyncWorker_12) [myEnedis] Erreur last answer 'NoneType' object is not subscriptable
2023-10-04 20:02:51.824 ERROR (SyncWorker_12) [myEnedis] Erreur last call updateYesterday
2023-10-04 20:02:51.829 ERROR (SyncWorker_12) [myEnedis] Erreur last answer {'meter_reading': None}
2023-10-04 20:02:51.835 ERROR (SyncWorker_12) [myEnedis] Traceback (most recent call last):
  File "/config/custom_components/myEnedis/myClientEnedis.py", line 1191, in update
    self.callConsommation()
  File "/config/custom_components/myEnedis/myClientEnedis.py", line 1075, in callConsommation
    self.updateYesterday()
  File "/config/custom_components/myEnedis/myClientEnedis.py", line 723, in updateYesterday
    data = self._yesterday.updateData(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/myEnedis/myDataEnedis.py", line 99, in updateData
    self._value = myCheckData().analyseValue(self._data)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/myEnedis/myCheckData.py", line 41, in analyseValue
    return int(data[API.METER_READING]["interval_reading"][0]["value"])
               ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/config/custom_components/myEnedis/myClientEnedis.py", line 1284, in update
    raise Exception(inst)
Exception: 'NoneType' object is not subscriptable
sidwin9 commented 11 months ago

De même, plus rien depuis le 21/09.

M3te0r commented 11 months ago

SI je refais une demande de consentement, j'obtiens un json brut lors de l'oauth2

https://gw.prd.api.enedis.fr/v1/oauth2/authorize?client_id=[REDACTED]&response_type=code&redirect_uri=http://sandbox.myelectricaldata.fr/consent&user_type=B2B&state=null&person_id=[REDACTED]&usage_points_id=[REDACTED]

{
  "reasons": [],
  "details": {
    "msgId": "Id-XXXXXXXXXX"
  }
}
Moustik2002 commented 11 months ago

Dans le meme cas depuis le 21/09 aussi

Link0Darck commented 11 months ago

Bonjour, Pour info l'api MyElectricalData est bugger deupuis Aout : https://github.com/MyElectricalData/myelectricaldata_import/issues autre ticker ici : issues#233

Dautrip commented 11 months ago

Toujours impossible de réaliser le consentement, c’est lourd ! { "reasons" : [ ], "details" : { "msgId" : "Id-a7ff2c65afdbc461d71cbd55" } }

Link0Darck commented 11 months ago

Toujours impossible de réaliser le consentement, c’est lourd ! { "reasons" : [ ], "details" : { "msgId" : "Id-a7ff2c65afdbc461d71cbd55" } }

Bonjour, Oui je suis tout a fait d'accord mais c'est des personnes qui font cela gratuitement sinon si vous voulez votre consommation prévoyez d'acheter un module Lixee Zlinky.

Dautrip commented 11 months ago

La maintenance n’est elle pas du aux gens de chez Enedis ? Je vous prie de bien vouloir excuser mon impatience si ça n’est pas le cas.

Link0Darck commented 11 months ago

La maintenance n’est elle pas du aux gens de chez Enedis ? Je vous prie de bien vouloir excuser mon impatience si ça n’est pas le cas.

Non c'est pas la faute de Enedis la et ni de @saniho cette personne a juste coder pour cela plus simple l'utilisation mais les vrais responsables du problème c'est myelectricalData comme j'ai cité plus haut moi sa fait 2 mois plus de données je comprends que cela vous énerve mais si vous voulez votre consommation en temps réel sans interruption faut utilisé un module lixee je compte m'en acheter un mais plus tard.

JbPasquier commented 11 months ago

SI je refais une demande de consentement, j'obtiens un json brut lors de l'oauth2

https://gw.prd.api.enedis.fr/v1/oauth2/authorize?client_id=[REDACTED]&response_type=code&redirect_uri=http://sandbox.myelectricaldata.fr/consent&user_type=B2B&state=null&person_id=[REDACTED]&usage_points_id=[REDACTED]

{
  "reasons": [],
  "details": {
    "msgId": "Id-XXXXXXXXXX"
  }
}

Quand tu arrives sur cette page remplaces le gw.prd.api.enedis.fr par myelectricaldata.fr dans l'URL et c'est bon.
C'est bien un soucis côté Enedis, cf l'auteur de la plateforme. On devrait bientôt voir le bout du tunnel.

Link0Darck commented 11 months ago

SI je refais une demande de consentement, j'obtiens un json brut lors de l'oauth2 https://gw.prd.api.enedis.fr/v1/oauth2/authorize?client_id=[REDACTED]&response_type=code&redirect_uri=http://sandbox.myelectricaldata.fr/consent&user_type=B2B&state=null&person_id=[REDACTED]&usage_points_id=[REDACTED]

{
  "reasons": [],
  "details": {
    "msgId": "Id-XXXXXXXXXX"
  }
}

Quand tu arrives sur cette page remplaces le gw.prd.api.enedis.fr par myelectricaldata.fr dans l'URL et c'est bon. C'est bien un soucis côté Enedis, cf l'auteur de la plateforme. On devrait bientôt voir le bout du tunnel.

Avez vous les données ????

JbPasquier commented 11 months ago

Avez vous les données ????

Oui.

Link0Darck commented 11 months ago

Avez vous les données ????

Oui.

moi j'ai aucune information de mon coter donc certes il sont trouver leur problème de consentement mais pas récupération de donnée.

Holborn13200 commented 11 months ago

Hello, effectivement de mon coté j'arrive à récupérer les donner via les appels CURL directs (via un script Python) mais aucune données dans l'intégration HA .. J'ai pourtant modifié la sélection de enedisGateway to myElectricalData + mise à jour du Token mais rien pour le moment.

df911 commented 11 months ago

Hello, effectivement de mon coté j'arrive à récupérer les donner via les appels CURL directs (via un script Python) mais aucune données dans l'intégration HA .. J'ai pourtant modifié la sélection de enedisGateway to myElectricalData + mise à jour du Token mais rien pour le moment.

Hello, Même problème de mon côté

M3te0r commented 11 months ago

Hello, effectivement de mon coté j'arrive à récupérer les donner via les appels CURL directs (via un script Python) mais aucune données dans l'intégration HA .. J'ai pourtant modifié la sélection de enedisGateway to myElectricalData + mise à jour du Token mais rien pour le moment.

Hello, même problème j'arrive bien de nouveau à récupérer mes données avec les exemples curl données sur myElectricalData (après manip de l'URL), mais j'obtiens maintenant ce traceback sur HA

2023-10-20 09:40:35.932 ERROR (SyncWorker_2) [myEnedis] LastMethodCall : updateLastMonthLastYear
2023-10-20 09:40:40.740 ERROR (SyncWorker_54) [myEnedis] [REDACTED] - last call : updateLastMonthLastYear
2023-10-20 09:40:40.740 ERROR (SyncWorker_54) [myEnedis] myEnedis ...[REDACTED] update termine, on retentera plus tard(B)
2023-10-20 09:40:40.741 ERROR (SyncWorker_54) [myEnedis] ------------------------------------------------------------
2023-10-20 09:40:40.741 ERROR (SyncWorker_54) [myEnedis] Erreur inconnue call ERROR 'str' object has no attribute 'get'
2023-10-20 09:40:40.741 ERROR (SyncWorker_54) [myEnedis] Erreur last answer 'str' object has no attribute 'get'
2023-10-20 09:40:40.741 ERROR (SyncWorker_54) [myEnedis] Erreur last call updateLastMonthLastYear
2023-10-20 09:40:40.741 ERROR (SyncWorker_54) [myEnedis] Erreur last answer None
2023-10-20 09:40:40.746 ERROR (SyncWorker_54) [myEnedis] Traceback (most recent call last):
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1191, in update
self.callConsommation()
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1112, in callConsommation
self.updateLastMonthLastYear()
File "/config/custom_components/myEnedis/myClientEnedis.py", line 553, in updateLastMonthLastYear
data = self._lastMonthLastYear.updateData(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/myEnedis/myDataEnedisByDay.py", line 100, in updateData
if (callDone) and (myCheckData().checkDataPeriod(self._data)):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/myEnedis/myCheckData.py", line 102, in checkDataPeriod
if dataAnswer.get(API.ERROR_CODE, 200) == 500:
^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'get'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/config/custom_components/myEnedis/myClientEnedis.py", line 1284, in update
raise Exception(inst)
Exception: 'str' object has no attribute 'get'
2023-10-20 09:40:40.746 ERROR (SyncWorker_54) [myEnedis] ------------------------------------------------------------
2023-10-20 09:40:40.747 WARNING (SyncWorker_54) [myEnedis] (<class 'Exception'>, Exception(AttributeError("'str' object has no attribute 'get'")), <traceback object at 0x7f7591e9c0>)
2023-10-20 09:40:40.747 ERROR (SyncWorker_54) [myEnedis] LastMethodCall : updateLastMonthLastYear
Holborn13200 commented 10 months ago

Miracle ! Les données sont là ! Cela fait bizarre de voir l'intégration à nouveau fonctionnel ! Top top !

M3te0r commented 10 months ago

Oui !!! Je confirme, je viens de jeter un oeil à mon dashboard énergie, j'ai les données depuis 13h

r-jean-pierre commented 10 months ago

Bonjour,

J'ai aussi relancé un consentement, toutes les commandes curl fonctionnent, mais par l'intégration (j'ai bien mis le nouveau token dans la configuration de l'intégration) Dans les logs, rien ne porte à croire que qqc soit faux manquant et aucune erreur de python

Vous avez fait qqc de plus?

EDIT: c'est revenu pour moi aussi! J'ai du attendre un peu plus de 24H

Vince1024 commented 10 months ago

Bonjour à tous,

ça ne fonctionne toujours pas pour moi.

Avez-vous fait des modifications sur votre HA/myElectricalData ?

Merci

M3te0r commented 10 months ago

Bonjour à tous,

ça ne fonctionne toujours pas pour moi.

Avez-vous fait des modifications sur votre HA/myElectricalData ?

Merci

Non, mis à part une nouvelle demande de consentement oauth2 (et donc nouvelle clef) et la manipulation d'url indiquée ici : https://www.myelectricaldata.fr/ image

Link0Darck commented 9 months ago

Les valeurs sont revenue !