ELECTRO — мониторинг отключений света ELECTRO — это Python‑софт для Termux, который: автоматически считывает график отключений света с сайта energy-ua.info; определяет, есть ли свет сейчас; ведёт статистику включений и отключений; имеет удобное меню управления прямо в Termux (перезапуск / остановка); может работать параллельно с Telegram‑ботом.
electro_bot/ │ ├── main.py # Точка входа. Запускает мониторинг и интерфейс Termux ├── termux_interface.py # Меню Termux: перезапуск, остановка, статус света ├── power_monitor.py # Загрузка графика, парсинг сайта, логика света ├── utils.py # Очистка экрана и ASCII‑баннер ELECTRO ├── bot_interface.py # Логика Telegram‑бота (кнопки, статистика) ├── messages.py # Все тексты сообщений Telegram‑бота ├── config.py # Все настройки проекта ├── requirements.txt # Зависимости Python └── README.md # Этот файл
main.py: Главный файл запуска Очищает экран Показывает баннер ELECTRO Запускает две параллельные задачи: мониторинг света интерфейс Termux
Запускается только через:
python main.py
termux_interface.py
Интерфейс управления в Termux. Позволяет: 🔄 реально перезапустить софт (процесс завершается и запускается заново) ⛔ полностью остановить программу ⚡ посмотреть текущее состояние света Работает без GUI — только терминал.
Отвечает за всю логику света: загрузка HTML‑страницы с графиком отключений парсинг периодов вида З 08:00 до 12:30 определение, есть ли свет сейчас подсчёт статистики включений / отключений
Работает устойчиво: при пропадании интернета не падает использует последнее успешно полученное расписание
Вспомогательные функции: clear_screen() — полностью очищает экран Termux print_electro_banner() — ASCII‑баннер ELECTRO Используется только для интерфейса.
bot_interface.py
Логика Telegram‑бота: команда /start кнопка Статистика inline‑кнопка Назад главный экран со статусом света
Использует данные из power_monitor.py.
messages.py
Все текстовые сообщения Telegram‑бота вынесены сюда. Можно легко: менять формулировки добавлять локализацию редактировать сообщения без лезания в логику
config.py
Главный файл настроек. Пример: POWER_SCHEDULE_URL = "https://energy-ua.info/grafik/Гадяч/Драгоманова/19б" SCHEDULE_CHECK_INTERVAL = 600 # как часто обновлять график (сек) POWER_CHECK_INTERVAL = 60 # как часто проверять состояние света (сек) TELEGRAM_TOKEN = "ВАШ_TELEGRAM_BOT_TOKEN"
Что можно настраивать: ссылку на график отключений интервал обновления графика интервал проверки состояния света Telegram‑токен
В Termux: pkg update && pkg upgrade pkg install python clang libffi openssl pip install --upgrade pip setuptools wheel pip install aiohttp --no-cache-dir pip install -r requirements.txt
python main.py После запуска: экран очищается появляется баннер ELECTRO открывается меню Termux
🧭 Меню Termux
======= ELECTRO - Termux Interface ======= Состояние света: ON / OFF
- Перезапустить софт
- Остановить софт и выйти
- Обновить статус света
Кнопки:
1 — Перезапустить софт полностью перезапускает Python‑процесс перечитывает все файлы 2 — Остановить софт корректно завершает работу 3 — Обновить статус мгновенно показывает текущий статус света
🔮 Возможные улучшения уведомления в Telegram при изменении состояния прогноз следующего отключения / включения сохранение статистики в файл автозапуск в Termux
ELECTRO — сделано для реальной жизни при нестабильном свете ⚡