Esta é uma pergunta recorrente e existem alguns posts anteriores que podem causar alguma confusão. Assim sendo vamos por passos:
- É essencial distinguir entre potência eléctrica e energia elétrica.
- Os operadores de Energia Eléctrica (EDP, GALP, Endesa, etc) facturam a energia consumida em kWh (valor variável) e a potência contratada (valor fixo de acordo com uma tabela pré-definida).
- A maioria dos dispositivos DYI (mas não só) permitem ler a potência instantânea em W.
- Para podermos aproximar o valor a pagar ao fim do mês é necessário entrar com os seguintes custos:
- Energia Consumida (preço por kWh)
- Potência Contratada (preço por potencia contratada)
- Taxas (preço fixo)
- IVA
- Primeiro passo é criar um sensor com informação de potencia que está a ser consumida. (se tiver acesso a um sensor com energia consumida, salte para o próximo ponto)
- Vou assumir um sensor baseado numa bobine/pinça que faz amostragem periódica da potencia num dado circuito.
- Vamos assumir que esse mesmo sensor publica num tópico MQTT esse mesmo valor, pelo que posso criar o sensor:
- platform: mqtt
state_topic: "devices/m-duino/emontx"
name: "Potencia Rede"
unit_of_measurement: "W"
- Neste momento temos potencia e precisamos de converter para energia, vamos recorrer ao sensor integration:
- platform: integration
name: "Energia Rede"
source: sensor.potencia_rede
unit_prefix: k
round: 2
- Agora temos um sensor que mede a energia que vamos consumindo: basicamente temos um contador de electricidade em tudo igual ao do fornecedor de energia (EDP distribuição)
- Neste passo vamos automatizar as leituras do contador, reiniciando todos os períodos de contagem (em Portugal consumos são contabilizados ao mês), para o efeito vamos recorrer ao sensor utility_meter:
- Vamos criar duas contagens, para o dia e para o mês, para um plano de tarifas bi-horárias.
utility_meter:
daily_energy:
source: sensor.energia_rede
cycle: daily
tariffs:
- Fora de Vazio
- Vazio
monthly_energy:
source: sensor.energia_rede
cycle: monthly
tariffs:
- Fora de Vazio
- Vazio
- Este componente vai dar origem a 4 sensores diferentes: 2 para contagens diárias (Vazio e Fora de Vazio) e 2 para contagens mensais (Vazio e Fora de Vazio)
- Se tiver tarifa normal, basta apagar as linhas correspondentes às tarifas, e desta feita terá apenas dois novos sensores: para dia e para o mês
- Agora que sabemos quanta energia gastamos por mês, podermos estimar o valor da factura até ao momento
- Vamos usar um sensor template e vamos comparar a factura bi-horário com a factura normal (para ver se compensa o tarifário actual)
- platform: template
sensors:
fatura_energia:
friendly_name: "Fatura Energia bi-horário"
value_template: >-
{{ ((float(states.sensor.monthly_energy_vazio.state) * 0.11 + float(states.sensor.monthly_energy_fora_de_vazio.state) * 0.187 + now().day * 0.3832 + 2.85 ) * 1.23 ) | round(2) }}
unit_of_measurement: "€"
fatura_energia_simples:
friendly_name: "Fatura Energia simples"
value_template: >-
{{ ((float(states.sensor.monthly_energy_vazio.state) * 0.1544 + float(states.sensor.monthly_energy_fora_de_vazio.state) * 0.1544 + now().day * 0.3832 + 2.85 ) * 1.23 ) | round(2) }}
unit_of_measurement: "€"
- Explicando os valores:
- 0.11€/kWh é o custo da energia em vazio
- 0.187€/kWh é o custo da energia fora de vazio
- 0.1544€/kWh é o custo da energia no tarifário normal
- 0.3823€/dia é o custo de 6.9kVA de potencia contratada
- 2.85€ é a soma das taxas e taxinhas (contribuições audiovisuais e afins)
- 1.23 para obter o valor da fatura com IVA a 23%
- (BONUS) Para quem tem tarifário bi-horario (ou até tri-horario) uma das maiores dificuldades é conseguir implementar uma automação que vá alterando a tarifa do utility_meter.
- Para automatizar quase tudo vamos recorrer a um custom_component, o electricity:
electricity:
edp:
country: Portugal
operator: EDP
plan: Bi-horário - ciclo diário
- Este componente vai apresentar a tarifa actual, e graças a uma automação podemos comutar adequadamente os nossos utility_meters:
- alias: tariff change
trigger:
- platform: state
entity_id: electricity.edp
action:
- service: utility_meter.select_tariff
entity_id: utility_meter.daily_energy
data_template:
tariff: "{{ trigger.to_state.state }}"
- service: utility_meter.select_tariff
entity_id: utility_meter.monthly_energy
data_template:
tariff: "{{ trigger.to_state.state }}"
Espero que este tutorial possa ser útil a todos