Lumos
Асинхронний Telegram-бот для моніторингу графіків відключень електроенергії
Чому існуючі рішення не працюють
Користувачі змушені страждати через фрагментованість і ненадійність публічних сервісів.
Нестабільні API
Сайти обленерго регулярно "падають" під навантаженням, а офіційні API повертають 5xx у пікові години.
Незручний пошук
Складно щодня шукати свою чергу вручну через громіздкі таблиці та довідники адрес.
Брак оперативності
Відсутність проактивних push-сповіщень — людина дізнається про відключення вже у темряві.
Один бот. Усе під контролем.
Lumos об'єднує дані з декількох обленерго в єдиний асинхронний сервіс із розумними сповіщеннями.
Миттєві Push-сповіщення
Бот опитує API за розкладом та надсилає повідомлення тільки коли графік справді змінився — без спаму.
Середа
Розумні нагадування
Grace period і дедуплікація запобігають дублям та зайвим сповіщенням.
- Grace period · 5 хв
- State hashing
- Дедуплікація
FSM Пошук
Багатокроковий пошук за адресою через скінченний автомат aiogram.
Zero Downtime
Повністю асинхронна архітектура на asyncio з health-check на порту 8080.
Як це працює всередині
Чотири незалежних шари, які спілкуються через асинхронні черги та HTTP.
Складні задачі та як ми їх вирішили
Три неочевидних інженерних виклики, що визначили архітектуру проєкту.
Сайт обленерго блокував усі запити з Python (`requests`/`httpx`) як підозрілий трафік.
Перейшли на curl_cffi з імітацією TLS-фінгерпринта Chrome 120 та маршрутизацію через SOCKS5-проксі. Bypass — 100%.
Що було. Що далі.
MVP — Ivano-Frankivsk
Перший реліз: парсинг API Прикарпаттяобленерго, базові команди /start, /search.
Scaling to Lviv + Smart Reminders
Додано Львівську область, FSM-пошук, дедуплікація сповіщень і grace period.
Microservices + React Frontend
Розбиття на сервіси (notifier, parser, api-gateway) та публічний веб-інтерфейс.