diff --git a/docs/04-modules/energy-flows.md b/docs/04-modules/energy-flows.md index 54e7e44..3baffb7 100644 --- a/docs/04-modules/energy-flows.md +++ b/docs/04-modules/energy-flows.md @@ -28,7 +28,7 @@ Základní 6 Wh veličin (import/export, PV, baterie, load) zůstává ve Fázi ## UI -- Sankey (`@nivo/sankey`) – součet toků za zvolený měsíc. +- Sankey (`@nivo/sankey`) – součet toků za zvolený měsíc. 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“). - Tři perspektivní karty (FVE / síť / baterie). - Tabulka dnů s rozbalením na 15min intervaly. diff --git a/frontend/src/components/EnergyFlowSankey.tsx b/frontend/src/components/EnergyFlowSankey.tsx index 7b73818..8d41ec7 100644 --- a/frontend/src/components/EnergyFlowSankey.tsx +++ b/frontend/src/components/EnergyFlowSankey.tsx @@ -10,11 +10,17 @@ export type FlowTotals = { grid_to_batt_kwh: number } +/** + * d3-sankey vyžaduje acyklický graf. Jeden uzel „Síť“ vede na cyklus + * Síť→Baterie (nabíjení) a Baterie→Síť (export) → „circular link“. + * Rozdělení na Import (zdroj) a Export (stok) cyklus odstraní. + */ const NODES = [ { id: 'FVE' }, - { id: 'Síť' }, + { id: 'Import ze sítě' }, { id: 'Baterie' }, { id: 'Spotřeba' }, + { id: 'Export do sítě' }, ] as const function buildLinks(t: FlowTotals): { source: string; target: string; value: number }[] { @@ -24,11 +30,11 @@ function buildLinks(t: FlowTotals): { source: string; target: string; value: num } add('FVE', 'Spotřeba', t.pv_to_load_kwh) add('FVE', 'Baterie', t.pv_to_batt_kwh) - add('FVE', 'Síť', t.pv_to_grid_kwh) + add('FVE', 'Export do sítě', t.pv_to_grid_kwh) add('Baterie', 'Spotřeba', t.batt_to_load_kwh) - add('Baterie', 'Síť', t.batt_to_grid_kwh) - add('Síť', 'Spotřeba', t.grid_to_load_kwh) - add('Síť', 'Baterie', t.grid_to_batt_kwh) + add('Baterie', 'Export do sítě', t.batt_to_grid_kwh) + add('Import ze sítě', 'Spotřeba', t.grid_to_load_kwh) + add('Import ze sítě', 'Baterie', t.grid_to_batt_kwh) return out }