# Discord EV interakce — návrh (fáze A nasazena, fáze B čeká na bot token) ## Fáze A — notifikace po příjezdu (HOTOVO, `dev`) Píchneš auto → detekce (~60 s) → Tesla SoC → replan → **Discord zpráva** (webhook `discord_webhook_daily_url`): ``` 🔌 Tesla Model Y připojeno Baterie auta: 55 % → cíl 100 % (~34 kWh) Deadline: po 15.06. 06:30 Plán nabíjení: 11:30–13:45; 02:15–04:30 — 34.2 kWh, ø 1.85 Kč/kWh ``` Implementace: `_notify_ev_arrival_plan` v `telemetry_collector.py` (sloty `ev*_setpoint_w > 0` z aktivního plánu shlukované do oken). ## Fáze B — zpětná vazba tlačítkem („odjíždím za 2 h") **Architektura: Discord BOT přes gateway** — spojení jde Z backendu VEN (websocket), žádný veřejný endpoint do EMS (na rozdíl od interactions webhooku). Knihovna `discord.py`, token v `/opt/ems-deploy/.env`. Zpráva z fáze A dostane tlačítka: `[Odjezd za 2 h] [za 4 h] [Ráno (typicky)] [Do plna hned] [Nenabíjet]` Callback tlačítka: 1. `fn_ev_session_apply_patch(site, session, {"target_deadline": now+2h, …})` („Do plna hned" navíc `target_soc_pct=100`; „Nenabíjet" `target_soc_pct=soc`), 2. okamžitý `run_rolling_replan` + `export_setpoints` (vzor ev_arrival), 3. bot **edituje původní zprávu** novým plánem (žádný spam). Bezpečnost: bot reaguje jen na whitelisted user ID (majitel), akce omezené na patch session + replan (žádné režimy/registry). Tlačítka expirují s koncem session. **Co je potřeba od uživatele:** vytvořit Discord aplikaci + bota (discord.com/developers → New Application → Bot → token), pozvat na server (scope `bot`, oprávnění Send Messages + Read History), token jako `DISCORD_BOT_TOKEN` do `.env`. Pak implementuju `services/discord_bot.py` (lifespan task vedle telemetry smyčky). ## Výhled (fáze C) Stejný bot = kanál pro ranní triáž s dotazy („proč jsi v 19:00 nabíjel?" → delta-triage skill) a rychlé akce (bazén, režimy) — viz noční roadmapa.