TMesh — мост
Meshtastic ↔ Telegram
Двусторонняя передача сообщений, геопозиции и телеметрии между сетью Meshtastic и группами Telegram — без регистрации собственного бота или MQTT-сервера.
Что такое TMesh
TMesh — сервис интеграции Meshtastic с Telegram. Бот @tmesh_spb_bot
и виртуальный узел TMesh Bot (!000007c1) обеспечивают прозрачную ретрансляцию
сообщений между обеими платформами.
TMesh поддерживает работу с несколькими независимыми сетями в рамках одного бота. Каждая
сеть — это отдельное географическое сообщество (например, разные города). Список доступных сетей и их
публичных каналов показывает команда /list_networks.
Начните общение без предварительной регистрации устройств. Из
Telegram: /chat !deviceId. Из Meshtastic: /chat @username.
Для продвинутых пользователей: /add_device и
/add_channel для автоматической двусторонней связи без ручного начала чата.
Требования к устройству
Для работы с TMesh в настройках LoRa вашего устройства необходимо разрешить передачу пакетов через MQTT:
- Игнорировать MQTT —
Нет - OK в MQTT —
Да
Доступные сети
Перед началом работы убедитесь, что в вашем городе развёрнута сеть TMesh. Используйте команду
/list_networks — бот покажет все активные сети и публичные каналы каждой из них.
Быстрый старт — чат-сессии
Самый простой способ начать использовать TMesh — это чат-сессии. Они не требуют предварительной регистрации устройств или каналов. Достаточно знать ID устройства или Telegram-имя пользователя.
/ping узлу TMesh Bot в сети Meshtastic. При
наличии связи получите ответ pong.
Из Telegram на устройство Meshtastic
- Начните чат с ботом @tmesh_spb_bot в Telegram.
- Отправьте
/chat !<ID устройства>, например:/chat !75bcd15. Позже, после первой успешной чат-сессии можно искать по имени среди одобренных/зарегистрированных устройств:/chat MyNode. - Бот отправит на устройство запрос на начало чата с 6-значным кодом.
- Владелец устройства увидит запрос и должен ответить кодом в чат с TMesh Bot.
- После подтверждения начинается двусторонний обмен сообщениями.
- Используйте
/end_chatдля завершения сессии.
Из Meshtastic в Telegram
- Пользователь Telegram должен выполнить
/startв боте @tmesh_spb_bot. Для личных чатов регистрация происходит автоматически по @username. Для групп бот попросит указать имя. - Устройство Meshtastic отправляет в чат с узлом TMesh Bot (личное сообщение) команду
/chat @<telegram_username>, например:/chat @alex_dev. Для групп:/chat имя_группы. - TMesh Bot отправит пользователю Telegram запрос с 6-значным кодом подтверждения.
- Пользователь отправляет код в чат с ботом — начинается двусторонний обмен.
- Для завершения сессии устройство или пользователь Telegram может использовать команду
/end_chat.
/chat также работает на приватных каналах, зарегистрированных в TMesh через
/add_channel.
Из Telegram на приватный канал
Если приватный канал Meshtastic уже зарегистрирован в TMesh (через /add_channel), можно начать
чат-сессию:
- Отправьте
/chat_channel ИмяКанала:ID, например:/chat_channel SpasTeam:5. ID канала — из команды/status. Если канал одобрен или зарегистрирован, можно искать по имени:/chat_channel SpasTeam. - Бот отправит в канал Meshtastic запрос с 6-значным кодом.
- Любое устройство на канале может ответить кодом для подтверждения.
- После подтверждения начинается двусторонний обмен.
Управление чат-сессиями
/disable.
/remove_device или /remove_channel чтобы отозвать
разрешение.
Регистрация устройства (расширенная)
Регистрация устройства создаёт постоянную привязку между устройством Meshtastic и Telegram-чатом. Сообщения шифруются публичным ключом устройства (PKI). Это для пользователей, которым нужна постоянная автоматическая связь — без ручного начала чат-сессии каждый раз.
Шаг 0 — Проверка связи
Отправьте личное сообщение узлу TMesh Bot в сети Meshtastic с текстом /ping.
При наличии связи вы получите ответ pong.
Регистрация
- Начните чат с ботом @tmesh_spb_bot в Telegram.
- Отправьте команду
/add_device(или/add_device !ваш_idнапрямую). - Бот попросит ID вашего устройства. Найдите его в приложении Meshtastic: откройте информацию об устройстве
и долгим нажатием скопируйте Номер узла. Формат:
!abcdef0или десятичное число. - Если TMesh Bot видел ваше устройство в сети, он отправит на него 6-значный код подтверждения.
- Введите полученный код в Telegram. Регистрация завершена.
- Напишите тестовое сообщение — оно будет доставлено на устройство Meshtastic.
Что делать, если код не приходит?
Возможно, вы находитесь вне зоны покрытия шлюзов TMesh. Попробуйте
физически приблизить устройство к одному из шлюзов — их идентификаторы видны в выводе команды
/list_networks, а местоположение можно найти на карте map.onemesh.ru. Если это не помогло — свяжитесь с местным сообществом
Meshtastic.
TMesh Bot ещё не «слышал» ваше устройство. Проверьте командой
/list_networks, что ваш город поддерживается и вы используете правильный публичный канал. Затем
в приложении Meshtastic найдите узел TMesh Bot и выполните «Обменять информацию пользователя».
Подождите несколько секунд и повторите попытку.
Регистрация приватного канала (расширенная)
Регистрация канала позволяет связать с Telegram сразу несколько устройств Meshtastic — всех, кто находится на одном приватном канале. Публичные каналы (LongFast, Services) регистрировать нельзя.
- Начните чат с ботом @tmesh_spb_bot.
- Отправьте команду
/add_channel. - Бот покажет список доступных сетей — введите ID нужной сети (например,
1). Узнать сети заранее:/list_networks. - Введите имя канала (например:
SpasTeam). Максимум 12 байт. - Введите ключ канала (PSK) в формате base64. Поддерживаются ключи 16 и 32 байта. Пустой ключ не поддерживается.
- Если канал регистрируется впервые, бот спросит тип использования:
single— одно устройство. Используется оптимизированная маршрутизация через последний известный шлюз.multiple— несколько устройств. Сообщения рассылаются через все шлюзы.
- Бот отправит в канал код подтверждения. Введите его в Telegram.
- Регистрация завершена.
/add_channel 1 SpasTeam ZGeG...U= single
Добавление бота в Telegram-группу
- Создайте новую группу в Telegram или используйте существующую.
- Добавьте бота @tmesh_spb_bot в группу.
- Дайте боту права администратора — это необходимо для чтения и пересылки сообщений. Настройки по умолчанию подходят, ничего дополнительно включать не нужно.
- Выполните
/start— бот попросит указать имя для группы. После этого устройства Meshtastic смогут связываться с группой через/chat <имя_группы>. - При необходимости используйте
/add_deviceили/add_channelдля постоянной регистрации устройств/каналов в этой группе.
Обмен сообщениями
- Сообщения из Telegram отправляются на устройства как личные сообщения от TMesh Bot, а на каналы — напрямую в приватный канал.
- Сообщения из Meshtastic появляются в Telegram-группе от имени бота в формате
Имяузла: текст. - Работает функция «Ответить»: ответ в Telegram доставляется в Meshtastic как reply, и наоборот.
- Максимальный размер сообщения: ~230 латинских символов, ~115 кириллических, ~57 эмодзи.
- Устройства Meshtastic не ретранслируют сообщения друг другу через интернет — это намеренно, чтобы сохранить автономность сети.
Статусы доставки из Telegram
После каждого сообщения из Telegram бот ставит реакцию-эмодзи, отражающую актуальный статус доставки. Если получателей несколько, бот отправляет отдельное сообщение с набором эмодзи — по одному на каждого получателя.
Статусы из Meshtastic
В приложении Meshtastic при отправке сообщений узлу TMesh Bot отображаются стандартные статусы Meshtastic:
- Облако ↑ — в очереди на отправку
- Облако без галочки — отправлено
- Облако с галочкой — получено промежуточным узлом
- Перечёркнутое облако — ошибка доставки
- Силуэт с галочкой — доставлено до TMesh Bot
Подтверждение ✓ для приватных каналов
Когда TMesh получает сообщение из приватного канала и успешно доставляет его в Telegram, он автоматически отвечает в канал символом ✓. Это позволяет убедиться в доставке, даже если приложение Meshtastic не показывает статус для канальных сообщений.
Геопозиция
Устройство может отправить GPS-позицию прямым сообщением узлу TMesh Bot — бот опубликует карту в Telegram-группе.
TMesh также сохраняет пакеты с геопозицией из публичных и зарегистрированных приватных каналов. Последние
известные позиции всех устройств доступны командой /position.
Трейс и проверка связи
TMesh Bot отвечает на запросы traceroute. Входящий маршрут отображается в Telegram — вы видите, через какие узлы прошёл пакет.
Бот также слушает публичные каналы в вашей сети (LongFast, MediumFast) и
все зарегистрированные приватные каналы. Отправьте ping или пинг — получите личное
сообщение pong от TMesh Bot со ссылкой на сайт сообщества. Также работает команда
/ping в личном сообщении узлу.
Команды Telegram-бота
Чат-сессии
/chat !75bcd15,
/chat MyDevice (поиск по имени среди одобренных/зарегистрированных).
/chat_channel SpasTeam:5, /chat_channel SpasTeam (поиск по имени).
Регистрация устройств и каналов
/add_device !75bcd15 или без
параметров для пошаговой регистрации.
/list_networks). Тип: single или multiple. Пример:
/add_channel 1 SpasTeam ZGeG...U= single
/status.
Информация
/status MyDevice
Команды Meshtastic (узел TMesh Bot)
Эти команды отправляются в личном сообщении узлу TMesh Bot или на приватном канале, зарегистрированном в TMesh:
/start в боте). Пример: /chat @alex_dev. Для групп:
/chat имя_группы.
pong.
Зачем становиться шлюзом
Шлюзы — основа сервиса TMesh. Именно через них проходят все сообщения между Meshtastic и Telegram. Чем больше шлюзов и чем шире их охват, тем стабильнее работает сервис для всех.
Шлюз также участвует в сборе аналитики качества сети и транслирует пакеты на карту Onemesh.
- Стационарное размещение с хорошим радиопокрытием (крыша, высокая точка)
- Стабильное электропитание
- Постоянный доступ к интернету
- Устройство заранее зарегистрировано через
/add_device - Установлена прошивка TMesh
Настройка шлюза
- Зарегистрируйте устройство командой
/add_device, если ещё не сделали этого. - Прошейте устройство специальной прошивкой TMesh через веб-флешер flasher.tmesh.ru. Прошивка добавляет поддержку кириллицы, авторизацию на MQTT-сервере TMesh и передачу телеметрии.
- Выполните
/promote_to_gateway !ваш_id. Бот спросит, установлена ли прошивка TMesh. После подтверждения — вышлет готовые настройки MQTT. - Настройте MQTT в приложении Meshtastic → Config → Network → MQTT:
| Параметр | Значение |
|---|---|
| Server address | из сообщения бота |
| Username | !ваш_hex_id |
| Password | из сообщения бота (уникальный) |
| Root topic | из сообщения бота |
| Encryption enabled | ✅ Включено |
| JSON output enabled | ❌ Выключено |
| TLS enabled | ❌ Выключено |
| Map reporting | ✅ Включено |
После сохранения настроек устройство подключится к MQTT-серверу. При получении первого пакета бот отправит уведомление в Telegram-чат.
Снятие статуса шлюза
Для снятия статуса шлюза выполните /demote_from_gateway !ваш_id. Не забудьте очистить настройки
MQTT на самом устройстве. Если шлюз долго неактивен — он будет снят автоматически, бот отправит уведомление.
Ограничения
- TMesh отправляет не более 30 пакетов в минуту на каждую сеть (город) — примерно 15 сообщений в минуту для всех пользователей одной сети.
- Очередь сообщений работает по приоритетам: подтверждения получения — высокий, текстовые — нормальный, служебные — низкий.
- Для каналов типа
singleи устройств используется направленная маршрутизация — сообщение уходит через шлюз, который последним «слышал» устройство. Это экономит пропускную способность. - Для каналов типа
multipleсообщения рассылаются через все шлюзы. - TMesh зависит от интернета и Telegram. При недоступности сервисов передача через TMesh невозможна, но это не влияет на маршрутизацию пакетов в самой сети Meshtastic.
Рекомендации
- Используйте короткие сообщения — это повышает надёжность доставки. Максимум: ~230 ASCII, ~115 кириллических символов, ~57 эмодзи.
- Не используйте TMesh там, где достаточно обычного Telegram.
- Старайтесь не регистрировать одно устройство в нескольких группах — это может запутать получателей, так как сообщения пойдут во все группы одновременно.
- Если вы ответили на сообщение из Meshtastic в приложении — ответ уйдёт именно в ту Telegram-группу, из которой пришло исходное сообщение.