Files
nas_control_bot/.history/README_20250830063733.md
2025-08-30 10:33:46 +09:00

102 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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