feat(ui): сглаживать температуру скользящим средним за 5 замеров

Мгновенное значение плавает на +-1 градус, и цифра мельтешила каждую
секунду при полном покое. На экран теперь идёт среднее за
TEMP_AVG_SAMPLES последних замеров; агент шлёт раз в секунду, так что
это ровно 5 секунд.

Сумма пересчитывается заново на каждом шаге, а не копится: на пяти
числах это бесплатно, зато нет накопления ошибки округления за сутки
непрерывной работы. Окно сбрасывается при обрыве связи, иначе после
паузы среднее считалось бы по значениям до обрыва.

Тревога переведена на усреднённое значение: иначе экран показывал бы 84,
когда мигание уже идёт. Загрузка и график намеренно остались сырыми.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
oskarvitaliiandClaude Opus 5 committed 2026-09-15 00:41:20 +07:00
1 parent 1047ae1452
commit fcc96f5090
3 files changed
+64 -3

No files matched your search

+9
View File
@@ -37,6 +37,15 @@ static const uint8_t PIN_LED = 8;
// высокий уровень и нужен.
static const uint8_t LED_ACTIVE_LEVEL = LOW;
// --- Сглаживание показаний -------------------------------------------------
// Скользящее среднее температуры: цифра не должна мельтешить на +-1 градус,
// пока ничего не происходит. Единица - один принятый замер, а агент шлёт раз
// в секунду, поэтому 5 означает "среднее за последние 5 секунд".
// Загрузка сознательно не сглаживается: её скачки настоящие, ради них на неё
// и смотрят.
static const uint8_t TEMP_AVG_SAMPLES = 5;
// --- График ----------------------------------------------------------------
// Шкала фиксированная: при автомасштабе шум +-1 градус в простое