second version

This commit is contained in:
Dusan Vojacek
2026-04-03 14:23:16 +02:00
parent 897b95f728
commit 9f4126946d
105 changed files with 9738 additions and 1470 deletions

View File

@@ -0,0 +1,78 @@
-- =============================================================
-- V014__asset_model_refinement.sql
-- Rozlišení limitů: AC střídač / DC FVE / baterie přes měnič / BMS+C-rate
-- =============================================================
-- Střídač: nové sloupce (staré max_charge_power_w / max_discharge_power_w ponechány kvůli kompatibilitě)
ALTER TABLE ems.asset_inverter
ADD COLUMN IF NOT EXISTS max_ac_output_w INT,
ADD COLUMN IF NOT EXISTS max_dc_input_w INT,
ADD COLUMN IF NOT EXISTS max_battery_charge_w INT,
ADD COLUMN IF NOT EXISTS max_battery_discharge_w INT,
ADD COLUMN IF NOT EXISTS gen_port_max_power_w INT;
COMMENT ON COLUMN ems.asset_inverter.max_ac_output_w IS
'Maximální AC výkon střídače v W. Deye SUN-20K = 22000 W.';
COMMENT ON COLUMN ems.asset_inverter.max_dc_input_w IS
'Maximální DC vstupní výkon z FVE v W. Deye SUN-20K = 40000 W.';
COMMENT ON COLUMN ems.asset_inverter.max_battery_charge_w IS
'Maximální výkon nabíjení baterie v W limit střídače (ne BMS).
Deye SUN-20K s LV baterií = 18000 W (350A × 51.2V).';
COMMENT ON COLUMN ems.asset_inverter.max_battery_discharge_w IS
'Maximální výkon vybíjení baterie v W limit střídače.
Deye SUN-20K s LV baterií = 18000 W.';
COMMENT ON COLUMN ems.asset_inverter.gen_port_max_power_w IS
'Maximální výkon GEN portu v W. Zahrnuje součet všech zařízení
zapojených do GEN portu (mikroinvertory, ongrid střídač).
Pro home-01 = 10080 W (pv-b pole).
Pro druhou instalaci = 4400 W (2× 2.2 kW mikroinvertory).';
-- Baterie: C-rate a BMS
ALTER TABLE ems.asset_battery
ADD COLUMN IF NOT EXISTS max_charge_c_rate NUMERIC(4,2),
ADD COLUMN IF NOT EXISTS max_discharge_c_rate NUMERIC(4,2),
ADD COLUMN IF NOT EXISTS bms_max_charge_w INT,
ADD COLUMN IF NOT EXISTS bms_max_discharge_w INT;
COMMENT ON COLUMN ems.asset_battery.max_charge_c_rate IS
'Maximální nabíjecí C-rate. 0.5C pro 64 kWh = 32 kW teoretické maximum.
Skutečný limit je min(bms_max_charge_w, inverter.max_battery_charge_w).';
COMMENT ON COLUMN ems.asset_battery.max_discharge_c_rate IS
'Maximální vybíjecí C-rate (symetricky k nabíjení).';
COMMENT ON COLUMN ems.asset_battery.bms_max_charge_w IS
'Maximální nabíjecí výkon dle BMS v W. Pokud NULL, použij C-rate výpočet.';
COMMENT ON COLUMN ems.asset_battery.bms_max_discharge_w IS
'Maximální vybíjecí výkon dle BMS v W. Pokud NULL, použij C-rate výpočet.';
-- Z existujících sloupců přejmenujeme sémantiku do nových (kde ještě nejsou vyplněné)
UPDATE ems.asset_inverter
SET
max_battery_charge_w = COALESCE(max_battery_charge_w, max_charge_power_w),
max_battery_discharge_w = COALESCE(max_battery_discharge_w, max_discharge_power_w)
WHERE max_charge_power_w IS NOT NULL
OR max_discharge_power_w IS NOT NULL;
-- Seed home-01: hlavní Deye (ne ongrid řádek)
UPDATE ems.asset_inverter inv
SET
max_ac_output_w = 22000,
max_dc_input_w = 40000,
max_battery_charge_w = 18000,
max_battery_discharge_w = 18000,
gen_port_max_power_w = 10080
FROM ems.site s
WHERE s.id = inv.site_id
AND s.code = 'home-01'
AND inv.code = 'deye-main';
UPDATE ems.asset_battery ab
SET
max_charge_c_rate = 0.28,
max_discharge_c_rate = 0.28,
bms_max_charge_w = 18000,
bms_max_discharge_w = 18000
FROM ems.asset_inverter inv
JOIN ems.site s ON s.id = inv.site_id
WHERE ab.inverter_id = inv.id
AND s.code = 'home-01'
AND inv.code = 'deye-main';