[Edge] Only allow stagnant/rising _sum energy channel values #3298
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change ensures that new values for energy channels of the _sum component can only be greater or equal. The function description of setValue() says that, but the function didn't check for it. Having decreasing energy channel values can be problematic because it breaks for example the calculation of the consumption in the history.
Simulation
To verify this I created a simple simulation which can be run in the simulator app.
simulation_request.json
The simulation runs a constant 10kW pv inverter and a meter that switches between 2kW and 10kW
I plotted the results using a simple python script.
Result without fix
simulation_result_error.json

We can see that the ConsumptionActiveEnergy channel value does sometimes decrease when we have a higher production than usage.
Result with fix
simulation_result_fixed.json

With this fix the channel values can never drop but only increase.