Utility meter not accurate

I have noticed that my utility meter is always showing less that when I manually calculate energy by day.
I have Shelly 1PM and I’am using it’s energy sensor.

utility_meter:
  ev_nabijeni_denne:
    name: "EV nabíjení denně"
    source: sensor.shelly1pm_48551903116e_energy
    cycle: daily
    offset: "08:00"

This is the history of the Shelly energy sensor (top) and history of the utility meter (bottom):


You can see that Shelly energy has gaps and that is probably what is causing the lower readings on the utility meter. Gaps are caused by low WiFi signal strength, but that shouldn’t cause any inaccuracy. The value is 10% off!

Does anyone have some experience with it or some advice how to fix this?
Thanks

My Shelly PM and Utility meter are within 0.5% of each other.

I think that the issue I have is with utility meter when there are missing data rather than Shelly.

Must be. At the end of the day I have a 0.3% difference (basically the least significant digit). I have no missing data though.

It must be something with missing data.
Here are the graphs overlayed with same scale:
obrazek
It should go up straight (constant derivation) but on the red (utility meter) there are some flats and it’s not a straight line like on the blue Shelly graph.

Here’s the issue and explanation:

But that was specifically for using the delta option. I’m assuming you aren’t. So you would need to open a new issue.

1 Like

Thank you, for finding that issue.
The merged code indeed covers just delta values option and I am not using that option.

So I solved it on my own.

I have input number and automation:

automation ev_zasuvka_energie:
  - alias: "EV záskuvka energie - poslední validní hodnota"
    trigger:
      platform: state
      entity_id: sensor.shelly1pm_48551903116e_energy
    condition:
      condition: template
      value_template: >
        {{ trigger.to_state.state not in [trigger.from_state.state, 'unavailabl$
    action:
      service: input_number.set_value
      entity_id: input_number.ev_zasuvka_energy
      data_template:
        value: "{{ trigger.to_state.state }}"

And utility meters are set to use this new input number instead.
But still I think that this should be handled some way in utility meter. What the difference between delta values and difference between last known values? It should behave the same.

Any other solution for no need use input_number?

I think that we need a alternative mode for utility meter that use always the last valid value

3 Likes