🌐 Русский — Community translation View in English

MQTT

MQTT соединяет твою mesh-сеть Meshtastic с интернетом, обеспечивая связь на больших расстояниях за пределами радиодиапазона.

Обзор

Модуль MQTT подключает вашу ноду к MQTT-брокеру, что позволяет:

  • Сообщениям достигать нод в других физических mesh-сетях через интернет
  • Интегрироваться с системами домашней автоматизации и мониторинга
  • Публиковать местоположения нод на публичной карте Meshtastic
  • Создавать собственные каналы данных для журналирования и оповещений

Как это работает

[Ваша нода] → Радио → [Шлюзовая нода с WiFi] → MQTT-брокер → [Удалённый шлюз] → Радио → [Удалённая нода]

Шлюзовая нода с доступом в интернет (WiFi или Ethernet) публикует сообщения mesh-сети в топик MQTT. Удалённые шлюзы, подписанные на тот же топик, передают эти сообщения в свою локальную mesh-сеть.

Настройки

Включение MQTT

  1. Перейдите в Настройки → Конфигурация модулей → MQTT.
  2. Включите модуль MQTT.
  3. Настройте подключение к брокеру:

Переключатель MQTT

Настройка Описание По умолчанию
Адрес сервера Имя хоста MQTT-брокера mqtt.meshtastic.org
Имя пользователя Аутентификация брокера meshdev
Пароль Аутентификация брокера large4cats
Корневая тема Базовый топик для сообщений msh
Шифрование Шифровать полезную нагрузку MQTT Включено
Вывод в JSON ⚠️ Устарело — поддержка JSON-пакетов удалена из прошивки; это поле игнорируется Отключено
TLS Безопасное подключение к брокеру Отключено
Публикация на карте Сообщать о местоположении на публичную карту Отключено

MQTT-прокси на этом телефоне

Если у твоей ноды нет собственного доступа в интернет, она может использовать подключённый телефон как MQTT-шлюз: включите MQTT и Прокси для клиента в конфигурации модуля, и приложение будет передавать трафик MQTT между радио и брокером через интернет-соединение твоего телефона.

Переключатель MQTT-прокси на этом телефоне в верхней части экрана настроек MQTT показывает, запущена ли сейчас эта ретрансляция, и позволяет тебе немедленно отключить (или перезапустить) её — без редактирования и повторного сохранения конфигурации MQTT устройства.

Стандартный брокер Meshtastic

Сообщество поддерживает публичный брокер по адресу mqtt.meshtastic.org. Он предназначен для общего использования и тестирования.

ℹ️ Примечание: Подключения к mqtt.meshtastic.org всегда используют TLS (порт 8883), даже если переключатель TLS выключен. Для любого другого брокера TLS используется только при включении (порт 8883 с TLS, 1883 без).

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

Частный брокер

Для большей приватности и контроля ты можешь запустить собственный MQTT-брокер:

  • Mosquitto (легковесный, с открытым исходным кодом)
  • HiveMQ
  • EMQX

Настройте свою ноду на подключение к частному брокеру с соответствующими учётными данными.

Публикация на карте

Когда публикация на карте включена, твоя нода отправляет своё местоположение на карту сообщества Meshtastic:

  • Доступно на meshmap.net и аналогичных картографических сервисах сообщества
  • Передаются только координаты и информация о ноде
  • Отключи эту функцию, если не хочешь, чтобы твоё местоположение было общедоступным
Направление Описание
Uplink (восходящий) Сообщения из mesh-сети → MQTT-брокер
Downlink (нисходящий) Сообщения от MQTT-брокера → mesh-сеть

Настройте для каждого канала активные направления, чтобы управлять потоком сообщений и использованием эфирного времени.

Форматы сообщений

MQTT использует формат сообщений protobuf:

Формат Описание Сценарий использования
Protobuf Бинарное кодирование Meshtastic protobuf Соединение нод между mesh-сетями

⚠️ Примечание: Поддержка вывода в JSON была удалена из прошивки. Настройка json_enabled всё ещё отображается в приложении для обратной совместимости, но не влияет на текущие версии прошивки.

Шифрование и приватность

Понимание многоуровневой модели шифрования:

  1. Шифрование канала происходит в mesh-сети до MQTT. Если твой канал использует PSK, полезная нагрузка MQTT уже зашифрована — брокер и любые подписчики видят только зашифрованный текст.
  2. Шифрование MQTT (настройка модуля) добавляет дополнительный уровень шифрования при передаче к брокеру. Это защищает метаданные и информацию о маршрутизации.
  3. TLS шифрует само TCP-соединение с брокером, предотвращая перехват на сетевом уровне.

🔒 Важно: Публичный канал по умолчанию использует общеизвестный ключ. Сообщения в канале по умолчанию, отправленные через MQTT, фактически не зашифрованы — кто угодно может их расшифровать. Всегда используйте собственный PSK для конфиденциальной связи.

Рекомендации

  • Используйте шифрование на уровне канала (PSK) на каналах, подключённых к MQTT
  • Не включайте MQTT на нодах без доступа в интернет (это приведёт к буферизации и напрасной трате памяти)
  • Используйте частный брокер для задач, требующих повышенной безопасности
  • Учитывайте эфирное время при передаче сообщений из загруженных MQTT-топиков — каждое такое сообщение расходует радиоэфирное время в вашей локальной mesh-сети
  • Рассмотрите включение режима “только uplink”, если нужно лишь удалённо наблюдать за mesh-сетью, не отправляя сообщения обратно

Устранение неполадок

MQTT не подключается

  • Проверьте WiFi — шлюзовая нода должна иметь активное подключение к интернету (WiFi или Ethernet). MQTT не работает через сам радиоканал LoRa.
  • Проверьте учётные данные — неверное имя пользователя или пароль на большинстве брокеров приводят к тихому сбою. Проверьте, нет ли лишних пробелов в конце.
  • Брандмауэр — порт 1883 (MQTT) или 8883 (MQTT+TLS) должен быть открыт. Некоторые сети блокируют нестандартные порты.
  • Разрешение DNS — если используется имя хоста собственного брокера, убедитесь, что нода может его разрешить. Попробуйте подключиться напрямую по IP-адресу брокера.

Сообщения не проходят через мост

  • Проверьте настройки uplink/downlink — если включён только uplink, сообщения идут из mesh-сети в MQTT, но не обратно. Включите downlink на принимающем шлюзе.
  • Несовпадение каналов — оба шлюза должны использовать один и тот же канал с одинаковым PSK. Несовпадение означает, что сообщения зашифрованы разными ключами и выглядят как мусор.
  • Несовпадение топиков — убедитесь, что оба шлюза используют одинаковый корневой топик. Стандартный msh работает для публичного брокера.

Связанные темы