# CLAUDE.md – EMS Platform (Cursor Agent) Čti před každou implementační změnou. Stručná orientace; detail v `docs/` a SQL v `db/`. --- ## 1. Co to je Multi-site Energy Management System: optimalizuje FVE, baterii a flexibilní zátěž (EV, TČ) podle spotových cen OTE CZ a předpovědí; výstupy řídí zařízení (Modbus) a informuje Loxone jako exekutora. Referenční lokalita v seedu: `home-01` (Deye, baterie, 2× EV Teltonika, Samsung TČ). --- ## 2. Technologický stack | Vrstva | Technologie | |--------|-------------| | DB | PostgreSQL 16 + TimescaleDB | | Migrace | Flyway (`db/migration`, `db/routines`, `db/views`) | | API | PostgREST (REST ze schématu `ems`) + FastAPI (logika, joby – plán v docs) | | Frontend | React + TypeScript + Vite (očekáváno u kořene / Docker); výběr lokality comboboxem (`SiteSelectionContext`, `GET /api/v1/me/sites`, persist `localStorage` `ems.selected_site_id`) | | Pole / zařízení | Modbus TCP (`pymodbus`), HTTP (Loxone, případně API vozidel) | | Solver | PuLP + HiGHS (`HiGHS_CMD`) | | Runtime | Docker Compose | | **Živá DB přes MCP (Cursor)** | Server ID **`user-postgres-ems`**, nástroj **`query`**, `{ "sql": "…" }` — viz **`docs/07-mcp-postgres-ems.md`** a pravidlo **`.cursor/rules/mcp-postgres-ems.mdc`** | --- ## 2b. MCP — živá EMS databáze (read-only) Když uživatel napíše **„použij MCP“** nebo potřebuje **aktuální řádky z Postgresu** (plán, telemetrie, journal): 1. Zavolej MCP nástroj **`query`** na serveru **`user-postgres-ems`** s argumentem `{"sql": "