Closed r-jordan closed 3 years ago
Me pasa exactamente lo mismo. ¿Puede alguien arrojar algo de luz al respecto? Muchas gracias por anticipado.
I have the same situation here but I think the tittle of the issue is misleading.
It looks that some of the data received in the JSON is not being correctly parsed and thus throwing an error. Here is what I've found so far.
Por añadir más información. En mi caso:
Home Assistant CORE: core-2021.10.7 Home Assistant SUPERVISOR: supervisor-2021.10.8 Home Assistant OS: Home Assistant OS 6.6
Gracias por el mensaje de error @jlopez77 !
Por cierto, si crees que el título de la incidencia no es informativo lo puedes cambiar sin problema.
Creo que he encontrado lo que ocurre pero no sé muy bien porqué ni como arreglarlo. Por si acaso era un problema en la api de REE he probado a hacer llamadas a la URL donde se descarga el JSON y funciona correctamente.
URL
https://api.esios.ree.es/archives/70/download_json?locale=es&date=2021-11-03
Datos devueltos:
{"PVPC":[{"Dia":"03/11/2021","Hora":"00-01","PCB":"187,22","CYM":"187,22", ...
Pero si intentas acceder a un día para el que no hay datos, por ejemplo mañana día 4, pasa lo siguiente:
URL
https://api.esios.ree.es/archives/70/download_json?locale=es&date=2021-11-04
Datos devueltos:
{"message":"No values for specified archive"}
Y ese es justo el JSON que intenta parsear y no encuentra la clave PVPC. Hay que investigar el código para saber como se genera la fecha para construir la URL.
Gracias por el mensaje de error @jlopez77 !
Por cierto, si crees que el título de la incidencia no es informativo lo puedes cambiar sin problema.
Creo que he encontrado lo que ocurre pero no sé muy bien porqué ni como arreglarlo. Por si acaso era un problema en la api de REE he probado a hacer llamadas a la URL donde se descarga el JSON y funciona correctamente.
URL
https://api.esios.ree.es/archives/70/download_json?locale=es&date=2021-11-03
Datos devueltos:
{"PVPC":[{"Dia":"03/11/2021","Hora":"00-01","PCB":"187,22","CYM":"187,22", ...
Pero si intentas acceder a un día para el que no hay datos, por ejemplo mañana día 4, pasa lo siguiente:
URL
https://api.esios.ree.es/archives/70/download_json?locale=es&date=2021-11-04
Datos devueltos:
{"message":"No values for specified archive"}
Y ese es justo el JSON que intenta parsear y no encuentra la clave PVPC. Hay que investigar el código para saber como se genera la fecha para construir la URL.
Tiene toda la pinta a que, desde el 1 de Noviembre por el cambio de hora, está enviando una petición de un día posterior
Parece que han cambiado algo en el server y ahora la combinación de aiohttp==3.7.4.post0
y la config del servidor de esios chocan, y le está devolviendo un 403 (Forbidden) error, como si hiciese falta el token 🕵️♂️🤷
Se resuelve de 2 maneras, ambas tontísimas 😅:
aiohttp==3.8.0
ya no ocurreComo la 2ª no es incompatible con la 1ª, y como HA Core sigue usando aiohttp==3.7.4.post0
, voy a hacer un quickfix con ese cambio, para publicar versión, y de ahí a subir la versión en HA Core a 2.2.1
@r-jordan, he cambiado el título para eliminar lo del reinicio y marcar fallo desde ayer (yo no he reiniciado y ayer tenía precios, hasta las 11PM 😅)
Parece que han cambiado algo en el server y ahora la combinación de
aiohttp==3.7.4.post0
y la config del servidor de esios chocan, y le está devolviendo un 403 (Forbidden) error, como si hiciese falta el token 🕵️♂️🤷Se resuelve de 2 maneras, ambas tontísimas 😅:
- Con
aiohttp==3.8.0
ya no ocurre- Añadiendo un 'User-Agent' a los headers de la petición
Como la 2ª no es incompatible con la 1ª, y como HA Core sigue usando
aiohttp==3.7.4.post0
, voy a hacer un quickfix con ese cambio, para publicar versión, y de ahí a subir la versión en HA Core a 2.2.1
That's fast!
Re-abro la issue, que el travis CI ya no funciona 😔, y me toca publicar a manita...
Cerraré la issue cuando todo esté mergeado en HA Core
That's fast!
Uff, pero es sólo el 1º paso. Intentaré hacer los siguientes a lo largo del día de hoy, a ratitos 🙈
quickfix, if you can't wait for the official quickfix, edit aiopvpc.py and
Line 30, add: `
~~ _REQUEST_HEADERS = {~~
~~ "User-Agent": "aioPVPC Python library",~~
~~ "Accept": "application/json",~~
}
`
Line 173:
resp = await self._session.get(url)
-> modify to: resp = await self._session.get(url, headers=_REQUEST_HEADERS)
See the oficial quickfix.
quickfix, if you can't wait
Aún más sencillo, para todos aquellos que usen HA OS y no puedan/sepan/quieran cambiar el código, es añadir la integración como custom_components
.
Descomprimir el ZIP adjunto en la carpeta de config/custom_components
(debería crear una subcarpeta pvpc_hourly_pricing
con el manifest.json
modificado, apuntando a la nueva versión 2.2.1 ), y reiniciar HA Core
@r-jordan, he cambiado el título para eliminar lo del reinicio y marcar fallo desde ayer (yo no he reiniciado y ayer tenía precios, hasta las 11PM sweat_smile)
Perfecto! :+1:
El parche funciona perfecto... Muchas gracias por el trabajo. Saludos
@azogue primero gracias por la solución provisional. Quería preguntar... ¿Una vez se complete el merge en HA core, puede haber algún conflicto al haberlo agregado como custom component? Lo digo porque, primero, no tengo ni idea, y segundo, como ya funciona es fácil olvidarse del custom component. Gracias de antemano
@azogue primero gracias por la solución provisional. Quería preguntar... ¿Una vez se complete el merge en HA core, puede haber algún conflicto al haberlo agregado como custom component? Lo digo porque, primero, no tengo ni idea, y segundo, como ya funciona es fácil olvidarse del custom component. Gracias de antemano
Cuando vayas a actualizar HA Core a una nueva versión que contenga la corrección, borra la carpeta config/custom_components/pvpc_hourly_pricing
justo antes; o en cualquier momento, y reiniciando HA Core a continuación.
La lógica de carga es sencilla: si existe en custom_components, se carga de ahí, si no, se busca internamente.
quickfix, if you can't wait
Aún más sencillo, para todos aquellos que usen HA OS y no puedan/sepan/quieran cambiar el código, es añadir la integración como
custom_components
.Descomprimir el ZIP adjunto en la carpeta de
config/custom_components
(debería crear una subcarpetapvpc_hourly_pricing
con elmanifest.json
modificado, apuntando a la nueva versión 2.2.1 ), y reiniciar HA Core
Funciona perfecto! :tada:
Además veo que has añadido el control del error por si vuelve a pasar que se pueda ver en el log: :+1:
elif resp.status == 403: # pragma: no cover
self._logger.error(
"Forbidden error with '%s' -> Headers: %s", url, resp.headers
)
Muchas gracias por la rapidez @azogue !
perfecto ! somos muchos los que te lo agradecemos
Muchisimas gracias por la integración y por el parche, funciona como custom sin problemas.
Bravo!
Probado en docker y funcionando. Gracias!!
Pregunta: si volviera a pasar el sensor seguiría mostrando su estado como unavailable
?
Muchas automatizaciones en casa dependen del precio actual de la luz y no había caído en comprobar el estado del sensor, gracias a esto ahora ya lo tengo en cuenta e incluso me mando un mensaje para estar al tanto.
Mil gracias por esta integración!!!
quickfix, if you can't wait
Aún más sencillo, para todos aquellos que usen HA OS y no puedan/sepan/quieran cambiar el código, es añadir la integración como
custom_components
.Descomprimir el ZIP adjunto en la carpeta de
config/custom_components
(debería crear una subcarpetapvpc_hourly_pricing
con elmanifest.json
modificado, apuntando a la nueva versión 2.2.1 ), y reiniciar HA Core
Muchas gracias por el fichero. Funciona perfectamente como custom component.
Lo acabo de poner, pero no me actualiza tras reiniciar, en el log sale esto:
[homeassistant.loader] We found a custom integration pvpc_hourly_pricing which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
Edit: He quitado la integración, reiniciado y vuelto a añadir la integración y ya parece que actualiza los datos, recupera los precios, pero en el estado no pone el precio actual
en el log sale esto
Hola @serpini1, ese warning es genérico para todos los custom_components
, no es más que una descarga de responsabilidad por parte de HA Core sobre las integraciones no oficiales, puedes ignorarlo.
Edit: He quitado la integración, reiniciado y vuelto a añadir la integración y ya parece que actualiza los datos, recupera los precios, pero en el estado no pone el precio actual
Eso es bastante extraño, ¿a qué te refieres con que recupera los precios pero no muestra el estado?, ¿puedes pasar captura del sensor, logs, y demás?
en 'Developer Tools->States', filtrando la entidad sensor.pvpc
, debería salir algo parecido a esto:
:
Por cierto, el parche en HA Core ya está hecho, se incluirá en la próxima versión 2021.11.1 🚀
Cuando se publique cierro esta issue 👍
en el log sale esto
Hola @serpini1, ese warning es genérico para todos los
custom_components
, no es más que una descarga de responsabilidad por parte de HA Core sobre las integraciones no oficiales, puedes ignorarlo.Edit: He quitado la integración, reiniciado y vuelto a añadir la integración y ya parece que actualiza los datos, recupera los precios, pero en el estado no pone el precio actual
Eso es bastante extraño, ¿a qué te refieres con que recupera los precios pero no muestra el estado?, ¿puedes pasar captura del sensor, logs, y demás?
en 'Developer Tools->States', filtrando la entidad
sensor.pvpc
, debería salir algo parecido a esto::
Me sale así, como ves, sí que actualiza los datos de los atributos, pero no el del estado
quickfix, if you can't wait
Aún más sencillo, para todos aquellos que usen HA OS y no puedan/sepan/quieran cambiar el código, es añadir la integración como
custom_components
.Descomprimir el ZIP adjunto en la carpeta de
config/custom_components
(debería crear una subcarpetapvpc_hourly_pricing
con elmanifest.json
modificado, apuntando a la nueva versión 2.2.1 ), y reiniciar HA Core
Muchas gracias! Volvemos a tener integración.
Me sale así, como ves, sí que actualiza los datos de los atributos, pero no el del estado [![sensor-PVPC]
@serpini1 ¿Estás usando una versión < 2021.11.0 o 2021.10.0?
Si es así, el ZIP no va a funcionar, sorry (contiene el código de la integración conforme a HA Core 2021.11)
@gloaysa, sobre tu pregunta:
Pregunta: si volviera a pasar el sensor seguiría mostrando su estado como unavailable? Muchas automatizaciones en casa dependen del precio actual de la luz y no había caído en comprobar el estado del sensor, gracias a esto ahora ya lo tengo en cuenta e incluso me mando un mensaje para estar al tanto.
Sí, el estado del sensor pasa a 'unavailable' en el momento que ya no tiene el precio actual. Y, aunque no muestre excesivos errores en el log (para no atusar), internamente sigue tratando de capturar los precios (2 veces / hora, creo) y, si eventualmente se resuelve el problema, los precios vuelven a aparecer (en ese contexto, un 'reload' de la integración sólo va a forzar un nuevo intento de coger los precios)
Por ejemplo, si la gente de ESIOS hubiese hecho un revert al cambio que hicieron en el servidor *, los sensores habrían vuelto a funcionar sin ninguna intervención.
Sobre lo que comentas de las automatizaciones, si quieres estar totalmente cubierto, puedes hacer una más que vigile el sensor, y si el pvpc pasa a unavailable
, o vuelve a tener valor, te notifica y apaga/enciende las automatizaciones que toque 👍
* Parece que lo que hicieron en el servidor fue empezar a filtrar las peticiones anónimas (sin User-Agent en los headers), devolviendo errores de 'prohibido'. Una desafortunada combinación de código en nuestro lado hizo el resto, y dejó ilegible una información pública como esta: https://api.esios.ree.es/archives/70/download_json 😖
Cerraré la issue cuando todo esté mergeado en HA Core
Ya está incluido el fix en la nueva versión de HA Core 2021.11.1 🌈
Funcionando sin custom en la 11.1
Gracias.
Hola, la integración con Homeassistant ha dejado de funcionar (estado unavailable) cuando he realizado una actualización de versión del core y se ha reiniciado HA. He vuelto a configurar la integración por si era algún problema con mi instalación y sigue sin funcionar. Incluso he vuelto a la versión anterior de HA y tampoco se soluciona. ¿Puede ser algún problema con el reciente cambio de hora del día 1 de noviembre? Se agradece una rápida respuesta. Saludos!