Files
ems/docs/04-modules/energy-flows.md
Dusan Vojacek ed88ef8910
Some checks failed
CI and deploy / migration-check (push) Failing after 11s
CI and deploy / deploy (push) Has been skipped
oprava import/export kwh
2026-05-01 14:58:29 +02:00

3.4 KiB
Raw Permalink Blame History

Analýza energetických toků (Fáze 2)

Účel

Stránka Toky (/energy-flows) zobrazuje modelované směrové toky energie mezi FVE, sítí, baterií a spotřebou za den / měsíc. Nejedná se o přímé měření větví u střídače, ale o prioritní alokaci z minutové telemetrie.

Výpočet

Funkce ems.fn_fill_audit_interval pro každý 15min slot:

  1. Načte minutové řádky ems.telemetry_inverter (pv_power_w, load_power_w, grid_power_w, battery_power_w).
  2. Pro každou minutu aplikuje alokaci (pořadí): PV → spotřeba → nabíjení baterie → export; pak vybití baterie → spotřeba / export; síť → zbytek spotřeby a nabíjení.
  3. Součet výkonů × 1/60 h = Wh za slot; výsledek v sloupcích flow_*_wh v ems.audit_interval.

Import / export ze sítě (actual_grid_import_wh / actual_grid_export_wh): nejprve se bere delta z Deye registrů grid_import_total_wh / grid_export_total_wh (pokud je k dispozici), jinak součet kladných resp. záporných dílů z grid_power_w po minutách. Okamžitě poté fn_fill_audit_interval sjednotí hodnoty funkcemi ems.fn_audit_grid_import_wh_for_economics / fn_audit_grid_export_wh_for_economics: při jednosměrném toku v slotu (typicky jen import nebo jen export podle uložených Wh) vezme maximum z čítače a z odhadu max(0, P_grid) × ¼ h resp. |min(0, P_grid)| × ¼ h z průměrného grid_power_w — u některých instalací lifetime čítač Deye rostl pomaleji než integrál z výkonu, takže bez této úpravy ekonomika a záložka Ekonomika podhodnocovaly kWh. Při obousměrném toku ve stejném 15min slotu (obě strany > 0 Wh) se uložený split z čítače/per-minute nemění.

Sloupce: flow_pv_to_load_wh, flow_pv_to_batt_wh, flow_pv_to_grid_wh, flow_batt_to_load_wh, flow_batt_to_grid_wh, flow_grid_to_load_wh, flow_grid_to_batt_wh.

Základní 6 Wh veličin (import/export, PV, baterie, load) zůstává ve Fázi 1; toky jsou nadstavba.

API

  • GET /api/v1/sites/{site_id}/energy-flows/daily?month=YYYY-MM — kromě toků vrací denní součty financí sítě: grid_import_cashflow_czk, grid_export_revenue_czk (jako vw_economics_interval, join na vw_site_effective_price) a nákladový rozpad importu grid_to_load_cost_czk / grid_to_batt_cost_czk (efektivní nákupní cena × modelovaný tok).
  • GET /api/v1/sites/{site_id}/energy-flows/daily/{day}/intervals

SQL

  • View ems.vw_energy_flows_daily denní agregace z audit_interval.
  • PostgREST role ems_anon: GRANT SELECT na vw_energy_flows_daily (viz repeatable grants).

UI

  • Sankey (@nivo/sankey) součet toků za celý měsíc nebo za jeden vybraný den (rozbalovací pole „Graf a karty“; klik na název dne v tabulce také přepne den). Síť je ve vizualizaci rozdělena na Import ze sítě a Export do sítě (jinak by vznikl cyklus síť↔baterie a knihovna hlásí „circular link“).
  • Pět perspektivních karet: FVE, síť, baterie, spotřeba a financí (nákup/prodej v Kč, průměrná cena Kč/kWh, rozpad nákladů importu do spotřeby vs. baterie; stejný měsíční/denní rozsah jako Sankey).
  • Tabulka dnů s rozbalením na 15min intervaly.

Backfill

Po nasazení migrace V042 a opakovatelné rutiny:

SELECT ems.fn_fill_audit_range(<site_id>, '<od>'::timestamptz, now());