Alternativa à Integração ERSE usando HELPERS e TEMPLATE

Desculpem se não estou a fazer isto da forma correcta, mas penso que isto é algo do interesse de muitos, e apesar de achar que deve ter erros, se toda a gente interessada der uma maozinha isto parece-me que fica a funcionar bem.

Portanto o que eu fiz foi criar helpers de horários para cada tarifa (Cheia/Ponta/Vazio para inverno e verão) de acordo com o existe na minha localidade.

Helpers

Até aqui tudo fácil, após umas trocas de mensagens com uma pessoa (Troon) no fórum oficial o código final a inserir no configuration.yaml será este (se ja tiver algum template basta só copiar apartir da segunda linha):

template:
  - sensor:
      - name: "Preço Electricidade"                       
        unit_of_measurement: "EUR/kWh"             
        state: >
          {% set cv, ci, ev, ei, pv, pi, hv = bool(states("schedule.cheias_verao")),    #IDs dos horários
                                              bool(states("schedule.cheias_inverno")),
                                              bool(states("schedule.eda_vazio_verao")),
                                              bool(states("schedule.eda_vazio_inverno")),
                                              bool(states("schedule.ponta_verao")),
                                              bool(states("schedule.ponta_inverno")),
                                              (5 < now().month < 11) %}    #Meses
          {% if (cv and hv) or (ci and not hv) %}
            {{ (0.1711 * 1.16) | round(4) }} 
          {% elif (ev and hv) or (ei and not hv) %}
            {{ (0.1056 * 1.16) | round(4) }}
          {% elif (pv and hv) or (pi and not hv) %}
            {{ (0.2380 * 1.16) | round(4) }}
          {% endif %}

Basta só ajustar os campos relevantes no código acima.
Julgo que assim torna tudo mais fácil de ajustar horários e até usar para outras coisas, e até para quem quiser os preços podem ser helpers que se pode ajustar no dashboard em vez de ser os valores no YAML.

Pelo que testei basta adicionar este novo sensor template como entidade com o valor da electricidade no Dashboard da Energia e ele faz o resto sozinho :slight_smile:

Agradeço todos os inputs :slight_smile:

5 Curtiram

Sim, é como eu faço também para os tarifários indexados ao OMIE. Acontece que quando o dgomes/ha_erse foi criado o HA ainda não tinha o painel Energy, de modo que a própria integração fazia-te os cálculos. E pode ainda ser útil para quem quiser fazer cálculos a tarifários diferentes em simultâneo.

Agora tenho curiosidade de saber se com o teu método o HA calcula bem o custo do consumo nos períodos que acabam, por exemplo, às 14:30 e não à hora certa. Isto porque o HA internamente armazena os dados de hora em hora.

1 Curtiu

Pois eu pensava que só com o ERSE dava para fazer isto, depois la me lembrei da funcionalidade do Schedule e tentei e como não tinha visto ninguém aqui a usar isto meti :slight_smile:

É uma boa observação isso de nao acabar na hora certa, mas quando vais às estatísticas para mudar alguma valor, os valores kWh (que que parto do principio que ele deve usar para fazer as contas), estão lá guardados de 5 em 5 min. Portanto penso que vai funcionar, mas vou tentar ver se consigo perceber.

Mas qual é o problema de usar o ERSE

Para quem está no continente, nenhum problema, quem está por exemplo nos Açores, já existe, os horários são diferentes.

E não seria uma.boa ideia contactar o autor do ERSE e perguntar se pode adicionar tarifários e horários das ilhas?

Tenho a certeza que se for possível o @dgomes terá todo o gosto em fazê-lo.

O PR está lá :slight_smile: mas é preciso aquilo ser validado…

1 Curtiu

É preciso clonar e corrigir o código.

O código base nem passa

Pois, e contactei, até fiz um PR, mas os meus muito limitados conhecimentos não me deixam fazer mais…

1 Curtiu

Em que ficheiro se coloca o código? Configuration.yaml ou sensors.yaml
Alguem consegue ajudar na implementação disto.? estou a tentar colocar como template mas depois não aparece nada como sensor…

Sorry so venho aqui de tempos a tempos

no configuration.yaml

@Ruben_Tavares … e os custos de acesso (Potencia contratada & acesso redes) … tem como adicionar este custo diário ?

Adicioneio o coding no meu configuration.yaml … e fiz o restart do home assistant … mas quando vou a configuração de energia e seleciono “Utilizar uma entidade com o preço atual” o sensor “preco de eletricidade” nao aparece, como se o configuration.yaml nao o estivesse a criar/reconhecer … tem algo errado no meu código abaixo ?

configuration.yaml:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

template: 
  - sensor:
      - name: "Preço Electricidade"                       
        unit_of_measurement: "EUR/kWh"             
        state: >
          {% set cv, ci, ev, ei, pv, pi, hv = bool(states("schedule.eda_cheias_verao")),    #IDs dos horários
                                              bool(states("schedule.eda_cheias_inverno")),
                                              bool(states("schedule.eda_vazio_verao")),
                                              bool(states("schedule.eda_vazio_inverno")),
                                              bool(states("schedule.eda_ponta_verao")),
                                              bool(states("schedule.eda_ponta_inverno")),
                                              (5 < now().month < 11) %}    #Meses
          {% if (cv and hv) or (ci and not hv) %}
            {{ (0.1736 * 1.16) | round(4) }} 
          {% elif (ev and hv) or (ei and not hv) %}
            {{ (0.1072 * 1.16) | round(4) }}
          {% elif (pv and hv) or (pi and not hv) %}
            {{ (0.2416 * 1.16) | round(4) }}
          {% endif %}

Boas, epá pelo q estou a ver no meu configuration.yaml

template:
  - sensor:
      - name: "Preço Electricidade"                       
        unit_of_measurement: "EUR/kWh"             
        state: >
          {% set cv, ci, ev, ei, pv, pi, hv = bool(states("schedule.cheias_verao")),
                                              bool(states("schedule.cheias_inverno")),
                                              bool(states("schedule.eda_vazio_verao")),
                                              bool(states("schedule.eda_vazio_inverno")),
                                              bool(states("schedule.ponta_verao")),
                                              bool(states("schedule.ponta_inverno")),
                                              (5 < now().month < 11) %}
          {% if (cv and hv) or (ci and not hv) %}
            {{ (states("input_text.preco_cheio")) }} 
          {% elif (ev and hv) or (ei and not hv) %}
            {{ (states("input_text.preco_vazio")) }}
          {% elif (pv and hv) or (pi and not hv) %}
            {{ (states("input_text.preco_ponta")) }}
          {% endif %}

Parece-me q tens tudo certo.
No meu caso eu criei 3 entidades novas para puder fazer input do preço da electricidade sempre que a EDA actualizar o tarifário.
Mas mudar pela config yaml resulta tbm.

Fizeste reboot ao HA para ele assumir o config novo?

O problema aparentemente era as notas no código, já aceita … estou à espera agora para dar tempo e ver se calcula certo

Já tenho isso isso há um ano e tal e é um luxo.
Depois é somar o valor do contador e taxa audivisual e já se tem uma ideia do q se vai pagar

@Ruben_Tavares

Podes partilhar como fazes as entidades para por os preços, criei entidades com o helper, mas nao estou a ver aonde ponho/imput o valor dos preços

Alias … podesm me mostrar o que poes nos teus helpers para o preco, pois noto que no teu código ja nao tens | round(4)

Desculpa a demora, mas só agora qdo cheguei a casa é que me lembrei.

São helpers
Screenshot 2024-10-01 190250

Depois até criei uma subpágina para estar mais acessivel os preços para os alterar/ver
Screenshot 2024-10-01 190319

Depois é só clicar nas entidades e mudar o valor
Screenshot 2024-10-01 190333

obrigado @Ruben_Tavares

Acabei fazendo ligeiramente diferente, fix o helper em “number” ao invés de texto e mantive os cálculos no sensor

assim sendo, o numero no helper continua priva e o código ficou assim:

template: 
  - sensor:
      - name: "Preço Electricidade"                       
        unit_of_measurement: "EUR/kWh"             
        state: >
          {% set cv, ci, ev, ei, pv, pi, hv = bool(states("schedule.eda_cheias_verao")),
                                              bool(states("schedule.eda_cheias_inverno")),
                                              bool(states("schedule.eda_vazio_verao")),
                                              bool(states("schedule.eda_vazio_inverno")),
                                              bool(states("schedule.eda_ponta_verao")),
                                              bool(states("schedule.eda_ponta_inverno")),
                                              (5 < now().month < 11) %}
          {% if (cv and hv) or (ci and not hv) %}
            {{ (float(states('input_number.eda_preco_cheias')) * 1.16) | round(4) }} 
          {% elif (ev and hv) or (ei and not hv) %}
            {{ (float(states('input_number.eda_preco_vazio')) * 1.16) | round(4) }}
          {% elif (pv and hv) or (pi and not hv) %}
            {{ (float(states('input_number.eda_preco_ponta')) * 1.16) | round(4) }}
          {% endif %}

deixo aqui em caso seja util para mais alguem :slight_smile:

Agora o meu objetivo e criar um Card que utilise o scheduler para mostrar no momento qual a tarifa em vigor e ate qual hora, estou fazer um painel com um tablet para esta informação estar bem visível …

Tambem vou tentar fazer um sensor virtual para calcular os custos de acesso, assim faco um total que inclui o consumo mais os custos… se conseguir adiciono aqui


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade