MQTTRoute integration with openHAB

MQTTRoute integration with openHAB

Home automation has gained a lot of popularity nowadays as it enables people to live a smart life.  With MQTTRoute integrated into the home automation platform you can easily develop your own home automation system. OpenHAB is one such open source platform you  can use to automate your home devices. Here is a step by step tutorial on how to integrate MQTTRoute with the OpenHab.

MQTTRoute integration with openHAB

OpenHAB : Installation

OpenHAB can be run on different versions of macOS and Windows and many different variants of Linux (Ubuntu, Raspbian, etc.).

Prerequisites : You need to get any of the JAVA platform installed mentioned below

Now download & install Java 11

Check your current java version by opening a command line

java -version

Then Set up variants by Downloading and extract a platform independent zip archive: macOS, Windows, Linux.

Now install the downloaded packages using the below link

https://www.openhab.org/docs/installation/openhabian.html

Installation in Raspberry pi

For installing OpenHAB on Raspberry Pi, first, download the appropriate OpenHabian Disk Image for your Raspberry Pi. Here I have choosen Raspberry pi 3.

Go to https://etcher.io/ and install Etcher on your computer.

Once installation is done, open Etcher select the openhabian disk image you have downloaded in the first step.

Choose the right SD card and click Flash. Before this have your SD card formatted.

Insert the SD card on your pi & connect an Ethernet cable & power it up. To configure wi-fi, please check this post.

Once done, navigate either to the http://localhost:8080 or https://localhost:8443

It is better to use https://localhost:8443 as MQTTRoute UI also opens in the default port 8080.

OpenHAB : Configuration

First & foremost sign up with the new account.

Follow the steps mentioned by Open HAB. You can either finish up with the configurations or can be done it later.

Once you finish your set up. Let us move on to Add-ons which is present under the settings tab.

  • Click Bindings under Add-ons
  • Select MQTT-binding in the given list.

Your MQTT-binding set up is completed now.

open-hab

OpenHAB : MQTTRoute Integration

Complete your download & installation step of MQTTRoute.

https://www.bevywise.com/mqtt-broker/help.html#installation

You can check the link for step by step procedure for installation.

Once done, go to Bevywise/MQTTRoute/conf  You need to enable authentication in broker.conf file. 

[AUTHENTICATION]

AUTHENTICATION_ENABLED = YES

# YES || NO

 

Save your changes.

Now move to the openHAB UI.

  • Let us add MQTT Broker using Things tab.
  • Add things by clicking the + icon present at the bottom.
  • Now select MQTT Broker as Thing type from the list.
  • The configuration need to be set correctly to make MQTT Broker & OpenHAB communication.
  • Click show advanced.
  • Provide IP or host name of MQTTRoute 127.0.0.1
  • By default port will be set as 1883. In case if TLS is enabled in the broker.conf file. You need to change the port here.
  • Now enter username and password which is provided in the security tab of MQTTRoute UI.
  • Once done click submit. If your configurations are set correctly the toggle button will show Online. You can view the OpenHAB device connected to the MQTT Broker in Devices tab. You can now connect your home devices in the devices tab of OpenHAB UI.

Add-ons
mqtt-binding
thing-type
open-hab-success

Hope this article provide you a detailed view on openHAB integration with MQTT Broker. Try setting up with the home automation platforms by yourself & integrating MQTTRoute to control your home devices.

Download MQTT Broker now for FREE to get started with your Home automation set up. The new version of MQTT Broker, MQTTRoute 3.2 is available now with High availability support, $SYS topic & more.

MQTTRoute Integration with Home Assistant

MQTTRoute Integration with Home Assistant

The technological world is moving faster with its most popular innovations and home automation is one such innovation which everyone loved or liked to have. Home automation systems enable us to automate our smart home devices present at home.  With MQTTRoute integrated into the home automation platform you can easily develop your own home automation system. There are numerous open source automation platforms available in the market. And among them, Home Assistant have stood out as the most familiar choice. Here is a step by step tutorial on how to integrate MQTTRoute with the home assistant & OpenHab.

MQTTRoute integration with home assistant

Home Assistant : Installation

Installation can be done in four different methods

  • Home assistant operating system
  • Home assistant container
  • Home assistant supervised
  • Home assistant core

You can select any method based on your convenience.

Select your preferred operating system from the below mentioned list

https://www.home-assistant.io/installation/

In Raspberry Pi :

The first step is to install Hass.io to start running Home Assistant in Raspberry pi.

https://home-assistant.io/hassio/installation/

Navigate to the above link & choose the appropriate image. Here I have choosen Raspberry pi 3.

Go to https://etcher.io/ and install Etcher on your computer.

Once installation is done, open Etcher select the hassio image you have downloaded in the first step.

Choose the right SD card and click Flash. Before this have your SD card formatted.

Insert the SD card on your pi & connect an Ethernet cable & power it up. To configure wi-fi, please check this post.

Now access Open Habian user interface in browser using http://your-pi-ip-address:8080. Replace your-pi-ip-address with your Raspberry PI IP.

In Linux

Let us see how to set up home assistant in linux with docker.

You have to update the linux first

sudo apt-get update

sudo apt-get upgrade

Now install docker using the below commands

Before docker installation it is necessary to install some additional packages

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

Now, to ensure validity of the download, add a GPG key or docker to our system

 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

To set up stable repository

 echo \
  “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Now install docker engine

sudo apt-get install docker-ce docker-ce-cli containerd.io

Now run hello world command to test the successful installation of docker

 sudo docker run hello-world

On successful installation, you will receive the below message

Hello from Docker! This message shows that your installation appears to be working correctly.

Install Hass.io & Home assistant

Hass.io is an own operating of home assistant.

Before installation you need to add some additional packages

 sudo apt-get install apparmor-utils avahi-daemon dbus jq network-manager socat

 Now change the terminal to root

 sudo su

 And then add the below command to install Hassio & home assistant.

sudo curl -sL “https://raw.githubusercontent.com/Kanga-Who/home-assistant/master/supervised-installer.sh” | bash -s

The installation of Home assistant has completed. By default home assistant runs on port 8123. You can navigate to http://homeassistant.local:8123/ or use your IP to reach home assistant portal.

Let us continue with the onboarding

Home assistant : Onboarding

This is to configure the home assistant.

For more details you can navigate to

https://www.home-assistant.io/getting-started/onboarding/

Create your account with a home assistant.

Set up your configurations.

home-assistant

Home Assistant : MQTTRoute Integration

Click the configuration tab present at the left side of the Home Assistant UI.

The integrations page in the configurations panel shows you all your configured integrations. When each integration is done setting up, it will ask you to put the new devices in areas. Areas allow you to organize all the devices in your home.

Now let us see how to integrate MQTTRoute with a home assistant.

Download the latest version of MQTTRoute from the below link.

https://www.bevywise.com/mqtt-broker/download.html

Once done set up & install MQTTRoute

https://www.bevywise.com/mqtt-broker/help.html#installation

You can check the link for step by step procedure for installation.

Once done, go to Bevywise/MQTTRoute/conf  You need to enable authentication in broker.conf file. 

[AUTHENTICATION]

AUTHENTICATION_ENABLED = YES

# YES || NO

 

Save your changes.

Now move to the home assistant UI. Navigate to the integrations tab.

Click “Add integration” button.

Select MQTT from the list.

You will view the screen asking for the broker details

Enter broker IP or host name as 127.0.0.1

By default port will be set as 1883. In case if TLS is enabled in the broker.conf file, you need to change the port here.

Now enter username and password which is provided in the security tab of MQTTRoute UI.

Once done click submit. If your configurations are set correctly you will receive a success message.

You can view the home assistant device connected to the MQTT Broker in Devices tab & list of message published. You can now connect your home devices in the devices tab of Home assistant UI.

home-assistant-mqtt-integration
home-assistant-integration-success
mqtt-broker-dashboard
home-assistant-dashboard

Hope this article provide you a detailed view on home assistant integration with MQTT Broker. Try setting up with the home automation platforms by yourself & integrating MQTTRoute to control your home devices.

Download MQTT Broker now for FREE to get started with your Home automation set up. The new version of MQTT Broker, MQTTRoute 3.2 is available now with High availability support, $SYS topic & more.

MQTTRoute 3.2 released – What’s New?

MQTTRoute 3.2 released – What’s New?

We are more excited to announce the availability of new MQTT Broker version, MQTTRoute 3.2. The latest version comes up with new exciting features & huge performance improvements to enhance the user experience. This release will surely provide you a good user-friendly experience & further improves the availability & reliability for your applications.

Feature highlights

The highlights of MQTTRoute 3.2 version include,

  • $Sys – System topic support

  • Clean off-line message Queue

  • High Availability Support

  • Switch widget support in Dashboard

  • UI support to publish & subscribe topics

$Sys – System topic support

$Sys topics or System topics has gained popularity over the years for debugging & developing MQTT applications. It is a special metric which can be used to publish data about MQTT Broker and the client sessions. All MQTT clients that subscribe to one or more SYS-Topics receive the present value on the SYS topics as soon as they subscribe. After the subscription was successful, the client will receive metrics on a periodical basis.

With the new version, Bevywise MQTT Broker performs SYS topic, which starts with $SYS. This helps developers monitor the present status of the MQTT Broker rapidly.

 Users can find data about the MQTT broker by subscribing to topics with the $SYS. On subscription, static topics can only be sent once per client. The rest of the topics will be updated based on every sys_interval seconds. And also, the updates will not be sent if sys_interval is 0.

Here are a few examples for $SYS.

 $SYS/broker/clients/connected

 The total number of clients connected.

 $SYS/broker/clients/active

 The total number of clients connected at present.

Clean Message Queue

The connection to the broker by the client can either be based on

  • a non persistent connection (clean session) or

  • a persistent connection.

Clean session will help you inform the MQTT broker whether it is necessary to store session data for you. But, not all messages in the persistent connection can be stored. QoS also has an effect on it.

The new version supports a clean message queue which can be used to clean the QoS1 & QoS2 messages of the device that is inactive or disconnected.

With a non persistent connection (clean session – 1), the broker doesn’t store any subscription information or undelivered messages for the client. So, the ‘Clean’ button won’t be enabled.

With a persistent connection (clean session – 0), the broker will store subscription information, and undelivered messages for the client. It is obvious that, only the QoS 1 and QoS 2 messages are stored even for a “persistent” connection. So you can either enable or disable the ‘clean’ button to clean the QoS 1 & QoS messages.

High Availability Support

MQTT Broker must be highly available to be very resilient to failures. This is necessary if you must never lose any MQTT messages. The clustered set up eliminates failure by ensuring publish subscribe mechanisms works on all cluster nodes and the messages are distributed without any single point of failure. With the new update, Bevywise MQTT Broker supports high availability in unreliable environments.

Switch widget support

 A few months back, in our MQTTRoute 3.0 release, we have added multiple dashboard creation feature with prebuilt widgets. The prebuilt widgets include Text, color, Line, Bar, Gauge, vertical gauge, horizontal gauge, LED Light widget. To the above mentioned list, we have added one more pre-built widget, Switch widget in the latest version MQTTRoute 3.2. A Switch is a two-state toggle widget that can select between two options. It can be an on/off condition which helps you choose the current state.

UI support to publish & subscribe topics

The clean user interface of MQTT Broker provides the quick overview of recent happenings in the MQTT Broker. Default dashboard provides a count on active devices, connected devices, events & commands and more. To that list, we have added publish & subscribe topics as well. Users can now able to view the publish & subscribe topic listing.

The new, updated features and functionalities will ease your IoT application development process.

Feel free to write to support for a complete Demo.

Download MQTTRoute 3.2 now to get started with your IoT implementation.

download now
High availability MQTT Cluster

High availability MQTT Cluster

High availability MQTT Cluster is very important for any IoT deployments in production environment. Failures can happen due to Software failures, Disk errors, network connectivity, Hardware component failures, etc.,  To ensure that your services are up and running always to your customers without a single point of failure, the  services need to be functionally and physically redundant. By default MQTT protocol a publish and subscribe model does not support high availability.  But the resilient and fault tolerant high availability set up can be done with simple steps with the right MQTT Broker. With the latest release, Bevywise MQTT Broker comes up with the high availability server which avoids failure for MQTT communication. This article helps you to set up a high availability MQTT Cluster with the high availability server of Bevywise MQTT Broker

Database Cluster High Availability

Data Storage is a crucial component for any production application. It is mandatory to have a Master/ Slave set up for your database storage. You can refer to the Digital Ocean document for setting up the same. Alternatively you can use Amazon RDS or Azure Data Store which by default provides the redundancy of the Data storage and much more features like time based snapshots for recovery.

Dockerize the MQTT Broker

You can either run the MQTT broker using our scripts or dockerize it if needed. A Complete article on how to dockerize the MQTT Broker is available here. Dockerizing will provide you some assistance in service manageability like auto restart and more. You can get your copy of the FREE MQTT Broker from the download page.

The distributed cluster set up

High availability server is designed to ensure that the broker is consistently functional without any failures by creating a cluster set up. The cluster set up benefit yourself by enabling failover if any of the MQTT Broker you are using is inaccessible. Consider if you have numerous devices connected to the single MQTT Broker / server. There is a high chance of any malfunctions to happen, and the MQTT Broker may eventually fail, losing the data. This is where a clustered set up comes in. This distributed architecture enables you to have two or more MQTT Broker / servers, that if one of the Broker / cluster node stops working, the other cluster node/MQTT Broker will perform taking the responsibility without any interruptions on the client side. The cluster nodes are considered to be the MQTT Brokers.

For ambitious MQTT deployments with many millions of clients, any number of broker nodes can be deployed & the data can be distributed maintaining stability and availability.  Even if network splits occur or any kind of connectivity problem between nodes arises, the cluster as a whole is still available, as long as at least a single node is still healthy, and heals itself in error scenarios. This is because, whatever be the count of MQTT servers, everything will be in active state, and the data will be distributed between the nodes. So, the healthy one will take the role of publishing the data to the subscribed client.

A Role of Load Balancer

The high availability cluster set up also includes the Load balancer. The role of this load balancer is to balance the incoming connections to your broker infrastructure. It is a decision maker to decide which MQTT Broker/server/cluster node in the cluster should take the role of failed MQTT server. The decision could be based on the weightage or the performing ability of the MQTT Broker. Install any load balancer of your choice and set up port forwarding.

How to set up High Availability MQTT Broker

Let us consider you have 6 clients & two MQTT Brokers 1 & 2 finally one load balancer & a high availability server.

mqtt-high availability-architecture

Here is how the set up could be.

The two MQTT Brokers are connected & clustered using the high availability server. The MQTT messages will be distributed between all the brokers & cluster nodes. So if any of the broker fails, the load balancer will decide which MQTT Broker should start publishing the messages to the connected clients. This prevents failure.

To enable the high availability set up, do the below mentioned configurations in the conf file.

HAServer.conf

 

Here you can configure the HAServer port number and connect the broker with HAServer.

 

[HA_SERVER]

 

HA_port = 2000

 

Now Open terminal & go to ./Bevywise/MQTTRoute/Bevywise/HAServer/bin

& run sh startserver.sh for linux

 

Double click startserver.bat for windows

The configuration should also be done in the broker.conf file with this HAServer IP and port

[DISTRIBUTOR]

 

DISTRIBUTION_ENABLED = NO

# YES || NO

 

# The port and the IP Address to which the HA server is running

# If you run the HA server in another machine. Use the IP of that machine.

 

DISTRIBUTION_IP = 127.0.0.1

DISTRIBUTION_PORT = 2000

 

Set the distribution enabled as YES.

DISTRIBUTION_IP & DISTRIBUTION_PORT refers to the IP address & port to which the HA server is running.

If the HA server is running in another machine, mention the IP of that machine.Your MQTT high availability cluster set up is ready now. Hope this blog post provides a clear understanding on high availability cluster. Try yourself by setting it up.

Bevywise MQTT Broker is the fastest & best MQTT Broker that will be helpful if you are planning to run an IoT deployment of tens of thousands of devices for a single business or a few business that falls under a single use case.

Download MQTT Broker now for FREE to get started with your High availability MQTT Cluster. The new version of MQTT Broker, MQTTRoute 3.2 is available now with High availability support, $SYS topic & more

download now

Feel free to write to support for any queries or suggestions.

For large scale deployments, try Bevywise IoT Platform by signing up for free which is hosted at mqttserver.com All our products can be white labelled and used on any private cloud infrastructure or in premise.

MQTTRoute 3.1 – Custom  Secure MQTT Authentication Released

MQTTRoute 3.1 – Custom Secure MQTT Authentication Released

We are more excited to announce the fresh new update of MQTT Broker, MQTTRoute 3.1. The new version of MQTT Broker adds additional & custom security options / security extensions for secured communication & data transfer. Security is an essential concern for any IoT solutions/applications. No matter what, enterprises have a keen insight into the security of the implementation as they need to prevent themselves from getting attacked by hackers/intruders. Hence, we thought of providing such full-fledged security options. We are adding custom authentication functionality to our MQTT Broker with the support of integrating IAM tools to authorize and have instant control / power over on their clients. Here is a detailed look at the security extensions of MQTT Broker.

Need for Centralized Authentication

In day to day life, whatever people use or designate is getting connected to the internet. For a full-fledged enterprise security, each & every port of entry must be supervised wholly for client connections, permissions & for secured data communications. This is to restrict the entry of hackers. Besides security, the cyclical/periodic maintenance tasks like asset monitoring, updating of firmware, provisioning or reprovisioning needs to be integrated. Hence it is necessary to bring all users into one common platform. This obligates the need for connecting the clients, sensors and everything to the central identity management of the organization. Centralized identity management means everything takes place in one environment. This is more or less like the user can sign into a single environment to access all the applications and tools. Hence, provisioning, de provisioning everything happens and managed in one place with centralized ID & access management. Also, SAML single sign-on permits users to create a one single password to ingress all of their applications & stuff. It removes the difficulty of creating & recollecting multiple passwords. Hence, we have added custom hooks into MQTT Broker to customize authentication for identity access management.

MQTT Broker Inbuilt Authentication

With the new update, MQTTRoute comes with an inbuilt custom plugin to customize/extend the authentication functionality as per the need. We know that how important identity management is nowadays in terms of security for enterprises & businesses. To bring that centralized management into one common platform we have enabled a custom authentication functionality into the MQTT Broker which helps users to integrate IAM. IAM (Identity Access Management) enables enterprises/organization to control user access to critical information within an organization. Bevywise MQTT Broker can be used to build large scale IoT applications & solutions for multiple customers & for enterprises. With the help of custom authentication hooks, IAM can be integrated into the MQTT Broker. Now, IAM will supersede the built-in authentication & authorization to enable a gentle functioning with an enterprise system & its management.

Bundled HTTP Authentication

HTTP furnishes an extensive structure for authorization & access control. HTTP authentication is about restricting unauthorized users with the HTTP schema. It is a challenge response mechanism where the server will challenge a client request & the client will respond with the authentication details (User ID & Password credentials) in an authorization header.

Here is how the challenge & response flow runs :

When the client makes a request & server expects authentication information, the server responds with a 401 (unauthorized) status code which provides the reason for authentication error along with the WWW-authenticate response header. The client will call for a user ID & password from the user to manage the response from the server. Once the client acquires a user ID & password, it will send back the initial request with an authorization header. On the other hand, the client can send the authorization header when it makes its original request, and this header might be accepted by the server, avoiding the challenge and response process.

MQTTRoute now supports HTTP authentication that it initiates the request query permission & processes the authentication request through the returned HTTP response status.

MQTT Broker & Security Options

Bevywise MQTTRoute by default provides an option to enable encrypted data transmission for better MQTT data security. Such options can be enabled with just a few configuration changes. With regards to security in Enterprise MQTT Broker, identity, authentication, authorization, and encryption should be taken into account to protect your data. Bevywise MQTT Broker provides Multiple MQTT Authentication, Encrypted data transfer with TLS/SSL  certificates, Authentication with X.509, Authorization with ACL & RBAC & more. It works with all standard SSL / TLS certificates and runs with a self-signed certificate.  Moreover, you can also disable authentication as well, if you are running / in-action with the MQTT broker in a close environment and do not want to weigh down the system. Though we provide full-fledged security with our default security options, we want our customers/users to power over their clients with custom authentication.

To conclude, the new update of MQTT Broker provides custom authentication functionality which enables you to integrate IAM tools for secured management & control of the clients.

Feel free to write to support for a complete Demo.

Download MQTTRoute 3.1 now to get started with your IoT implementation. The new version is currently available for Windows & Linux users. 

Tap the banner to download MQTT Broker for free

download now
MQTT Broker Comparison – MQTTRoute vs Mosquitto

MQTT Broker Comparison – MQTTRoute vs Mosquitto

MQTT is one of the most widely adopted protocols today in the IoT Arena. There are a lot of MQTT Brokers available for your solution implementation.  Choosing the right one that fits your criteria makes your project more than 50% complete. Developers should evaluate and lay out distinct quality aspects of all available Brokers to make a right choice. In an article earlier this year, we wrote about How to choose a perfect MQTT server for your implementation. Bevywise MQTTRoute is a commercial MQTT server built using C and python. Similarly,  Mosquitto is one of the fastest open source broker built on C. This article gives a high level overview of the MQTT Broker comparison between MQTTRoute and Mosquitto.

MQTT Compliance

Both Mosquitto and Bevywise are built as per MQTT protocol specification like publish message format, command messages, QoS(Quality of Service), retain, Wild card topics and error handling etc.

MQTT Security

Security of a broker is largely determined by the user configuration and only to a lesser extent by the broker’s security features. These include authentication and authorization mechanisms, as well as encryption support. In that case both MQTT Brokers support high level device authentication & TLS/SSL MQTT security. With the recent update, Bevywise MQTTRoute comes with the custom authentication functionality to execute centralized identity management / authentication.

High Availability

MQTT Broker must be highly available in order to never miss / loss any MQTT data. It should be up and running without any failure and hence you need MQTT clusters for it. In that case, Bevywise MQTTRoute supports clustering which can be used to set up 99.99% high availability MQTT cluster. As of now Mosquitto doesn’t handle high availability in it.

MQTT Data Persistence

IOT / IIoT is not about communication. It is about storing data for future analysis and decision-making. Mosquitto by default process all the message communication in memory. There is an option to store data of subscription into a file (mosquitto.db). But this file cannot be used outside the application. However, MQTTRoute comes with a default option to store data into MySQL, SQLite & PostgreSQL.  We recommend MySQL for deployments and the application you are building can also query the database in parallel. In addition MQTTRoute allows you to write data into ElasticSearch, MongoDB or any other storage using the plugin system built into the it.

MQTT Dashboard

One of the critical issue in the MQTT Implementation today is that the manager applications are built over data received by an MQTT client that subscribe to #. But, this is not the right as the meta information of the data is lost. So this mandates the need for the Broker to be integral part of the application. Keeping this in mind, we have built the UI into the MQTT Broker. We have built a comprehensive MQTT Dashboard as part of the MQTTRoute as well as the Platform. Also, MQTTRoute supports creating multiple dashboards with some pre-built widgets intended to provide better visualization of data. However, Mosquitto does not have any User interface as the data persistence itself is not available. There are some third party User interfaces which are built as a client.

Customization

Above all, The default web interface of the MQTTRoute can be customized as needed. The Product can be white labelled. Mosquitto as a open source MQTT broker can be customized to a larger extent. But the customization is more on the C layer for the Mosquitto and all the building blocks over it need to be recreated. Bevywise MQTTRoute on the other hand allows customization at the appliation layer. Some of the customization includes changing the User interface, advanced visualization, transforming data before storage. Moreover, Bevywise MQTTRoute is not just a Broker, it is a complete IoT application suite with the extendable custom hooks. The custom hooks include Custom UI server, Custom scheduler, Custom data store & Custom authentication.

Integration

Data Hooks, REST API and ML/AI Integration are the three major integration end points of the Bevywise MQTTRoute. MQTTRoute makes a huge leap ahead when you want to build an application over the Mosquitto. With the support of AI/ML integration you can add a ML algorithm into MQTTRoute to automate your machine learning process. Other than REST API’s, Bevywise MQTT server can be customizable to integrate with other MQTT based tools like Google pub/sub, Redis, tableau, modbus and more. Besides that, the cost and the effort spent on customization will be very minimal when compared to Mosquitto.

MQTT Broker Performance Comparison 

Performance of MQTT Broker depends on two main metrics one is the maximum sustainable throughput and the other is the average latency. The first metric is the maximum sustainable throughput at which the Broker is able to process all communicated messages. In terms of sustainability, Mosquitto is built on C and Bevywise MQTTRoute is built on a combination of C & Python for easy extendability and performance. Mosquitto is the fastest MQTT server available today when run as just a message broker. Bevywise MQTTRoute has a throughput at par with the Mosquitto.

The next one is the average latency from publisher to subscriber in a given scenario. Short latencies are important for many IoT applications, where live monitoring of data is desired. In terms of latency, both has a has lower latency/message delivery time across all QOSes. And also, MQTTRoute has the exposure of better latency (less round the trip time) than Mosquitto in QOS 0. To know more on MQTT Broker performance, have a look at the performance comparison study done by University of Szeged, Hungary.

Support & Consulting

MQTTRoute comes with a FREE Support where in we do consluting for your implementation while you will not be getting these supports on the Open Source Brokers. We also provide FREE community support for FREE users. Read more about our support policy.

MQTT Broker comparison Table

Features

MQTTRoute

Mosquitto

Protocol

MQTT, Web socket

MQTT, WebSocket

Visualization of Data

In built Dashboard with details of Devices level. Manage devices with send command, create Rules via UI. Multiple dashboard & widgets support.

Customizable.

thrid party plugin

Security

TLS/SSL,

device level Authentication,

Custom Authentication

TLS / SSL ,

device level authentication

Inbuilt Storage Options

MySQL / SQLite / PostgreSQL

Allows Third-party application to read.

Store data in-memory & File

Only for Internal purpose

Extendable data Storage

Extension based Storage using Custom_storage option. Prebuilt connectors available in Github.

third party plugins for Storage

OS

Windows, Windows server, Linux, Mac and Raspberry Pi

Linux, Mac, Windows and BSD

Rule Engine

YES. Custom Rules can be added from the User Interface.

No

Error Log

YES. Time Out errors , Authentication, Packet errors are deducted and shown on the UI.

Yes, Enabled at the conf file and show in the Terminal

Localization

Yes. Option to customize to any language

No

Clustering

Yes.

No. One used as a single cluster

SaaS based

Yes. IoT Platform supports SaaS based Scalable architecture

No.

Throttling

Developed and will be available soon

Yes

Complete MQTT Standard Support

Yes

Yes

Integration

REST API , Data Plugins, ML/AI

Only DATA Plugins

Docker Support

Yes

Yes

Whitelabel

Yes

Yes

Open source

No

Yes

Built on

C / Python language

C language

MQTT version

Current support MQTT 3.1.1 and MQTT 5 coming soon

Current support MQTT 3.1.1 and MQTT 5 coming soon

Support

24×7 live support via Telephone, Whattsapp, Email.

Forum support

 

The overall MQTT Broker comparison between MQTTRoute & Mosquitto will help you choose the best one for your IoT implementation.

You can try the Bevywise MQTTRoute by downloading it FREE now. The new version of MQTT server, MQTTRoute 3.2 is available to support $SYS topic, High availability & more.

download now

 

Must Read Other Related Post

Feel free to write to support for any questions / suggestions.