Force STATE_CLASS_TOTAL_INCREASING to reset to 0 (#54751)
* Force STATE_CLASS_TOTAL_INCREASING to reset to 0 * Tweak * Correct detection of new cycle * Fix typing
This commit is contained in:
parent
8eec949835
commit
3a78f1fce6
2 changed files with 8 additions and 4 deletions
|
@ -308,7 +308,7 @@ def compile_statistics(
|
|||
elif old_state is None and last_reset is None:
|
||||
reset = True
|
||||
elif state_class == STATE_CLASS_TOTAL_INCREASING and (
|
||||
old_state is None or fstate < old_state
|
||||
old_state is None or (new_state is not None and fstate < new_state)
|
||||
):
|
||||
reset = True
|
||||
|
||||
|
@ -319,6 +319,10 @@ def compile_statistics(
|
|||
# ..and update the starting point
|
||||
new_state = fstate
|
||||
old_last_reset = last_reset
|
||||
# Force a new cycle for STATE_CLASS_TOTAL_INCREASING to start at 0
|
||||
if state_class == STATE_CLASS_TOTAL_INCREASING and old_state:
|
||||
old_state = 0
|
||||
else:
|
||||
old_state = new_state
|
||||
else:
|
||||
new_state = fstate
|
||||
|
|
|
@ -383,7 +383,7 @@ def test_compile_hourly_sum_statistics_total_increasing(
|
|||
"min": None,
|
||||
"last_reset": None,
|
||||
"state": approx(factor * seq[5]),
|
||||
"sum": approx(factor * 40.0),
|
||||
"sum": approx(factor * 50.0),
|
||||
},
|
||||
{
|
||||
"statistic_id": "sensor.test1",
|
||||
|
@ -393,7 +393,7 @@ def test_compile_hourly_sum_statistics_total_increasing(
|
|||
"min": None,
|
||||
"last_reset": None,
|
||||
"state": approx(factor * seq[8]),
|
||||
"sum": approx(factor * 70.0),
|
||||
"sum": approx(factor * 80.0),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue