Medidor Elsys MQTT - Restart

Bom dia

Configurei um medidor de energia da Elsys (MQTT) em meu Home Assistant. Tudo funcionando perfeitamente, a unica questão é que o medidor fornece as grandezas eletricas separadas (corrente, tensão, potência) por fase. Para que se tenha uma exibição geral, fiz a soma das grandezas das fases em um unico valor, para que tenha uma exibição do total, conforme abaixo:

A questão é que toda vez que reinicio o Home Assistant, o valor da variavel torna-se zero, gerando erro nos valores de consumo diario e agora na nova seção de Energy.

image

Porem, as variaveis somadas que formam a grandeza total, não zeram, somente tem uma pequena regiao “em branco” no momento do reinicio:

Ja tentei utilizar o retain, já deixei as variaveis ligadas e desligadas no recorder, mas nada tem efeito. Toda vez que reinicio, as variaveis “zeram” e ocasionam erros nas leituras. Teria que ter um modo de guardar os valores enquanto o HA reinicia.

Agradeço a quem puder ajudar!

Olá não tenho 100% de certeza mas eu acredito que o retain não está funcionando, se este for o caso o valor não está realmente zerando. Quando um sensor mqtt no HA não tem retain o valor inicial é undefined, isso explicaria o buraco o gráfico. Uma solução para isso seria adicionar um if no template dos sensores que diz se eles forem indefinidos o valor é zero se não o valor é o número recebido do mqtt.

ola!

não tenho esse problema.
adicionei os sensores conforme abaixo no Configuration.yaml

Também adicionei uma linha com “recorder:” com mesmo arquivo.

La no final, também adicionei a linha para adicionar o last_reset em todos.
Obrigatório para os medidores de consumo aparecerem no novo dash de energia

sensor:

  • platform: mqtt
    name: “elsys_voltage_1”
    unique_id: “elsys_voltage_1”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.voltage_1 }}”
    unit_of_measurement: “V”
    device_class: voltage
    state_class: measurement

  • platform: mqtt
    name: “elsys_voltage_2”
    unique_id: “elsys_voltage_2”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.voltage_2 }}”
    unit_of_measurement: “V”
    device_class: voltage
    state_class: measurement

  • platform: mqtt
    name: “elsys_voltage_3”
    unique_id: “elsys_voltage_3”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.voltage_3 }}”
    unit_of_measurement: “V”
    device_class: voltage
    state_class: measurement

  • platform: mqtt
    name: “elsys_ampere_1”
    unique_id: “elsys_ampere_1”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.ampere_1 }}”
    unit_of_measurement: “A”
    device_class: current
    state_class: measurement

  • platform: mqtt
    name: “elsys_ampere_2”
    unique_id: “elsys_ampere_2”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.ampere_2 }}”
    unit_of_measurement: “A”
    device_class: current
    state_class: measurement

  • platform: mqtt
    name: “elsys_ampere_3”
    unique_id: “elsys_ampere_3”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.ampere_3 }}”
    unit_of_measurement: “A”
    device_class: current
    state_class: measurement

  • platform: mqtt
    name: “elsys_kwh_1”
    unique_id: “elsys_kwh_1”
    device_class: energy
    state_class: measurement
    unit_of_measurement: “kWh”
    #last_reset_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    #last_reset_value_template : “{{ value_json.context.timestamp_ctx }}”
    #last_reset: ‘1970-01-01T00:00:00+00:00’
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.consumo_kwh_1 }}”

  • platform: mqtt
    name: “elsys_kwh_2”
    unique_id: “elsys_kwh_2”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.consumo_kwh_2 }}”
    device_class: energy
    state_class: measurement
    unit_of_measurement: “kWh”

  • platform: mqtt
    name: “elsys_kwh_3”
    unique_id: “elsys_kwh_3”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.consumo_kwh_3 }}”
    unit_of_measurement: “kWh”
    device_class: energy
    state_class: measurement

  • platform: mqtt
    name: “elsys_kw_1”
    unique_id: “elsys_kw_1”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.kw_1 }}”
    unit_of_measurement: “kW”
    device_class: power
    state_class: measurement

  • platform: mqtt
    name: “elsys_kw_2”
    unique_id: “elsys_kw_2”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.kw_2 }}”
    unit_of_measurement: “kW”
    device_class: power
    state_class: measurement

  • platform: mqtt
    name: “elsys_kw_3”
    unique_id: “elsys_kw_3”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.kw_3 }}”
    unit_of_measurement: “kW”
    device_class: power
    state_class: measurement

  • platform: mqtt
    name: “elsys_fp_1”
    unique_id: “elsys_fp_1”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.fp_1 }}”
    unit_of_measurement: “%”
    device_class: power_factor
    state_class: measurement

  • platform: mqtt
    name: “elsys_fp_2”
    unique_id: “elsys_fp_2”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.fp_2 }}”
    unit_of_measurement: “%”
    device_class: power_factor
    state_class: measurement

  • platform: mqtt
    name: “elsys_fp_3”
    unique_id: “elsys_fp_3”
    state_topic: “/v1.6/devices/elsys_bcddc2c70f08/emw3”
    value_template: “{{ value_json.context.fp_3 }}”
    unit_of_measurement: “%”
    device_class: power_factor
    state_class: measurement

Adicionando last_reset no configuration.yaml

homeassistant:
customize_glob:
sensor.elsys_*:
last_reset: “2021-07-30T00:00:00+00:00”

Bom dia.

Os valores das variáveis que recebo via MQTT do Medidor Elsys não têm problema, quando reinicio o HA eles somente não possuem leitura no período e não ficam “zerados”.

O problema são os sensores que são resultados aritméticos dos sensores MQTT (abaixo). Esses se tornam zero quando eu reinicio o HA e causam esses saltos nas leituras. Gostaria que eles ficassem ou no mesmo valor de antes de reiniciar ou não tivesses nenhum enquanto o HA reinicia, como acontece com os sensores MQTT.

Bom dia, resolvi o problema adicionando uma condição no template.

Se os valores que formam o sensor são “0”, é assumido o valor do sensor. Caso sejam diferentes, a operação aritmética é efetuada.

 consumo_solar:
   unit_of_measurement: "kWh" 
   value_template: >-
    {% if states('sensor.emw3_saldo_total')|float == 0 or states('sensor.consumo_cpfl')|float == 0 or states('sensor.pv_total_yeldl')|float == 0 %}
     {{ states('consumo_solar') }}
    {% else %}
      {{ states('sensor.emw3_saldo_total') | float - states('sensor.consumo_cpfl') | float + states('sensor.pv_total_yeldl') | float }}
    {% endif %}

  consumo_total:
   unit_of_measurement: "kWh"
   value_template: >-
    {% if states('sensor.consumo_cpfl')|float == 0 or states('sensor.consumo_solar')|float == 0 %}
     {{ states('consumo_total') }}
    {% else %}
      {{ states('sensor.consumo_cpfl') | float + states('sensor.consumo_solar') | float }}
    {% endif %}

  injetado_total:
   unit_of_measurement: "kWh"
   value_template: >-
    {% if states('sensor.emw3_saldo_total') | float == 0 or states('sensor.consumo_cpfl') | float == 0 %}
     {{ states('injetado_total') }}
    {% else %}
      {{ (states('sensor.emw3_saldo_total') | float - states('sensor.consumo_cpfl') | float ) * -1 }}
    {% endif %}

Obrigado a todos!