Fix adjusting 5-minute statistics (#69921)

This commit is contained in:
Erik Montnemery 2022-04-12 18:10:17 +02:00 committed by GitHub
parent a9742cc445
commit 80ff1ecb2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 10 deletions

View file

@ -1316,17 +1316,20 @@ def adjust_statistics(
if statistic_id not in metadata: if statistic_id not in metadata:
return True return True
tables: tuple[type[Statistics | StatisticsShortTerm], ...] = ( _adjust_sum_statistics(
Statistics, session,
StatisticsShortTerm, StatisticsShortTerm,
metadata[statistic_id][0],
start_time,
sum_adjustment,
)
_adjust_sum_statistics(
session,
Statistics,
metadata[statistic_id][0],
start_time.replace(minute=0),
sum_adjustment,
) )
for table in tables:
_adjust_sum_statistics(
session,
table,
metadata[statistic_id][0],
start_time,
sum_adjustment,
)
return True return True

View file

@ -2464,6 +2464,16 @@ def test_compile_statistics_hourly_daily_monthly_summary(
}, },
] ]
# Adjust the inserted statistics
sum_adjustment = -10
sum_adjustement_start = zero + timedelta(minutes=65)
for i in range(13, 24):
expected_sums["sensor.test4"][i] += sum_adjustment
recorder.async_adjust_statistics(
"sensor.test4", sum_adjustement_start, sum_adjustment
)
wait_recording_done(hass)
stats = statistics_during_period(hass, zero, period="5minute") stats = statistics_during_period(hass, zero, period="5minute")
expected_stats = { expected_stats = {
"sensor.test1": [], "sensor.test1": [],