
В прошлой статье мы разобрали валидацию на уровне сбора данных. Но этот уровень проверок — это только начало. Дело в том, что АСКУЭ «яЭнергетик» — это система сложная и многослойная. Связано это с тем, что она закрывает большой пласт задач в области энергетики. И чтобы система была действительно полезной и предоставляла только достоверную информацию, валидация присутствует на всех этапах обработки данных. Далее мы поговорим о методах распознования ошибочных данных на уровне базы и внутренней логики, другими словами на бэкенде.
Глоссарий:
Валидация данных – проверка данных на соответствие установленным требованиям и правилам.
БД – база данных.
Бэкенд – невидимая серверная часть приложения, отвечающая за логику.
Сервер сборщик – сервер, который собирает данные с приборов учета и УСПД.
В первую очередь, после того как сервер-сборщик обработал данные, он передает их в БД в том виде, в котором они поступили. Далее в работу включается бэкенд. Полученные данные он начинает вытягивать для необходимых задач, и здесь же начинается проверка корректности данных.
Валидация показаний счётчика
Главное, что система проверяет на уровне бэкенда у показания, – это формат и обязательные поля.
-
Дата и время как раз являются такими обязательными полями, без них запись не имеет никакого смысла. Также с датой есть множество других проверок: например, проверяется статус счётчика в системе (установлен/снят), и если система видит, что показание пришло с датой раньше установки или позже снятия, то, само собой, это значение не пройдёт проверку.
Рекомендация: поля установки и снятия в нашей системе являются необязательными, однако мы рекомендуем нашим клиентам обязательно указывать даты установки и снятия в системе, чтобы отгородить себя от ложных данных.
-
Следом за проверкой даты следует контроль характеристик показания (контрольное показание, блокировка, игнорирование, id). Если хоть одно поле не соответствует формату, то система забракует эти значения.
|
поле |
тип |
обязательное (да/нет) |
|
Дата и время показания |
date, time |
да |
|
Статусы значения (контрольное показание, блокировка, игнорирование) |
bool |
нет |
|
id показания |
int64 |
да |
-
С дубликатами тоже строго: если есть показания без ошибки на одну дату и время (например, на 1.11.2026 00:00) для одного счётчика, система также блокирует последнее поступившее показание.
Показание может состоять из зон, и для них тоже есть проверки. Здесь система сравнивает предыдущее и новое показания одного счётчика. Количество тарифных зон и их порядок (T1, T2 и т. д.) должны совпадать между собой, а также с настройками счетчика в системе АСКУЭ. Если количество или порядок зон различаются система отклоняет поступившее показание и не использует его.

И перед редактированием или удалением система проверяет доступ и состояние: можно ли обновлять показание, не специальное ли оно, не является ли оно уже не последним по дате, не заблокировано ли, не входит ли в направленный отчёт. Если показание попало в закрытый период, оно защищено от изменений.
Валидация профиля мощности
Для профиля мощности ключевыми являются проверки времени. Первая проверка – «ровное» время: метка времени делится на период интегрирования. Если без остатка – время ровное (14:00 или 14:30 при периоде 30 минут), это стандартные данные, которые идут в расчёт энергии. Если с остатком (Например, 14:17) – неровное, обычно после ручной настройки или сбоя прибора. Система не выбрасывает такие значения, но при расчете профиля энергии эти данные не учитываются.

Дальше профиль проверяется на непрерывность: считается разница между концом предыдущего профиля и началом запрашиваемого – если ноль, профили идут друг за другом без разрывов.
Валидация мгновенных значений
Мгновенные значения – это напряжение, ток, мощность, коэффициент мощности, частота и другие физические параметры. Здесь проверки делятся на две группы: форматную и физическую. Сначала система смотрит, что запись привязана к счётчику и к конкретному моменту времени, иначе сохранять нечего. Все физические величины проверяются на числовой формат.
Кроме формата, система проверяет физическую допустимость коэффициента мощности. Его значение должно находиться в диапазоне от −1 до 1. Например, 1,5 − корректное число по формату, но недопустимое значение коэффициента мощности. Такое значение система будет блокировать.
Сквозные валидации
Помимо проверок отдельных моделей, на бэкенде работают сквозные механизмы.
-
Data Provenance – маркировка происхождения данных. Система знает, откуда пришло значение: от прибора, вручную, из импорта или расчёта.
-
Эталонные профили – сравнение с типовыми профилями для выявления аномалий.
-
Автоматическое восстановление – при разрыве данных запускается ретроспективный доопрос прибора. Если это невозможно, применяется алгоритмическое замещение с фиксацией причины и метода расчёта.
-
Блокировка показаний, участвовавших в отчётности, – закрытые периоды не пересчитываются.
-
Расчётные параметры – Ктт, Ктн, потери. Реальная замена трансформаторов тока не должна приводить к перерасчёту прошлых периодов. В системе это реализуется через смену счётчика с новыми параметрами: старые периоды остаются неизменными.
Рекомендация: изменения Ктт, Ктн и потерь мы рекомендуем оформлять через замену счётчика с новыми параметрами, чтобы сохранить корректность расчётов за прошлые периоды. Подробнее про замену счётчика можно почитать здесь: «Замена электросчётчика в системе „яЭнергетик“: просто и понятно».
В заключении хотим акцентировать внимание на том, что наша система данные не изменяет произвольно и не корректирует под себя. Она именно отсеивает неверные данные. Значения, рассчитанные для заполнения пропусков всегда явно обозначены, чтобы вы могли отличить их от данных прибора. Например, в разделе «Сбор данных / Обзор» на вкладке «Интервальный учёт» такие интервалы выделяются красным на тепловой карте. Другими словами мы концентрируем внимание на чистоте данных, а в случае отсутствия данных производим допустимые заполнения известными рассчетными методами для экономии ресурсов клиента, к слову об этом мы подробно рассказываем в нашей статье О расчетах, балансах и отчетах на яЭнергетик.рф.
В следующей части: Валидация на пользовательском уровне: ошибки в примечаниях, игнорирование показаниях и другие инструменты нашей системы.