Skip to content

MQTT.fx - HiveMQ MQTT Toolbox

by Jens Deters
8 min read

MQTT.fx aims to be an quick and easy to use desktop tool for MQTT debugging and testing. Since about 2 years it is continuously extended (and bug-fixed) by Jens Deters.

Introduction to MQTT.fx Testing Tool

Attribute MQTTBox
Type Graphical user interface, JavaFX-based
License Apache 2.0 license
Operating Systems Mac OSX, Windows and Linux
Website https://mqttfx.jensd.de/

Version 5.7.0 includes:

  • MQTT Namespace Explorer

  • Sparkplug Message Explorer & Editor

  • Payload Editor

  • Connection Profiles for different setups of MQTT broker connections

  • Publish/Subscribe functionality

  • Username/password authentication

  • SSL/TLS support

  • Published messages history

  • Scripting support via GraalVM JS Engine

  • Logging Console

  • $SYS-Topics / Broker Status (HiveMQ & Mosquitto)

  • Clipboard for predefined messages

  • Ad-hoc connections

  • Topic Collector & Explorer

  • Proxy-support

  • Bundled installers for all platforms

  • Update check

  • Free! (Apache 2.0 license)

MQTT.fx is the recommended tool for Amazon Web Services IoT quickstart.

Furthermore, there is a tutorial by Lady Ada on how to use MQTT.fx as a Desktop MQTT Client for Adafruit.io.

Website: https://mqttfx.jensd.de/

X: @mqtt_fx

Main Window of MQTT.fx

At the top of the main window, you find the options to edit the broker connection profiles and to connect/disconnect to a broker based on the chosen method (ad-hoc or via profile).

MQTT.fx welcome window

Each major use case has its own tab: Namespace Explorer, Publish, Subscribe, Sparkplug Editor, Scripts, Broker Status, and Log. The tabs are detachable so each tab's content can be separated in a window. So a publish window can be placed next to subscribe/receive. If you close such a window it is moving back as a tab at the former position.

MQTT.fx publish subscribe

Connection Profiles in MQTT.fx

Different setups for re-usable broker connections can be defined (and stored). E. g. you can easily set up different profiles for the same broker connection either with or without security settings. Profiles can be edited and are identified by a unique chosen name. The profile editor can be opened either via the menu entry „Extras/Connection Profiles“, via keyboard shortcut ( or the gears icon in the main window:

mqtt.fx – Edit connection profiles

All kinds of settings for broker connections can be defined here: „broker address“ and „broker port“, client ID, and connection parameters like „clean session“ and the MQTT protocol version…

MQTT.fx – Edit Connection Profiles

Broker Connection With MQTT.fx

To connect to a broker there are two options: ad-hoc or via the profile. The ad-hoc connection allows to establish a broker connection by simply entering the host address and port. The profile connection allows to establish a broker connection using the host, port, and other parameters stored in the profile.

Broker Connection in MQTT.fx

Publishing on MQTT.fx

Messages are published via the „Publish“ tab. Once the broker connection is established, the topic to publish can simply be entered in the drop-down field. The big text area contains the message body a click on „Submit“ sends the message to the broker.

Publishing on mqtt.fx

MQTT.fx Offline Status

Messages can also be stored by name on a clipboard for re-usage. A stored message is then send my just a click on the named button.

Intro Clip

MQTT.fx Publish Clipboard UV Index

Topic Subscriptions in MQTT.fx

Topic subscriptions can be made via the „Subscribe“ tab. Like in the „Publish“ context, the wanted topics are to be entered in the drop-down field, and subscription is done via the „Subscribe“ button.

Subscribed topics are stored in the application configuration for later usage and can be selected from the drop-down list. Registered topics are listed on the left in the „Subscribe“ tab and can be unsubscribed by clicking on the „-“ icon (or by being selected and clicking on „Unsubscribe“). For better identification, a color can be set for each topic. Received messages are colored according to the chosen topic color.

Scripts

MQTT.fx has a scripting interface to allow programmed MQTT message handling via a JavaScript Engine. The scripting is dedicated to simulating published sensor data. The current API of the provided „mqttManager“ supports publish(), subscribe(), unsubscribe(), Logging, and output to the console.

MQTT.fx Test Script

Logs of MQTT.fx Test Script

Broker Status

Some brokers support sending messages to a certain topic hierarchy stating with „$SYS“ to provide internal status information e.g. via „$SYS/broker/version“ the broker version can be retrieved or the broker uptime is provided via „$SYS/broker/timestamp“. Currently, MQTT.fx supports HiveMQ3 and Mosquitto.

Broker Status on MQTT.fx

Log

The „Log“ tab shows the logging console. The same information is also written in the mqttfx.log file located in the application configuration folder.MQTT.fx Log Tab

Download and Installation of MQTT.fx

Bundled installation packages for macOS, Windows, and Linux are available at https://www.softblade.de/download

Download MQTT.fx

“Bundled” means, the Java Runtime Environment to run the application is already included by the Installer, so no pre-installed JRE is needed. The bundles JRE is used only to run MQTT.fx. It is not installed on the System.

MQTT.fx Install Page MacOS

Updates

The application is checking for available updates during start-up and prompting the user:

MQTT.fx Update Confirmation

Loadable packages are listed, loaded and installed via the download dialog:

MQTT.fx Updates Tab

Read MQTT.fx Extras - HiveMQ MQTT Toolbox to explore additional features of MQTT.fx.

As you develop your IoT project on the cloud, testing and debugging your MQTT client communications becomes important. Softblade’s MQTT testing tool MQTT.fx® for HiveMQ Cloud edition simplifies testing, simulating, and debugging MQTT projects running on HiveMQ Cloud. Watch the webinar MQTT.fx on HiveMQ Cloud: Testing MQTT in the Cloud to learn how to use MQTT.fx on HiveMQ Cloud.

Jens Deters

Jens Deters has held various roles in IT and telecommunications over the past 22 years: software developer, IT trainer, project manager, product manager, consultant and branch manager. Today Jens leads the Professional Services Team at HiveMQ. As a long-time expert in MQTT and IIoT and developer of the popular GUI tool MQTT.fx, he and his team support HiveMQ customers every day in implementing the world's most exciting (I)IoT UseCases at leading brands and enterprises.

  • Contact Jens Deters via e-mail

Related content:

HiveMQ logo
Review HiveMQ on G2