MQTT Route 4.0 – Enhanced Reliability, Extended Availability & much more

MQTT Route 4.0 – Enhanced Reliability, Extended Availability & much more

The necessity for IoT technology continues to grow in daily life and its implementation takes place in almost every sector and domain. Such technology relies heavily on MQTT Broker for the effective M2M communication and so we require a MQTT Broker with smarter functions to uplift the entire process of IoT deployment. This made us launch a free 10-device Developer Edition of our MQTT Broker with fresh smarter functionalities to empower the developers and enhance their MQTT development.

Let’s take a closer look at the most recent updates available in MQTTRoute.

The following is a list of functionalities added to this upgraded version :

1. Strengthen analysis with historical data

2. Binary Support in MQTT Payload

3. Ensure system uptime with high availability

4. Additional REST APIs

Strengthen analysis with Historical data :

Analyse performance more effectively and identify future performance problems to fix them with the aid of historical data. So far only the live data can be seen. We’ve now included the capability of accessing past data as well.

Our MQTT Route supports creating custom dashboard with set of pre-built widgets to help users have better visualization specific to their application or industrial needs. These widgets assist in gaining both live as well as historical data of the devices. To explore more about widgets, refer our Broker help documentation.

In the case of historical data, you can export the data from any particular date till your desired date to have the comparison of the performance of your device.

strengthen analysis with historical data

MQTT Historical data

Binary support in MQTT Payload :

MQTT Payload data can be transmitted in either binary or UTF-8 formats. Only binary data is supported in real-time by some IoT devices. In comparison to other forms, binary data may be accessed more quickly, and processing binary data also requires less time. With all these advantages in mind, we updated MQTT Route 4.0 to include binary support.

To configure binary support, follow the instructions below :

  • Go to Bevywise/MQTTRoute/conf/broker.conf

  • Set BINARY_SUPPORT = TRUE

Ensure system uptime with high availability :

For the IoT infrastructure to ensure that there is no single point of failure throughout the process, it is crucial to guarantee system or network uptime with little downtime even during times of peak demand. In spite of hardware or software failure, the improved high availability support architecture enables successful data collection. 

For instance, look at the following architecture.

HA architecture

This illustrates that a High availability server is installed in each machine that runs the MQTT Broker. It is the high-availability server that diagnoses that the broker is about to stop running and it immediately passes the data to the next active broker, thereby preventing communication stoppage.

This helps to ensure the uptime of systems. Refer to our MQTT high availability blog for a more detailed description of the high availability setup.

Additional REST APIs :

To guarantee that the assigned functions are carried out effectively, effective edge device monitoring and management are crucial. Some API commands like collecting client information, adding new authentication keys, etc. are already supported by our Broker.

Besides that, from the users’ perspective, we believed that some additional API command features would make this even more progressive, and we have addressed all of those concerns in this update. Here are some of them :

  1. Obtain a list of all the devices
  2. Obtain each and every subscription
  3. Get the last few messages/events sent by a device
  4. Gather the last few commands sent to a device
  5. Acquire the WILL Topic

Keeping the faster runtime in mind, we’ve also updated the Python version to Python 3.11. We believe that all these fresh features and functionalities will ease your IoT implementation.

Feel free to contact the support for scheduling a demo.

Download MQTT Route 4.0 now to start your IoT implementation.

Enterprise IoT Implementation on Azure – MQTT Load Balancing

Enterprise IoT Implementation on Azure – MQTT Load Balancing

The most essential criteria that should be looked at when considering an enterprise IoT deployment is scalability. When there is huge traffic with very large amount of data, the scalability becomes a question? To overcome this, MQTT Broker cluster with robust and fault-tolerant high availability configuration is needed. But how does the devices in an IoT environment know which MQTT Broker to connect? Load balancing at the transport layer can address this challenge and ensure this with Azure load balancer will fit & scale your IoT applications. Bevywise MQTT Broker perfectly works with ALB and it is even flexible to be hosted in Azure VMs. This blog will take you to the tour of how to setup your highly scalable IoT implementation on Azure with Bevywise MQTT Broker.

A Little on HA MQTT Broker :

MQTT Broker with high availability is necessary to ensure that the MQTT communication occurs without any hindrances. By default, the publish and subscribe model MQTT Protocol doesn’t support high availability. But the high availability can be attained through simple steps with the right MQTT Broker. In that sense, our Bevywise MQTT Broker comes up with the high availability server which avoids such failures.

HA Architecture

Azure-load-balancer

Let’s take the above architecture as an example. This illustrates that a High availability server is installed in each machine that runs the MQTT Broker. A Load Balancer is configured to balance the loads between the brokers and the High Availability server in one is primary while those in others are just back-ups.

What function does a load balancer serve?

A load balancer’s goal is to increase productivity, shield your servers and resources from overload, and give users a quick, secure, and dependable experience. If you have two or more servers, you need to think about installing a load balancer. The key characteristics of a load balancer are listed below.

  1. Distributes traffic to healthy servers with adequate capacity, aiding you in preventing slowdown of your websites caused by an increase in traffic.
  2. Route traffic automatically to healthy, available servers to help you do server maintenance without experiencing interruption.
  3. Early server failure detection will be made possible, and traffic will be diverted to healthy, still-running servers.
  4. Provides you with comprehensive performance data, error alerts, and reporting to help your company plan, modify, and optimise its infrastructure.

Using the Azure Load Balancer to enable high availability :

Requirements for enabling high availability using Azure load balancer :

  • ‘N’ number of clients
  • MQTT Broker (more than 1)
  • A load balancer (Azure)
  • A HA Server
  • A Database

The number of MQTT Brokers can increase based on the count of clients. With the use of high availability server, link and cluster all the MQTT Brokers you possess. If either of the MQTT Broker fails, then the load balancer will decide which broker should take over the responsibility of the failed MQTT Broker and send messages to the connected clients, preventing the failure to happen. This is feasible as all the cluster nodes and brokers will receive all the MQTT messages.

Set up Azure as a load balancer in one of the machines. Azure load balancer health probe will keep track of each virtual machine’s assigned port and only routes traffic to operational virtual machines.

To configure Azure load balancer, take the actions listed below.

Step 1 : Upon logging in into the Azure portal, search for “Load Balancer” and select it from the results. Then click “Add.” In the “Basics tab,” precisely enter the following information, then click “Review + Create.”

  • Subscription : Select your subscription

  • Resource group : Select Create New and provide a resource group name in the text box

  • Name : Give a name

  • Region : Select the region of the server you use

  • Type : Among Internal and Public, select Public

  • SKU : Out of Basic and Standard, select Basic

  • Public IP Address : Select Create new. Choose Utilize existing if you already have a public IP address that you want to use.

  • Public IP Address name : Type the public IP address name in the text box

Once you finally click “Create,” your load balancer will appear.

Step 2 : Go to Networking > Virtual network under Create a resource. Enter the necessary project and instance information on the Basics page to build a virtual network.

A button labelled “Next: IP address” will then appear at the bottom of the page. Enter the IP address under the IP Addresses tab and choose the term ‘Default’ under the Subnet name.

To make changes, select Edit subnet and save anything you wish to change in the subnet category.

Step 3 : Choose All Resources > All Services. From the list of resources, choose your resource’s name. From the Settings menu, pick Backend pools > ‘Add’.

Enter the necessary information on the Add a backend pool page, then click Add. 

Step 4 : Select All Services > All Resources > Choose your resource name from the resource list to create a health probe. Select Health Probes under Settings, then click Add. Then click OK after entering the information on the Add health probe screen.

  • Name – Give a name to your health probe

  • Protocol – TCP

  • Port – 8883

  • Interval – 5 seconds

  • Used by – HTTP

Step 5 : By selecting All services > All resources >, you may create a load balancer rule. The resource list will appear; choose your resource’s name. Choose Load balancing rules from the Settings menu, then click Add.

Type in the required information and select Ok.

Finally click Create / Finish to create the load balancer.

Step 6 : Locate and copy the public IP address from the load balancer’s Overview screen, then paste it into your browser’s address bar to test the load balancer. Verify the answer.

If you get a valid response, your load balancer has been configured properly and can communicate with the backend virtual machines.

Integrate Azure load balancer with MQTT Broker :

To integrate Azure load balancer with MQTT Broker, follow the below instructions.

  • Go to Bevywise/MQTTRoute/conf/broker.con

  • Provide the IP address of the load balancer that’s generated after setting it up

[HASERVER]

HASERVER_ENABLED = YES

HASERVER_IP = <IP address of Load Balancer>

HASERVER_PORT = 8082

Ensure that you’ve provided the load balancer’s IP in all the MQTT Brokers that are available in the clustered set up.

To configure HA Server :

For Linux users,

  • Unzip the HAserver.zip file which is present inside the ./Bevywise/MQTTRoute folder.
  • Then open ./HAServer/config.json file which is present inside the unzipped folder.
  • Configure the HA Server port. By default, HA Server runs at 8082.

To start the HA Server,

  • Open the terminal and go to ./HAServer/bin
  • Run HA Server using the command ‘sh startServer.sh’

Windows users can execute the exe file.

To know about database configuration, refer this blog.

Download MQTT Broker now for FREE to get started with your High Availability MQTT cluster.

Hope this blog has helped you understand how to configure the Azure load balancer to enable high availability. Try customising it yourself. The usage of Nginx load balancing by MQTT Broker to support high availability has already been thoroughly documented.

Please feel free to contact support with any questions or recommendations.

The Real Success of MQTT Broker on Cloud

The Real Success of MQTT Broker on Cloud

The journey of Bevywise is not just about attaining our Mission & Vision. It always looks after the success of customers who join us in our journey.

That is “Profit of Bevywise always lies in customer’s success“.

Also, Bevywise has a major part in the revolution of implementing technology in diversified sectors. When we think of the internet in the initial days of its revolution, it was just used for information searching & knowledge gaining. But now it has become parallelly important to the air we breathe. And its application is now a major necessity in day-to-day life. The way internet :

  • Handles home appliances
  • Ensures security with surveillance cameras
  • Create a better-connected learning environment for education
  • Revolutionized large enterprises & all business sector

are proof that life doesn’t exist without the internet.

Everything in this world has begun communicating with each other using the Internet. In that case, Bevywise is the well-organized team/expert to connect your things, devices/clients to the internet. In the journey of 5 years, Bevywise is the main reason behind the success stories of customers. Let us see the success story of one such customer.

Hand-Holding with Romania’s independent Energy Provider

Amromco, a Romanian company that started operating in 2002 has become the largest enterprise with huge profits in 20 years. In each phase of its evolution, it has implemented technology & science in its process to make a huge change in the community. As of now, it is one of the well-organized (oil and gas) energy industries on the globe. Energy is the one that operates every living thing. In that case, Amromco is successfully fulfilling the energy needs of the whole of Romania. One of the projects of Amromco energy needs device management-related support. But their workstation is located far away from the major cities in a small town. Hence supervising and management requires high transport costs. This questions the entire accuracy & efficiency of the entire process.

Hence Amromco join hands with Bevywise to tackle the challenges of requirement and service. But there is nothing that cannot be done in this technology world. There are so many devices in their organization that we have made them better connected to each other over the internet with our exclusive solutions of the MQTT platform. Also, we made them remotely access, control & manage their devices by hosting a platform on a public cloud. With live dynamic widgets & charts, we made them understand the condition of the device with the continuous monitoring of their parameters. Finally, the overall process can be controlled & monitored using mobile app, which makes them more flexible.

Final Thoughts

The word “Satisfaction” is better than the word “Profit”. Thus, we at Bevywise always being proud to empower our customers by diminishing their pains, addressing their challenges, and providing all required necessities.

Also, we would love to hear your success stories as well. Get started now by signing up for hosted MQTT Broker.

Launching FREE MQTT Broker on AWS EC2

Launching FREE MQTT Broker on AWS EC2

We are excited to announce that Bevywise MQTTRoute is now get-at-able in AWS Marketplace. MQTTRoute is always known for its extendability and scalability. And now we want to make this fully functional MQTT Broker completely available and easily accessible for all users. Hence we are launching the FREE version of MQTT Broker in AWS Marketplace where you can quickly deploy MQTT Broker on AWS EC2 using pre-made AMIs.

FREE AWS MQTT Broker

Everywhere around the world is getting filled with MQTT based devices. While developing IoT applications it is always needed to have a messaging broker / server which should act as a middleware between your MQTT / IoT enabled devices. Hence, a reliable & well-built MQTT broker is a key part of every IoT applications & projects but setting one up, managing, monitoring and debugging is a complex one and time-consuming. Also, though there are numerous commercial MQTT Brokers available in the market, early adopters & small project developers cannot afford them as they will end up paying more. And so, we want our MQTT Broker to be affordable and people should be able to manage their devices at minimal cost. So we are enabling the AWS version of the MQTTRoute for 25 devices FREE with the IOT mobile application.

Rapid-Set up on AWS EC2

The internet of things is all about mobility and managing your devices and sensors from anywhere in the world. But when using MQTT Broker on-premise it will be either a time taking or a challenging solution for IoT application which requires high level management & maintenance. Considering the quick launch of the IoT projects / applications and then deploying the necessary data center with a server for the MQTT Broker will expect more assets for the primary set up & installation. Also, it always demands a system administrator or qualified professional to monitor the application 24/7. In addition, expanding and scaling the application in on-premises will be highly complex when moving to new servers.

Hence we are making our MQTT Broker accessible in AWS cloud  (Elastic Compute Cloud) EC2 instance for FREE where for a minimal cost you can quickly connect your application / project to high-quality service. This agreeable & favourable installation sets up a completely functioning Bevywise MQTTRoute AWS EC2 instance with the sizing of your need on your AWS account.

With the FREE version on AWS, we are aiming to make everyone take advantage of their IoT application development. This version will be beneficial to build any sort of IoT applications and people could get it ready in their budget.

Get started with your IoT implementation by utilizing the FREE MQTT Broker from AWS Marketplace.

To know more on the functionalities of the FREE AWS MQTT Broker & step by step procedure for installation & set up, navigate to this link. 

Kindly reach support if you have any queries.

Build your IOT Application in a Day

Build your IOT Application in a Day

IoT Application development is required today at all levels. People with very low coding knowledge needs to build what is needed for them. MQTTRoute helps customers to embed their ML & AI algorithms and create their own application. MQTTRoute helps you host and manage your application easily. This just leaves your development challenge for your IOT Server application. MQTT Broker comes with a default user interface, however visualization needs to be built for specific vertical. We recently run an internal hackathon at Bevywise to build applications over our framework. Interestingly, we were able to build an IOT application in a day. The application built was a Industrial Furnace monitoring. This blog portrays the hacks used to build the application.

IoT Application for Industrial Temperature Monitoring

Monitoring and controlling the temperature of the furnaces is crucial with respect to its usage in the industries as it directly affects the quality of the product that is being created. We created a simulated device similar to a monitoring edge device which pushes data to the MQTT Broker. The goals set for the application were:

  • live graph of the incoming temperature
  • Historical hourly average of the temperature
  • Alarm when the temperature exceeds a range
  • Alarm when current temperature exceeds the previous hour average

Live Temperature View

 

MQTT Broker is programmed in a way that it pushes the incoming device data to the user interface using the web socket. You will be able to add your own code to create live graphs. In this hackathon, plotly is used by the developer. The data on temperature of the furnace collected is presented as a line graph in the dashboard. This is done by configuring custom_ui_server.py file.

reference code for line graph

xaxis: {
type: ‘date’,
range: [olderTime, futureTime]
}
};
Plotly.relayout (graph_id, minuteView);
Plotly.extendTraces (graph_id, update, d)

Creating a live graph

Historical data Analysis

 

The historical graph on hourly average data can be created by the Data Crunching process. The schedule module is used to automate the creation of hourly average data. Custom implementation for the average of data developed in a separate method and configured in the schedule to be called every 60 minutes in  custom_scheduler.py file.

 

def schedule_conf( ):
schedules={}
schedules={
‘STATUS’ : ‘DISABLE’,
‘SCHEDULES’ : [
{‘OnceIn’ : 1,‘methodtocall’ : oneminschedule },
{‘OnceIn’ : 5,‘methodtocall’ : fiveminschedule } ] }
return schedules

After processing the data, the data is pushed to the user interface through the web socket. The bar graph is created using plotly to display the crunched data

 

reference code for bar graph

x: [ data1 [i] [‘time1’] ]
y: [ data1 [i] [‘value’] ]
Plotly.newPlot ( ‘history’, data123,layout, {displayModeBar:false, responsive:true},
{scrollZoom: true} );

 

We believe you will be able to add your own algorithm similar to the above.

Creating a Historical Graph

Generate Event Alarms

 

The variation in the temperature can be noted and displayed in a widgets. For a certain range of temperature values the data will be shown in varied colors to alarm for a temperature variations. Here, the data will be shown as red colored text if the temperature is above 500 degree Celsius (default value) and blue colored text if the temperature is below 500 degree Celsius. The default temperature range set can be changed according to your need. You can add your own widgets and notifications to the user interface by customizing custom_ui_server.py file. To schedule your alarms use  custom_scheduler.py.

 

 

reference code for text_widget

if ( key == “message-integer” || key == “message-float” || key == “message-string” ) {
var message = data1 [key] [‘message’][0] ;
document.getElementById(id).innerHTML = message + String.fromCharCode(176)+unit+ ;
}

Creating a Live alarm

Alerts for the Shop floor operators

The comparison of incoming data with the previous hourly average data is done. Alerts can be created based on the compared data. If the temperature exceeds the hourly average temperature then the data blinks by creating an alert. This can be done by adding event based triggers using the scheduling module. Add your own algorithm to create alerts in custom_scheduler.py.

 

reference code for alarm_widget

if ( p_avg < data3 [‘msg’] [‘message’] [0] ){
document.getElementById (“alert”).innerHTML=data3 [‘msg’] [‘message’] [0] + “ALERT!” + “Temperature High”;
}

Creating a Alert

Dashboard for IOT Application in a day

 

All the widgets created by the developer was put on a separate page, as it can be used as a dashboard to be projected/displayed on to a bigger screen. This has been done as a custom URL inside the custom_ui_server.py similar to the following code snippet.

  

Add your URL here

def custom_urls():
urllist={
“AUTHENTICATION”:’DISABLE’,
“urls”:[{“/extend/Dashboard”:dashboard}]
}
return urllist

The hackathon IoT Application built in a day is available on GitHub for trying it out. Download the MQTT Broker now to start building your application today.

Completely Managed Hosted MQTT Broker with Mobile Application

Completely Managed Hosted MQTT Broker with Mobile Application

Hurrah! CrystalMQ, the new renovated Hosted MQTT Broker is here at last!

And Yes, we have fine-tuned our hosted MQTT Broker to bring the highest level of performance and effectiveness than before. Bevywise MQTT Broker always proves its ability to fit IoT implementation of any organization in a easy, reliable & scalable way. But one thing we have noticed is an increasing demand for hosted infrastructure. Today we are excited to announce the launch of improved version of our Hosted MQTT Broker, CrystalMQ.

No Expertise Needed

The new MQTT server hosting provides a completely managed service that can smoothly scale to meet the demands of large IoT applications and provides the reliability business-critical systems require. It allows developers or other business organizations to fully focus on building IoT applications rather than spending time on sticky server set up & management. No external expertise needed to deploy and manage MQTT Broker as we will provide a complete hosted set up and you can just build your application over it or can simply connect & retrieve your required device data.

Dedicated Server Instances

CrystalMQ provides a dedicated server to run a separate VM instances which is exclusively true-blue to each tenant. As the server is dedicated specifically to the one single customer, it avoids provoking performance & security issues with other customers. MQTT server hosting provides total isolation, control and security for any of your complex IoT / IIoT applications. 

No Security Compromise

We know that security is the biggest IoT challenge and it is of critical importance for all IoT applications. We have a great liability for security & privacy of our customers’ data as a solution vendor. Hence, we have industry’s best practices of guaranteeing data with options to enable SSL / TLS for secure M2M communication. Also, Bevywise MQTT Broker ensures encrypted data transfer at each point with a common auth key and token for all devices or for a particular group of devices or unique keys and token for each device.

Control Devices on your Android

The more convenient & quicker way to manage & monitor your MQTT devices is here. The new hosted broker comes up with the MQTT Broker app which makes it easy to manage & control your MQTT / IoT applications using android smart phone from anywhere. Also, it enables users to customize the UI & to create multiple dashboards with pre-configured widgets from the app itself. 

We guarantee 99.99% availability, that is, server will be up and running 24 x 7 to collect data from your MQTT / IoT devices.

CrystalMQ provides 3 day trial period for FREE. When you start your subscription on CrystalMQ, the FREE trial of 3 days will get started, which lets you try the complete features of hosted MQTT broker for FREE. Once the FREE trial ends, your chosen subscription plan will automatically get activated unless you cancel the subscription in trial period.

Try signing up with new hosted MQTT Broker version to get started with the FREE trial.

Kindly reach support if you have any queries.