Meshtastic видит узлы, но сообщения не отправляются: что проверить
Meshtastic · LoRa · Failed to deliver · MQTT · каналы

Meshtastic видит узлы, но сообщения не отправляются: Failed to deliver to mesh и другие причины

Одна из самых частых проблем новичка: в списке десятки узлов, координаты обновляются, иногда даже приходят сообщения, но свои сообщения зависают на отправке или заканчиваются ошибкой Failed to deliver to mesh. Это не всегда поломка устройства. Сначала нужно отделить реальный LoRa-радиоканал от MQTT, проверить регион, modem preset, канал, ключ, transmit и только потом подозревать антенну или радиомодуль.

«Вижу узел» ≠ «есть двухсторонняя связь» Запись могла прийти раньше, через другой маршрут или через MQTT
Канал и LoRa preset — разные настройки Для полной связи должны совпадать и радиопараметры, и параметры канала
Factory reset не первый шаг Большинство причин можно локализовать сравнением настроек и тестом двух известных узлов
Сначала понимаем статус

Что означает Failed to deliver to mesh

Meshtastic использует подтверждения не совсем так, как интернет-мессенджер. В радиосети нет центрального сервера, который всегда знает, кто получил пакет.

Сообщение в общий канал

Для broadcast обычные ACK от всех узлов создали бы лавину трафика. Поэтому отправитель слушает, ретранслировал ли пакет хотя бы один другой Meshtastic-узел. Если слышит повтор, это считается косвенным подтверждением попадания пакета в mesh.

Direct message

Для личного сообщения конечный получатель отправляет реальное подтверждение обратно. Начиная с Meshtastic 2.6 для direct messages дополнительно используется next-hop routing, если маршрут уже известен.

Если подтверждение не приходит, устройство повторяет передачу. После исчерпания попыток локально формируется ошибка доставки.

Важно: Failed to deliver не является абсолютным доказательством, что пакет физически не услышал вообще никто.

Это означает, что ваш узел не получил ожидаемого подтверждения в рамках алгоритма доставки. В радиосети возможен асимметричный путь: вас слышат, а обратный ACK до вас не доходит.

Главная ловушка новичка

Почему можно видеть 50–200 узлов и не иметь до них рабочей связи

Почему узел есть в списке Почему это не доказывает текущую связь
NodeInfo пришёл раньше Устройство осталось в NodeDB, хотя сейчас находится вне зоны связи
Пакет пришёл через несколько hops Обратный маршрут в этот момент может быть хуже или уже измениться
MQTT Интернет-шлюз способен связать удалённые mesh-сети, которые напрямую по LoRa вы не достигаете
Удалённый высокий узел слышен хорошо У него может быть лучше антенна, высота и радиогоризонт, чем у вашего мобильного устройства
Старые данные карты Присутствие узла на карте или в базе не равно гарантированной связи прямо сейчас

По умолчанию NodeInfo передаётся не постоянно, а с большим интервалом. Поэтому список узлов нужно воспринимать как историю увиденной сети, а не как список «сейчас онлайн и точно доступны».

Самый полезный тест

Сначала докажите, что ваш передатчик работает на двух известных узлах

Диагностировать городскую mesh-сеть одним устройством неудобно: вы не знаете настройки и реальное положение других узлов. Намного лучше иметь второй заведомо исправный Meshtastic-узел.

01

Поставьте два узла рядом

Не вплотную антеннами, а на небольшом безопасном расстоянии. У обоих должны быть подключены правильные антенны.

02

Сверьте регион и modem preset

Для полноценной связи Meshtastic требует одинаковый Region и Modem Preset либо одинаковые custom modem settings.

03

Сверьте канал

Для общения в одном channel должны совпадать Name и PSK. Для простого теста удобнее стандартный публичный primary без самодельных параметров.

04

Временно исключите MQTT из теста

Нужно понять, проходит ли пакет именно по радио, а не через интернет-шлюз.

05

Отправьте channel message и direct message

Так можно отдельно проверить broadcast и подтверждаемое сообщение конкретному узлу.

06

Разнесите узлы дальше

Только после успешного ближнего теста проверяйте улицу, высоту, стены и реальное покрытие.

Не включайте LoRa-узел без подходящей антенны.

Для радиопередатчика работа без согласованной антенны может быть нежелательной и в отдельных устройствах привести к повреждению RF-тракта.

Радиопараметры

Проверьте Region, Modem Preset и Transmit Enabled

В официальной документации Meshtastic прямо указано: для полной связи узлы должны иметь одинаковые Region и Modem Preset либо одинаковые custom modem settings.

Для России

Используйте штатный регион RU и параметры, допустимые для этого региона. Не ставьте зарубежный регион, frequency override или обход ограничений ради «лучшей дальности».

Modem Preset

LONG_FAST, MEDIUM_FAST, SHORT_SLOW и другие presets меняют физические параметры LoRa. Два узла с разными modem presets не смогут полноценно общаться, даже если channel называется одинаково.

Transmit Enabled

В LoRa settings есть отдельный переключатель передачи. Если TX отключён, узел может принимать чужие пакеты и при этом сам ничего не передавать.

Не увеличивайте Max Hops, TX Power и не меняйте частоту наугад.

Это не универсальное лечение. Сначала добейтесь связи на штатных региональных настройках и совместимом preset.

Channel ≠ radio preset

Одинаковый LongFast ещё не означает одинаковый канал

В Meshtastic есть два разных слоя настроек:

LoRa / Modem Preset Определяет радиопараметры: как пакет физически передаётся.
Channel Определяет логическую группу сообщений, Name, PSK и MQTT uplink/downlink.

Для общения на одном channel Meshtastic требует совпадения Name и PSK.

Ещё один нюанс: имя PRIMARY channel может влиять на выбор frequency slot. Если у устройств разные primary channel names, но вы хотите, чтобы они физически работали на одном частотном слоте, настройка должна быть согласована.

Типичная ошибка

Пользователь меняет имя primary на «LongFast», думая, что это выбор radio preset. Но LONG_FAST как modem preset и текстовое имя channel — совершенно разные вещи.

Для диагностики не усложняйте конфигурацию.

Сначала проверьте штатный публичный channel и одинаковый modem preset на двух своих узлах. Частные каналы и дополнительные PSK добавляйте после успешного RF-теста.

Почему карта и NodeDB могут вводить в заблуждение

MQTT способен показать сеть, до которой вы не достаёте по LoRa

Meshtastic MQTT подключает mesh к интернет-брокеру и может связывать удалённые радиосети. Для передачи через MQTT channel должен иметь соответствующий uplink/downlink.

Поэтому при диагностике чистого радиоканала MQTT лучше временно исключить из уравнения.

LoRa Реальная радиосвязь вашего узла с соседними узлами
MQTT Интернет может переносить пакеты между удалёнными mesh-сетями
Карта Наличие узла на карте не является тестом вашего RF link

Для чистого теста

  • используйте два своих узла;
  • отключите MQTT или как минимум его влияние на тестируемый channel;
  • очистку NodeDB делайте только при необходимости отделить старые записи, а не как обязательный первый шаг;
  • смотрите, видят ли два узла друг друга непосредственно после нового обмена пакетами.
Приём есть, передачи нет

Односторонняя связь возможна даже при исправной прошивке

Радиоканал может быть асимметричным. Высокий стационарный узел с хорошей антенной слышен далеко, но ваш карманный узел из помещения не обязан добивать до него обратно.

В помещении плохо, на улице лучшеСтены, металл и низкое положение ограничивают TX/RX.
На высоте сообщение проходитРадиогоризонт важнее «усиления» настройки.
Свои два узла рядом работаютRF-тракт, channel и базовые настройки, скорее всего, исправны.
Свои два узла рядом тоже не работаютПроверяют firmware, region/preset/channel, TX и hardware.

Антенна

Она должна быть рассчитана на диапазон вашего устройства и нормально подключена. Неподходящая антенна, плохой переходник, повреждённый разъём или металлический корпус способны резко ухудшить связь.

Практический тест безопаснее проводить не увеличением мощности, а перемещением узла: улица, окно, более высокая точка, затем сравнение результата.

Mesh не становится лучше от максимальных hops

Hop Limit 7 не означает «дальность в два раза больше»

В текущей документации Meshtastic стандартный Max Hops — 3, и разработчики прямо отмечают, что этого достаточно для большинства задач.

Каждый дополнительный hop не создаёт радиосвязь из пустоты. Нужны реальные промежуточные узлы, которые слышат друг друга.

Вы Relay 1 Relay 2 Получатель

Если между вами и первым соседним узлом нет рабочего RF link, увеличение hop limit ничего не исправит.

Большая сеть и congestion

Meshtastic использует механизм прослушивания канала перед передачей и управляемое flooding. В большой загруженной сети растёт конкуренция за эфир, а firmware автоматически уменьшает частоту вспомогательных broadcasts.

Поэтому в плотном городе более «дальний» медленный preset не обязательно лучше. Чем длиннее airtime пакета, тем больше времени он занимает общий радиоканал.

Публичный канал молчит

Отсутствие ответов людей не доказывает, что отправка не работает

Многие публичные Meshtastic-сети просто не очень разговорчивы. Узлы могут заниматься телеметрией, координатами и ретрансляцией, а владельцы не смотреть приложение в этот момент.

Поэтому есть три разных результата:

Нет человеческого ответаЭто ещё не диагностика RF.
Есть mesh confirmationКак минимум протокол получил ожидаемое подтверждение/ретрансляцию.
Failed to deliverВаш узел не получил требуемого подтверждения после попыток.

Лучший функциональный тест — второй свой узел, на котором вы лично видите полученное сообщение.

Hardware-specific проблемы

Проверьте совместимость прошивки с конкретной ревизией устройства

В 2026 году в сообществах были реальные случаи новых аппаратных ревизий, которые частично принимали сеть, но плохо передавали на старой версии firmware. После обновления проблема исчезала.

Это не означает, что при любой ошибке доставки нужно ставить alpha/beta firmware.

Правильный порядок

  • уточнить точную модель и hardware revision;
  • проверить официальную страницу поддержки устройства;
  • посмотреть minimum/recommended firmware;
  • для обычного пользователя предпочесть актуальный stable, если производитель не требует иного;
  • после update повторить тест двумя своими узлами.
Не обновляйте одновременно прошивку, region, preset, channel и антенну.

Меняйте по одному фактору, иначе невозможно понять, что именно исправило или ухудшило связь.

Чек-лист

Meshtastic видит узлы, но не отправляет: что проверить по порядку

1

Region: установлен корректный регион для страны, без override.

2

Transmit Enabled: передача включена.

3

Modem Preset: совпадает с тестовым узлом/локальной сетью.

4

Channel Name: одинаковый.

5

PSK: одинаковый для одного channel.

6

Frequency Slot: не изменён случайно и согласован при нестандартном primary.

7

MQTT: исключён на время чистого RF-теста.

8

Два своих узла: рядом обмениваются channel и direct messages.

9

Антенна: подходит диапазону, подключена, разъём цел.

10

Место: тест проведён не только глубоко внутри здания.

11

Firmware: подходит hardware revision.

12

Hops: не увеличены без необходимости; сначала нужен рабочий первый hop.

Чего не делать

Популярные действия, которые обычно только путают диагностику

Не ставить чужой регион

Зарубежный профиль ради «дальности» может нарушать правила и ломает совместимость с локальной сетью.

Не включать frequency override

Это advanced-настройка, а не универсальный способ оживить сообщения.

Не ставить Max Hops = 7 автоматически

Большой hop limit не исправляет отсутствие первого радиолинка и создаёт лишний эфирный трафик.

Не делать factory reset первым шагом

Сначала сохраните конфигурацию и сравните конкретные параметры.

Не судить по карте

Узел на карте не является гарантией LoRa-доступности именно от вашей точки.

Не «лечить» мощностью

Лучше проверить антенну, высоту, место и совместимость настроек, чем выходить за штатные региональные параметры.

Материалы по теме

Что ещё прочитать

Удалённый разбор

Узлы видны, но сообщения стабильно заканчиваются Failed to deliver?

Пришлите модель устройства, версию firmware, скрин LoRa settings и Channels без приватных PSK, а также напишите: сколько узлов видно, включён ли MQTT, проходит ли тест со вторым своим узлом и меняется ли результат на улице. Не присылайте закрытые ключи каналов и пароли MQTT.

FAQ

Частые вопросы о Failed to deliver в Meshtastic

Почему я вижу много узлов, но не могу никому написать?

Часть записей может быть старой, полученной через несколько hops или MQTT. Также возможна односторонняя радиосвязь: мощный высокий узел слышен вам, но ваш мобильный узел не добивает обратно.

Что означает Failed to deliver to mesh?

Ваш узел не получил ожидаемого подтверждения после повторных попыток. Для channel broadcast подтверждением может служить услышанная ретрансляция, для direct message конечный получатель должен подтвердить доставку.

Если сообщение «доставлено в mesh», его точно прочитал адресат?

Для общего channel нет. Такое подтверждение означает, что протокол услышал ретрансляцию пакета другим узлом. Это не read receipt и не подтверждение человеком.

Почему direct message пишет, что пакет relayed, но recipient не подтвердил?

Сеть смогла ретранслировать пакет, но Home Assistant-подобного центра здесь нет: конечный узел не прислал подтверждение обратно. Возможны плохой обратный маршрут, старое положение узла или временная недоступность получателя.

Нужно ли ставить Max Hops 7?

Нет. Текущий default — 3, и документация Meshtastic считает его достаточным для большинства задач. Большее число hops не создаёт отсутствующие промежуточные узлы.

Может ли MQTT быть причиной того, что я вижу слишком много узлов?

Да, MQTT используется для соединения mesh-сетей через интернет. Для проверки реальной LoRa-доступности лучше временно исключить MQTT и тестировать два своих узла.

Почему одинаковый LongFast не гарантирует связь?

LongFast может означать modem preset, а channel имеет отдельные Name и PSK. Для связи должны совпадать радиопараметры и настройки канала.

Когда подозревать неисправность передатчика?

Если два своих устройства с проверенными одинаковыми настройками и подходящими антеннами не обмениваются сообщениями даже на небольшом расстоянии, тогда проверяют firmware, hardware revision, RF-разъём и сам радиомодуль.