Skip to content

tensaiimebv/Electro

Repository files navigation

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 — только терминал.

power_monitor.py

Отвечает за всю логику света: загрузка HTML‑страницы с графиком отключений парсинг периодов вида З 08:00 до 12:30 определение, есть ли свет сейчас подсчёт статистики включений / отключений

Работает устойчиво: при пропадании интернета не падает использует последнее успешно полученное расписание

utils.py

Вспомогательные функции: 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

Зависимости: aiohttp beautifulsoup4 lxml aiogram

▶️ Запуск программы


python main.py После запуска: экран очищается появляется баннер ELECTRO открывается меню Termux


🧭 Меню Termux

======= ELECTRO - Termux Interface ======= Состояние света: ON / OFF

  1. Перезапустить софт
  2. Остановить софт и выйти
  3. Обновить статус света

Кнопки:

1 — Перезапустить софт полностью перезапускает Python‑процесс перечитывает все файлы 2 — Остановить софт корректно завершает работу 3 — Обновить статус мгновенно показывает текущий статус света


⚠️ Важные замечания Статистика хранится в памяти → при перезапуске сбрасывается Если сайт временно недоступен — программа продолжает работать Интервалы лучше делать: график: 10–15 минут проверка состояния: 30–60 секунд


🔮 Возможные улучшения уведомления в Telegram при изменении состояния прогноз следующего отключения / включения сохранение статистики в файл автозапуск в Termux


ELECTRO — сделано для реальной жизни при нестабильном свете ⚡

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages