Closed pvieira84 closed 1 year ago
@pvieira84 vê se te serve este exemplo que o Tiago Veloso partilhou em https://forum.cpha.pt/t/integracao-omie-precos-horarios-diarios-mecanismo-de-ajuste/11668/122
template:
sensor:
- name: Luzboa Daily Spot Cost
unit_of_measurement: €/kWh
state_class: measurement
state: |-
{% set PMD = state_attr(this.entity_id, 'PMD') | float(default=0) -%}
{% set MIBEL = state_attr(this.entity_id, 'MIBEL') | float(default=0) -%}
{% set Desvios = state_attr(this.entity_id, 'Desvios') | float(default=0) -%}
{% set SAJ = state_attr(this.entity_id, 'SAJ') | float(default=0) -%}
{% set PFC = ((PMD+MIBEL)/1000) + Desvios + SAJ -%}
{% set FA = state_attr(this.entity_id, 'FA') | float(default=0) -%}
{% set PT = state_attr(this.entity_id, 'PT') | float(default=0) -%}
{% set CG = state_attr(this.entity_id, 'CG') | float(default=0) -%}
{% set TEPAi = state_attr(this.entity_id, 'TEPAi') | float(default=0) -%}
{{( (PFC*(1+PT))*FA+(CG)+(TEPAi) ) | round(4) }}
attributes:
friendly_name: "Luzboa €/kWh"
formula: (ER*PFC*(1+PT)*FA)+(ER*CG)+(ER*TEPAi)
PMD: "{{ state_attr('sensor.omie_spot_price_pt', 'today_average') | float(default=0) }}"
MIBEL: "{{ state_attr('sensor.omie_adjustment_price_pt', 'today_average') | float(default=0) }}"
Desvios: "{{ 0 | round(4) }}"
SAJ: "{{ 0.004 | round(4) }}"
FA: "{{ 1.02 | round(4) }}"
PT: "{{ 0.1507 | round(4) }}"
CG: "{{ 0.005 | round(4) }}"
TEPAi: "{{ -0.09580 | round(4) }}"
@luuuis obrigado, vou usar. Um abraço
Viva nao ha exemplo para o bi-horario diario e semanal?
@codedmind tenta assim para aplicar a TAR correcta para vazio e fora de vazio. A única diferença está na linha TEPAi:
.
template:
sensor:
- name: Luzboa Daily Spot Cost
unit_of_measurement: €/kWh
state_class: measurement
state: |-
{% set PMD = state_attr(this.entity_id, 'PMD') | float(default=0) -%}
{% set MIBEL = state_attr(this.entity_id, 'MIBEL') | float(default=0) -%}
{% set Desvios = state_attr(this.entity_id, 'Desvios') | float(default=0) -%}
{% set SAJ = state_attr(this.entity_id, 'SAJ') | float(default=0) -%}
{% set PFC = ((PMD+MIBEL)/1000) + Desvios + SAJ -%}
{% set FA = state_attr(this.entity_id, 'FA') | float(default=0) -%}
{% set PT = state_attr(this.entity_id, 'PT') | float(default=0) -%}
{% set CG = state_attr(this.entity_id, 'CG') | float(default=0) -%}
{% set TEPAi = state_attr(this.entity_id, 'TEPAi') | float(default=0) -%}
{{( (PFC*(1+PT))*FA+(CG)+(TEPAi) ) | round(4) }}
attributes:
friendly_name: "Luzboa €/kWh"
formula: (ER*PFC*(1+PT)*FA)+(ER*CG)+(ER*TEPAi)
PMD: "{{ state_attr('sensor.omie_spot_price_pt', 'today_average') | float(default=0) }}"
MIBEL: "{{ state_attr('sensor.omie_adjustment_price_pt', 'today_average') | float(default=0) }}"
Desvios: "{{ 0 | round(4) }}"
SAJ: "{{ 0.004 | round(4) }}"
FA: "{{ 1.02 | round(4) }}"
PT: "{{ 0.1507 | round(4) }}"
CG: "{{ 0.005 | round(4) }}"
TEPAi: "{{ -118.5 if now().hour < 8 or now().hour > 21 else -84.2 }}"
é suposto o valor final aparecer negativo?
@tretabyte é normal consoante a altura do dia. Se consultares a fórmula do sensor compreenderás porquê (o valor TEPAi
é negativo).
eu achei estranho pq o valor está constantemente a mostrar-me negativo, estava a espera de haver oscilações (afinal era um erro do meu lado) esse grafico parece-me bastante mais explicativo do que o da energia (apesar de ser basicamente a mesma coisa SE os sensores estiverem corretamente colocados), da para partilhar o codigo? :)
@tretabyte os valores do bi-horário estavam de facto mal no exemplo que eu dei porque as TAR estavam em €/MWh
enquanto que os outros valores estavam em €/kWh
.
Actualizei há pouco o Wiki para comunicar melhor os exemplos dos vários tarifários. Abrir https://github.com/luuuis/hass_omie/wiki/Tarifários-Portugal para dar com os sensores corrigidos.
grafico parece-me bastante mais explicativo do que o da energia (apesar de ser basicamente a mesma coisa SE os sensores estiverem corretamente colocados), da para partilhar o codigo? :)
Aqui está → https://github.com/luuuis/hass_omie/wiki/ApexChartsYesterdayTodayTomorrow
@luuuis excelente!!! Muito obrigado. Só me falta é a compra da suelectricidade, mas com os desvios e o raio nem sei se será possivel
Os desvios, podes sempre usar uma estimativa (valor fixo ou médias, conforme o que for mais adequado). Estes sensores da Luzboa também usam Desvios: 0
.
Já o raio é capaz de ser mais complicado! 😆
Viva Luis, o template_luzboa_spot_btn_simples no today hours esta a dar a mesma informação do tomorrow...
Com os melhores cumprimentos, Diogo Serra
Luis Miranda @.***> escreveu no dia quarta, 24/05/2023 à(s) 09:55:
Os desvios, podes sempre usar uma estimativa (valor fixo ou médias, conforme o que for mais adequado). Estes sensores da Luzboa também usam Desvios: 0.
Já o raio é capaz de ser mais complicado! 😆
— Reply to this email directly, view it on GitHub https://github.com/luuuis/hass_omie/issues/19#issuecomment-1560715478, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGOX7SZZINWHSDNIMLUFDXHXEITANCNFSM6AAAAAAX3GWS7E . You are receiving this because you were mentioned.Message ID: @.***>
Corrigido, obrigado.
Viva, falta ainda no bihorario ;)
Luis Miranda @.***> escreveu no dia quinta, 25/05/2023 à(s) 09:43:
Corrigido, obrigado.
— Reply to this email directly, view it on GitHub https://github.com/luuuis/hass_omie/issues/19#issuecomment-1562517826, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGOXY2FUYAI7VADWR2LHTXH4LT7ANCNFSM6AAAAAAX3GWS7E . You are receiving this because you were mentioned.Message ID: @.***>
Ups, tenho de arranjar maneira de transferir do ambiente de testes para o Wiki sem me esquecer de nada. 🤓 ✓
Olha, sem certezas, diria que template da sulectricidade indexado
Deverá ser mais ou menos isto
unique_id: suelectricidade_excedente_indexado unit_of_measurement: "€/MWh" state_class: measurement state: > {% set CG = 0.0 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'today_average') - %} {{ (PM(1-CG)) | round(2) }} attributes: friendly_name: "Suelectrividade excedente (indexado)" formula: "PM (1 – CG)" PM: "{{ state_attr('sensor.omie_spot_price_pt', 'today_average') }}" CG: "{{ 0.0 | float }}" today_hours: > {% set CG = 0.0 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'today_average') -%}
{% set ns = namespace(hourly_data=[]) %}
{% for h, _ in state_attr('sensor.omie_spot_price_pt', 'today_hours'
).items() -%} {% if PM == None or MAJ == None %} {% set price=PM %} {% else %} {% set price=(PM*(1-CG)) | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }} tomorrow_hours: > {% set CG = 0.0 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'tomorrow_average') -%}
{% set ns = namespace(hourly_data=[]) %}
{% for h, _ in state_attr('sensor.omie_spot_price_pt',
'tomorrow_hours').items() -%} {% if PM == None or MAJ == None %} {% set price=PM %} {% else %} {% set price=(PM*(1-CG)) | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }}
Dado que nao tem margem, apenas tem depois o encargos e variam (depende da potencia instalada de cada um) e depois os desvios
Luis Miranda @.***> escreveu no dia quinta, 25/05/2023 à(s) 11:13:
Ups, tenho de arranjar maneira de transferir do ambiente de testes para o Wiki sem me esquecer de nada. 🤓 ✓
— Reply to this email directly, view it on GitHub https://github.com/luuuis/hass_omie/issues/19#issuecomment-1562645436, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGOX5VT5YLYIBATKI64ZLXH4WEPANCNFSM6AAAAAAX3GWS7E . You are receiving this because you were mentioned.Message ID: @.***>
Outra coisa nos graficos, o tomorrow tens um sensor que nao sei se estará correcto, ou pelos menos nao o vejo no repositorio...
entity: sensor.template_luzboa_daily_excess_price name: Sell
codedmind @.***> escreveu no dia quinta, 25/05/2023 à(s) 11:34:
Olha, sem certezas, diria que template da sulectricidade indexado
Deverá ser mais ou menos isto
unique_id: suelectricidade_excedente_indexado unit_of_measurement: "€/MWh" state_class: measurement state: > {% set CG = 0.0 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'today_average') -%} {{ (PM(1-CG)) | round(2) }} attributes: friendly_name: "Suelectrividade excedente (indexado)" formula: "PM (1 – CG)" PM: "{{ state_attr('sensor.omie_spot_price_pt', 'today_average') }}" CG: "{{ 0.0 | float }}" today_hours: > {% set CG = 0.0 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'today_average') -%}
{% set ns = namespace(hourly_data=[]) %} {% for h, _ in state_attr('sensor.omie_spot_price_pt',
'today_hours').items() -%} {% if PM == None or MAJ == None %} {% set price=PM %} {% else %} {% set price=(PM*(1-CG)) | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }} tomorrow_hours: > {% set CG = 0.0 -%} {% set PM = state_attr('sensor.omie_spot_price_pt', 'tomorrow_average') -%}
{% set ns = namespace(hourly_data=[]) %} {% for h, _ in state_attr('sensor.omie_spot_price_pt',
'tomorrow_hours').items() -%} {% if PM == None or MAJ == None %} {% set price=PM %} {% else %} {% set price=(PM*(1-CG)) | round(2) %} {% endif %} {% set ns.hourly_data=ns.hourly_data + [(h.isoformat(), price)] %} {% endfor -%} {{ dict(ns.hourly_data) }}
Dado que nao tem margem, apenas tem depois o encargos e variam (depende da potencia instalada de cada um) e depois os desvios
Luis Miranda @.***> escreveu no dia quinta, 25/05/2023 à(s) 11:13:
Ups, tenho de arranjar maneira de transferir do ambiente de testes para o Wiki sem me esquecer de nada. 🤓 ✓
— Reply to this email directly, view it on GitHub https://github.com/luuuis/hass_omie/issues/19#issuecomment-1562645436, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGOX5VT5YLYIBATKI64ZLXH4WEPANCNFSM6AAAAAAX3GWS7E . You are receiving this because you were mentioned.Message ID: @.***>
acho que é um typo, pela logica de tudo o resto, o nome certo deverá ser sensor.template_luzboa_excedente_indexado (penso eu de que) parece-me que algo está a faltar ou errado pq no grafico de hoje (no conjunto dos 3 dias, ontem/hoje/amanha) a linha do buy nunca parece aparecer.
viva alguma ajuda para criar um template de excedente com preço bi-horario? Pelo menos a SUelectricidade o exemplo que meti em cima foi apenas retirar os 20%, mas eles não fazem o preço pela media diaria e fazem pelo valor horario da injecção.
@codedmind novo issue para isso sff, aqui é Luzboa e penso que já está resolvido.
Viva, alguma possibilidade de adicionar wiki para Luzboa? Obrigado e continuação de bom trabalho