Files
ems/db/migration/V109__ev_obs_geofence_trigger.sql
Dusan Vojacek fc6d9833a7 feat(ev): geofence arrival trigger (default-off)
ev_vehicle_obs.trigger += 'geofence_arrival' (V109); presence cesta zapíše příjezd
i bez píchnutí (za flagem EV_GEOFENCE_ARRIVAL_OBS_ENABLED, default OFF); fn_ev_build_trips
páruje. Constraint name ověřen živě. Worktree agent.

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

27 lines
1.5 KiB
SQL

-- Geofence arrival trigger pro EV pozorování.
--
-- Dosud arrival obs (ems.ev_vehicle_obs) vznikalo JEN z wallboxu (plug-in přes
-- fn_ev_session_transition). Když uživatel nepíchne, jízda se nezaznamenala a
-- spotřební forecast (ev_trip → ev_usage_stats) o ní nevěděl.
--
-- Telemetry_collector už dnes z Tesla polohy (geofence, scope location, BEZ
-- buzení auta) detekuje přechod pryč→domů do ems.ev_presence_obs. Tato migrace
-- rozšiřuje povolené hodnoty ev_vehicle_obs.trigger o 'geofence_arrival', aby
-- presence cesta mohla zapsat příjezd i bez píchnutí do wallboxu.
--
-- Zpětná kompatibilita: stávající hodnoty 'arrival' / 'departure' / 'manual'
-- zůstávají platné; přidává se jen nová hodnota. Žádná data se nemění.
-- Párování jízd (fn_ev_build_trips) bere 'geofence_arrival' jako platný arrival
-- (R__096); wallbox 'arrival' zůstává autoritativní, geofence je doplněk pro
-- případy, kdy auto stojí doma nepíchnuté.
alter table ems.ev_vehicle_obs
drop constraint if exists ev_vehicle_obs_trigger_check;
alter table ems.ev_vehicle_obs
add constraint ev_vehicle_obs_trigger_check
check (trigger in ('arrival', 'departure', 'manual', 'geofence_arrival'));
comment on column ems.ev_vehicle_obs.trigger is
'Zdroj pozorování: arrival/departure z wallboxu (plug-in/out, autoritativní), manual ruční, geofence_arrival z Tesla polohy (přijel domů, nepíchnutý — auto vzhůru, čtení nebudí). geofence_arrival se páruje jako příjezd v fn_ev_build_trips.';