Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PVPC vs Indexada #17

Open
MiguelAngelLV opened this issue Dec 28, 2023 · 49 comments
Open

PVPC vs Indexada #17

MiguelAngelLV opened this issue Dec 28, 2023 · 49 comments

Comments

@MiguelAngelLV
Copy link
Contributor

Buenas.

En unos días llega «la nueva PVPC» dónde un 25% de la tarifa son a mercados futuros, por lo tanto, a diferir de precios indexados.

¿Está planificado añadir un modo «indexada» para aquellos que tengan estas tarifas en vez de la «oficial» de PVPC?

@azogue
Copy link
Owner

azogue commented Dec 30, 2023

Hola @MiguelAngelLV,

La verdad es que estoy poco puesto con los cambios que vienen (estoy con precio fijo desde hace > 1 año).

Tanto para el acceso con token o el público, habría que ver si esios publica nuevos 'indicadores', y a priori sería fácil adaptarlo.

Si conoces más detalles y puedes dejarlos por aquí 🙏, podemos estudiar los cambios a realizar que sean necesarios 👌

@MiguelAngelLV MiguelAngelLV changed the title PVPC vs Indexa PVPC vs Indexada Dec 31, 2023
@MiguelAngelLV
Copy link
Contributor Author

Pues estamos más o menos igual... Yo me cambié a Octopus hace casi un año y dejé de usar la indexada, pero claro, tengo amigos que aún la usan y «me dan la turra» sobre cómo configurarlo.

Les mandé un correo a los de ESIOS por si iban a incluir un indicador nuevo y también estuve mirando hace un tiempo como poder «simular» el cálculo usando los indicadores ya existentes, aunque no llegué a muy buen puerto.

A ver si contestan desde ESIOS algo.

@MiguelAngelLV
Copy link
Contributor Author

Me contestaron diciéndome que tengo contactar con el soporte directo en https://www.portalclientes.ree.es/#/home dónde me obligan a estar registrado, y para registrarte tienes que ser autónomo, empresa o asociación, de lo cual no cumplo ninguna....

@albertdb
Copy link

albertdb commented Feb 4, 2024

En indicador en cuestión es este: https://www.esios.ree.es/es/analisis/2108

En principio, indexada = PVPC - indicador 2108
(suponiendo que ambos sean €/MWh, si no, dividir entre 1000)

@MiguelAngelLV
Copy link
Contributor Author

Parece bastante aceptable sí. Y además no hace falta el token.

@azogue quizás se podría añadir este indicador también a aiopvpc y en el componente una opción para elegir entre PVPC o Indexada, y en caso de seleccionar esta última aplicar la resta.

@albertdb
Copy link

albertdb commented Feb 5, 2024

@MiguelAngelLV o, si no supone mucho cambio, ambos, estaría bien poder comparar.

@MiguelAngelLV
Copy link
Contributor Author

@MiguelAngelLV o, si no supone mucho cambio, ambos, estaría bien poder comparar.

Supongo que sería incluso más fácil poner ambos que poner el selector.

@albertdb
Copy link

albertdb commented Feb 5, 2024

@MiguelAngelLV o, si no supone mucho cambio, ambos, estaría bien poder comparar.

Supongo que sería incluso más fácil poner ambos que poner el selector.

Y luego ya quien quiera que deshabilite el que no quiera.

@olivayfuente
Copy link

Hola. Estoy intenta

En indicador en cuestión es este: https://www.esios.ree.es/es/analisis/2108

En principio, indexada = PVPC - (indicador 2108)/1000

Hola. No encuentro el indicador como lo describes. Estoy empezando a hacer scrap y no veo el indicador de indexada en ningun sitio. Una manita por favor que saquemos el sensor

@albertdb
Copy link

albertdb commented Feb 25, 2024

En indicador en cuestión es este: https://www.esios.ree.es/es/analisis/2108
En principio, indexada = PVPC - (indicador 2108)/1000

Hola. No encuentro el indicador como lo describes. Estoy empezando a hacer scrap y no veo el indicador de indexada en ningun sitio. Una manita por favor que saquemos el sensor

No hay un indicador de indexada, es coger el dato de PVPC y restarle el dato del indicador 2108 (dividido entre 1000 porque son €/MWh y el de PVPC se devuelve en €/kWh). No lo he llevado a la práctica, pero la forma más simple parece ser esta.

Edito: creo que el endpoint de PVPC también devuelve el precio en €/MWh por algún ejemplo que he visto.

@olivayfuente
Copy link

Perdona pero no se mucho de esto. No se que es el indicador 2108, no lo encuentro en la web que pones. Los precios que aparecen son mucho mas caros, la indexada está ahora mismo a 1.8 y la media del día a 1.6 en céntimos

image

@albertdb
Copy link

albertdb commented Feb 25, 2024

Perdona pero no se mucho de esto. No se que es el indicador 2108, no lo encuentro en la web que pones. Los precios que aparecen son mucho mas caros, la indexada está ahora mismo a 1.8 y la media del día a 1.6 en céntimos

image

Pues es precisamente el que da el dato del pantallazo. Es el 2108 porque la URL lo identifica así.

@olivayfuente
Copy link

al pvpc le quitamos esos 22,42 por ejemplo y nos da la media del dia de la indexada. Ya lo pillo.
Está dificil hacerle scrap a esta web, a alguna de PVPC si es muy facil. Vamos a a darle una vuelta.
Muchas gracias por la ayuda.

@albertdb

This comment was marked as outdated.

@olivayfuente
Copy link

Hola Alberto, creo que nos leemos en telegram. No se manejar esa api. Tengo muy pocos conocimientos, solo se extraer los datos si apareciesen en una web. p.e.

image

@olivayfuente
Copy link

Buenas. Ya tengo los sensores, pero no me cuadra el resultado
{{ states("sensor.pvpc") |float - states("sensor.ajuste_mercado_a_plazo") | float }}
esa plantilla da 0.02579 y el bot de telegram da 1.5

@albertdb
Copy link

Buenas. Ya tengo los sensores, pero no me cuadra el resultado {{ states("sensor.pvpc") |float - states("sensor.ajuste_mercado_a_plazo") | float }} esa plantilla da 0.02579 y el bot de telegram da 1.5

Cómo lo has hecho?

Lo único que se me ocurre restarle son los servicios de ajuste, pero me extraña que eso no se pague en la indexada.

@olivayfuente
Copy link

olivayfuente commented Feb 25, 2024

te paso los sensores para ha, el de pvpc ya lo tendrás. Te pongo el de precio Ajuste de mercado a plazo:
Y el de la resta de pvpc el ajuste de mercado:

Te pongo una # en el token de eios que yo en ese sensor no lo uso, pero si es verdad que en uno del pvpc inyectado que tengo si. Vamos que si no te funciona ese sensor te saques un toquen en eios y lo pones.
Comenta que tal

sensores ha.txt

@albertdb
Copy link

Parece que funciona, gracias!

@tmallafre
Copy link

Otra cosa que estaría bien sería poder configurar el margen que aplican algunas comercializadoras sobre el PVPC (por ejemplo 0,005 €/kWh)

@albertdb
Copy link

albertdb commented Mar 2, 2024

Otra cosa que estaría bien sería poder configurar el margen que aplican algunas comercializadoras sobre el PVPC (por ejemplo 0,005 €/kWh)

Para eso antes habría que restar el margen de comercialización que incluye el PVPC y ya probablemente valdría la pena calcular el precio indexado desde cero. Aquí hablamos de un apaño para tener un precio semejante al de una indexada y el margen de error de momento todavía es superior a ese margen que comentas, así que no tiene mucho sentido sumar nada adicional.

En otras palabras, la idea puede estar bien pero falta mucho para estar esto en condiciones de considerarlo.

@MiguelAngelLV
Copy link
Contributor Author

He enviado dos Pull Request (una para la biblioteca y otra para el componente) que añade tanto la indexada haciendo el cálculo (no es muy elegante, pero no se me ocurre otra cosa) y también el ajuste por separado.

Componente: #18

@olivayfuente
Copy link

No se como usarlo, me aclaras un poco como ponerlo en ha?

@MiguelAngelLV
Copy link
Contributor Author

No se como usarlo, me aclaras un poco como ponerlo en ha?

Lo mejor es esperar a que se integre correctamente, @azogue está haciendo un par de cambios para dejarlo «fino fino».

@olivayfuente
Copy link

Ah, ok ok. Gracias.

@albertdb
Copy link

No se como usarlo, me aclaras un poco como ponerlo en ha?

Lo mejor es esperar a que se integre correctamente, @azogue está haciendo un par de cambios para dejarlo «fino fino».

Ya "puestos", habría que restar el margen de comercialización, que es ridículo, pero si el dato está a mano, pues eso. Si hay que hacer petición expresa, ni os molestéis, son 0.1 céntimos o así.

@MiguelAngelLV
Copy link
Contributor Author

Cada comercializadora puede hacer cálculos distintos para obtener el margen, y dado que realmente la fórmula del PVPC - Ajuste no va a ser «exacta», no creo aporte mucho.

@tmallafre
Copy link

Creo que se refiere al margen que ganan las comercialzadoras de referencia que comercializan el PVPC.

@jose2403
Copy link

Hola. Gracias por el trabajo. Creo que hay algo que no funciona en el gráfico de la tarjeta cuando se configura como sensor, la indexada. El problema viene de que los atributos de ese sensor (los precios por hora) no están ordenados por hora sino de una manera, parece que aleatoria. Los atributos de los otros sensores sí están ordenados por horas.
EF95EAB1-EE14-4174-A54F-20223561E84D

8939C67B-D0E6-4B4E-BBC7-435747D6B862

@azogue
Copy link
Owner

azogue commented Mar 25, 2024

Hola @jose2403, gracias por reportar 🍻

Sí, en efecto, van desordenados 😓, pero es fácil de corregir, trataré de publicar nuevas versiones de aiopvpc y de este componente a lo largo del día 💪

@azogue
Copy link
Owner

azogue commented Mar 25, 2024

trataré de publicar nuevas versiones de aiopvpc y de este componente a lo largo del día 💪

Ya están listas 🚀🚀

Prueba ahora @jose2403 👍

new-release

@jose2403
Copy link

Impresionante. Muchas gracias

@olivayfuente
Copy link

trataré de publicar nuevas versiones de aiopvpc y de este componente a lo largo del día 💪

Ya están listas 🚀🚀

Prueba ahora @jose2403 👍

new-release

algo tengo mal. la key de la api es copia pega.

image

@tmallafre
Copy link

Me pasa lo mismo. Tengo el token y el PVPC me funciona sin problema.

image

@sargue
Copy link

sargue commented Mar 27, 2024

Yo estoy igual, la "indexed" no aparece. En los logs de HA veo estos dos errores:

Diari de registre: homeassistant.components.sensor
Font: helpers/entity_platform.py:719
integració: Sensor (documentació, problemes)
Produït per primer cop: 17:48:37 (3 ocurrències)
Últim registre: 18:02:02

Platform pvpc_hourly_pricing does not generate unique IDs. ID 2.0TD_INDEXED already exists - ignoring sensor.indexed_price
Diari de registre: homeassistant.components.sensor
Font: helpers/entity_platform.py:576
integració: Sensor (documentació, problemes)
Produït per primer cop: 17:48:37 (3 ocurrències)
Últim registre: 18:02:02

Error adding entity None for domain sensor with platform pvpc_hourly_pricing
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 576, in _async_add_entities
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 720, in _async_add_entity
    entity.add_to_platform_abort()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1318, in add_to_platform_abort
    self._call_on_remove_callbacks()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1311, in _call_on_remove_callbacks
    self._on_remove.pop()()
  File "/config/custom_components/pvpc_hourly_pricing/sensor.py", line 222, in <lambda>
    lambda: coordinator.api.update_active_sensors(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiopvpc/pvpc_data.py", line 215, in update_active_sensors
    assert data_id in ALL_SENSORS
AssertionError

@jose2403
Copy link

A mí me funciona bien. A veces hay que recargar la integración y reiniciar.
Probad con esto.

@tmallafre
Copy link

tmallafre commented Mar 27, 2024

A mí me funciona bien. A veces hay que recargar la integración y reiniciar. Probad con esto.

Buenísimo :-)

@olivayfuente
Copy link

El mio es una chapucilla pa apañarnos, se aproxima pero no es preciso porque hay calculos que no hacemos, solo le quitamos el ajuste de mercado.

@sargue
Copy link

sargue commented Mar 27, 2024

A mí me funciona bien. A veces hay que recargar la integración y reiniciar. Probad con esto.

He reiniciado la integración y HA varias veces... nada, sale "no disponible". Y me siguen saliendo los errores en el log.
Antes tenía la integración oficial, no sé si puede ser la causa del problema. Quizás voy a quitar la integración, reiniciar para limpiar, y a ver si lo vuelvo a instalar todo.

@MiguelAngelLV
Copy link
Contributor Author

Creo que el problema viene de aquellos que tenéis la integración oficial e instaláis la nueva sin quitar la antigua.

Probad eliminar la configuración, reiniciar y añadir de nuevo la configuración.

@sargue
Copy link

sargue commented Mar 27, 2024

Pues no. Acabo de hacer eso, he tenido que configurar la integración de nuevo, añadir el token, etc.
He activado el sensor y sale no disponible.
En los logs:

Diari de registre: homeassistant.components.sensor
Font: helpers/entity_platform.py:576
integració: Sensor (documentació, problemes)
Produït per primer cop: 19:46:26 (1 ocurrències)
Últim registre: 19:46:26

Error adding entity sensor.indexed_price for domain sensor with platform pvpc_hourly_pricing
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 576, in _async_add_entities
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 841, in _async_add_entity
    entity.add_to_platform_abort()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1318, in add_to_platform_abort
    self._call_on_remove_callbacks()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1311, in _call_on_remove_callbacks
    self._on_remove.pop()()
  File "/config/custom_components/pvpc_hourly_pricing/sensor.py", line 222, in <lambda>
    lambda: coordinator.api.update_active_sensors(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiopvpc/pvpc_data.py", line 215, in update_active_sensors
    assert data_id in ALL_SENSORS
AssertionError
Aquest error té origen en una integració personalitzada.

Diari de registre: homeassistant
Font: custom_components/pvpc_hourly_pricing/sensor.py:254
integració: Spain electricity hourly pricing (PVPC) (documentació, problemes)
Produït per primer cop: 19:47:12 (2 ocurrències)
Últim registre: 19:47:12

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1494, in _async_process_registry_update_or_remove
    self.async_registry_entry_updated()
  File "/config/custom_components/pvpc_hourly_pricing/sensor.py", line 254, in async_registry_entry_updated
    self.coordinator.api.update_active_sensors(self.entity_description.key, True)
  File "/usr/local/lib/python3.12/site-packages/aiopvpc/pvpc_data.py", line 215, in update_active_sensors
    assert data_id in ALL_SENSORS
AssertionError

Uno de los errores es ligeramente diferente...

@MiguelAngelLV
Copy link
Contributor Author

@azogue parece que es al comprobar que el sensor que quiere actualizar es uno de los «reales» y quizás se esté colando el ID de la Indexada que no está entre ellos.

@sargue
Copy link

sargue commented Apr 5, 2024

Sigo con este problema.
He desinstalado la integración de nuevo, y revisado incluso en "statistics" a ver si había aún rastro.

Yendo ya por SSH he encontrado un rastro de ese sensor en .storage pero no me atrevo a tocar nada ahí:

[core-ssh .storage]$ grep -i indexed *
core.entity_registry:      {"config_entry_id":null,"entity_id":"sensor.indexed_price","id":"03fb8d00a1f46dd12d0868731f572df4",
"orphaned_timestamp":1712313937.433374,"platform":"pvpc_hourly_pricing","unique_id":"2.0TD_INDEXED"},

¿Es posible que se haya "roto" mi instalación? ¿Sugerencias?

@sargue
Copy link

sargue commented Apr 5, 2024

Me despista bastante que haya gente a la que le funcione, pero sigo investigando.
El stacktrace del error parece apuntar más a la libreria aiopvp.py que al código de la integración propiamente dicho.

Básicamente, por lo que entiendo del error no encuentra la referencia al sensor en la lista interna.

Reproduzco el error de nuevo:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 857, in _async_add_entity
    entity.add_to_platform_abort()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1324, in add_to_platform_abort
    self._call_on_remove_callbacks()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1317, in _call_on_remove_callbacks
    self._on_remove.pop()()
  File "/config/custom_components/pvpc_hourly_pricing/sensor.py", line 222, in <lambda>
    lambda: coordinator.api.update_active_sensors(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiopvpc/pvpc_data.py", line 215, in update_active_sensors
    assert data_id in ALL_SENSORS
AssertionError

Concretamente esta línea: assert data_id in ALL_SENSORS

Si miramos en la libreria donde se define ALL_SENSORS veo esto:

# unique ids for each series
KEY_PVPC = "PVPC"
KEY_INJECTION = "INJECTION"
KEY_MAG = "MAG"  # regargo GAS
KEY_OMIE = "OMIE"  # precio mayorista
KEY_ADJUSTMENT = "ADJUSTMENT"  # ajuste mercado
# composed sensors
KEY_INDEXED = "INDEXED"  # precio indexada (:= PVPC - ADJUSTMENT)

ALL_SENSORS = (KEY_PVPC, KEY_INJECTION, KEY_MAG, KEY_OMIE, KEY_ADJUSTMENT)

¿No faltaria añadir KEY_INDEXED a esa lista? Parece que se le trata diferente, supongo que porque se calcula más que pillarlo del API, aún así.... @azogue ? 🙏

@MiguelAngelLV
Copy link
Contributor Author

@sargue el problema creo es que NO debería consultar ese key...

@olivayfuente
Copy link

olivayfuente commented Apr 5, 2024

A mi después de la ultima actualización de HA ya me funciona.

image

@sargue
Copy link

sargue commented Apr 5, 2024

No es mi caso, mismas versiones.

@tmallafre
Copy link

@sargue
Copy link

sargue commented May 14, 2024

Si, desde anoche que no tengo datos y pensaba que habían cambiado algo en el API de ESIOS. Veo que simplemente falla su lado.
Pues no queda otra que esperar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants