Skip to content

thomasnordquist/MQTT-Explorer

Repository files navigation

Downloads Downloads Build_Status Build status Codacy Badge

screen1_small screen2_small screen3_small

Version 0.2.3

MQTT Explorer is a comprehensive MQTT client that provides a structured overview of your MQTT topics and makes working with devices/services on your broker dead-simple.

Features

  • Visualize topics and topic activity
  • Delete retained topics
  • Search/filter topics
  • Delete topics recursively
  • Publish topics
  • Plot numeric topics
  • Retain a history of each topic
  • ...

The hierarchical view makes this tool so easy to use and differentiates the MQTT Explorer from other great MQTT clients like MQTTLens, MQTTBox and MQTT.fx.
This MQTT Client strives to be a MQTT swiss-army-knife, the perfect tool to integrate new services and IoT devices on your network.

Download

Developing this tool takes a lot of effort, sweat and time, please consider rating the App on the Windows or Mac app store .
If you feel like a feature is missing or you found a bug, please leave me a comment / issue and I'll see what I can do.

Platform Downloads
windows Windows
portable, installer
mac Mac
dmg
ubuntu Ubuntu
also for debian, mint, neon, fedora, etc...

snap install mqtt-explorer
Ubuntu Store
linux Linux
almost every linux
AppImage
Run AppImage:
Make it executable and double-click it.

More Downloads

Video

screencast

Performance

This MQTT Client is optimized to handle thousands of topics and at hundreds of thousands messages per minute.

Custom subscriptions can limit the amount of messages MQTT Explorer needs to process, subscriptions can be managed in the advanced connection settings.
In very large productive environments brokers may handle an extreme load of topics, subscribing with a wildcard topic is in this scenario not advised.

IoT Applications

List of useful IoT applications using MQTT to integrate devices / services

Develop

PRs and issues are welcome.
Install with npm run install, build with npm run build

Start with npm run start

The app directory contains all the rendering logic, the backend directory currently contains the models, tests, connection management, src contains all the electron bindings. mqttjs is used to facilitate communication to MQTT brokers.

Automated Tests

To achieve a reliable product automated tests run regularly on travis.

  • Data model
  • MQTT integration
  • UI-Tests (The demo is a recorded ui test)

A mosquitto MQTT broker is required to run the ui-tests.

Telemetry

No personal data is processed, sent or stored.

The app sends telemetry and error reports, this enables me to quickly react on bugs/errors and understand what's going on. Responding quickly to errors is one key element in producing a reliable software product.

It basically sends: app version, processor architecture, operating system, used memory, user interactions and error stacks.

Example telemetry
{ system: { arch: 'x64', platform: 'darwin' },
  appVersion: '0.0.7',
  events: { HELLO_EVENT: [ 1547714886134 ] },
  now: 1547714886135,
  transactionId: '1767d251-f492-4f2c-aa62-88add3acc26b' }
{ errors:
   [ { time: 1547714887921,
       message: 'He\'s dead Jim!',
       stack:
        'Error: He\'s dead Jim!\n    at ./src/tracking.ts.exports.default (./mqtt-explorer/app/build/bundle.js:142765:11)\n    at new Promise (<anonymous>)\n    at Object../src/tracking.ts (./mqtt-explorer/app/build/bundle.js:142764:1)\n    at __webpack_require__ (./mqtt-explorer/app/build/bundle.js:20:30)\n    at Object../src/index.tsx (./mqtt-explorer/app/build/bundle.js:142618:1)\n    at __webpack_require__ (./mqtt-explorer/app/build/bundle.js:20:30)\n    at ../backend/node_modules/charenc/charenc.js.charenc.utf8.stringToBytes (./mqtt-explorer/app/build/bundle.js:84:18)\n    at ./mqtt-explorer/app/build/bundle.js:87:10' } ],
  now: 1547714887921,
  transactionId: '53bf9aac-e695-40cc-9a81-b1cf3398843d' }

Even though the data is purely technical, an option to disable telemetry is planned. #52

License

AGPL 3