Telegram Repeater Bot для управления системами на оснве svxlink - Rolink (ORLink, FMlink)

Бот позволяет управлять приемом на ретрансляторе, линке или хотспоте на основе системы ROLink (ORLink или FMLink):
* включает и отключает прием по команде из Telegram;
* поддерживает таймер автоматического включения;
* поддерживает кнопки управления;
* можно управлять из одной группы несколькими ботами, на каждом устройстве;
* поддерживает DTMF-команды и пользовательские макросы для расширенного управления (начиная с v.011a);
* позволяет управлять SVXLink напрямую из чата (перезапуск и обновления).
🛠 Последние обновления
* **v.011a**: Добавлена поддержка конфигурационных файлов `repeater_bot.conf` и `repeater_bot_dtmf.conf` для упрощения настройки. Введены новые функции: DTMF-команды (позволяют отправлять коды для управления SVXLink), пользовательские макросы (можно создавать и редактировать в `repeater_bot_dtmf.conf`), автоматическая проверка обновлений, команды управления (`/update`, `/ver`, `/restart_bot`, `/restart_svx`) и прямое управление SVXLink из чата.
* **Тонкости**: Версия v.009a устарела и не совместима с новыми функциями. Рекомендуется обновиться до v.011a, создав копию файла настроек перед этим.
✅ Шаг 1. Создание бота в Telegram
1. Открой Telegram.
2. Найди и начни чат с @BotFather.
3. Отправь команду:
/newbot
4. Придумай имя (например: Repeater Control Bot).
5. Придумай логин, обязательно заканчивающийся на _bot (например: Repeater70bot).
6. BotFather выдаст тебе токен, например:
➤ Скопируй этот токен — он понадобится позже.
✅ Шаг 2. Узнай свой Telegram ID
1. Найди в Telegram бота: @username_to_id_bot
2. Напиши ему любое сообщение.
3. Он ответит твоим числовым ID, например: 123456789.
Этот ID нужно будет указать как ADMIN, чтобы только ты мог управлять ботом или список админов: ADMINS = [1234567890, 0987654321].
✅ Шаг 3. Создай Telegram-группу
1. Создай новую группу (например, "Управление Ретрансляторами").
2. Добавь туда только что созданного бота.
3. Назначь его администратором группы, включив все разрешения.
4. Напиши в группу любое сообщение.
5. Перешли его в @username_to_id_bot.
6. Бот пришлёт тебе **ID группы**, например: -1002660123456.
✅ Шаг 4. Установка бота на устройство (Orange Pi, Raspberry Pi, VPS и т.п.)
Выполни на устройстве под root:
wget -O - https://odradio.link/svx/bot/install_repeater_bot.sh | sudo bash
Бот установится в "/opt/rolink/scripts/repeater_bot.py"
Systemd-сервис будет автоматически создан и запущен.
Смотреть журнал работы бота:
journalctl -u repeater_bot.service -f
Лог бота:
tail -f /tmp/repeater_bot.log
Доступные консольные команды:
Остановить бота
systemctl stop repeater_bot.service
Запустить/перезапустить бота
systemctl restart repeater_bot.service
Статус бота
systemctl status repeater_bot.service
✅ Шаг 5. Настройка скрипта бота
Открой файл:
nano /opt/rolink/scripts/repeater_bot.py
Если у вас установлена старая версия v.009a:
1. Создайте копию файла: `
cp /opt/rolink/scripts/repeater_bot.py /opt/rolink/scripts/repeater_bot_009a_backup.py
`.
2. Обновите бота (см. Шаг 10) и используйте новые конфигурационные файлы. Перенесите свои настройки из старого бота v.009a в новый конфиг файл.
Для версии v.011a и выше настройка выполняется через файлы:
- `
nano /opt/rolink/scripts/repeater_bot.conf
` — основные настройки:
# Название ретранслятора/узла
RELAY_ID = @100
# Команда в Voter
RX_COMMAND = LocaleRx
# Путь для записи команд для Voter
TMP_COMMAND_FILE = /tmp/voter
# ID Админа/админов
ADMINS = 1234567890,0987654321
# ID Токен бота
TELEGRAM_TOKEN = Токен_бота
# ID группы или чата
CHAT_ID = -1002660123456
# Таймер авто-включения приема (сек)
AUTO_RESTORE_TIMEOUT = 3600
# Таймер авто-удаления сообщений (сек)
AUTO_DELETE_TIMEOUT = 15
# Включение/выключение логирования
ENABLE_LOGGING = True
# Путь к файлу логов
LOG_FILE = /tmp/repeater_bot.log
- `
nano /opt/rolink/scripts/repeater_bot_dtmf.conf
` — настройки DTMF и макросов:
# Включение/выключение DTMF-команд
DTMF_ENABLED = True
# Telegram ID пользователей с доступом к DTMF
DTMF_ACCESS_IDS = 1234567890
# Режим работы DTMF-команд: chat, bot, both
DTMF_COMMAND_MODE = both
# Путь для отправки DTMF-команд
DTMF_CTRL_PTY = /tmp/dtmf
# Команда для inline-кнопок в чате
INLINE_CHAT = @100#?
# Команда для inline-кнопок в личном чате
INLINE_BOT = /#?
[CHAT_MACROS]
enable_link = @100:551#
disable_link = @100:55#
✅ Шаг 6. Настройка SVXLink
Открой файл конфигурации:
nano /opt/rolink/conf/rolink.conf
▶️ Если это **хотспот или симплексный узел**:
[SimplexLogic]
TYPE=Simplex
RX=Voter
...
📡 Если это **ретранслятор**:
[RepeaterLogic]
TYPE=Repeater
RX=Voter
...
📥 Обязательная секция Voter, замените на эту:
[Voter]
TYPE=Voter
RECEIVERS=LocaleRx
VOTING_DELAY=75
COMMAND_PTY=/tmp/voter
📻 Настрой секцию приёмника
Найди секцию настроек приемника [RX1] или [Receiver1] или другое. Переименуй её в:
[LocaleRx]
Или другой вариант. Указать в RECEIVERS= Имя вашей секции:
например:
RECEIVERS=RX1
🔁 Перезапуск SVXLink
systemctl restart rolink
✅ Шаг 7. Перезапуск бота
systemctl restart repeater_bot.service
✅ Шаг 8. Управление ботом
В Telegram-группе можно отправлять:
🧾 Команды:
@70- — отключить прием
@70+ — включить прием
@70- 300 — отключить прием на 5 минут
STATUS — показать текущее состояние
Начиная с v.011a появились:
/# — отправить DTMF-команду # отключить модуль или от линка
/#? — отправить DTMF-команду #? и показать меню кнопок
/hash — эквивалент /# (макрос для удобства)
/hash_query — эквивалент /#? (макрос для удобства)
@100:9125578# — пример DTMF-команды подколючения к Одесской TG25578 (настроить в CHAT_MACROS)
/update — проверить и установить обновление (только в личном чате)
/ver — показать версию бота (только в личном чате)
/restart_bot — перезапустить бота (только в личном чате)
/restart_svx — перезапустить SVXLink (только в личном чате)
🔘 Кнопки:
После команды `/#?` или `/hash_query` бот покажет:
* 🔊 Включить
* 🔇 Выключить
* 📟 Статус
Нажимай кнопки — и бот выполнит действие.
📋 Тонкости использования:
- **DTMF-команды**: Начиная с v.011a, отправляйте коды (например, `@100:25578#`) для управления SVXLink. Настройте в `repeater_bot_dtmf.conf` (раздел CHAT_MACROS или BOT_MACROS).
- **Макросы**: Создавайте свои команды в `repeater_bot_dtmf.conf`, например: `connect_link = @100:912550#`. Используйте их как `/connect_link` в личном чате с ботом или `@100connect_link` в общем чате.
- **Управление SVXLink**: Используйте `/restart_svx` для перезапуска SVXLink прямо из чата.
- **Логи**: Проверяй логи (`journalctl -u repeater_bot.service -f`) для диагностики ошибок.
- **Обновление**: Используй `/update` в личном чате с ботом для проверки и установки новой версии (требуются права админа).
✅ Шаг 9. Несколько ботов в одной группе
Ты можешь установить одного бота на каждое устройство, и все они будут работать в одной группе.
Пример:
Устройство 1:
`RELAY_ID = "@70"`
Устройство 2:
`RELAY_ID = "@96"`
...
📲 В одной и той же группе Telegram ты можешь отправлять:
@70- 600
@96+
STATUS
```
Каждый бот реагирует *только на свой RELAY_ID, и не мешает другим.
✅ Шаг 10. Обновление бота и перенос настроек
Если у вас установлена версия v.009a:
1. Создайте копию файла: `
cp /opt/rolink/scripts/repeater_bot.py /opt/rolink/scripts/repeater_bot_009a_backup.py
`.
2. Выполните обновление: `
wget -O - https://odradio.link/svx/bot/install_repeater_bot.sh | sudo bash
`.
3. Откройте новый файл `repeater_bot.conf`:
- Скопируйте настройки из `repeater_bot_009a_backup.py`:
- `TELEGRAM_TOKEN` → `TELEGRAM_TOKEN`
- `RELAY_ID` → `RELAY_ID`
- `RX_COMMAND` → `RX_COMMAND`
- `ADMINS` → `ADMINS` (замените запятые на пробелы, например, `1234567890 0987654321`)
- `CHAT_ID` → `CHAT_ID`
- `AUTO_RESTORE_TIMEOUT` → `AUTO_RESTORE_TIMEOUT`
- `AUTO_DELETE_TIMEOUT` → `AUTO_DELETE_TIMEOUT`
- `ENABLE_LOGGING` → `ENABLE_LOGGING`
- `LOG_FILE` → `LOG_FILE`
- Сохраните (Ctrl+O, Enter, Ctrl+X).
4. Настройте `repeater_bot_dtmf.conf` (по умолчанию DTMF отключен, включите вручную, если нужно, например, `DTMF_ENABLED = True`).
5. Перезапустите бота: `
systemctl restart repeater_bot.service
`.
Для обновления текущей версии:
1. Отправьте `/update` в личном чате с ботом (требуются права админа).
2. Бот автоматически проверит и установит новую версию, создав бекапы конфигов.
🧹 Удаление бота
Выполни в консоли команду:
wget -O - https://odradio.link/svx/bot/install_repeater_bot.sh | sudo bash -s -- --remove
Бот находится в стадии разработки, пишите Баг Репорты. С удовольствием рассмотрю и постараюсь реализовать в новых версиях ваши пожелания и предложения, пишите их в комментариях или в нашу телеграм группу.
Repeater BOT from UT3FT

