Telegram ↔ Meshtastic Bridge — мост для интеграции мессенджера Telegram с mesh-сетью Meshtastic.
TeleMesh — это мощный мост между Telegram и Meshtastic, позволяющий пользователям Telegram общаться с участниками mesh-сети и наоборот. Скрипт поддерживает двунаправленную пересылку сообщений, реакций, отслеживание ответов и множество других функций.
- Двунаправленная пересылка — сообщения из Telegram попадают в Mesh, и наоборот
- Автоматическое разбиение — длинные сообщения разбиваются на части с нумерацией
[1/2], [2/2] - Ограничение длины — настраиваемое ограничение длины сообщений для mesh-сети
- Добавление контактов — команда
!add(или!добавить) при ответе на сообщение добавляет пользователя Telegram в записную книжку - Список контактов — команда
!list(или!список) выводит всех сохранённых пользователей с номерами - Удаление контактов — команда
!del(или!удалить) удаляет запись по номеру или текущего пользователя (при ответе) - Отправка контактам — формат
!5 Приветотправляет сообщение контакту под номером 5 - Отправка по @username — формат
@username сообщениеотправляет сообщение пользователю Telegram по его юзернейму - Персистентность — контакты сохраняются в файл
contacts_<ID_ноды>.json(разные файлы для разных целевых нод)
- TG → Mesh — реакции из Telegram пересылаются в Meshtastic (поддерживаются как обычные сообщения, так и сообщения, отправленные через
!nили@username) - Mesh → TG — реакции из Mesh отправляются автору оригинального сообщения в Telegram
- Fallback в текст — если реакция не может быть отправлена нативно, она приходит текстом с подписью
- При ответе на сообщение из Mesh в Telegram, ответ отправляется оригинальному автору сообщения, а не последнему отправителю
- Кэш сообщений с TTL для корректной маршрутизации ответов
- Автоматическая транслитерация кириллицы в латиницу для отображения на устройствах Meshtastic
- Визуально понятное преобразование:
Привет→Privet
- Подтверждение доставки сообщений в Mesh
- Автоматические повторные отправки при отсутствии подтверждения
- Настраиваемое количество попыток и таймауты
- Уведомления о недоставке (опционально)
- Пересылка телеметрии устройств Meshtastic в Telegram (опционально)
- Поддержка Environment Metrics (температура, влажность и т.д.)
!стоп/!stop— приостановить пересылку!старт/!start— возобновить пересылку- Управление только из Mesh для безопасности
- Нормализация команд:
! старт,! Cтapт(лат+кир) → распознаются корректно
- Автоматическое определение типа вложения
- Поддерживаемые типы:
[PIC],[GIF],[VIDEO],[AUDIO],[VOICE],[DOC] - Сообщения с медиа без текста корректно обрабатываются
- Извлечение заголовков страниц по URL
- Специальная обработка YouTube ссылок с префиксом
▶️ - Обычные ссылки с префиксом
🔗
- Настраиваемая подпись к сообщениям из Mesh
- По умолчанию:
📡 Отправлено из меш-сети с помощью 📟 TeleMesh
- Флаг
--no-welcome— при запуске не отправляет приветственное сообщение в Mesh (полезно для перезапусков) - Динамические файлы контактов — для каждого
DEST_NODE_IDсвоя записная книжка, что позволяет использовать один экземпляр скрипта с разными целевыми нодами
TELEGRAM_PROXY— подключение через прокси или шлюз (MTProxy из таблицы 200, SOCKS5, HTTP и др.)TELEGRAM_BIND_INTERFACE— привязка всего Telegram-трафика к конкретному сетевому интерфейсу (напримерawg0,wg0,tun0)
- Детальное логирование всех операций
- Отладочная информация о пакетах, кэше, маршрутизации
TeleMesh is a powerful bridge between Telegram and Meshtastic, allowing Telegram users to communicate with mesh network participants and vice versa. The script supports bidirectional message forwarding, reactions, reply tracking, and many other features.
- Bidirectional forwarding — messages from Telegram go to Mesh, and vice versa
- Automatic splitting — long messages are split into parts with numbering
[1/2], [2/2] - Length limiting — configurable message length limit for mesh network
- Add contacts — command
!add(or!добавить) when replying to a message adds the Telegram user to the contact book - List contacts — command
!list(or!список) shows all saved users with their slot numbers - Delete contacts — command
!del(or!удалить) deletes a record by slot number or the current user (when replying) - Send to contact by slot — format
!5 Hellosends a message to the contact in slot 5 - Send by @username — format
@username messagesends a message to a Telegram user by their username - Persistence — contacts are stored in
contacts_<node_id>.json(separate files for different target nodes)
- TG → Mesh — reactions from Telegram are forwarded to Meshtastic (works for both regular messages and those sent via
!nor@username) - Mesh → TG — reactions from Mesh are sent to the original message author in Telegram
- Text fallback — if a reaction cannot be sent natively, it arrives as text with signature
- When replying to a Mesh message in Telegram, the reply goes to the original author, not the last sender
- Message cache with TTL for correct reply routing
- Automatic Cyrillic to Latin transliteration for display on Meshtastic devices
- Visually understandable conversion:
Привет→Privet
- Message delivery confirmation in Mesh
- Automatic retries on missing confirmation
- Configurable retry count and timeouts
- Delivery failure notifications (optional)
- Forward Meshtastic device telemetry to Telegram (optional)
- Environment Metrics support (temperature, humidity, etc.)
!stop/!стоп— pause forwarding!start/!старт— resume forwarding- Control from Mesh only for security
- Command normalization:
! start,! Cтapт(mixed Latin+Cyrillic) → recognized correctly
- Automatic attachment type detection
- Supported types:
[PIC],[GIF],[VIDEO],[AUDIO],[VOICE],[DOC] - Media-only messages (without text) are handled correctly
- Page title extraction from URLs
- Special YouTube link handling with
▶️prefix - Regular links with
🔗prefix
- Configurable signature for messages from Mesh
- Default:
📡 Отправлено из меш-сети с помощью 📟 TeleMesh
--no-welcomeflag — suppresses the welcome message sent to Mesh on startup (useful for restarts)- Dynamic contact files — each
DEST_NODE_IDhas its own contact book, allowing one script instance to work with different target nodes
TELEGRAM_PROXY— connect via proxy/gateway (MTProxy from table 200, SOCKS5, HTTP)TELEGRAM_BIND_INTERFACE— bind Telegram traffic to a specific network interface (awg0,wg0, etc.)
- Detailed logging of all operations
- Debug info about packets, cache, routing
pip install telethon meshtastic requests pubsub