Bevywise Networks | IoT Platform & IoT Solutions - IoT Solutions & Artificial Intelligence to make a better tomorrow.
  • Iot Implementation - Design the data

IoT Implementation Series – Design the Data

By Ranjith Kumar Diraviyam

This post of the IoT Implementation series captures the best practices to be followed to design the data communication between the edge device and the IoT Platform.

  • Iot Implementation - Design the data

IoT Implementation Series – Design the Data

By |March 21st, 2018|

As part of the IoT Implementation series, this topic covers the best practices in designing the data communication between the edge device and the Central Platform.

IoT Device to Cloud response

Humans always expects a response for every action. The response can be emotional, physical, visual or in any human understandable form. The same is the norm when we interact our intensions via an ioT device. Developers often miss the point that the edge device too need them for a completion of the response back to the humans. The acknowledgement user need is different from what the protocol provides. The protocol level ack message only confirms the receipt of the data at the edge or the server. But the action happens after the protocol ack is sent back. So you need to make sure you send back a message from the device or the server once the intended action is complete. The response should be a success or a fail message based on the outcome. Check the outcome before the message is triggered.

Design the right message handle

All IoT Protocols have an identifier for the event and command messages between device and manager application. MQTT calls it by the name Topic. It is very important to define good and clear topics for the communication. The topics should be very relevant as it should be understandable by the Humans too. It is advisable to have a mandatory device identifiers on the subscriptions, as we will be able to know where the command is going. For the events, it is the implementors choice to use the topic.

Send relevant Data to MQTT Cloud

An half baked data is equivalent to having no data. So make sure you put all the data available into the cloud from the edge. For example, when we collect a machine status from the edge device, the core information is about the health of the machine like temperature, coolant flow, vibration level. But we often loose sight of the time relevance at the edge. It is better to get the time from the edge device than use the time on the server. Add the device identifier also as part of the data which can help a lot during the data analysis. There will some more core information which may not be of interest today. But it is better to have them for future analysis.

Identify & Group the Devices

Different IoT Cloud application has different kind of device identification process. Most of them get this done when they add the device. But this process increases the human effort to add these devices. Bevywise Iot Platform allows any device to connect if they have the right auth keys. The device can send additional data later. Most of the IoT Protocols today does not allow you to send more information while connecting to the server. So identify the register command and the list of data requested by the IoT Platform and send it as a separate message based on the protocol. On the platform side, you will be able to create device specific user interface for your operators based on their roles. The IoT Platform mostly need to know the type of the device, manufacturer, location, etc. But you can always customise it to have more information as needed for your IoT Device management and inventory.

Mobile integration

One of biggest deceiving point in the IoT Implementation is that the developers tend to use the same protocol to connect your mobile applications. But that is not the right IoT implementation of the mobile application. The mobile application should be built over the REST API of the IoT Platform and should be integrated with messaging system like Firebase Cloud messaging for the notification. As an option, developers can use the protocol based communication when the app is open for instant messages to the server, but should not depend on it end to end.

Bevywise Networks is an end to end solution provider for IoT Implementation for any vertical from Edge devices to IoT Cloud Platform. We would be happy to help you get your solution tailored by us.

Free IoT Consulting

  • Integrate MQTT Broker as a component into your Server

Integrate MQTT Broker into any Application

By |March 5th, 2018|

MQTT Broker is the central server that  manages all the communication between the edge devices, collect data from them and ensures the Quality of Service in message delivery.  Any IoT Management application needs the MQTT Broker as one of the communication component.   We have been providing MQTT Broker in two different flavours.

IoT Platform

The IoT Platform is a SaaS based highly scalable architecture which can be used to connect millions of devices. The IoT Platform also supports multi tenancy by which you can provide solutions to any number of devices. The Platform provides an individual customer access to manage their devices and create rules for automation between their devices. The platform in turn provides a powerful API interface which can be used to build web and mobile applications over the platform.

Standalone MQTT Broker

The MQTTRoute is a standalone MQTT broker which supports all operating system. The MQTTBroker can be extended by connecting to any big data engine or your application over python connectors – MongoDB Connector & ElasticSearch Connector.

Something is missing ??

YES…  Even though the above components can be integrated into any of the manager application, these application needs a standalone monitoring and server management.  The existing Device manager and IoT Applications vendors will be more than happy if they can integrate these applications into their application.

When used as a separate component.

  • – Multiple set up process.
  • – API Control for every operation.
  • – Separate Data Storage.
  • – No control over the MQTT Broker process.

MQTT Broker as an integral Component

Keeping this in mind, we today announce a variant of MQTT Broker where can be added as one of the components into your application.   You will be able to do the following.

  • – Start / Stop the MQTT Broker from your core application.
  • – Know about the client connects and disconnections, the clients IP address, passwords used and the will details.
  • – Know about the messages published from the edge devices.
  • – Know about the subscription details of each device
  • – Know about the message propagation to individual edge devices
  • – The acknowledgement status for each message sent to each device.
  • – Send message to each device individually or as a group.
  • – Control over the authentication tokens.

This MQTT Broker component can be integrated into any of your application and can be made to work irrespective of the programming language in which your product or server is built on. The component can provide more functional communication between the component and your application based on the need. 

You can download and try our standalone MQTTRoute.

Download FREE MQTT Broker

Looking for getting your application MQTT enabled, drop a message to support.

  • IoT & IIoT Implementation - Designing edge device

IoT & IIoT Implementation Series – part I – Designing the Edge

By |February 13th, 2018|

Edge device is one of the core component of the overall IoT & IIoT implementation.  Edge devices is the key source of data for the IoT Implementation. The first important thing to be kept in mind is that nothing is reliable. The nothing mainly constitutes the Power and the Internet.

Power Saving:

There are two kinds of devices with respect to power. First one is connected to the electricity and the later is without any continuous power source. The second ones runs on batter. In the former case, there is no need to worry about the usage of the power.

When you create a device that runs on power, you need to make sure, the number of cycles you run per second determines the power consumption.  In one of the implementation, we enabled the communication of the remote device with the central server only when there is a change in the data. But the device will monitor the condition every few seconds. This will increase the battery life and at the same time save a lot of network traffic.

Internet Failure:

The device cannot take the Internet connectivity for granted. The device should be optimised for reconnections.  So the reconnection should be made smoother with longer intervals, so that there is not surge in the drain of battery.

The device should be connected with  MQTT WILL Messages so that the interested parties or the device manager will notify every one with the device disconnections once it happens.

Heat Generation:

Heat dissipation is one of the most important aspect to be considered for the device development. Even a very small heat generated in the micro controller should be properly let out. If not done properly may lead to Fire hazard. It becomes more important when you develop devices that works on the high voltage lines.

IoT Implementation –  Software:

Most MQTT servers supports two forms of connecting to the Central broker.

  1. TCP Connections
  2. Web Socket

The remote devices should implement the tcp form of connections. The web browser based clients or communication when the applcaition is open can use the Web socket. But for mobile offline messaging, developers should strictly use the other tools like Firebase Cloud messaging.

MQTT Connection Security:

Most MQTT Server can be run in Non TLS or TLS mode. We recommend you to run the platform enabling the TLS mode in the configuration. The TLS enabled broker will listen at port 8883. You can refer to our previous article on creating SSL Certificate for MQTT Communication for generating and using TLS Certificates. The above article also provides steps to add the client certificate in your client folder and connect it to the central Server.

client = MQTTClient(“Secure_Client” , 1883 , “40” , “” , 0)

PS:- Even though the MQTT Platforms support TLS modes, we run them as NON TLS mode on our server for ease of development.

MQTT Device Authentication:

TLS data transfer provides the option to transfer the data securely. But the MQTT Authentication will provide an additional level of security. The Authentication also provides a level of access Prineville on who can publish and who can receive data from the MQTT Broker. The access restrictions will be defined at the MQTT Broker level and the clients can use the device authentication as needed for the implementation.

client = MQTTClient(“Secure_Client” , 1883 , “40” , “” , 0 , “authentication_key”, “authentication_value”)

Setting WILL Details on Connection:

Setting the WILL messages will help other devices / applications in the network know the status of the device that sends the WILL details to the Broker. The WILL message will be triggered when the device disconnects with a notice to the broker. To connect the client to the broker, you can connect using the following method.

client = MQTTClient(“Secure_Client” , 1883 , “40” , “” , 0 , “auth_key”, “auth_value” , True , 0 , 0 , “/will/device/” , “Device down”)

You can use the following prebuilt clients on Python to connect to any standard MQTT Broker via TCP.



 Windows 32-bit

 Windows 64-bit


You can have the following import and then write the above code.

import py_mqtt_client

 For the Websocket based client, you can use the following client.

 Eclipse Paho Client for Web socket

Feel Free to write to support for any questions related to IoT  & IIoT Implementation or suggestions on the edge device development.

  • IOT Device Manager Update

IOT Device Manager – Security & Device Management Update

By |January 24th, 2018|

IOT Device Manager application has been enhanced with more security and Device management functionality. This update is supported in the On-demand version and the self hosted platform.

Instant Command:

 Most IOT Devices that connect to the IOT Device Manager will send events and at the same time listen to specific commands for receiving instructions from the manager application. The manager at anytime send commands to device to active some tasks or manage them.  The new update has been added with an option to send commands to specific device or a group of device which listen to a command.

Authentication & Access Privilege:

The new update allows you to create multiple Authentication keys for a particular set of IOT devices and also allow users to set access rights like Read/Write, Read Only and Write Only.

 The Sensors which just sends data to the IOT Device Manager can be allowed to use the Write only keys while an actuator valve which turns on and off flow of liquids can be used with a Read Only key. The new functionality allows right keys to be used as required for enhanced security.

The Device manager also provides an option to disable a particular authentication key inactive in case of emergency or suspicious connections and re enable once the alarms are cleared.

Enhanced User Interface:

The User Interface has been enhanced with a better dashboard and a cleaner look and Feel.

Powerful API for Integration:

We have added a few apis that will help build the Mobile application or integrate any application to the IOT Platform. You can download the PDF which contains the API Specification here. These API will also work on the custom hosted servers and you need to use your domain instead of in the API URL.

With an objective to allow users to easily SignUp and manage their devices, we have set up the Device manager in the Non SSL mode for the TCP and the Web socket Communication.

Create Account in Bevywise Device Manavger

The Device manager can be customised and hosted in your Brand on your servers. Request a Quote if you are looking fora platform for privately managing your customers devices.

 Feel free to contact us via support for any assistance or feedback.

  • MQTTRoute Plugin

Introducing ready to use MQTTRoute Plugin

By |January 10th, 2018|

A few weeks back we rolled out an update that provides and option to store  MQTTPayload into ElasticSearch. This update also had options to enable customization to send data received from the different edge devices to various storage engines or your own application. Today we want to make the MQTTRoute more ready to use for our customers.  Yes we are rolling out ready to use MQTTRoute plugin for MongoDB & ElasticSearch.

These plugins can store data of plain text message and one level of JSON data into the document store. The JSON string will be federated and stored as a flat key value pair into the document store. The flatter storage will help you draw powerful charts and user friendly graphs in the way you need.

The way of data storage is completely dependent on the way data is generated from the client. So we have provided these plugins under an open Apache license, so that you can customise the MQTTRoute plugin as required for the data.

MQTTRoute Plugin for MongoDB

Mongodb is one of the most widely used Document Storage engine for IOT data analysis. This plugin can be enabled in MQTT Broker and configured to write data into the Mongodb. If you are receiving a complex JSON data from the edge devices, you can customize the code to alter the data for storage.

Download the MQTTRoute – Mongodb – Connector Now

MQTTRoute Plugin for ElasticSearch

ElasticSearch is a very powerful search engine. We use ElasticSearch for our IOT Platform and our hosted Device Manager. We also provide a default integration with Elastic in MQTTRoute. We are also publishing the code for the customers to make changes as needed for their data format.

Download the MQTTRoute – ElasticSearch – Connector Now

MQTTRoute is needed for using these plugins. Try the FREE version of the MQTT Broker now

Download FREE MQTT Broker

We would be happy to help you with storing complex data if needed. We are also working on connectors for AWS Lamda, GE Predix, Apache Hive and more. Do write to support for any assistance or feedback

  • Visualize IOT Data

Visualize IOT Data with Elasticsearch

By |December 19th, 2017|

All data collected from the edge devices should be analysed to drive proper decisions. A good tool to visualize IOT Data will help users drive better decisions. Each business want to visualize iot data with their own or comfortable tools as for their convenience.

A complete IOT implementation needs a powerful data processing, user friendly visualization and a quick decision driving notifications. To enable such a complete implementation, MQTTRoute can now talk to any Big data engine to store the data for further processing.  

MQTT Broker & ElasticSearch

Elastic Search has been added as a default extension into the MQTTRoute. You can just install the Elastic Search and configure the details in the conf/data_store.conf and the MQTT Broker will start writing all the received data into the Elastic Search engine. The default index used will be mqtt and can be changed in the data_store.conf file. You can visualize the data using Kibana powerful visualization tool from the Most tools today can read data from Elastic to show it in a nice user friendly way.

Handling JSON

MQTTRoute will split the JSON to one level and store it in document store as individual columns, so that it will be easy to query and make decisions.

For example, a data from a HVAC Sensor production_room_sensor_4 in the JSON format will look like.

{“Humidity”:”50%” , “Temperature”:”27°C”, “Time”:”Tuesday, 19 Dec 2017 14:22:33″ }

The same will be stored in a more flat structure for easy construction of visualization Queries. If you are using a more nested JSON for data transfer

sender:production_room_sensor_4, “Humidity”:”50%” , “Temperature”:”27°C”, “Time”:”Tuesday, 19 Dec 2017 14:22:33″

Visualize IOT Data with any Platform

MQTTRoute also send the received data to any of your python program for you to process and store into your own data store

# The parameter data will be in dict format and the keys are ‘sender’,’topic’, ‘message’, ‘unixtime’, ‘timestamp’

def handle_Received_Payload(data):

# Write your code here. Use your connection object to
# Send data to your data store

We will be adding more integrations to the MQTTRoute by default. So that it can used as a plug and play with minimal implementation from the development team.

Download and the Try the latest FREE MQTTRoute now.

Download FREE MQTT Broker

Contact support for any assistance.