/awesome-mqtt

A curated list of MQTT related stuff. :sparkles:

Awesome MQTT

Awesome

A curated list of MQTT related stuff.

MQTT is a lightweight client-server publish/subscribe messaging protocol, optimized for high-latency or unreliable networks. This protocol is a good choice for Internet of Things applications, Telemetry, Sensor Networks, Smart Metering, Home Automation, Messaging and Notification Services.

Contents

Community Resources

Blogs

Broker

  • ActiveMQ - A fast Java multiprotocol messaging and Integration Patterns server.
  • eMQTT - The Massively Scalable MQTT Broker written in Erlang/OTP.
  • esp_uMQTT_broker - A basic MQTT Broker on the ESP8266.
  • hbmqtt - Python MQTT broker using asyncio.
  • hrotti - A MQTT broker written in Go.
  • HiveMQ - Java based commercial MQTT Broker.
  • Moquette - Java MQTT lightweight broker.
  • Mosca - Mosca is a node.js MQTT broker, which can be used Standalone or Embedded in another Node.js application.
  • Mosquitto - "The" Open Source MQTT Broker.
  • RabbitMQ - RabbitMQ offers a MQTT Adapter.
  • SurgeMQ - High Performance MQTT Server and Client Libraries in Go.
  • VerneMQ - an Apache2 licensed distributed MQTT broker, developed in Erlang.
  • Vert.x MQTT - Vert.x component to handle connections, communication and messages exchange with remote MQTT clients.

Tools

  • imqtt - Interactive MQTT packet manipulation shell based on IPython.
  • mqtt-admin - Web based MQTT frontend. Direct Link.
  • mqtt-benchmark - A benchmarking tool for MQTT Servers.
  • mqttcli - MQTT Client for shell scripting.
  • mqtt-forget - Command line tool to remove retained MQTT topics by wildcard.
  • mqtt-fuzz - A simple fuzzer for the MQTT protocol.
  • MQTT.fx - MQTT.fx is a MQTT Client written in Java based on Eclipse Paho. Supports scripting.
  • MQTTInspector - A general MQTT testing app for iOS (iPhone and iPad).
  • MQTTLens - A Google Chrome application, which connects to a MQTT broker and is able to subscribe and publish to MQTT topics.
  • mqtt-malaria - scalability and load testing utilities for MQTT environments.
  • mqtt-spy - Java based MQTT frontend. Supports scripting.
  • mqtt-utils - A collection of MQTT utilities.
  • mqtt-wall - Subscription only web-based client – like Twitter wall for MQTT.
  • mqtt-wildcard - Node.js Module to match a MQTT Topic against wildcards.
  • Python MQTT Client Shell - a text console-based, interactive shell for exercising various tasks associated with MQTT client communications.
  • Wireshark-MQTT - MQTT dissector for Wireshark.

Clients

  • CocoaMQTT - MQTT for iOS and OS X written with Swift.
  • emqttc - Asynchronous Erlang MQTT Client.
  • Moscapsule - MQTT Client for iOS written in Swift.
  • hbmqtt - Python MQTT client using asyncio.
  • Hulaaki - An Elixir library for clients communicating with MQTT brokers.
  • Machine Head - A Clojure MQTT Client.
  • M2Mqtt - A MQTT client available for all .Net platforms (.Net Framework, .Net Compact Framework and .Net Micro Framework) and WinRT platforms (Windows 8.1, Windows Phone 8.1 and Windows 10).
  • Mosquitto-PHP - A wrapper for the Mosquitto MQTT client library for PHP.
  • mqtt-client - A Polymer Web Component that implements a MQTT client (uses Paho mqttws31.js).
  • MQTT-Client-Framework - iOS, OSX, tvOS native ObjectiveC MQTT Client Framework.
  • mqtt.dart - Dart mqtt client.
  • mqtt-elements - Polymer elements for MQTT.
  • mqttex - MQTT implementation in Elixir.
  • MQTTKit - MQTT Objective-C client for iOS.
  • mqtt_cpp - MQTT client for C++14 based on Boost.Asio.
  • mqtt_lua - MQTT Client library for the Lua language.
  • MQTT.js - MQTT client for Node.js.
  • mqtt-rs - MQTT protocol library for Rust.
  • Paho - Open source client implementations (C/C++, Java, Python, Javascript, Go, C#).
  • pubsubclient - A client library for the Arduino Ethernet Shield that provides support for MQTT.
  • rumqtt - A fast, lock free pure rust MQTT client.
  • ruby-mqtt - Pure Ruby gem that implements the MQTT protocol.
  • tcl-mqtt - Small library to connect to a MQTT broker. Very, very basic.
  • TMQTTClient - MQTT Client Library for Delphi.
  • Vert.x MQTT - Vert.x component that provides methods for connecting/disconnecting to a broker, publishing messages and subscribing to topics.
  • wolfMQTT - A client implementation of the MQTT written in C for embedded use. It supports SSL/TLS via the wolfSSL library.

Scripting

  • logic4mqtt - Java based Logic and scripting engine for use with MQTT. Uses Java's general scripting interface, so scripts can be written in a multitude of languages like Javascript, Groovy etc.
  • mqtt-scripts - Node.js based script runner.
  • Node-RED - A visual tool for wiring the Internet of Things.

Interfaces

Makers

  • arduinoTemps2mqtt - Arduino sketch, grab One-wire Temperature's and publish to a MQTT broker.
  • esp_mqtt - MQTT client library for ESP8266.
  • mqtt-ir-transceiver - ESP8266 based bidirectional gateway between MQTT and IR. Use with PlatformIO.
  • MySensors - Arduino NRF24L01 based sensor network with support for an MQTT gateway
  • nodemcu-gpiomqtt - Lua script to connect ESP8266 GPIOs to MQTT.
  • pubsubclient - A client library for the Arduino Ethernet Shield that provides support for MQTT.
  • RFM69-MQTT-client - Arduino RFM69 based sensors and MQTT gateway.
  • rpi2mqtt - Connect a RaspberryPis GPIOs and 1-Wire Temperature Sensors to MQTT.
  • xbee2mqtt - XBee to MQTT gateway.

Industry

  • modbus2mqtt - Modbus master which publishes register values via MQTT.
  • mqtt2opcua - Bi Directional MQTT to OPCUA Bridge.

Telephony, PBX

Operating System

  • mqttlauncher - Execute shell commands triggered by published MQTT messages.
  • mqtt-os-status - Operating-system related data, published to an MQTT broker at fixed intervals.
  • mqttpc - Control processes via MQTT. Ability to send signals via MQTT and to publish stdout/stderr or pipe MQTT payloads into stdin.
  • mqttwatchdir - Recursively watch a directory for modifications and publish file content to an MQTT broker.
  • psmqtt - Utility reporting system health and status via MQTT.
  • WinThing - Remotely control Windows through MQTT.

Monitoring

  • check-mqtt - A Nagios/Icinga plugin for checking connectivity to an MQTT broker.
  • nag2mqtt - Nagios event broker to MQTT gateway.
  • notify-by-mqtt - A Nagios/Icinga notification module which wraps data into JSON and fires it off to an MQTT broker.

Location tracking

  • OwnTracks - Location tracking and geofencing for MQTT.

Logging

Smart Home Hardware Interfaces

  • aqara-mqtt - Aqara (Xiaomi) Gateway to MQTT bridge.
  • cul2mqtt - Interface between Busware CUL (868MHz RF-Devices like ELV FS20, HMS, EM, ...) and MQTT.
  • domiqtt - Connects to a Domiq Base (LCN) and translate from and to MQTT.
  • eno2mqtt - Interface between an Enocean USB300 (TCM310) adapter and MQTT.
  • Evohome2mqtt - MQTT Interface for the Honeywell Evohome system.
  • helios2mqtt - A daemon for syncing a helios easy controls system like my KWL EC 220D to MQTT.
  • hm2mqtt.js - Interface between EQ-3's Homematic line of smarthome devices and MQTT. Supports Homematic IP.
  • HS100toMQTT - Gateway between TPLink HS100/HS110 and MQTT.
  • knx2mqtt - Interface between the KNX home automation standard and MQTT.
  • mqtt2homekit - Roughly the opposite of homekit2mqtt: Control your HomeKit-enabled devices with MQTT and without Siri or iPhone.
  • mqtt-dss-bridge - MQTT digitalSTROM-Server Bridge.
  • node-lox-mqtt-gateway - Gateway for Loxone™ mini server to communicate with MQTT broker.
  • xiaomi2mqtt - bridge between the Xiaomi Smart Home Gateway Aquara and a MQTT server.
  • smartthings-mqtt-bridge - Bridge between SmartThings and MQTT.

Smart Home Integration Software

Lighting

Home Entertainment

  • airtunes2mqtt - MQTT controlled Multi-Room Audio with Airplay/Airtunes Devices.
  • bravia2mqtt - Control your Sony Bravia TV with MQTT.
  • broadlink-mqtt - MQTT client to control BroadLink RM devices.
  • chromecast-mqtt-connector - Control your Google Chromecast devices using MQTT.
  • kodi2mqtt - Interface between a Kodi media center instance and MQTT.
  • harmony-api - A simple server allowing you to query/control multiple local Harmony Home Hubs over HTTP or MQTT.
  • htd2mqtt - Bridge between an HTD Lync audio system and MQTT.
  • lgtv2mqtt - Interface between LG WebOS Smart TVs and MQTT.
  • lirc2mqtt - Send and receive infrared via LIRC.
  • mqtt2atlonamatrix - Control Atlona HDMI matrix switches with MQTT.
  • mqtt2tivoremote - Make TiVo DVR remote control available through an MQTT smarthome style interface.
  • onkyo2mqtt - Interface between Onkyo AVR's EISCP network remote protocol and MQTT. Uses the onkyo-eiscp library.
  • VLC MQTT Module - Control VLC via MQTT.
  • xbmc2mqtt - A simple plugin for XBMC to listen for a particular topic on an MQTT broker, and display a popup message.
  • yamaha-avr2mqtt - A simple adapter for connection Yamaha AVR to MQTT.

Smart Metering

Messaging

  • mqtt-irc-bot - A MQTT to IRC / IRC to MQTT bridge or bot.
  • mqttwarn - Subscribe to MQTT topics (with wildcards) and notifiy pluggable services.
  • twitter-to-mqtt - A python daemon that uses the Twitter Streaming API to access tweets and republishes them to an MQTT topic.

Misc

Visualization, Dashboards

  • Crouton - A dashboard that taps into your IOT network, using only MQTT and JSON.
  • d3-MQTT-Topic-Tree - A MQTT Topic Tree viewer using the d3 collapsable tree and MQTT over websockets.
  • HelloIoT - HelloIoT is a MQTT client and dashboard application.
  • HOMR-REACT - A configurable MQTT Visualization.
  • Linear MQTT Dashboard - Easy, customizable control panel - MQTT-client.
  • node-red-dashboard - A dashboard UI for Node-RED.
  • MMM-mqtt - This is an extension for the MagicMirror². It provides the ability to subscribe to MQTT topics and display them.
  • mqtt2highcharts - Plotting live numbered data from a subscribed mqtt topic using Highcharts.
  • MQTT Dash - Android App: With the app you can create dashboards for your MQTT enabled IoT Smart Home devices and applications.
  • mqtt-panel - A web interface for MQTT.
  • mqtt-svg-dash - Subscribe to MQTT, extract JSON from a message and make lights blink on an SVG page.
  • thingsboard - Device management, data collection, processing and visualization for your IoT projects.

Other tools that can be used to create Visualization/Dashboards can be found under Smart Home Integration Software

Architecture, Convention

  • Homie - A lightweight MQTT convention for the IoT.
  • mqtt-smarthome - Smart home automation with MQTT as the central message bus - Architectural proposal.

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0