danimart1991 / pvpc-hourly-pricing-card

Home Assistant Lovelace custom card to use with Spain electricity hourly pricing (PVPC) integration
Apache License 2.0
89 stars 21 forks source link

Añadir un atributo con el precio medio diario #64

Closed feserdel closed 10 months ago

feserdel commented 10 months ago

Buenos días, creo que sería útil disponer de un atributo con el precio medio diario para cada día.

Este valor se puede usar en automatizaciones, por ejemplo:

De hecho estoy desarrollando una automatización para este fin, pero tendría que calcular el precio medio, y sería más fácil si la integración me lo entrega.

danimart1991 commented 10 months ago

Hola @feserdel. Gracias por tu comentario.

Este repositorio solo incluye la tarjeta que muestra la información que proviene de la integración PVPC disponible de manera nativa en Home Assistant. El desarrollo de esta integración y la petición que realizas deberías hacerla en el repositorio de Home Assistant Core.

En cualquier caso, como idea, Home Assistant dispone ahora de varios ayudantes que pueden crear un sensor con la información que solicitas. Puedes realizar un ayudante de tipo sensor template que sume el valor de todos los atributos de precio y calcule el precio medio de todos ellos.

feserdel commented 10 months ago

Muchas gracias. Por lo que he visto, los "helpers" de estadísticas se aplican a los valores de un sensor, pero no a sus atributos. Lo que había pensado es desarrollar un script en python que lo calcule (usando hacs-pyscript). Bueno, ya veré que hago. Gracias de todos modos.

danimart1991 commented 10 months ago

¿Por qué complicarse tanto para hacer algo tan sencillo?

{% set prices = namespace(values=[]) %}
{% for hour in range(0,23) %}
    {% set prices.values = prices.values + [state_attr('sensor.pvpc', 'price_' ~ '%02d' % hour ~ 'h')] %}
{% endfor %}
{{ prices.values | sum / prices.values | count }}

image

danimart1991 commented 10 months ago

No es necesario complicarse tanto, Home Assistant ya te da herramientas para hacer lo que quieres.

{% set prices = namespace(values=[]) %}
{% for hour in range(0,23) %}
    {% set prices.values = prices.values + [state_attr('sensor.pvpc', 'price_' ~ '%02d' % hour ~ 'h')] %}
{% endfor %}
{{ prices.values | sum / prices.values | count }}

image

feserdel commented 10 months ago

Efectivamente, funciona!!. Muchas gracias. La verdad es que no soy muy ducho en plantillas de HA, pero ya veo que tu sí. Finalmente quedó así:

image

Con el código:

{% set prices = namespace(values=[]) %}
{% for hour in range(0,23) %}
    {% set prices.values = prices.values + [state_attr('sensor.pvpc', 'price_' ~ '%02d' % hour ~ 'h')] %}
{% endfor %}
{{ (prices.values | sum / prices.values | count) | round(4) }}

Gracias una vez más.