feat(ev): proaktivní notifikace 'píchni auto' (default-off)
job ev_presence_notify + fn_ev_presence_nudge_due (SQL-first rozhodnutí+dedup); asset_vehicle.presence_nudge_enabled default false=inertní (V110). Worktree agent. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,7 @@ from services.signal_service import (
|
||||
run_signal_outbound_send_for_active_sites,
|
||||
run_signal_outbound_verify_for_active_sites,
|
||||
)
|
||||
from services.ev_presence_notify import run_ev_presence_nudge_for_all_active_sites
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -161,6 +162,18 @@ async def lifespan(app: FastAPI):
|
||||
except Exception:
|
||||
logger.exception("scheduled_signal_outbound_verify failed")
|
||||
|
||||
async def scheduled_ev_presence_nudge() -> None:
|
||||
"""Proaktivní "auto doma + nepíchnuté + levné/přebytek → píchni ho".
|
||||
|
||||
SQL-first rozhodnutí + dedup v ems.fn_ev_presence_nudge_due (insert do
|
||||
ev_presence_nudge_sent). Default-off per vozidlo (presence_nudge_enabled),
|
||||
takže job běží inertně, dokud se na nějakém vozidle nezapne.
|
||||
"""
|
||||
try:
|
||||
await run_ev_presence_nudge_for_all_active_sites(app.state.pg_pool)
|
||||
except Exception:
|
||||
logger.exception("scheduled_ev_presence_nudge failed")
|
||||
|
||||
async def scheduled_pool_control() -> None:
|
||||
# Bazén: SQL-first rozhodnutí (fn_pool_control_tick) — nejlevnější souvislé
|
||||
# okno denního runtime + dump-load při sell<=0; zařadí POOL_PUMP_ON (jen když
|
||||
@@ -437,6 +450,14 @@ async def lifespan(app: FastAPI):
|
||||
id="pool_control",
|
||||
replace_existing=True,
|
||||
)
|
||||
scheduler.add_job(
|
||||
scheduled_ev_presence_nudge,
|
||||
"cron",
|
||||
minute="5,30,55",
|
||||
second=10,
|
||||
id="ev_presence_nudge",
|
||||
replace_existing=True,
|
||||
)
|
||||
scheduler.add_job(scheduled_daily_plan, "cron", hour=15, minute=0, id="daily_plan")
|
||||
scheduler.add_job(
|
||||
scheduled_rolling_replan,
|
||||
|
||||
Reference in New Issue
Block a user