luuuis / hass_omie

OMIE Home Assistant Integration
https://forum.cpha.pt/t/integracao-omie-precos-horarios-diarios-mecanismo-de-ajuste/11668
Apache License 2.0
52 stars 6 forks source link

Luzboa wiki #19

Closed pvieira84 closed 1 year ago

pvieira84 commented 1 year ago

Viva, alguma possibilidade de adicionar wiki para Luzboa? Obrigado e continuação de bom trabalho

luuuis commented 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) }}"
pvieira84 commented 1 year ago

@luuuis obrigado, vou usar. Um abraço

codedmind commented 1 year ago

Viva nao ha exemplo para o bi-horario diario e semanal?

luuuis commented 1 year ago

@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 }}"
tretabyte commented 1 year ago

é suposto o valor final aparecer negativo?

luuuis commented 1 year ago

@tretabyte é normal consoante a altura do dia. Se consultares a fórmula do sensor compreenderás porquê (o valor TEPAi é negativo).

Monosnap 2023-05-19 12-49-04

tretabyte commented 1 year ago

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? :)

luuuis commented 1 year ago

@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.

luuuis commented 1 year ago

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

codedmind commented 1 year ago

@luuuis excelente!!! Muito obrigado. Só me falta é a compra da suelectricidade, mas com os desvios e o raio nem sei se será possivel

luuuis commented 1 year ago

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! 😆

codedmind commented 1 year ago

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: @.***>

luuuis commented 1 year ago

Corrigido, obrigado.

codedmind commented 1 year ago

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: @.***>

luuuis commented 1 year ago

Ups, tenho de arranjar maneira de transferir do ambiente de testes para o Wiki sem me esquecer de nada. 🤓 ✓

codedmind commented 1 year ago

Olha, sem certezas, diria que template da sulectricidade indexado

Deverá ser mais ou menos isto

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: @.***>

codedmind commented 1 year ago

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: @.***>

tretabyte commented 1 year ago

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.

codedmind commented 1 year ago

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.

luuuis commented 1 year ago

@codedmind novo issue para isso sff, aqui é Luzboa e penso que já está resolvido.