fix pv vyroby (unsinged)
This commit is contained in:
@@ -128,9 +128,9 @@ Limity nabíjení/vybíjení v ampérech a export z **site_grid_connection** / *
|
||||
| 590 | Battery power | 1 W S16 | + vybíjení / − nabíjení |
|
||||
| 625 | Grid total power | 1 W S16 | + import / − export |
|
||||
| 653 | Load total power | 1 W S16 | |
|
||||
| 667 | GEN port power | 1 W | FVE pole B |
|
||||
| 672 | PV1 power | 1 W | |
|
||||
| 673 | PV2 power | 1 W | |
|
||||
| 667 | GEN port power | 1 W S16 | FVE pole B; signed — záporné při zpětném toku / bez výroby |
|
||||
| 672 | PV1 power | 1 W S16 | signed; EMS ukládá raw signed W, do `pv_power_w` jen max(0, kanál) |
|
||||
| 673 | PV2 power | 1 W S16 | jako PV1 |
|
||||
|
||||
## Přepočty
|
||||
|
||||
|
||||
@@ -46,12 +46,17 @@ Komunikace: Modbus TCP, Unit ID dle DIP přepínače na střídači (typicky 1).
|
||||
| 590 (0x024E) | int16 | Tok výkonu baterie | W | signed: **+ vybíjení, − nabíjení** |
|
||||
| 625 (0x0271) | int16 | Výkon sítě | W | signed: **+ import, − export** |
|
||||
| 653 (0x028D) | uint16 | Celková spotřeba | W | `load_power_w` |
|
||||
| 667 (0x029B) | uint16 | Výkon GEN portu (FVE pole B) | W | `gen_port_power_w`, nelze curtailovat |
|
||||
| 672 (0x02A0) | uint16 | Výkon PV1 | W | `pv1_power_w` |
|
||||
| 673 (0x02A1) | uint16 | Výkon PV2 | W | `pv2_power_w` |
|
||||
| 667 (0x029B) | int16 | Výkon GEN portu (FVE pole B) | W (signed) | `gen_port_power_w`; záporné při zpětném toku / bez výroby — **číst signed** |
|
||||
| 672 (0x02A0) | int16 | Výkon PV1 | W (signed) | `pv1_power_w`; při špatném unsigned čtení se záporné hodnoty jeví jako desítky kW |
|
||||
| 673 (0x02A1) | int16 | Výkon PV2 | W (signed) | `pv2_power_w` |
|
||||
|
||||
`pv_power_w` v DB = **PV1 + PV2 + GEN port** (celková výroba na instalaci home-01).
|
||||
`gen_port_power_w` zůstává i nadále uložen samostatně pro audit a detailní diagnostiku.
|
||||
`pv1_power_w` / `pv2_power_w` / `gen_port_power_w` v DB = **signed W** z Modbus (mohou být záporné).
|
||||
|
||||
`pv_power_w` = **max(0, PV1) + max(0, PV2) + max(0, GEN)** — okamžitá **kladná** výroba FVE pro dashboard a souhrny; záporné kanály do součtu nepatří (typicky večer při exportu z baterie do sítě).
|
||||
|
||||
`gen_port_power_w` zůstává uložen samostatně pro audit zeleného bonusu a diagnostiku.
|
||||
|
||||
**Ověření po změně sběru:** za denního SVitu zkontrolovat, že `pv_power_w` a jednotlivé kanály odpovídají očekávanému max. výkonu instalace (logika: `aggregate_pv_production_w` v `telemetry_collector.py`, unit testy `tests/test_telemetry_pv_signed.py`).
|
||||
|
||||
**Zápis setpointů (plánování → Deye):**
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ Shrnutí otevřených bodů z `docs/06-open-questions.md`, checklistů v modulec
|
||||
| **Import OTE – robustní provoz:** timeouty + retry/backoff v `price_importer.py`, detailní error kódy v API, fallback D+1 → dnešek, scheduler importů 13:30 / 14:00 / 00:05. |
|
||||
| **Fail-safe bez OTE dat:** při predikovaných cenách v kritickém okně je zákaz exportu; vybíjení baterie omezeno jen v predikovaných slotech; runtime guard v `control_exporter.py` brání SELL v nejistém stavu. |
|
||||
| **Forecast provoz:** refresh každé 2 hodiny (`:05`), konfigurovatelný Open-Meteo horizont (`OPEN_METEO_FORECAST_DAYS`, default 7, clamp 2..16), endpoint pro UI vrací latest-run bez duplicit slotů. |
|
||||
| **Telemetry – výroba FVE:** `pv_power_w` je součet `pv1 + pv2 + gen_port`, takže dashboard reflektuje obě pole i GEN větev instalace home-01. |
|
||||
| **Telemetry – výroba FVE:** Registry 672/673/667 jsou **signed** W; `pv_power_w` = max(0,pv1)+max(0,pv2)+max(0,gen) (dashboard); sloupce pv1/pv2/gen ukládají signed pro audit. |
|
||||
| **Ekonomika baterie:** snížení `reserve_soc_percent` na 10 % a `degradation_cost_czk_kwh` na 0.1500 (migrace `V026__battery_economics_tuning.sql`), úpravy objective pro ekonomicky konzistentnější nabíjení/vybíjení. |
|
||||
| **Planning UI operátor akce:** trvale viditelné akce import/forecast/init plan, volba data OTE (dnes/zítra), zobrazení `pv_scarcity_factor` ve stavu plánu. |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user