# Synology Power Control Bot Telegram-бот для удаленного управления питанием сетевого хранилища Synology NAS (DS223j и другие модели). ## Возможности - ✅ Включение питания через Wake-on-LAN - ✅ Выключение питания через API DSM - ✅ Перезагрузка системы - ✅ Проверка статуса и получение информации о системе - ✅ Ограничение доступа по ID пользователей ## Требования - Python 3.8+ - Synology NAS с включенным WoL - Учетная запись администратора DSM - Telegram Bot API Token ## Установка и настройка 1. Клонируйте репозиторий: ```bash git clone https://github.com/yourusername/synology_power_control_bot.git cd synology_power_control_bot ``` 2. Установите зависимости: ```bash pip install -r requirements.txt ``` 3. Настройте параметры в файле `.env`: ``` # Telegram Bot Configuration TELEGRAM_TOKEN=your_telegram_bot_token ADMIN_USER_IDS=123456789,987654321 # Synology NAS Configuration SYNOLOGY_HOST=192.168.1.100 SYNOLOGY_PORT=5000 SYNOLOGY_USERNAME=admin SYNOLOGY_PASSWORD=your_password SYNOLOGY_SECURE=False SYNOLOGY_TIMEOUT=10 # Wake-on-LAN Configuration SYNOLOGY_MAC=00:11:22:33:44:55 WOL_PORT=9 ``` 4. Запустите бота: ```bash python -m src.bot ``` ## Подготовка Synology NAS 1. Включите Wake-on-LAN в настройках DSM: - Панель управления > Сеть > Общие > Wake-on-LAN 2. Убедитесь, что API DSM включено: - Панель управления > Службы терминала и SNMP > Включить DSM API 3. Узнайте MAC-адрес вашего NAS: - Панель управления > Сеть > Сетевой интерфейс ## Команды бота - `/start` - Начало работы с ботом - `/status` - Проверка текущего статуса NAS - `/power` - Управление питанием NAS - `/help` - Вывод справочной информации ## Структура проекта ``` synology_power_control_bot/ ├── logs/ # Директория для логов ├── src/ # Исходный код │ ├── api/ # Модули для работы с API │ │ └── synology.py # API для работы с Synology NAS │ ├── config/ # Модули конфигурации │ │ └── config.py # Основная конфигурация │ ├── handlers/ # Обработчики команд бота │ │ └── command_handlers.py │ ├── utils/ # Вспомогательные утилиты │ │ └── logger.py # Настройка логирования │ └── bot.py # Основной файл запуска бота ├── .env # Файл с переменными окружения ├── .gitignore # Файл игнорирования Git └── requirements.txt # Зависимости проекта ``` ## Безопасность Бот имеет систему авторизации на основе ID пользователей Telegram. Убедитесь, что указали правильные ID в переменной `ADMIN_USER_IDS` в файле `.env`. ## Лицензия MIT