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>
77 lines
2.0 KiB
SQL
77 lines
2.0 KiB
SQL
DROP FUNCTION IF EXISTS ems.fn_telemetry_inverter_sample;
|
|
|
|
CREATE OR REPLACE FUNCTION ems.fn_telemetry_inverter_sample(
|
|
p_site_id int,
|
|
p_inverter_id int,
|
|
p_measured_at timestamptz,
|
|
p_pv_power_w int,
|
|
p_pv1_power_w int,
|
|
p_pv2_power_w int,
|
|
p_gen_port_power_w int,
|
|
p_battery_soc_percent double precision,
|
|
p_battery_power_w int,
|
|
p_batt_charge_today_wh int,
|
|
p_batt_discharge_today_wh int,
|
|
p_grid_power_w int,
|
|
p_load_power_w int,
|
|
p_grid_import_total_wh bigint,
|
|
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_inverter_grid_port_w int DEFAULT NULL,
|
|
p_ups_load_w int DEFAULT NULL
|
|
)
|
|
RETURNS void
|
|
LANGUAGE sql
|
|
AS $fn$
|
|
INSERT INTO ems.telemetry_inverter (
|
|
site_id,
|
|
inverter_id,
|
|
measured_at,
|
|
pv_power_w,
|
|
pv1_power_w,
|
|
pv2_power_w,
|
|
gen_port_power_w,
|
|
battery_soc_percent,
|
|
battery_power_w,
|
|
batt_charge_today_wh,
|
|
batt_discharge_today_wh,
|
|
grid_power_w,
|
|
load_power_w,
|
|
grid_import_total_wh,
|
|
grid_export_total_wh,
|
|
run_state,
|
|
is_export_limited,
|
|
pv_derating_flags,
|
|
inverter_grid_port_w,
|
|
ups_load_w
|
|
)
|
|
VALUES (
|
|
p_site_id,
|
|
p_inverter_id,
|
|
p_measured_at,
|
|
p_pv_power_w,
|
|
p_pv1_power_w,
|
|
p_pv2_power_w,
|
|
p_gen_port_power_w,
|
|
p_battery_soc_percent,
|
|
p_battery_power_w,
|
|
p_batt_charge_today_wh,
|
|
p_batt_discharge_today_wh,
|
|
p_grid_power_w,
|
|
p_load_power_w,
|
|
p_grid_import_total_wh,
|
|
p_grid_export_total_wh,
|
|
p_run_state,
|
|
p_is_export_limited,
|
|
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). 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.';
|