TMesh — мост
Meshtastic ↔ Telegram
Двусторонняя передача сообщений, геопозиции и телеметрии между сетью Meshtastic и группами Telegram — без регистрации собственного бота или MQTT-сервера.
Что такое TMesh
TMesh — сервис интеграции Meshtastic с Telegram. Бот @tmesh_spb_bot и виртуальный узел TMesh Bot (!000007c1) обеспечивают прозрачную ретрансляцию сообщений между обеими платформами.
TMesh поддерживает работу с несколькими независимыми сетями в рамках одного бота. Каждая сеть — это отдельное географическое сообщество (например, разные города). Список доступных сетей и их публичных каналов показывает команда /list_networks.
Связь один-к-одному. Сообщения шифруются публичным ключом устройства (PKI). Поддерживает статусы доставки.
Связь один-ко-многим. Все устройства приватного канала получают сообщения из Telegram. Шифрование по ключу канала (PSK).
Требования к устройству
Для работы с TMesh в настройках LoRa вашего устройства необходимо разрешить передачу пакетов через MQTT:
- Игнорировать MQTT —
Нет - OK в MQTT —
Да
Доступные сети
Перед регистрацией устройства или канала убедитесь, что в вашем городе развёрнута сеть TMesh. Используйте команду /list_networks — бот покажет все активные сети и публичные каналы каждой из них.
Регистрация устройства
Перед добавлением устройства в Telegram-группу рекомендуется сначала протестировать связь напрямую с ботом.
Шаг 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 в группу.
- Дайте боту права администратора — это необходимо для чтения и пересылки сообщений. Настройки по умолчанию подходят, ничего дополнительно включать не нужно.
- Готово. Теперь в группе отправьте
/add_deviceили/add_channelдля связи Meshtastic-устройств с этой группой.
Обмен сообщениями
- Сообщения из 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, Services и все зарегистрированные приватные каналы. Отправьте ping или пинг — получите личное сообщение pong от TMesh Bot. Также работает команда /ping в личном сообщении узлу.
Команды бота
Устройства
/add_device !75bcd15 или без параметров для пошаговой регистрации.
Каналы
/list_networks). Тип: single или multiple. Пример: /add_channel 1 SpasTeam ZGeG...U= single
/status.
Информация
/status MyDevice
Зачем становиться шлюзом
Шлюзы — основа сервиса 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-группу, из которой пришло исходное сообщение.