boa tarde. estava agora a verificar o template bi horário da LuzBoa e fiquei na dúvida se está tudo correcto.
A fórmula no site da LuzBoa é
com os valores descritos assim:
Preço (Pp) = Preço de energia ativa a pagar (em €/kWh);
OMIE (OMIEh) = Preço horário médio mensal, no período faturado, no mercado OMIE (em €/kWh);
CGS = Custos de operação e gestão do sistema (valor de 0.0065 €/kWh);
Perdas (Perdas ERSE) = = são as perdas da rede, fixadas pela ERSE - Entidade Reguladora dos Serviços Energéticos
FA = Fator de Adequação 1.02
Kp = 5 - Valor fixo correspondente aos gastos operacionais da Luzboa (em €/MWh)
No template do github está assim:
((PFC*(1+PT))*FA+(CG)+(TEPAi))
sendo o PFC = PMD + Desvios + SAJ
o PMD é o valor diário médio do MIBEL e o TEPAi as TAR
o resto dos valores estão definidos como
MIBEL: “{{ 0 }}”
Desvios: “{{ 0 }}”
SAJ: “{{ 4 }}”
FA: “{{ 1.02 }}”
PT: “{{ 0.1507 }}”
CG: “{{ 5 }}”
As minhas dúvidas prendem-se com dois pontos.
-
O que é o SAJ no template? não consigo perceber a correspondência com o que está na fórmula da LuzBoa
-
O CG está como 5, no entanto no site da LuzBoa referem o CGS como 0.0065
Está a escapar-me algo? Se alguém me puder ajudar a perceber, agradeço.
UPDATE:
Estive a refazer o template bi horário da LuzBoa com base nas fórmulas no site, cruzei com os resultados que outras pessoas tiveram em excels que partilharam num grupo de facebook, e estão a bater certo. Fica aqui a minha versão do template revisto e simplificado.
- unique_id: luzboa_spot_btn_bihorario
unit_of_measurement: '€/MWh'
availability: "{{ state_attr('sensor.omie_spot_price_pt', 'today_average') != None }}"
state_class: measurement
state: >
{% set OMIE = state_attr('sensor.omie_spot_price_pt', 'today_average') -%}
{% set CGS = state_attr(this.entity_id, 'CGS') -%}
{% set Perdas = state_attr(this.entity_id, 'Perdas') -%}
{% set FA = state_attr(this.entity_id, 'FA') -%}
{% set k = state_attr(this.entity_id, 'k') -%}
{% set TAR = state_attr(this.entity_id, 'TAR') -%}
{% if None in [OMIE, CGS, Perdas, FA, k, TAR] %}
{{ None }}
{% else %}
{{ ((OMIE+CGS)*Perdas*FA+k+TAR) | round(2) }}
{% endif %}
attributes:
friendly_name: "Luzboa SPOT BTN (tarifário bi-horário)"
formula: (OMIE+CGS)*Perdas*FA+k+TAR
OMIE: "{{ state_attr('sensor.omie_spot_price_pt', 'today_average') }}"
CGS: "{{ 6.5 }}"
Perdas: "{{ 1.1507 }}"
FA: "{{ 1.02 }}"
k: "{{ 5 }}"
TAR_vazio: "{{ -34.9 if now().date().isoformat() < '2024-01-01' else 9.2 }}"
TAR_fora_vazio: "{{ -0.5 if now().date().isoformat() < '2024-01-01' else 50.2 }}"
TAR: "{{ state_attr(this.entity_id, 'TAR_vazio') if now().hour < 8 or now().hour > 21 else state_attr(this.entity_id, 'TAR_fora_vazio') }}"
today_hours: >
{% set OMIE = state_attr('sensor.omie_spot_price_pt', 'today_average') -%}
{% set CGS = state_attr(this.entity_id, 'CGS') -%}
{% set Perdas = state_attr(this.entity_id, 'Perdas') -%}
{% set FA = state_attr(this.entity_id, 'FA') -%}
{% set k = state_attr(this.entity_id, 'k') -%}
{% set ns = namespace(hourly_data=[]) %}
{% for h in state_attr('sensor.omie_spot_price_pt', 'today_hours') -%}
{% if None in [OMIE, CGS, Perdas, FA, k, TAR] %}
{% set price = None %}
{% else %}
{% set TAR = state_attr(this.entity_id, 'TAR_vazio') if h.hour < 8 or h.hour > 21 else state_attr(this.entity_id, 'TAR_fora_vazio') -%}
{% set price=((OMIE+CGS)*Perdas*FA+k+TAR) | round(2) %}
{% endif %}
{% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %}
{% endfor -%}
{{ dict(ns.hourly_data) }}
tomorrow_hours: >
{% set OMIE = state_attr('sensor.omie_spot_price_pt', 'tomorrow_average') -%}
{% set CGS = state_attr(this.entity_id, 'CGS') -%}
{% set Perdas = state_attr(this.entity_id, 'Perdas') -%}
{% set FA = state_attr(this.entity_id, 'FA') -%}
{% set k = state_attr(this.entity_id, 'k') -%}
{% set ns = namespace(hourly_data=[]) %}
{% for h in state_attr('sensor.omie_spot_price_pt', 'tomorrow_hours') -%}
{% if None in [OMIE, CGS, Perdas, FA, k, TAR] %}
{% set price=None %}
{% else %}
{% set TAR = state_attr(this.entity_id, 'TAR_vazio') if h.hour < 8 or h.hour > 21 else state_attr(this.entity_id, 'TAR_fora_vazio') -%}
{% set price=((OMIE+CGS)*Perdas*FA+k+TAR) | round(2) %}
{% endif %}
{% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %}
{% endfor -%}
{{ dict(ns.hourly_data) }}