6.3 KiB
Provozní režimy EMS - praktický přehled
Tenhle dokument je zkrácený provozní cheat sheet. Cíl je jednoduchý:
- rychle poznat, co EMS v daném slotu dělá
- umět to porovnat s
planning_interval - ověřit to na live registrech Deye a ve FE
1. Co je zdroj pravdy
- EMS provozní režim lokality:
ems.site_operating_mode.mode_code - aktivní plán:
ems.planning_interval - fyzická konfigurace invertoru:
asset_inverter+site_grid_connection - live stav Deye: registry 108, 109, 141, 142, 143, 145, 178, 340
Když něco nesedí, porovnávej vždy v tomto pořadí:
planning_intervalcontrol/registersna FEmodbus_commandjournal
2. EMS režimy lokality
AUTO
Normální provoz. EMS bere sloty z planning_interval a podle nich řídí Deye, EV, TČ a signály.
V AUTO se pak mohou objevit sloty s různým exportním záměrem:
PV_SURPLUSBATTERY_SELLNONE
SELF_SUSTAIN
Bezpečný provoz bez obchodní logiky.
- Deye fyzicky běží v PASSIVE
- baterie se nechává pro vlastní spotřebu
- export je jen nouzový ventil, pokud je potřeba kvůli feasibility
CHARGE_CHEAP
- nabíjení ze sítě
- export se nepoužívá
- fyzicky CHARGE
PRESERVE
- baterie je uzamčená
- žádné nabíjení ani vybíjení
- fyzicky PASSIVE
MANUAL
- EMS setpointy nezapisuje
- vše je ruční řízení
3. Tvoje 5 provozních archetypů
1. Standardní režim s přetokem
Co tím myslíme:
- baterie se normálně nabíjí i vybíjí podle plánu
- přetok do sítě je povolený
- exportní limit je jen tvrdý site / inverter cap
- když je baterie plná, přebytek FVE jde do sítě
Jak to je v implementaci:
export_mode = PV_SURPLUSexport_limit_w = hard capsolar_sell = 1deye_physical_mode = PASSIVE- v PASSIVE se pro exportní slot typicky použije
108 = 0,109 = max
Poznámka:
- exportní limit se už netipuje z forecastu
- neomezuješ tedy výkon do sítě podle předpovědi, jen podle hard capu
2. Standardní režim s vypnutým přetokem
Co tím myslíme:
solar_sell = false- přebytek FVE se nesmí posílat do sítě
- jakmile je baterie plná, FVE se utlumí
Jak to je v implementaci:
- tohle není samostatný fyzický Deye režim
- většinou jde o kombinaci:
reg 143 = 0nebo siteno_export- případně
export_ban = trueareg 145 = 0
- fyzicky to pořád bývá PASSIVE
Poznámka:
- tohle je důležité ověřovat na
reg 143areg 145, ne jen nagrid_setpoint_w
3. Prodej přebytku do sítě bez nabíjení baterie
Co tím myslíme:
- baterie není cílem
- nechci ji nabíjet
- chci prodávat celou výrobu do sítě
Jak to je v implementaci:
export_mode = PV_SURPLUSsolar_sell = 1export_limit_w = hard cap
Poznámka k implementaci:
- tohle je v kódu garantované až ve chvíli, kdy planner dá
battery_setpoint_w = 0 - pokud je
battery_setpoint_w > 0, tak současná implementace už dovoluje i nabíjení baterie, i když exportní záměr zůstáváPV_SURPLUS - jinými slovy: čisté „prodávám výrobu, ale baterii nechci nabíjet“ ještě není samostatný fyzický Deye režim, je to kombinace plánovacího setpointu a exportního záměru
Použití:
- vhodné, když je výkupní cena vysoká
- baterii chceš šetřit na jiný slot
4. Šetření baterie
Co tím myslíme:
- když je kupní cena nízká
- nechci brát energii z baterie
- raději budu kupovat ze sítě
Jak to je v implementaci:
battery discharge A = 0- fyzicky PASSIVE
- baterie se nevybíjí, ale podle slotu se může pořád nabíjet nebo držet
Poznámka:
- tohle je jiné než SELL
- tady jen chráníš baterii, neprodáváš ji
5. Aktivní prodej do sítě z baterie
Co tím myslíme:
selling first- baterie prodává do sítě plným výkonem, co dovolí střídač / baterie / síť
Jak to je v implementaci:
export_mode = BATTERY_SELLdeye_physical_mode = SELLreg 142 = 0reg 178 = 32reg 109na max,reg 108 = 0
4. Další režimy, které v praxi existují
CHARGE_CHEAP
- nabíjení ze sítě
- export vypnutý
- fyzicky CHARGE
SELF_SUSTAIN
- vlastní spotřeba
- fyzicky PASSIVE
- export jen jako nouzový ventil
PRESERVE
- baterie uzamčená
- žádné řízení baterie
MANUAL
- EMS nezasahuje
5. Registry, které má smysl kontrolovat
108
Max charge current.
109
Max discharge current.
142
Limit control:
0= selling first1= zero export to load2= zero export to CT
143
Export cap.
- tvrdý site / inverter limit
- neforecastuje se
145
Solar sell:
1= povoleno0= zakázáno
178
Bitové pole:
- bits 4-5 = peak shaving switch
- bits 0-1 = GEN export cut-off u BA81
340
Max solar power pro řízenou FVE A.
- není to exportní cap
- je to strop výroby pole A
6. Co kontrolovat na FE
Planning page
Zkontroluj:
deye_physical_modegrid_setpoint_wexport_limit_wexport_modedeye_gen_cutoff_enabledeffective_buy_priceeffective_sell_price
Control panel
Na živém panelu porovnej:
- reg 142
- reg 143
- reg 145
- reg 178
Reg 143 musí být vidět jako hard cap.
7. Rychlá kontrola nesrovnalostí
- Najdi slot v
Planning - Podívej se na:
battery_setpoint_wgrid_setpoint_wexport_limit_wexport_modedeye_physical_mode
- Otevři
ControlPanel - Porovnej live registry:
- 142
- 143
- 145
- 178
- Podívej se do
modbus_command
8. Co je v implementaci důležité vědět
Tady jsou dva praktické detaily:
export_limit_wse bere jako hard cap z lokality / invertoru- export se už netipuje z forecastu
To znamená:
- při
PV_SURPLUSse má pustit maximum, které dovoluje distribuce a HW - při
BATTERY_SELLse použije SELL a prodej z baterie - při běžném importu / šetření baterie se exportní logika nemá „uhádnout“ z ceny nebo forecastu
9. Kde hledat v kódu
- plánování:
backend/services/planning_engine.py - mapování plánu na setpointy:
backend/services/control/setpoints.py - zápis Deye:
backend/services/control/inverter.py - live registry:
backend/app/routers/sites.py - FE plánování:
frontend/src/pages/Planning.tsx - FE live registry:
frontend/src/components/ControlPanel.tsx