uvejota / homeassistant-edata

Home Assistant integration for spanish energy data providers (e.g., datadis)
GNU General Public License v3.0
253 stars 21 forks source link

Gráficos siempre con el mensaje "loading" #96

Closed jantoni closed 2 years ago

jantoni commented 2 years ago

Tras integrar el informe y los gráficos de consumo diario y mensual, el informe da todos los valores correctos (bueno menos el consumo de ayer, pero eso es cuestión de Unión Fenosa Distribución), pero los gráficos diario y mensual no salen nunca y aparece el mensaje de "loading"

No sé si es problema de la versión de Apex o problema de UFD. Aparentemente no hay ningún mensaje de error.

codigful6 commented 2 years ago

Tengo el mismo problema, puedo encontrar la información por ejemplo del último mes, porque me aparece en el sensor edata, pero los gráficos de consumo diario y mensual me aparecen siempre "cargando"

codigful6 commented 2 years ago

Estoy viendo los logs, y el problema es con esta parte del gráfico:

data_generator: |
  return hass.connection.sendMessagePromise({
  type: 'edata/consumptions/daily', 
  scups: 'ESXXXXXXXXXXXXXXXXX'}).then(
      (resp) => {
          return resp.map((data, index) => {
            return [new Date(data['datetime']).getTime(), data['value_kWh']];
          });
      }
  );

Me aparece este error en el log:

2022-06-29 17:00:15 ERROR (MainThread) [custom_components.edata.websockets] the provided scups parameter is not correct: ESXXXXXXXXXXXXXXXXX

Pero el cups he comprobado que es correcto, es el mismo que en Datadis, el mismo de mi distribuidora y el mismo que estoy usando en el propio homeassistant (que me aparecen datos de consumo en la propia entity), pero por alguna razón no carga los datos del día.

codigful6 commented 2 years ago

Sigo debugeando esto, y lo que he hecho es borrar el archivo del .storage como se hablaba en otros problemas, ahora lo que veo es que cuando intenta coger la información del consumo, falla:

2022-06-29 17:40:25 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: no token found, fetching a new one... 2022-06-29 17:40:26 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: token received 2022-06-29 17:40:32 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: supplies data has been successfully updated (1 elements) 2022-06-29 17:40:32 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: contracts data has been successfully updated (1 elements) 2022-06-29 17:40:32 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: fetching consumptions from 2021-06-01 00:00:00 to 2022-06-29 17:40:25.188143 2022-06-29 17:43:33 ERROR (SyncWorker_5) [edata.connectors] https://datadis.es/api-private/api/get-consumption-data?cups=ESYYYYYYYYYYYYYYYYxxxx&distributorCode=5&startDate=2021/06/01&endDate=2022/06/29&measurementType=0&pointType=4& returned {"status":502,"error":"BAD_GATEWAY","message":"502 Bad Gateway","timestamp":"2022-06-29T17:43:33.431+0200"} with code 502 2022-06-29 17:43:33 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: fetching maximeter from 2021-07-01 00:00:00 to 2022-06-29 17:40:25.188143 2022-06-29 17:43:36 INFO (SyncWorker_5) [edata.connectors] DatadisConnector: maximeter data has been successfully updated (33 elements) 2022-06-29 17:43:36 WARNING (MainThread) [custom_components.edata.sensor] clearing statistics for ['edata:xxxx_consumption', 'edata:xxxx_p1_consumption', 'edata:xxxx_p2_consumption', 'edata:xxxx_p3_consumption']

Que puede estar pasando?

uvejota commented 2 years ago

Estoy viendo los logs, y el problema es con esta parte del gráfico:

data_generator: |
  return hass.connection.sendMessagePromise({
  type: 'edata/consumptions/daily', 
  scups: 'ESXXXXXXXXXXXXXXXXX'}).then(
      (resp) => {
          return resp.map((data, index) => {
            return [new Date(data['datetime']).getTime(), data['value_kWh']];
          });
      }
  );

Me aparece este error en el log:

2022-06-29 17:00:15 ERROR (MainThread) [custom_components.edata.websockets] the provided scups parameter is not correct: ESXXXXXXXXXXXXXXXXX

Pero el cups he comprobado que es correcto, es el mismo que en Datadis, el mismo de mi distribuidora y el mismo que estoy usando en el propio homeassistant (que me aparecen datos de consumo en la propia entity), pero por alguna razón no carga los datos del día.

El campo 'scups' son los últimos 4 caracteres del cups, no el cups completo.