home-01: ulice z externího CT (reg 619) + celková spotřeba domu; Deye zero-export to CT
Fakturační elektroměr ~8 kW vs Deye 13.5 kW: hlavní okruhy domu (vč. wallboxu, EV 10.5 kW při load 164 W) visí MEZI střídačem a CT u elektroměru — reg 625 (svorky) ani 653 (UPS port) je nevidí. home-01 bylo chybně vedeno jako bez CT. V100: deye_zero_export_mode=2 (reg 142 → zero export to CT, propíše exporter), sloupce inverter_grid_port_w + ups_load_w, komentáře se změnou sémantiky. Collector: grid_power_w z reg 619 (instalace s CT; fallback 625), load_power_w = pv + baterie + grid = celkový dům. R__049 +2 parametry, R__052 + deye_zero_export_mode. Audit/baseline od teď počítají se skutečnou ulicí; historie (do 2026-06-12) nese svorky střídače — přepočet ekonomiky po faktuře. Baseline rebuild doporučen po týdnu nových dat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
29
db/migration/V100__home01_grid_ct.sql
Normal file
29
db/migration/V100__home01_grid_ct.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
-- home-01 MÁ externí CT u fakturačního elektroměru (ověřeno 2026-06-12:
|
||||
-- reg 619 = −8.3 kW přesně dle elektroměru, zatímco reg 625 = −13.5 kW na
|
||||
-- svorkách střídače; hlavní okruhy domu vč. wallboxu visí MEZI střídačem
|
||||
-- a CT). Dosud vedeno chybně jako „nemá CT" (deye_zero_export_mode = 1).
|
||||
|
||||
-- 1) Deye má regulovat zero-export podle CT (reg 142 = 2); exporter hodnotu
|
||||
-- čte z tohoto sloupce a propíše ji při nejbližším ticku.
|
||||
update ems.asset_inverter
|
||||
set deye_zero_export_mode = 2
|
||||
where code = 'deye-main'
|
||||
and site_id = (select id from ems.site where code = 'home-01');
|
||||
|
||||
-- 2) Telemetrie: ukládat oba pohledy. grid_power_w nově nese skutečný tok
|
||||
-- na ulici (reg 619, externí CT); tok na svorkách střídače (reg 625)
|
||||
-- jde do nového sloupce. load_power_w nově = CELKOVÁ spotřeba domu
|
||||
-- (pv + baterie − ulice, dopočet v collectoru); zálohovaný load port
|
||||
-- (reg 653) jde do ups_load_w.
|
||||
alter table ems.telemetry_inverter
|
||||
add column if not exists inverter_grid_port_w int,
|
||||
add column if not exists ups_load_w int;
|
||||
|
||||
comment on column ems.telemetry_inverter.grid_power_w is
|
||||
'Tok na ulici dle externího CT (Deye reg 619; +import / −export). Do 2026-06-12 obsahoval tok na svorkách střídače (reg 625) — u instalací s okruhy mezi střídačem a CT (home-01) byl export nadhodnocen.';
|
||||
comment on column ems.telemetry_inverter.inverter_grid_port_w is
|
||||
'Tok na grid svorkách střídače (Deye reg 625; +import / −export). Rozdíl proti grid_power_w = spotřeba okruhů mezi střídačem a CT.';
|
||||
comment on column ems.telemetry_inverter.load_power_w is
|
||||
'CELKOVÁ spotřeba domu: pv + baterie − grid_ct (dopočet collectoru od 2026-06-12). Dříve Deye reg 653 (jen zálohovaný load port) — bazál byl podhodnocený o okruhy na straně sítě.';
|
||||
comment on column ems.telemetry_inverter.ups_load_w is
|
||||
'Zálohovaný load/UPS port střídače (Deye reg 653) — jen vybrané okruhy.';
|
||||
@@ -18,7 +18,9 @@ CREATE OR REPLACE FUNCTION ems.fn_telemetry_inverter_sample(
|
||||
p_grid_export_total_wh bigint,
|
||||
p_run_state int,
|
||||
p_is_export_limited boolean DEFAULT NULL,
|
||||
p_pv_derating_flags int DEFAULT NULL
|
||||
p_pv_derating_flags int DEFAULT NULL,
|
||||
p_inverter_grid_port_w int DEFAULT NULL,
|
||||
p_ups_load_w int DEFAULT NULL
|
||||
)
|
||||
RETURNS void
|
||||
LANGUAGE sql
|
||||
@@ -41,7 +43,9 @@ AS $fn$
|
||||
grid_export_total_wh,
|
||||
run_state,
|
||||
is_export_limited,
|
||||
pv_derating_flags
|
||||
pv_derating_flags,
|
||||
inverter_grid_port_w,
|
||||
ups_load_w
|
||||
)
|
||||
VALUES (
|
||||
p_site_id,
|
||||
@@ -61,10 +65,12 @@ AS $fn$
|
||||
p_grid_export_total_wh,
|
||||
p_run_state,
|
||||
p_is_export_limited,
|
||||
p_pv_derating_flags
|
||||
p_pv_derating_flags,
|
||||
p_inverter_grid_port_w,
|
||||
p_ups_load_w
|
||||
)
|
||||
ON CONFLICT (inverter_id, measured_at) DO NOTHING;
|
||||
$fn$;
|
||||
|
||||
COMMENT ON FUNCTION ems.fn_telemetry_inverter_sample IS
|
||||
'Insert jednoho vzorku telemetrie střídače (telemetry_collector). Volitelně is_export_limited / pv_derating_flags (Deye reg 145/179) pro vyloučení slotů z učení PV delty.';
|
||||
'Insert jednoho vzorku telemetrie střídače (telemetry_collector). grid_power_w = ulice (CT reg 619 u instalací s CT, jinak reg 625); load_power_w = celková spotřeba domu (dopočet); inverter_grid_port_w = reg 625; ups_load_w = reg 653.';
|
||||
|
||||
@@ -7,7 +7,8 @@ select
|
||||
ai.code,
|
||||
se.host,
|
||||
se.port,
|
||||
se.unit_id
|
||||
se.unit_id,
|
||||
ai.deye_zero_export_mode
|
||||
from ems.asset_inverter ai
|
||||
join ems.site_endpoint se on se.id = ai.endpoint_id
|
||||
where ai.active = true
|
||||
@@ -15,4 +16,4 @@ where ai.active = true
|
||||
and se.endpoint_type = 'modbus_tcp';
|
||||
|
||||
comment on view ems.vw_asset_inverter_modbus_poll is
|
||||
'Aktivní střídače s Modbus TCP endpointem pro telemetry_collector.';
|
||||
'Aktivní střídače s Modbus TCP endpointem pro telemetry_collector. deye_zero_export_mode 2 = osazené externí CT → tok ulice z reg 619.';
|
||||
|
||||
Reference in New Issue
Block a user