Agora precisava da vossa ajuda para “terminar” esta processo que é:
Eu leio os leitores e actualizo os topicos de XX em XX segundos, eu tenho o valor da rate, tenho o valor do consumo mas preciso de multiplicar ambos para obter um acumulado até ao momento.
ex:
frigorifico 1Kwh (sim eu sei que é absurdo mas para explicar ajuda)
em horario económico a rate por kwh é: 0.0969€
logo o consumo é de (1kwh/3600)*XX segundos
Por outras palavras em consumi 1kwh mas apenas durante o templo mqtt_topic.last_update-now()
Pois… Eu ando nisso à muito tempo e não consigo arranjar uma maneira simples de o fazer. Tenho um medidor de energia geral com um ESP12 e um XTM18 e penso que a melhor maneira é o medidor enviar os topicos MQTT em função da hora para que se faça a medição separada.
Coloquem os dados no Influx DB e usem a função agregadora INTEGRAL…
Muito mais fácil, preciso e com grafana ainda faz uns gráficos bonitos
É possível utilizar InfluxDB + Grafana com o Hassio?
É possivel sim, só procurar nos addon’s (não me perguntem mais pq eu nao uso hassio)
O repositório a instalar é este:
Depois é só instalar o InfluxDb e o Grafana Multiarch.
ATENÇÃO: Ler primeiro o readme do GitHub de cada addon…
O influx é possível usar com qualquer sensor seja de energia ou de outra coisa qq
Respondendo ao pedido de tutorial, não ha nada a saber:
- Temos um sensor que mede os W instantâneos (power)
- Guardamos essa informação no influx
- Usamos de um sensor influx para calcular os kWh:
influxdb:
host: !secret influxdb_host
username: !secret influxdb_user
password: !secret influxdb_password
include:
entities:
- sensor.power
sensor:
- platform: influxdb
host: !secret influxdb_host
username: !secret influxdb_user
password: !secret influxdb_password
queries:
- name: day energy fora vazio
unit_of_measurement: kWh
where: '"entity_id" = ''power'' AND time >= ''{{ now().strftime("%Y-%m-%d 08:00:00")}}'' AND time < ''{{ now().strftime("%Y-%m-%d 22:00:00") }}'' tz(''Europe/Lisbon'')'
measurement: '"W"'
group_function: 'integral'
field: '"value",1h'
value_template: '{{ (value | float / 1000) | round(1) }}'
- name: day energy total
unit_of_measurement: kWh
where: '"entity_id" = ''power'' AND time >= ''{{ now().strftime("%Y-%m-%d 00:00:00") }}'' tz(''Europe/Lisbon'')'
measurement: '"W"'
group_function: 'integral'
field: '"value",1h'
value_template: '{{ (value | float / 1000) | round(1) }}'
- platform: template
sensors:
day_energy_vazio:
friendly_name: "Energia Vazio"
value_template: >-
{% if (float(states.sensor.day_energy_total.state) - float(states.sensor.day_energy_fora_vazio.state)) | round (3) >=0 %}
{{ (float(states.sensor.day_energy_total.state) - float(states.sensor.day_energy_fora_vazio.state)) | round (3)}}
{% else %}
0
{% endif %}
unit_of_measurement: "kWh"
O codigo acima é para bihorario ciclo diario.
Obrigado pelo tutorial @dgomes! Ficou impecável!
Neste momento apenas monitorizo uma tomada na cozinha, mas futuramente pretendia implementar no quadro geral.
Vou implementar está solução no geral do apartamento. Podem dar ideia das configurações dos add ons? O meu sistema de monitorização é um luamcu + rs485/TTL + Modbus 90amp.
é possivel fazer isto com mqtt ou tem de ser influxdb?
O MQTT é apenas um protocolo que transporta dados, não os transforma.
O InfluxDB é uma base de dados temporal que tem diversas funções que transformam os dados. Nomeadamente tem a função integral, que permite transformar os dados de consumos instantâneos em consumos hora (que são os usados pela rede elétrica para te cobrar)
Dito isto, sim precisas do InfluxBD
Ja instalei no meu orange pi só preciso de umas dicas para meter a funcionar falei contigo no face hehe
Boas pessoal,
Quero avançar com esta configuração e creio que no meu caso até é mais fácil pois não tenho Ciclo Horário, tendo uma tarifa única, no entanto, tenho uma dúvida sobre as diferenças entre Cheio, Ponta e Vazio. Aluém me pode dar umas luzes, pf?
Abraço
Se tens tarifa unica, não existem cheias, pontas nem vazias.
https://www.edp.pt/particulares/apoio-cliente/opcao-horaria/#tabbed-navigation-tab-2
Viva Diogo,
Na factura da Endesa tenho descrito “Ciclo horário: Sem ciclo” mas nas leituras tenho, por exemplo:
Real Cheia : 944 kWh
Real Ponta : 394 kWh
Real Vazio : 916 kWh
Tenho a dizer que consomes uma barbaridade de energia
O que tu consomes é a soma desses kWh.
Estive a fazer contas e consumi 121kWh num mês, o que corresponde a diferença entre as somas dessas valores no inicio e no final do mês.
Assim sendo, a aplicação do template para apresentar o valor fica bastante mais facilitado, correcto?