Создать акаунт
Ukraine Radio Link » SVXLINK » Telegram Repeater Bot для управления системами на оснве svxlink - Rolink (ORLink, FMlink)

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

02 авг 2025, 17:12
SVXLINK / Linux / Блог
142
0
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 выдаст тебе токен, например:


1234567890:ABCDefGhijKlmNOPqrstuVWxyz123456789


   ➤ Скопируй этот токен — он понадобится позже.


✅ Шаг 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 с системой ROLink (ORLink или FMLink))

Выполни на устройстве под 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. Создайте копию конфига себе в текстовый файл для удобства переноса настроек в новый конфиг:

Nano /root/repeater_bot.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#
  


💡 RELAY\_ID должен быть разным на каждом устройстве, если их несколько в одной группе. Редактируйте файлы с правами root и сохраняйте (Ctrl+O, Enter, Ctrl+X).


✅ Шаг 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


⚠️ Бот будет писать команды MUTE и ENABLE в /tmp/voter. SVXLink будет их читать.


📻 Настрой секцию приёмника

Найди секцию настроек приемника [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 (только в личном чате)


Если вы отключили прием командой "-" и случайно забыли включить, то прием автоматически включится через 60 минут. Этот параметр настраивается в repeater_bot.conf, в строке: AUTO_RESTORE_TIMEOUT =


🔘 Кнопки:

После команды /#? или /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. Скопируйте настройки в верхней части файла себе в блокнот для удобства переноса в новый конфиг:

nano /root/repeater_bot.py


2. Выполни удаление:

wget -O - https://odradio.link/svx/bot/install_repeater_bot.sh | sudo bash -s -- --remove


3. Выполните установку:

wget -O - https://odradio.link/svx/bot/install_repeater_bot.sh | sudo bash

4. Откройте новый файл nano /opt/rolink/scripts/repeater_bot.conf

Перенесите в него настройки из текстовика в который мы сохранили настройки или из файла repeater_bot.py:

- TELEGRAM_TOKEN → TELEGRAM_TOKEN

- RELAY_ID → RELAY_ID

- RX_COMMAND → RX_COMMAND

- ADMINS → ADMINS (уберите пробелы между запятыми и id, например, 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).


5. Настройте repeater_bot_dtmf.conf (по умолчанию DTMF отключен, включите вручную, если нужно, например, DTMF_ENABLED = True).


6. Перезапустите бота:

systemctl restart repeater_bot.service


Для обновления текущей версии:

1. Отправьте /update в личном чате с ботом (требуются права админа - ваш Telegram ID в настройках бота).

2. Бот автоматически проверит и установит новую версию, создав бекапы конфигов.


🧹 Удаление бота

Выполни в консоли команду:

wget -O - https://odradio.link/svx/bot/install_repeater_bot.sh | sudo bash -s -- --remove


Бот находится в стадии разработки, пишите Баг Репорты. С удовольствием рассмотрю и постараюсь реализовать в новых версиях ваши пожелания и предложения, пишите их в комментариях или в нашу телеграм группу.


Repeater BOT from UT3FT

Комментарии
Минимальная длина комментария - 50 знаков. комментарии модерируются
Кликните на изображение чтобы обновить код, если он неразборчив

Смотрите также: