A comprehensive and flexible dialog component for the Meshtastic application.
Parameters
modifier
Modifier for the dialog.
title
The title text of the dialog.
titleRes
The title string resource of the dialog.
message
Optional plain text message.
messageRes
Optional string resource message.
messageColor
Optional color for the plain text message; Color.Unspecified uses the default text color.
html
Optional HTML formatted message.
icon
Optional leading icon.
text
Optional custom composable content for the body.
confirmText
Text for the confirmation button.
confirmTextRes
String resource for the confirmation button.
onConfirm
Callback for the confirmation button.
dismissText
Text for the dismiss button.
dismissTextRes
String resource for the dismiss button.
onDismiss
Callback for when the dialog is dismissed or the dismiss button is clicked.
choices
If provided, displays a list of buttons instead of the standard confirm/dismiss actions.
dismissable
Whether the dialog can be dismissed by clicking outside or pressing back.
A gateway node with internet access (WiFi or Ethernet) publishes mesh messages to an MQTT topic. Remote gateways subscribed to the same topic inject those messages into their local mesh.
Конфигурация
Enabling MQTT
Navigate to Settings → Module Config → MQTT.
Enable the MQTT module.
Configure the broker connection:
Настройка
Описание
По подразбиране
Адрес на сървъра
MQTT broker hostname
mqtt.meshtastic.org
Потребителско име
Broker authentication
meshdev
Парола
Broker authentication
large4cats
Root Topic
Base topic for messages
msh
Криптиране
Encrypt MQTT payload
Активиран
JSON Output
⚠️ Отхвърлено — Поддръжката на JSON пакети е премахната от фърмуера; това поле се игнорира
Disabled
TLS
Secure connection to broker
Disabled
Map Reporting
Report position to public map
Disabled
MQTT Proxy on This Phone
If your node has no internet access of its own, it can use the connected phone as its MQTT gateway: enable MQTT and Proxy to client enabled in the module config, and the app relays MQTT traffic between the radio and the broker over your phone’s internet connection.
The MQTT proxy on this phone toggle at the top of the MQTT settings screen shows whether this relay is currently running and lets you cut it off (or restart it) immediately — without editing and re-saving the device’s MQTT configuration.
Default Meshtastic Broker
The community maintains a public broker at mqtt.meshtastic.org. This is intended for general use and testing.
ℹ️ Note: Connections to mqtt.meshtastic.org always use TLS (port 8883), even if the TLS toggle is off. For any other broker, TLS is used only when you enable it (port 8883 with TLS, 1883 without).
🔒 Privacy: Messages on the public broker are readable by anyone subscribed. Always use channel encryption for private communications.
Private Broker
За по-добра поверителност и контрол, можете да управлявате свой собствен MQTT брокер:
Mosquitto (lightweight, open-source)
HiveMQ
EMQX
Configure your node to point to your private broker with appropriate credentials.
Map Reporting
When Map Reporting is enabled, your node publishes its position to the Meshtastic community map:
Visible at meshmap.net and similar community map services
Only position and node info are shared
Disable this if you don’t want your location publicly visible
Uplink vs Downlink
Direction
Описание
Uplink
Messages from mesh → MQTT broker
Downlink
Messages from MQTT broker → mesh
Configure per-channel which directions are active to control message flow and airtime usage.
Message Formats
MQTT uses protobuf message format:
Format
Описание
Use case
Protobuf
Binary Meshtastic protobuf encoding
Node-to-node mesh bridging
⚠️ Note: JSON output support was removed from firmware. The json_enabled setting is still visible in the app for legacy compatibility but has no effect on current firmware versions.
Encryption & Privacy
Understanding the layered encryption model:
Channel encryption happens on the mesh before MQTT. If your channel has a PSK, the MQTT payload is already encrypted — the broker and any subscribers see only the ciphertext.
MQTT encryption (the module setting) adds an additional encryption layer for transit to the broker. This protects metadata and routing information.
TLS encrypts the TCP connection to the broker itself, preventing network-level eavesdropping.
🔒 Important: The default public channel has a well-known key. Messages on the default channel sent via MQTT are effectively unencrypted — anyone can decode them. Always use a custom PSK for private communications.
Най-добри практики
Use channel-level encryption (PSK) on channels that bridge to MQTT
Don’t enable MQTT on nodes without internet access (it will buffer and waste memory)
Use a private broker for sensitive deployments
Be mindful of airtime when downlinking messages from busy MQTT topics — every downlinked message consumes radio airtime on your local mesh
Consider enabling uplink-only if you only need to monitor your mesh remotely without injecting messages back
Отстраняване на неизправности
MQTT Not Connecting
Check WiFi — the gateway node must have an active internet connection (WiFi or Ethernet). MQTT does not work over the LoRa radio link itself.
Verify credentials — incorrect username or password will silently fail on most brokers. Double-check for trailing spaces.
Firewall — port 1883 (MQTT) or 8883 (MQTT+TLS) must be open. Some networks block non-standard ports.
DNS resolution — if using a custom broker hostname, verify the node can resolve it. Try the broker’s IP address directly.
Messages Not Bridging
Check uplink/downlink settings — if only uplink is enabled, messages flow from mesh to MQTT but not back. Enable downlink on the receiving gateway.
Channel mismatch — both gateways must share the same channel with the same PSK. A mismatch means messages are encrypted with different keys and appear as garbage.
Topic mismatch — ensure both gateways use the same root topic. The default msh works for the public broker.