multisite update dokumentace
All checks were successful
deploy / deploy (push) Successful in 15s
test / smoke-test (push) Successful in 3s

This commit is contained in:
Dusan Vojacek
2026-04-05 22:11:50 +02:00
parent 9b9ce33983
commit 4881966d00
6 changed files with 28 additions and 12 deletions

View File

@@ -24,7 +24,7 @@ OTE CZ publikuje denní ceny zpravidla **den předem (D-1)** okolo 13:0014:00
- Body: `data.dataLine[0].point[]` s `x` = 1…96 (15min slot), `y` = cena.
- Jednotka ceny se bere z `axis.y.legend` (typicky **EUR/MWh**); kód podporuje i CZK/MWh a CZK/kWh.
- Přepočet do `buy_raw_price_czk_kwh`: EUR/MWh → `× EUR_CZK / 1000`; CZK/MWh → `/ 1000`; CZK/kWh beze změny.
- Časové razítko slotu: půlnoc v **timezone lokality** (`site.timezone`) + (x1)×15 min → UTC.
- Časové razítko slotu při importu: závisí na volbě dne; scheduler a globální import používají **Europe/Prague**. Volitelný parametr `site_id` v `import_ote_prices` umožní pro manuální volání bez explicitního data použít `site.timezone` místo Prahy.
### Legacy / alternativa
@@ -38,6 +38,14 @@ OTE CZ publikuje denní ceny zpravidla **den předem (D-1)** okolo 13:0014:00
Samostatný modul (ne součást FastAPI, ale může být volán z ní jako task).
### Multi-site: jeden import na tick
Tabulka `ems.market_interval_price` je **globální** (jeden zdroj `OTE_CZ` pro celou instalaci). Plánovaný job v `backend/app/main.py` proto pro dnešek a zítřek v `Europe/Prague` doplňuje chybějící dny **nejednou v cyklu po každé lokalitě**, ale jedním HTTP dotazem na OTE a jedním zápisem do DB. Po úspěšném importu se pro **každou aktivní** `ems.site` znovu naplní cache predikce záporných cen (`fn_predict_negative_price_windows`).
Funkce `import_ote_prices(db, site_id=None, target_date=…)` akceptuje volitelný `site_id` jen pro odvození „dnes/zítra“, pokud není zadán `target_date`; při `site_id is None` se použije `Europe/Prague` (shodně se schedulerem).
**Manuální** `POST /api/v1/sites/{site_id}/prices/import` ponechává `site_id` v cestě kvůli kompatibilitě s UI (ověření, že lokalita existuje), ale zapisuje stejná sdílená data jako scheduler.
### Implementované provozní změny (2026-03)
- Robustní HTTP fetch přes `httpx`: