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 ) 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 ) 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 ) 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).';