Прогноз нагрузки по погоде
Нагрузка источников на ближайшие сутки по прогнозу погоды Open-Meteo: пересчёт последнего расчёта по температурному графику и сравнение с фактом по датчикам на выходе источника.
Возможности
- Нагрузка каждого источника на ближайшие сутки по прогнозу погоды: пик и среднее, Гкал/ч, и отпуск за сутки, Гкал.
- По выбранному источнику — два графика: температура воздуха и нагрузка за прошедшие 48 часов и следующие 72 часа, с разбивкой на отопление, вентиляцию и ГВС.
- Сравнение с фактом: где на выходе источника есть расходомеры и термометры, под графиком — среднее расхождение модели с фактом в процентах.
- «Обновить погоду» — взять свежий прогноз Open-Meteo; «Прогноз файлом» — загрузить температуру воздуха по часам из своего файла.
- «Расчёт на N °C (минимум суток)» — плановый расчёт фрагмента источника на самую низкую температуру ближайших суток.
Как это работает
Основа. Для каждого источника берётся последний расчёт фрагмента, в котором есть нагрузки потребителей этого источника. Фрагменты-копии сценариев «что если» (tgid_scenario) пропускаются: это не источники города. Из него — расчётная нагрузка при Tн этого расчёта: отопление, вентиляция, ГВС по закрытой и открытой схеме. Источники в таблице идут по убыванию расчётной нагрузки, первый выбирается сам.
Пересчёт на погоду. Отопление и вентиляция пересчитываются по относительной нагрузке температурного графика города: Q(Tн) = Q(Tн расчёта) × Qотн(Tн) / Qотн(Tн расчёта). За краями графика берётся крайняя точка — выше точки излома нагрузка не падает. ГВС закрытой схемы — среднечасовая, без изменения; открытой — пропорционально (t подачи − tх) / (t расчёта − tх), холодная вода tх — из карточки источника, по умолчанию 5 °C. Тепловые потери сети в прогноз не входят.
Факт. Если на выходе источника заведены датчики телеметрии: Q = (G1 × (t1 − tх) − G2 × (t2 − tх)) / 1000, Гкал/ч; без расхода обратки — G1 × (t1 − t2) / 1000. Расхождение «по модулю» — среднее по прошлым часам, где есть и факт, и фактическая погода.
Погода. Часовые температуры лежат в tgid_weather. С Open-Meteo берутся 3 прошедших и 3 следующих дня; обновление — само, когда кто-то открыл вкладку, а данным больше 60 минут (настраивается, не меньше 10); после сбоя связи — повтор через 5 минут. Координаты — из настроек, без них — центр источников города. Температура принимается от −70 до 60 °C. Значения, введённые вручную или файлом, Open-Meteo не перезаписывает.
Расчёт на минимум суток. Кнопка ставит в общую очередь плановый расчёт фрагмента на целое значение минимальной температуры ближайших суток. Расчёт называется «Прогноз <дата> на N °C» и становится последним расчётом фрагмента: от него дальше считают и прогноз, и сравнение датчиков, и карта по умолчанию.
Что нужно для работы
- Плановый расчёт фрагмента с источником и нагрузками потребителей; температурный график города.
- Для сравнения с фактом — датчики расхода и температуры на выходе источника (вкладка «Датчики»).
- Просмотр — всем, кто вошёл.
- «Обновить погоду» и «Прогноз файлом» — право «Журналы: ремонты, ПТС, акты, ТУ, привязки» и включённая правка данных.
- «Расчёт на N °C» — право «Запуск расчётов».
- Для Open-Meteo — выход сервера в интернет.
Шаги
Откройте «Инструменты» и наберите в поиске «Телеметрия: факт против модели» — пункт выделен рамкой.

Нажмите пункт — откроется окно.

Откройте вкладку «Прогноз» — таблица источников с нагрузкой на ближайшие сутки; первый источник выбран сразу, под таблицей — его графики.

Щёлкните строку другого источника: графики температуры воздуха и нагрузки, под ними — расхождение модели с фактом, если на выходе источника есть датчики.

Примеры
Копия Алматы, 6 ноября. Погода Open-Meteo для точки (43,31; 76,94). В таблице две строки — АТЭЦ-1 и АТЭЦ-2 фрагмента «Маг. сети для расчета НС»: копии сценариев «что если» (здесь «Перспектива 2035») в прогноз не попадают. Первой выбирается самая нагруженная — АТЭЦ-1.
АТЭЦ-1 фрагмента «Маг. сети для расчета НС»: основа — расчёт №3 при −25 °C, 672 потребителя, 1 460,2 Гкал/ч (отопление 1 059,26, вентиляция 111,93, ГВС открытой схемы 289). Воздух на ближайшие сутки от 3,3 до 15,9 °C, пик и среднее — 574,9 / 511,4 Гкал/ч, отпуск 12 273 Гкал. Кнопка предлагает «Расчёт на 3 °C (минимум суток)».
У этой строки на выходе есть датчики пилота ALM-TEC1-T1, T2, G1, G2. За 29 часов с фактом модель в среднем выше факта на 34,2 %: например, 4 ноября в 15:00 UTC при 9,9 °C модель — 474,9 Гкал/ч, факт — 363,1.
Если не получается
- «Нет источников с расчётом нагрузок: выполните плановый расчёт фрагмента с источником.» — нет ни одного расчёта с нагрузками по источникам.
- «Погода не обновилась» — нет связи сервера с Open-Meteo; прогноз остаётся прежним.
- «Нет источников с расчётом нагрузок: выполните плановый расчёт фрагмента с источником.» — нет ни одного расчёта с нагрузками по источникам.
- «Нет источника с расчётом нагрузок и температурным графиком» — у выбранного источника пропал расчёт или нет температурного графика.
- «Таблица погоды ещё создаётся (доводка базы города) — повторите через минуту».
- В строке погоды «— Open-Meteo недоступен: …» — нет связи сервера с интернетом; прогноз остаётся прежним. «— нет координат города: задайте WEATHER_LAT и WEATHER_LON» — нет ни координат, ни источников с местом.
- «Прогноз погоды — вручную или файлом (Open-Meteo выключен)» — на сервере выключен поставщик погоды; загрузите прогноз файлом.
- «Файл больше 5 МБ», «В файле нет строк «время; температура» от −70 до 60 °C», «В файле несколько колонок значений (…)» — в файле прогноза должна быть одна колонка температуры.
- «На выходе источника нет датчиков расхода и температуры — факт не сравнивается.» — заведите датчики на вкладке «Датчики».
- Сценарии и перспективы в списке рядом с действующими источниками — у копий фрагментов есть свои расчёты нагрузок; смотрите подпись фрагмента под названием источника.
Для администратора
- Погода:
WEATHER_PROVIDER(open-meteoилиnone),WEATHER_LAT,WEATHER_LON,WEATHER_REFRESH_MIN,WEATHER_PAST_DAYS,WEATHER_FORECAST_DAYS. - Таблицу
tgid_weatherAPI создаёт сам при доводке базы города. - Расчёт на минимум суток идёт в общую очередь расчётов города, как плановый расчёт из окна расчётов.
Для разработчика
- API:
GET /api/v1/forecast/load(сводка, ближайшие 24 часа),GET /api/v1/forecast/load/{source_id}?past_hours=48&hours=72(до 336 и 384 часов),POST /api/v1/forecast/weather(часы вручную),POST /api/v1/forecast/weather/import(файл),POST /api/v1/forecast/weather/refresh. - API, код:
routers/load_forecast.py,database/load_forecast.py,database/weather.py. - Веб:
components/LoadForecastPanel.vue(вкладка «Прогноз» вcomponents/TelemetryDialog.vue),utils/loadForecast.ts; расчёт на Tн —fastApiService.runSetyMode. - Тесты:
tests/utils/loadForecast.spec.ts; API —test_load_forecast.py; e2e —e2e/functions/other-networks.spec.ts.
