Sim, tenho isto:
sensor:
- unique_id: luzboa_spot_price_simples
unit_of_measurement: 'EUR/kWh'
state_class: measurement
state: >
{% set PMD = state_attr('sensor.omie_spot_price_pt', 'day_average')|float -%}
{% set MIBEL = state_attr('sensor.omie_adjustment_price_pt', 'day_average')|float -%}
{% set Desvios = 0 -%}
{% set SAJ = 0.004 -%}
{% set PFC = ((PMD+MIBEL)/1000) + Desvios + SAJ -%}
{% set ER = 1 -%}
{% set FA = 1.02 -%}
{% set PT = 0.1507 -%}
{% set CG = 0.005 -%}
{% set TEPAi = -0.09580 -%}
{{( (ER*PFC*(1+PT))*FA+(ER*CG)+(ER*TEPAi) ) | round(4) }}
attributes:
friendly_name: "Luzboa €/kWh em simples"
formula: "(ER*PFC*(1+PT))*FA+(ER*CG)+)ER*TEPAi)"
PMD: state_attr('sensor.omie_spot_price_pt', 'day_average')|float -%}
MIBEL: state_attr('sensor.omie_adjustment_price_pt', 'day_average')|float -%}
Desvios: {{ 0 | float }}
SAJ: {{ 0.004 | float }}
FA: {{ 1.02 | float }}
PT: {{ 0.1507 | float }}
CG: {{ 0.005 | float }}
TEPAi: {{ -0.09580 | float }}
- unique_id: luzboa_spot_price_bihorario
unit_of_measurement: 'EUR/kWh'
state_class: measurement
state: >
{% set PMD = state_attr('sensor.omie_spot_price_pt', 'day_average')|float -%}
{% set MIBEL = state_attr('sensor.omie_adjustment_price_pt', 'day_average')|float -%}
{% set Desvios = 0 -%}
{% set SAJ = 0.004 -%}
{% set PFC = ((PMD+MIBEL)/1000) + Desvios + SAJ -%}
{% set ER = 1 -%}
{% set FA = 1.02 -%}
{% set PT = 0.1507 -%}
{% set CG = 0.005 -%}
{% set TAR_vazio = -118.5/1000 -%}
{% set TAR_fora_vazio = -84.2/1000 -%}
{% set TEPAi = TAR_vazio if now().hour < 8 or now().hour > 21 else TAR_fora_vazio -%}
{{( (ER*PFC*(1+PT))*FA+(ER*CG)+(ER*TEPAi) ) | round(4) }}
attributes:
friendly_name: "Luzboa €/kWh em Bihorario"
formula: "(ER*PFC*(1+PT))*FA+(ER*CG)+)ER*TEPAi)"
PH: {{ states('sensor.omie_spot_price_pt') | float }}
MIBEL: {{ states('sensor.omie_adjustment_price_pt') | float }}
Desvios: {{ 0 | float }}
SAJ: {{ 0.004 | float }}
FA: {{ 1.02 | float }}
PT: {{ 0.1507 | float }}
CG: {{ 0.005 | float }}
TEPAi: >
{% set TAR_vazio = -118.5/1000 -%}
{% set TAR_fora_vazio = -84.2/1000 -%}
{% set TEPAi = TAR_vazio if now().hour < 8 or now().hour > 21 else TAR_fora_vazio -%}
{{ TEPAi }}
No entanto, não estou certo se a formula está ou não bem aplicada.
No caso do bi-horario tenho a certeza que está mal. Assumo que eles fazem a média do calor horário dentro de cada período para obter o vazio/fora. Portanto eu preciso de fazer a média do valor horário entre as 22-8 (no caso de bi-horario diario) mas não estou bem a ver como fazer isso já que “o dia muda”. Sugestões?