Files
ems/db/routines/R__002_fn_modbus_last_verified_map.sql
Dusan Vojacek 0ed6f18e1a
Some checks failed
CI and deploy / migration-check (push) Successful in 39s
CI and deploy / deploy (push) Failing after 9m55s
EV řízení: zápis Amps-to-use přes journal + watchdog + okamžitý replan po příjezdu
Bod 1 — write_ev_setpoints reálně (konec TODO stubu):
- reg 15 (0=stop, 6–32 A) z plánu přes _current_limit_for_charger; plná
  journal pipeline (create_modbus_commands → execute, verify job 2 min generic)
- watchdog reg 19=300 s + reg 20=8 A: výpadek EMS → wallbox po 5 min failsafe
  8 A (auto se přes noc nabije); drop-unchanged → zapisuje se jen při změně
- fn_modbus_last_verified_map: + p_asset_type (drop 2-arg; dosud hardcoded
  'inverter' — pro chargery vracela {})
- verify: SELF_SUSTAIN fallback explicitně jen pro asset_type='inverter' —
  mismatch wallboxu nesmí degradovat režim celé site
- journal register_name: mimo inverter platí jméno od volajícího

Bod 2 — telemetry_collector: přechod available→connected spustí fire-and-forget
run_rolling_replan(triggered_by=ev_arrival:<code>) + export_setpoints přes BG
pool — reakce na příjezd ~60 s místo až 15 min.

Bod 3 (Tesla API SoC) čeká na developer credentials.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 22:51:38 +02:00

33 lines
1.0 KiB
SQL

-- map register -> value_verified z modbus_command (poslední verified řádek per register)
-- Od 2026-06-11 generické přes p_asset_type (inverter / ev_charger / …);
-- starou 2-arg signaturu dropnout (default by způsobil ambiguitu).
drop function if exists ems.fn_modbus_last_verified_map(int, int);
create or replace function ems.fn_modbus_last_verified_map(
p_site_id int,
p_asset_id int,
p_asset_type text default 'inverter'
)
returns jsonb
language sql
stable
as $fn$
select coalesce(
jsonb_object_agg(register::text, to_jsonb(value_verified)),
'{}'::jsonb
)
from (
select
v.register,
v.value_verified
from ems.vw_modbus_last_verified v
where v.site_id = p_site_id
and v.asset_type = p_asset_type
and v.asset_id = p_asset_id
) t;
$fn$;
comment on function ems.fn_modbus_last_verified_map is
'Mapa register -> poslední verified hodnota z modbus_command pro dané zařízení (site, asset_type, asset_id). Slouží k drop-unchanged v control exporteru.';