Skip to content

MQTT Streaming

Network Survey streams survey data in real-time to an MQTT broker via the publish/subscribe protocol.

Generate a QR code with this JSON format:

{
"mqtt_host": "cloud.mymqttserver.com",
"mqtt_port": 8883,
"mqtt_tls": true,
"mqtt_client": "aclient",
"mqtt_username": "auser",
"mqtt_password": "apassword",
"mqtt_topic_prefix": "my/custom/topic/path/",
"cellular_stream_enabled": true,
"wifi_stream_enabled": true,
"bluetooth_stream_enabled": true,
"gnss_stream_enabled": true,
"device_status_stream_enabled": true
}

Scan via Menu → MQTT Connection → Scan QR Code.

  1. Menu → MQTT Connection
  2. Enter connection details:
    • Host: broker.example.com
    • Port: 1883 (plain) or 8883 (TLS)
    • TLS Enabled: Toggle on for encrypted
    • Client ID: Unique identifier
    • Username: MQTT username
    • Password: MQTT password
    • Topic Prefix: (optional) Custom prefix
  3. Toggle technologies to stream
  4. Tap “Connect”

Default topic structure, which are officially defined in the Network Survey Messaging API documenatation:

TechnologyTopicMessage Type
GSMgsm_messageGsmRecord
CDMAcdma_messageCdmaRecord
UMTSumts_messageUmtsRecord
LTElte_messageLteRecord
NR (5G)nr_messageNrRecord
Wi-Fi80211_beacon_messageWifiBeaconRecord
Bluetoothbluetooth_messageBluetoothRecord
GNSSgnss_messageGnssRecord
Device Statusdevice_status_messageDeviceStatus and PhoneState

Add a prefix to organize topics by device/location. Example: surveys/device1/ creates surveys/device1/lte_message.

Messages are sent as JSON. See Message Formats for complete specifications.

  • Connection refused - Verify broker is running, check host/port/credentials, confirm firewall allows connection
  • TLS errors - Ensure TLS enabled on both sides; use port 8883 for TLS, 1883 for plain
  • Client ID conflict - Use unique Client ID per device or enable auto-generation
  • No messages received - Verify streaming enabled and connection status shows “Connected”