services/discord_bot.py: gateway klient jako lifespan task (spojení ven, žádný veřejný endpoint; bez DISCORD_BOT_TOKEN tiše spí). Tlačítka [za 2h][za 4h][ráno][do plna][nenabíjet] s custom_id ev:<site>:<charger>:<akce> (přežijí restart); whitelist DISCORD_ALLOWED_USER_IDS; akce = fn_ev_session_ apply_patch → run_rolling_replan → export_setpoints → edit zprávy novým plánem. services/ev_notify.py: sdílený builder souhrnu (vyčleněno z collectoru), send bot-first s webhook fallbackem. requirements: discord.py>=2.4. 7 testů helperů (parse, deadline akce vč. morning přes Prague TZ). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 lines
257 B
Plaintext
16 lines
257 B
Plaintext
fastapi>=0.115.0
|
|
uvicorn[standard]>=0.32.0
|
|
asyncpg>=0.30.0
|
|
python-dotenv>=1.0.0
|
|
pydantic-settings>=2.6.0
|
|
apscheduler>=3.10.4
|
|
pymodbus>=3.8.0
|
|
aiohttp>=3.11.0
|
|
pulp>=2.9.0
|
|
highspy>=1.7.0
|
|
pvlib>=0.11.0
|
|
pandas>=2.2.0
|
|
numpy>=2.0.0
|
|
httpx>=0.28.0
|
|
discord.py>=2.4.0
|