Developer Guide

Acquiring IoT Platform


IoT platform is a SaaS-based application where you can connect and monitor millions of devices. The Platform comes with the multi-tenancy and user management inbuilt which helps you to allow your users to manage their devices individually. You can run it on on-premise, and also in any cloud instance under your own brand (White label product). In our IoT Platform, we have an evaluation called Device Manager. In this, you can sign up and log in with your account and you can connect your device to evaluate our IoT platform. For the installation and setup, our team will help you to host the IoT platform on your server.

System Requirements


To get started you should need a Ubuntu 16.04 instance with below requirement in any cloud platform like AWS or rack space. You can host the Bevywise IoT platform based on our instruction guide or we will host it in your cloud instance.

Below are the minimum system requirements needed to deploy the Bevywise IoT platform.

    • Any Cloud Server which has Ubuntu instance

    • Ubuntu instance – 2

    • CPU – 4 [Shared 2,2 for two instances]

    • CPU Core – 4 core [Shared 2,2 for two instances]

    • RAM – 16 GB [ Shared 8,8 for two instances]

    • Hard disk – Based on your data rate

    • OS – Ubuntu 16.04 or higher

Functional Components of Bevywise IoT Platform


Bevywise IoT Platform consists of the following components:

Message Broker

Bevywise IoT Platform has MQTT based message broker which provides secure communication between the device and Bevywise IoT application to send and receive messages from each other, also it will store the collected data in Elastic search for powerful data analysis and visualization.

Rule Engine

Bevywise IoT Platform has a powerful condition-based rule engine which helps the user to forward alert messages to the subscriber based on the received topics with corresponding messages. Users can also create rules for each key in a complex JSON message.

Security and Authentication

Bevywise IoT platform supports TLS/SSL mode which provides a secure mechanism and data encryption between device and Bevywise IoT application. Bevywise IoT Platform also has device authentication for secure data transfer from end device to message broker.

Instant Command

Bevywise IoT Platform helps to send a command or message to a particular device or to the group of devices that listen or subscribe to that topic. Through this users can test and get data for monitoring.

Data Visualization

Bevywise IoT Platform was built over a powerful customizable visualization which helps the user to customize the data analytics based on their need. Bevywise IoT Platform also plot chart if the data or messages are in JSON format and users can add multiple fields based on JSON key and values which make data analytics better and more powerful.

Custom Dashboard

The utilities of Dashboards differs with Industrial or Commercial requirements. The default dashboard may or may not suffice hence, the real benefit of dashboard lies in creating & customizing it the way you desire. The Custom dashboard option in the IoT platform facilitates you to bring all your Industrial / Business key metrics in one place. 

Widgets

Widgets display trends over a period that allows users to build a dynamic user interface rapidly for your IoT applications, processing real-time data from the physical & simulated devices. It captures performance metrics & key indicators to give you a real-time view of the state of your business.

Bevywise IoT platform offers 9 types of widgets that are scalable to fit all industrial deployments.

  • Text

  • Colour

  • Table

  • Line chart

  • Bar chart

  • Gauge chart

  • Donut chart

  • Vertical gauge

  • Horizontal gauge

  • LED Light

  • Switch

To know more about the widgets, view Dynamic Live Widgets.

User Interface

Bevywise IoT platform has an elegant and transparent user interface in which any user can monitor devices and data without any complexity. Since all components configurations, monitoring and data analytics are done via the user interface, any new user can easily understand and configure without the help of administration. Bevywise IoT platform also has a separate user interface for users and administrators.

Data Storage

Bevywise IoT Platform store data in Elastic search which scales the IoT platform to millions of data. Storing data in the Elastic search not only increase storage but also increase the performance, data transfer rate and give way for powerful data analysis.

Single/Multi-Tenancy


Bevywise IoT Platform is flexible for both single and multi-tenancy implementation.

Single-Tenancy

Our IoT platform will also act as a single tenancy for the customer who wants to implement the IoT platform has a stand-alone server.


Multi-Tenancy

Our IoT platform has SaaS-based, multi-tenancy architecture which helps the user to serve multiple customers. Using this architecture, users or service providers can deploy the IoT platform in a single instance and give individual web access for each customer to share the resource from the single instance. Also, we provide an Admin console for the provider to monitor each customer and their device.

For example, a Home automation provider will implement their sensor kit in multiple customer’s homes. If the provider implements a stand-alone platform for each customer, then it will increase maintenance & development cost and also make monitoring harder. To overcome this, the provider can deploy our platform in the cloud server and give web access or login for each customer. Individual web access helps customers to monitor their device individually and also resources like databases etc are shared from the single instance which will save cost and time.


Register Command


Register command will help the user who has multiple slave or sub-devices below a master device. To connect and register your master and its sub-device, you must develop the master device as per our pre-defined topic and payload syntax.




  • First, create a publish topic of the master device as per the below topic syntax

system/<< clientid >>/register/group

  • client id : Master device ID

Note: Other topic levels [system, register, group] are constant and don’t change it.

  •  
  • Second, to add all sub-devices which are connected below the master device, you must list all the sub device name, its subscriber & publish topic in JSON payload and assign to the above publish topic. Below is the syntax to list all sub device in JSON payload

    
        { "group_details":

       [{ "device_id":"","device_name":"",

      "command_topics:"[{"topic":"","qos":""},

        {"topic":"","qos":""}, 
        .
        .
        ]

       "event_topics":["","",....]},
   
       { "device_id":"","device_name":"",

       "command_topics:"[{"topic":"","qos":""},

       {"topic":"","qos":""},
        .
        .
       ]

        "event_topics":["","",....]},
        .
        .
       .
       .
        ]
       }   

  • device_id: Id of sub devices

  • device_name: sub-devices name

  • command_topics: It refers to the subscribed topic. Give subscribe topics which the device subscribed to get data. You can add multiple topics using the above syntax.

  • topic: Give subscriber topic

  • Qos: Mention QoS level for the specified topic.

  •  
  • event_topics: It refers to the device publishing topic. You can add multiple topics using the above syntax.

Now, if you connect the master device to our IoT platform, the platform will consider that the master device has sub-devices based on its topic and add all the sub devices and its topics when the JSON payload is published. In the IoT platform user interface, all sub-devices, its topics will be added.

Voice integration

Voice integration plays a vital role in home automation. It has many merits like time-saving, cost-effective and easy to control all devices without interacting with the device. So, we integrate our IoT platform with Google assistance and Amazon Alexa.


Google Assistance Integration

Below steps help you to integrate the IoT platform with Google assistance.

Basic Configuration :

1. Enable the Google HomeGraph API

  • Login to Google cloud platform console.

  • In the Cloud Platform Console, go to the Projects page. Create a new project if you don’t have or if you already as

  • [Note: Ensure that you are using the correct GCP project when performing these steps. This is the project that matches your smart home project ID.]

  • Enable the Google HomeGraph API

  • Next, create a Service Account key.

  • Once it has done, “bevywise-iot-platfom-android-sdk-master” will be created in your location.

2. Create a Service Account Key

  • In Home Graph API page, click Credentials from the left panel list.

  • Click “Create Credentials” and select “Service Account Key”

  • In the Service account drop-down, select the “New service account”

  • Give “Service account name” and select “Service Account Token Creator” in “Service account” as a Role. For service account id leave as such.

  • Select, key type JSON and click Create

  • The JSON file will download automatically and you must move this file to your cloud server where the Bevywise IoT platform will deployed since the path of this JSON should be specified in the IoT platform user interface conf file.

3.Create an API key

  • In the Home Graph API page, click Credentials from the left panel list.

  • Click “Create Credentials” and select “API Key”

  • You can see the API key string in the pop-up windows. Copy and paste the key in the Bevywise IoT platform user interface conf file.

Configuration in Bevywise IoT platform :

  • Once the IoT platform is deployed in your cloud server, you must get web access to the IoT platform. In that, you can sign-up and login with a mail account.

  • After login, go to below URL to set up OAUTH authentication, since Google APIs use the OAuth 2.0 protocol for authentication and authorization.

  • https://< server dns name>/o/applications/

  • In that page, click “New Application” and fill the details as below

    • Name: Any unique name

    • Client ID & Client secret: these will create automatically

    • [don’t change it and make a copy of it]

    • Client type : Confidential

    • Authorization grant type: Authorization code

    • Redirect URI:

    • https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID

      [ Reference – oauth doc]

  • Click save.

Configuration in Google cloud platform :

1. Action Console

  • Login to the Action console with your GCP account.

  • Click “Add/import project”. In the pop-up window create a new project by giving the project name or choose the project which you have created in the GCP console.

  • Once you have done, you will redirect to the “Welcome page” and there select “Home control”.

  • Next, select “Smart home” and it will lead to the “Action on Google” window.

2. Invocation

  • Click “Invocation” and give a unique name [this name is to begin interacting with your Actions. For example: if the display name is smartswitch, users can say “Hey Google, Talk to smartswitch” and also this name will be displayed in the Google assistance android app]

3. Account linking

  • Click “Account linking” from the left panel

  • Select option as per your requirement for account creation, by default it will be “No, I only want to allow account creation on my website” and click next.

  • For Linking type, select OAUTH & Authorization code from the drop-down list and click next

  • For Client information, give as below

    • Client ID: Paste the client id which you have created in IoT platform[refer “Configuration in Bevywise IoT platform”]

    • Client secret: Paste the client secret which you have created in IoT platform [refer “Configuration in Bevywise IoT platform”]

    • Authorization URL: Specify as below

    • https:///o/authorize

    • Token URL: Specify as below

    • https:///o/token

    • Configure your client: Specify the permission for your user. [optional]

    • Testing instructions: Here give the Bevywise IoT platform login account details like user and password. With this google will verify the account.

    • Once done, click save to link the IoT platform account to Google Home

4. Action

Here you should specify the IoT platform API, through which google will get data from the IoT platform.

  • Click “Action” from the left panel

  • Give the URL as

  • https:///bwiot/api/v1/devices/googlesync

  • Next, click Save.

5. Deploy[optional]

In the Deploy tab, you can add your company information, location information, Directory information and more.

To integrate IoT platform with Google assistance app :

  • In Android mobile, go to the Google assistance home page.

  • In Google assistance, click the user icon[ check whether both GCP account and android login account are the same] and select “setting”

  • In the setting page, select the “Assistant” tab.

  • Below “Assistance”, select “Home control” and it will lead to the Home control page.

  • On that page, click + icon on the bottom and you can see the created smart home skill. Example: smartswitch [refer Invocation]

  • Click the skill and you will lead to the IoT platform login page. Login with the existing account.

  • Now, the IoT platform will sync to Google assistance and in Google assistance, you can see all the IoT platform connected device

Amazon Alexa Integration

Integrating Amazon Alexa to the IoT platform is done through the Lambda function. In the Lambda function, you can embed our code or you can write your own code in preferred language[like python, node.js, etc] to trigger the IoT platform API. Once we have done, we will integrate the Lambda function ARN to Alexa smart home. So, when we give a voice command to Alexa based on the skill set write in Lambda, it will automatically trigger the API request to the IoT platform and get the required data. Below steps will help you to integrate Amazon Alexa to IoT platform

Configuration in Amazon :

1. Creating a Lambda function

Prerequisite to create a Lambda function :

Before creating a Lambda function, you must create Identity and Access Management [IAM] role for Lambda and Alexa skill kit.

To create identity and Access Management [IAM] role :

  • Sign-in to AWS console

  • Select “IAM” to create roles

  • In “IAM” windows, select Roles and click “create Role” to create a new role.

  • In the “create Role” window, below “AWS service” option, select Lambda and click Next

  • In “Attach permissions policies” window, search and select “AWSLambdaBasic ExecutionRole” and click next

  • “Add tag” is optional, if you like, you can add a tag or click next.

  • In “Review” window, give a name for the role and click “create role”

To create Alexa skill set :

  • Sign-in to Amazon developer console[Sign-in with same AWS account]

  • Select “Alexa skills kit” below amazon Alexa

  • In “Alexa developer console”, click “create skill”

  • Give Skill name and choose the language

  • Select as below

    • “Choose a model to add to your skill” as “Smart Home”

    • “Choose a method to host your skill’s backend resources” as “Provision your own”

  • Click create.

[Note: Take a copy of the skill id in Smart Home tab]

To create a Lambda function :

  • In AWS console, select Lambda from AWS services

  • In the Lambda window, click “Create function” button to create a new function

  • Next, below “Basic information” give a unique name for the function and choose the language which you prefer.

  • Below Permission, click the drop-down to Choose role and select “Execution role” as “Use an existing role”

  • In “Existing role”, select the previously created “IAM role” from the list and click “Create function”

  • Next, go to the created Lambda function and select “Alexa Smart Home” from the left panel.

  • Below “Configure triggers”, give the previously created Alexa skill ID for the Application id and click “ADD” to create Lambda function

  • Now the function will be added and before start writing your code in Lambda function, you must integrate the Lambda function and Alexa Skill which you ave created before.

2. Integrating Alexa skill and Lambda function

Below steps help you to integrate Lambda and Alexa skill kit.

  • Go to Amazon developer console and select “Alexa skills kit” below amazon Alexa

  • In “Alexa developer console”, select the created Alexa skill

  • In “Smart Home” window, select as follows

    • Payload : v3 (preferred)

    • Smart Home service endpoint:

      • Default endpoint*: < Copy and paste the ARN from the create Lambda function >

      • Geographical region is optional, you can choose as per your need

    • Click save

  • Once you save, the Lambda function will be integrated with Alexa skill and you can start writing your code in the Lambda function.

[Note: Don’t close the Alexa skill kit]

3. Integrating Alexa skill kit and Bevywise IoT platform

To integrate Alexa’s skill set, we should create an OAUTH in Bevywise IoT platform, since Amazon Alexa API’s use the OAuth 2.0 protocol for authentication and authorization.

To create OAUTH in Bevywise IoT platform :

  • Sign-up and login into Bevywise IoT platform

  • After login, go to below URL to set up OAUTH authentication,

  • https://< bevywise server dns name>/o/applications/

  • In that page, click “New Application” and fill the details as below

    • Name: Any unique name

    • Client ID & Client secret: these will create automatically[don’t change it and make a copy of it]

    • Client type : Confidential

    • Authorization grant type: Authorization code

    • Redirect URIS: < Copy and paste any one of the Redirect URI from Account linking in Alexa skill set>

    • Click save and you will get a copy of the OAUTH details.

  • Now go to Account linking in Alexa skill kit and start filling the OAUTH details.

To integrate IoT platform to Amazon skill kit :

  • Go to create the Alexa skill window.

  • Select “Account linking” from the left panel and give the details as follows

    • Authorization URI*: https://< bevywise server dns name>/o/authorize

    • Access Token URI* : https://< bevywise server dns name>/o/token

    • Client ID*: < Copy and Paste it from Bevywise OAUTH details>

    • Client Secret*: < Copy and Paste it from Bevywise OAUTH details>

    • Client Authentication Scheme*: HTTP Basic

    • Scope: Add two scope, read and write.

    • Default Access Token Expiration Time: 3600

    • Redirect URLs: Leave as such

  • Once done, click save to link the IoT platform account.

  • Next select, Permission from the left panel and enable “Send Alexa Events”

  • You will get a Client id and Client Secret. Take a copy of it.

To integrate IoT platform with Amazon Alexa app :

  • Download and install the Amazon Alexa app from the android playstore or ios app store.

  • Sign-in with to the Amazon Alex app[Sign-in with same AWS account]

  • Go to Device tab and click “YOUR SMART HOME SKILLS”

  • The created Smart home skill will automatically appear in the list and click that skill.

  • Next, click “Enable to use” and it will lead you to the IoT platform sign-in page. There sign-up with your account to integrate into the Alexa app.

SSO & IAM Tool integration


Our IoT platform has a pre-build custom hook that helps the customer to integrate the IoT platform with SSO & IAM tool for user & device authentication respectively.


User Authentication Using SSO

SSO is an integration of Identity and Access Management(IAM) from a common server that permits a user to use one set of login credentials like Username and Password to securely access multiple websites and applications.

SSO for User Login:

    • When the client login to the IoT platform the SSO tool demands an encrypted token from the authentication server.

    • Then the SSO will receive the user id and token from the identity provider and assign it to the approaching clients.

    • Now, the SSO will retain the details to the IoT platform.

    • Once the authentication is verified the client will be logged into the IoT platform using the SSO through the Rest API.

SSO Third-party providers in IoT Platform :

In IoT Platform we are utilizing two standard third-party providers.

        • OAuth
        • OAuth 2.0

OAuth:

    • It is a token-based authentication that is used to provide SSO and permits information to be utilized by third party services.

    • It likewise requires an identity provider for authenticating clients access.

    • In IoT Platform, OAuth is used to communicate different servers/client’s own servers like google home, Amazon smart home, etc.

OAuth 2.0:

    • It authorizes third-party applications to access the client account.

    • It authenticates the client by following the authorization code flow.

    • OAuth 2.0 provides authentication flows for web applications, desktop applications, and mobile devices.


Device Authentication via IAM



IAM is a solution to securely manage digital identities, software’s and hardware’s and their access to various applications and systems. It reduces the risks of identity fraud and improves the collaboration between the users.

IAM for Device Login:

    • For a device connection, the device will be registered by the user in the IAM tool via the IoT platform.

    • From the IAM tool, the ID and token for the device will be generated for connection. The device will be requesting the token from the IAM Tool.

    • The device will now use the ID and the token to connect to the IOT Platform.

    • The IOT Platform has been built with hooks with which any IAM token provider can be integrated to the Edge device authentication flow.

    • Once the authentication details are valid and the device will be allowed to connect to the Platform.


How to Build a Mobile or web application


Bevywise IoT Platform mobile SDK and REST API help the user to integrate or built their Mobile application both on android and ios. Follow the below steps to integrate your mobile app and IoT Platform.


Mobile SDK

We have separate SDK for android and ios.

Android

Below steps help you to integrate your android application and IoT platform.


    • To clone:

        • Install “git” in your PC

        • Once installed, open terminal or cmd and type the below command to clone it.

    
         git clone [email protected]:bevywise-networks/bevywise-iot-platfom-android-sdk.git 


    • Once it has done, “bevywise-iot-platform-android-sdk-master” will created in your location.
    •  
    • To download zip.

        • Go to Bevywise github repository

        • Click “Clone or download” button on the top right corner

        • In the pop-up, click “Download as zip”.

      •  
    • Go to the “bevywise-iot-platform-android-sdk-master” folder and copy “build.gradle” file.

    • Paste the “build.grade” file inside your App folder[< Android folder >/App]

    • Next, Click “Syn” button in your app. This will automatically import all dependencies and establish the connection between your application and the IoT platform.

IOS

Bevywise IoS SDK is available through CocoaPods. To install it, follow the below steps:

    • The following commands will help you to create a Pod file inside your IOS app folder. If you already have Pod file skip this step and move to the next step

      • Open the terminal and go to your APP folder

      • Next type “pod init” and click enter

      • Now Pod file is created inside the App folder.
    •  
    • Open the Pod file and add the below line and save it

pod ‘BevywiseIotPlatformSDK’

    • Next install pod in you Mac, by the below command.

pod install


Rest API

Building applications specific to a vertical is needed. You can either customize the User Interface component of the IoT Platform to build your user interface & Mobile Application. Besides the Mobile SDKs, IoT Platform also provides a complete REST API for querying and managing the devices via the server. For reference, please refer to the API document.

Connecting devices to the IoT platform


  • Sign up for an account in the device manager and you will be automatically logged-into the account.

Sign-up device manager

  • Once you log-in, you can see the device manager user console.


To Use Initial Auth Key

  • Click the Security tab on the left side panel of the user-Console.

  • The Security Tab will open, showing initial keys as a default one.

  • You can use this initial keys as a username and password.


Device manager Security tab

If you have real-time devices

You can use the username and password in the device and connect it to the server.

You can give the configuration as follows

  • Username – Use the Auth key

  • Password – Use the Auth Token

  • Port – 1883


If your real-time devices are in development

  • Use the help section to download client libraries for testing.

  • Provide username & password on the client file & connect your devices.


Device manager help

To start your device

  • On the Client side give MQTT Server IP address as “devicemanager.bevywise.com” and start the device.

  • If the connection is successful you will see the connected device in the Dashboard.


To create a new Key

You can create a key for a particular device or for all devices.

  • To create new Authentication keys, Click the     icon on the top right side of the tab.

  • Once you click, the “Device Authorization Key Generation” window will open showing Key Description & Permission.

Create authentication keys

  • Enter key description & select permission for the keys and click save.

  • Now you can view the newly added Auth Key & Auth Token in the Security Tab. 

  • Auth Key will act as a username & Auth Token as a password.

Getting Started with Bevywise IoT Platform


Bevywise IoT platform contains two user interface consoles.


    • Service Provider Admin console

    • User console

Service Provider Admin Console


Since the Bevywise IoT platform is a multi-tendency platform, organizations can give individual login to each of their customers to connect and monitor their devices. So, to monitor and manage all their customers, they should need a separate Admin or Administrator console. Likewise, the Bevywise IoT Platform has a separate and customizable Admin console for the Solution provider to manage their customers.


Login to the Admin Console

During the deployment, the admin console details will be given to the specific client, so that the administrator can directly login to the IoT platform.

    • Open the Bevywise IoT Platform home page and choose a sign in.


    • Fill all the mandatory details “E-mail ID” and “Password” and click sign-in to login to the Bevywise IoT Platform.

    • Once you have a login, you can see the Bevywise IoT platform user interface.

Organization Dashboard

Bevywise Admin console has an elegant and simple Dashboard that gives brief details about the organizations.


It shows the overall details and activities of the device

The Dashboard has four tabs, which show total user count, device count, active device count, and Auth count.

    • User count – Total number of login Users.

    • Device count -Total number of connected customer devices.

    • Active Device count – Total number of active devices.

    • Auth count – Total number of Authentication created.

The table below the icons gives a brief description of their customers.

    • Name – Customer name which was given while sign-up in the platform.

    • Email ID – Customer Email ID which was given while sign-up in the platform.

    • Phone Number – The Customer phone number which was given while sign-up in the platform.

    • Created on – Date and Time on which customer sign-up to their platform.

    • Last Login – Last login date & time.

    • Devices Count – Total count of the device which their customer connected to their platform.

In that table, users can sort their customer list by ascending and descending order by clicking the     next to the parameter. Up arrow will sort the list in Ascending order and Down arrow will sort the list in descending order.

For example, if you want to sort the customer table based on the highest device connection, then click the down arrow next to “Device count”. Now it will show the customer who has a high device count at first. Likewise, you can sort the customer table based on the name, Email id, Last Login, etc.

Users can search for the customer list based on three options.

    • By user – Used to search for customers based on the name and email id.

    • By device – Used to search customers based on the device name or device/client id.

    • By Active Device- Used to search for customers based on active devices.

Managing Customer Organization

Creating Organization via The Admin Console

    • Click the “Create Organization” icon on the left side.

    • Then provide the required details like “Name”, “E-mail”, “Organization name” and “Mobile Number” in the respective tabs. 

    • Once you have done, click “create” to create an organization.

View details of the particular customer

Bevywise Admin console gives a separate user interface for each connected customer. This separate user interface helps the admin to get more details for a user device. In the admin dashboard choose the customer in which you can know about the customers’ details and it will lead to the customer user interface.

In that page you can see five tabs, they are

    • Customer-info

    • Dashboard

    • Devices

    • Rule Engine

    • Auth-key

Adding users to a particular organization

In the Customer-Info, you can find the details about an organization and the user-related organization. The details shown are given by the users while they sign-in to the Platform. You can add the users by providing the required details. 

Provision an user for a particular customer:

    • Click the icon     on the right side, it will lead to add the user.

    • Give your required details like Name, E-mail, Phone, and Role. 

    • Once you have done, click add to add the user.

    • Now, you can view your User’s details.

    • Once you have added the users to your organization, mail with the link will be sent to the users. 

    • So that the users can log in to the User console by using the link.

User Roles and Permissions

The administrator defines the roles and permissions for the user added below. Based on the permission, the user can view the parameters in the User console.

For example: If you uncheck the Device tab in the permission, the user cannot see the Device page in the User Console.

On this page, you can see three different roles. They are

    • Super Admin

    • Admin

    • Standard User

Super Admin:

This role is for the Super admin of the User Console. The Super Admin can manage the access and level of responsibility of all users in an organization of the User Console. They have the highest authority of all and manage an organization, admin, and Standard users.

Admin:

In the User Console, Super Admin will create the device group and for that device group, Admin will be in the Administrator role and manage and monitor all the devices in that group. Admin provides access rights of any roles to the standard user in their organization. 

Standard User:

The standard users will only have access to the roles which are assigned to them by their Admins. For the Device Group in the user console, there will be a Standard User and the Super Admin will decide whether the user can view or manage the devices in the device group.


Managing Customer Dashboards

It provides the list of dashboards created by the super admin or the user in an organization. We can also create a dashboard for the organization by providing the name and description of the Dashboard. After creating the dashboard, we can add widgets.


To create a custom dashboard:

    • Click “Create Dashboard” at the menu bar.

    • The Model Title window will appear showing, “Dashboard name” and Description.

    • Enter “Dashboard name” and a small Description in the respective box provided.

    • Once you were complete, click the “Create” button to open the “Widgets” tab.

    • Then click the      icon at the top right corner of the widgets tab. The drop-down menu will appear listing the widgets types.

To create a Widget:


Text widget

  • Select “Text” from the widgets list.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topics will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click the “Create” button to view the widget.

Colour

  • Select “colour” from the widgets list.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topics will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click the “Create” button to view the widget.

Table

  • Select “table” from the widgets list.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topics will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click the “Create” button to view the widget.

Line Chart

  • Select “Line Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “Subtitle”, unit” in the respective space provided & select “colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous step.

  • Once you complete, click the “Create” button to view the widget.

Bar Chart

  • Select “Bar Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “Subtitle”, unit” in the respective space provided & select “colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous step.

  • Once you complete, click the “Create” button to view the widget.

Gauge Chart

  • Select “Gauge Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Donut Chart

  • Select “Donut Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” value.

  • Enter “Subscribe Topic”.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Vertical Gauge

  • Select “Vertical Gauge” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Horizontal Gauge

  • Select “Horizontal Gauge” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display. 

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display. 

  • If you need to add more key click “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Led Light

  • Select “Led Light” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Select Active value and Colour to display active value. Similarly, select Inactive value and colour to display inactive value.

  • Once you complete, click “Create” button to view the widget.

Switch

  • Select “Led Light” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “Subscribe Topic”

  • Select Active value and Colour to display active value. Similarly, select Inactive value and colour to display inactive value.

  • Once you complete, click “Create” button to view the widget.


 

Managing Customer Event and Timer Rules

It provides all the Rules created by the organizations based on the published topic for each customer. 


 
    • Events – It displays the Device ID and topic for which the rules have been created.

    • Condition- It displays the condition based on the payload or message.

    • Action- It displays the rule message that is sent to the device based on the subscribed topic.

    • Status- It displays the status of the device, whether it satisfies the rules or not.

Managing Customer Devices

All the customer’s devices are managed under the devices tab. It provides details about the devices which were connected by the whole organization.

Send Message: Used to send a message to the devices in the organization based on the subscribed topic.


Click the drop icon on the top left corner to open the Send message.

In that drop-down window, fill the details based on the below explanation.

    • Device – Device id of the device to which you want to message.

    • Topic – Name of the topic on which the device subscribed

    • Message – Message to be sent to the device

Click “Send” to send the message.

Note: Device to which you’re sending the message should be in Active status

The device List will provide all the insights regarding the associated devices which help the admin to monitor all the devices connected below the organization.

    • Device – Device name.

    • Device Id – The ID of connected Device.

    • Time – Date and Time at which the device connected.

    • Auth Key – Authentication Key used by the device to connect to the Bevywise IoT Platform.

    • Recent Message – The Recently published message of the device. To view click the drop-down icon next to “Recent publish”.

    • Connection log – Provide date & time at which the device connected and disconnected.

    • Status – Current status of the device.

Managing Authentication keys

The Auth keys are created for the organization to connect the device. You can create a particular Auth key for a particular device using the device ID. You can also block/unblock the Auth key so that the user cannot connect with that Auth Key and Auth Token. 

To create Authentication:


Click the “Add Authentication keys” button on the top.

In the pop-up window, give “Device ID”, “key description” and “permission” for the key.

There are three types of Permission

    • Publish and Subscribe – Grant both subscribe and publish permission for the device
    • Subscribe Only – Grant only subscribes permission
    • Publish Only– Grant only publish permission

Click “save changes”.

Once you have done created, the auth key and auth token will be displayed in the Authentication key list.


Rule Engine for Administrator

As the service provider, you can create the rules for all the created organizations based on the published topic. Admin can create the condition-based rules to create alerts events based on the received topic. 


Follow these steps to create Event-based and Timer-based rules.

To add the Event Rule:


    • Click the     and it will lead to “Add rule window”.

    • Event: Here you must give the device id and topic for which you want to create rules

      • In that window, give the device id in the “Publisher From” text box for which you want to create rules.

      • Next, give the corresponding device topic in “with topic” text box

    •  
    • Condition: Create a condition based on the payload or message

      • In “Satisfy”, if you select “ALL” then the rule will be published only if all given condition is satisfied

      • If you select “ANY”, then the rule will be published if any one condition is satisfied.

    •  
    • In the “Message/key/Time” list, you can see four parameter

      • INCOMING_MSG – If the given device and topic publishing normal payload, select this parameter and create conditions.

      • INCOMING_TIME – Select this, if you want to create a condition based on the timestamp of the published message.

      • Key – If the given device and topic publishing JSON payload, then select this parameter and create a condition based on the publishing JSON key.

    •  
    • Action:

      • Device – This will send the rule message to the device based on the subscribed topic.

 
        • Device ID – Give the device or client id of the device to which you want to send the rule.

        • Topic name – Give the topic name to which the specified device subscribed to get the message.

        • Message – Give an alert message to be published to the specified topic

      •  
      • Mail – This will send the rule or alert message as a mail to the specified mail id

        • Mail ID – Specify mail id to which you want to send alert mail

        • Mail Subject – A Subject for the mail

        • Mail body – Enter an alert message for mail

      •  
      • Websocket – This will push the rule or alert message to the notification and user can view the message via bell icon on the top right corner

        • Alert title – Title for the notification

        • WS Alert Body – Alert message for notification

      •  
      • FCM – This will push the data as a notification to your android or ios app based on FCM token

        • FCM Alert title – Title for the notification

        • FCM Alert Body – Alert message for notification

      •  
    • Once you have done the configurations, click Save to add the rule.

    • Now, when the rules satisfied, an alert message will send based on your configurations.

To add Timer rule:

Bevywise rule engine also contains timer-based rules, which help the user to send data to a device and topic for a specific time or interval. Follow the steps to create timer rules:


 
    • Click the     and it will lead to “Add Timer Rule”.

    • In that window, give the device id in “Device” for which you create rules, corresponding subscribed topics of that device in “Topic” and the message to be published in the “Message” tab.

    • Next, select the time when you want to publish the message from “Hour & minute” drop-down boxes and then specify the Start & End date in month/day/year format.

    • Now when the time and date match the rule or message will be published to a given device.

Error Logs

It shows the list of errors that occurred while connecting a device to the IoT Device Management Platform.


User Console



The Device manager is a preliminary form of the Bevywise IoT Platform. This provides multi-tenancy so that you can permit every one of your user’s to sign up and manage their own devices.


Sign in to User Console

If you do not have an account in the Bevywise IoT platform create one.

To create an account:

Open the Bevywise IoT Platform home page and choose a sign-up.


Fill all mandatory details to create an account and click the sign-up to login to the Bevywise IoT Platform.

Once you have a login, you can see the Bevywise IoT platform user interface.


On Boarding a Device

    • Once you log in, click the “Security” tab and create on “Auth key” and “Auth token”.

    • This key and token will act as the Username and Password.

    • You can go to the “help” section to download the client libraries for testing.

    • The client libraries are on python 2.7 and you can provide the “username” and “password” on the client file and connect your devices.

    • If you already have an edge device, you can use the “Username” and “password” in the device and connect it to the server.

    • On client-side give MQTT server IP address as “broker.bevywise.com” and start the device. Once the connection is successful you can see the connected device in the Dashboard.

Device List

This tab provides a more detailed view of each active and inactive devices. Also, each device has a separate web page, so users can monitor and manage each device separately. 


Device Information

Individual views for each device is available where you can see the status, Publish data, received data for each device using the Device tab. To view individual device page, click the device from the list

    • Device details on the left side show the Device ID, Device Name, Status of the device, Will topic, and Will message.

    • Activity- Dynamically updates the latest activity of the device.

    • Send command- Allow you to send a message or command to a published or subscribed topic of device.

    • Received Events- Provides the list of the received event topics, published data or messages and published time.

    • Sent Event- Provides the list of the sent event topics, published data or messages and published time.

    • Subscribe Topic- Provide the list of a topic which the device subscribed to get data.

    • Rule- Help you to create rules and also provide the list of rules which you create for this device or topic before.

    •    – It shows the list of published/publishing messages.

    •    – It shows the list of received messages from the subscribed topic.

Dashboard and Widget management

Users can view the latest events and monitor all ongoing processes in the IoT Platform on the Dashboard.


Below status will be visible to the user in the dashboard

    • Total Client count which includes both active and inactive client.

    • The total number of Active clients.

    • Total Received events or message

    • In Recent Events, users can view the latest published or event topics, published data or messages and published time.

    • In Recent Connection, the user can view the latest connected device name, device id and device connected time.

    • In Recent Disconnection, users can view the latest disconnected device name, device id and device disconnected time.

To create a Custom Dashboard

  • Click “Create Dashboard” at the menu bar.


  • The Model Title window will appear showing “Group ID”, “Dashboard name” and Description.

  • Enter “Group ID”, by default “Admin Group” will be set as Group ID, user can change it if they need.

  • Enter “Dashboard name” & a small Description in the respective box provided.

  • Once you complete, click the “Create” button to open the “Widgets” tab.

  • Then click     icon at the top right corner of the widgets tab. The drop-down menu will appear listing the widgets types.

To create:

Text widget

  • Select “Text” from the widgets list.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topics will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click the “Create” button to view the widget.

Colour

  • Select “colour” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “Subtitle”, unit” in the respective space provided & select “colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous step.

  • Once you complete, click the “Create” button to view the widget.

Table

  • Select “table” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “Subtitle”, unit” in the respective space provided & select “colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous step.

  • Once you complete, click the “Create” button to view the widget.

Line Chart

  • Select “Line Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “Subtitle”, unit” in the respective space provided & select “colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous step.

  • Once you complete, click the “Create” button to view the widget.

Bar Chart

  • Select “Bar Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “Subtitle”, unit” in the respective space provided & select “colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous step.

  • Once you complete, click the “Create” button to view the widget.

Gauge Chart

  • Select “Gauge Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Donut Chart

  • Select “Donut Chart” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” value.

  • Enter “Subscribe Topic”.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Vertical Gauge

  • Select “Vertical Gauge” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display.

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display.

  • If you need to add more key click the “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Horizontal Gauge

  • Select “Horizontal Gauge” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “key”, “unit” in the respective space provided & select “colour” to display. 

  • Then Select “Minimum”, “Maximum” & “Offset value”.

  • Enter “Subtitle” and select “Colour” to display. 

  • If you need to add more key click “Add” button and repeat the previous steps.

  • Once you complete, click “Create” button to view the widget.

Led Light

  • Select “Led Light” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Select Active value and Colour to display active value. Similarly, select Inactive value and colour to display inactive value.

  • Once you complete, click “Create” button to view the widget.

Switch

  • Select “Led Light” from the widgets listed.

  • Then provide a Title, and select Device from the devices listed in the drop-down menu.

  • After selecting the device, the corresponding topic will be listed in the “topics” tab. From the list, you can select the topic.

  • Enter “Subscribe Topic”

  • Select Active value and Colour to display active value. Similarly, select Inactive value and colour to display inactive value.

  • Once you complete, click “Create” button to view the widget.


 

Modify widgets

Click the     icon at the right corner of the widget.

Now, you can modify the current widgets.


Delete Widgets

Click the icon     on the right corner of the current widget.

Now, the current widget will be deleted from your dashboard.


Delete Dashboards

Click the “Delete dashboard” icon on the bottom of the widgets page.

Now, the current dashboard will be deleted.


Rule Engine for User Console

Users can create condition-based rules to create alert events based on the received topic or messages. Alert event contains a topic and alert message and if the subscriber subscribes to that topic, an alert message will be forwarded to the subscriber. Follow the steps to create rules


 

To Create Event Rule:

    • Click the     and it will lead to “Add rule window”.

    • Events: Here you must give the device id and topic for which you want to create rules

      • In that window, give the device id in the “Publisher From” text box for which you want to create rules.

      • Next, give the corresponding device topic in “with topic” text box

    •  
    • Conditions: Create a condition based on the payload or message

      • In “Satisfy”, if you select “ALL” then the rule will be published only if all given condition is satisfied

      • If you select “ANY”, then the rule will be published if any one condition is satisfied.

    •  
    • In the “Message/key/Time” list, you can see four parameter

      • INCOMING_MSG – If the given device and topic publishing normal payload, select this parameter and create conditions.

      • INCOMING_TIME – Select this, if you want to create a condition based on the timestamp of the published message.

      • Key – If the given device and topic publishing JSON payload, then select this parameter and create a condition based on the publishing JSON key.

    •  
    • Action:

      • Device – This will send the rule message to the device based on the subscribed topic.

 
        • Device ID – Give the device or client id of the device to which you want to send the rule.

        • Topic name – Give the topic name to which the specified device subscribed to get the message.

        • Message – Give an alert message to be published to the specified topic

      •  
      • Mail – This will send the rule or alert message as a mail to the specified mail id

        • Mail ID – Specify mail id to which you want to send alert mail

        • Mail Subject – A Subject for the mail

        • Mail body – Enter an alert message for mail

      •  
      • Websocket – This will push the rule or alert message to the notification and user can view the message via bell icon on the top right corner

        • Alert title – Title for the notification

        • WS Alert Body – Alert message for notification

      •  
      • FCM – This will push the data as a notification to your android or ios app based on FCM token

        • FCM Alert title – Title for the notification

        • FCM Alert Body – Alert message for notification
      •  
    • Once you have done the configurations, click Save to add the rule.

    • Now, when the rules satisfied, an alert message will send based on your configurations.

To Create Timer Rule:

Bevywise rule engine also contains timer-based rules, which help the user to send data to a device and topic for a specific time or interval. Follow the steps to create timer rules:


 
    • Click the     and it will lead to “Add Timer Rule”.

    • In that window, give the device id in “Device” for which you create rules, corresponding subscribed topics of that device in “Topic” and the message to be published in the “Message” tab.

    • Next, select the time when you want to publish the message from “Hour & minute” drop-down boxes and then specify the Start & End date in month/day/year format.

    • Now when the time and date match the rule or message will be published to a given device.

Reports

The report tab has build-in Visualization, in which the users can visualize the data in a chart or graph. Here you can create three types of reports or graphs:

    • Individual device data

    • Device to Device comparison

    • Historical comparison

Individual device data:


This graph is used to view individual device data and topic payloads at the given intervals.


To Build a Graph:

    • To create a individual device data, click the     to open Build graph window.

    • In that window, provide the “Graph name”.

    • Select the device ID from the list below “Device ID” tab for which you want to create a Graph.

    • After the device ID, the corresponding topic will be listed below the “Topic” tab. From the list, you can select the topic.

    • If the payload of the selected topic is in JSON Format, the “Key” tab will open. In the key tab, all key in the JSON payload will be shown.

    • If the payload is in normal JSON, then the key will be shown separately.

    • For normal payload, the key tab will be in hidden and you can plot the graph with published messages.

    • Next, the “Duration” provides time intervals that help the user to analyse earlier published data.

    • Once you have done, click the “Create” button to view the graph for individual device.


Device to Device Comparison:

This graph is used to compare different devices and topic payloads at different intervals. Below is the comparison model by which you can generate reports:


 
    • Multiple device payloads.

    • Multiple Keys and values of JSON payload published from a device.

    • Multiple key and value of JSON payload published from different devices.

    • Multiple topics and its payload of the same device.

    • Multiple topics and its payload of different devices.

To build a graph:

    • To create a payload comparison graph, click the     to open Build graph window.

    • In that window, provide the Graph name

 
    • Select the device ID from the list below “Device ID” tab for which you want to create a Graph

    • After the device ID, the corresponding topic will be listed below the “Topic” tab. From the list, you can select the topic.

    • If the payload of the selected topic is in JSON Format, the “Key” tab will open. In the key tab, all key in the JSON payload will be shown.

    • If the payload is nested JSON, then the key will be shown in the below format

For example:


                         
 
         {

         "Home_Automation": {

         "Living_room": {

         "Temperature_sensor": "10-200-RANGE",

         "Light_sensor": "ON|OFF-RANDOM"

         }

         }

         } 
 

For the above nested JSON, the key will be shown as ” Home_Automation.Living_room.Temperature_sensor Home_Automation.Living_room.Light sensor “

    • If the payload is in normal JSON, then the key will be shown separately.

    • For normal payload, the key tab will be in hidden and you can plot the graph with published messages.

    •  
    • Users can also add multiple fields to plot graph which helps them to compare data of multiple devices or multiple topics

    • Next, Duration provides time intervals that help the user to analyze earlier published data.

      • Last 30 min – Provide a report for the last 30 minutes.

      • Last 1 hour – Provide a report for the last 1 hour.

      • Last 3 hours – Provide a report for the last 3 hours.

      • Last 6 hours – Provide a report for the last 6 hours .

      • Last 12 hours – Provide a report for the last 12 hours.

      • Last 24 hour – Provide a report for the last 24 hours.

      • Today – Provide a report from today 00:00 hours to current time.

      • Yesterday – Provide a report from yesterday 00:00 to 24:00 hours.

      • custom – Here you can customize the date as per your requirement to view the graph. [For example, if you want to the report from 01/02/2019 to 30/02/2019, then you can give the “From date” as 01/02/2019 and “To date” as 30/02/2019 and click create to view the reports between them.]
    •  
    • Once you have done, click the “Create” button to view the graph. Also, if you want to download the graph as PDF, then click the Download button which is placed below on each graph and it will automatically convert the graph to PDF and start downloading in your browser.

Historical Comparison:

This provides comparison reports for the payload which are published in two different days or months or years.


 

To build a historical comparison graph:

    • To create a payload comparison graph, click the     to open Build graph window

 
    • In that window, provide the Graph name and Select the device ID from the list below “Device ID” tab for which you want to create a Graph

    • After selecting the device ID, the corresponding topic will be listed below the “Topic” tab. From the list, you can select the topic.

    • If the payload of the selected topic is in JSON Format, the “Key” tab will open. In the key tab, all key in the JSON payload will be shown.

    • If the payload is nested JSON, then the key will be shown in the below format:

For example:


                         
 
         {

         "Home_Automation": {

         "Living_room": {

         "Temperature_sensor": "10-200-RANGE",

         "Light_sensor": "ON|OFF-RANDOM"

         }

         }

         } 
 

For the above nested JSON, the key will be shown as ” Home_Automation.Living_room.Temperature_sensor Home_Automation.Living_room.Light sensor “

    • If the payload is in normal JSON, then the key will be shown separately.

    • For normal payload, the key tab will be in hidden and you can plot the graph with published messages.
    •  
    • Next, to compare the two days or months or years, select or specify the first “From” and “To” date, after that click Compare date checkbox and specify the second date.

    • Click the Create button and you can see a line graph with two different lines which specify two different days or months.

    • Also, if you want to download the graph as PDF, then click the Download button which is placed below the graph and it will automatically convert the graph and published payload to PDF and start downloading in your browser.

Download Reports

    • To download the reports click the “download button” which is placed below on each graph.

    • It will automatically convert the graph to the PDF.

    • Now, the reports will start downloading on your browser.

Device Data Download

    • The user can download both a publish and subscribe data for a particular device.

    • All the data will be stored in the big data engine in the back-end.

    • Go to the “device tab” and select the particular device.

    • Then click the “received events” and “sent events”.

    • In that provide the “topic”, “from date”, and “to date”.

    • Now, click the “export” to download the device data.

Device Management

Users can manage their devices securely by creating auth key[username] and auth token[password] with user permission for secure data transfer from end device to message broker in the Security tab.


Click the “Add Authentication key” button on the top.

In the pop-up window, give “Device Id”, “key description”, and “Permission”.

There are three types of Permission

    • Publish/Subscribe – Grant both subscribe and publish permission for the device.

    • Subscribe Only-Grant only subscribe permission.

    • Publish Only-Grant only publish permission.
                                                             

Click “Generate Key”.

Once you have done, created auth key and auth token will be displayed in the Authentication key list.


Instant Command

Users can send a message or data to the subscribed topic manually with the Instant command. Users can use this feature for testing. This can be done at the device level or for a group of devices.


 
    • Click the “Instant command tab”

    • Select the active subscribed topic from the list below “Command Topic” to which you want to send the message. Once you select, devices that subscribed this topic will be listed on the left panel.

    • In “Command data” give the message which is to be sent to the topic.

    • Next, click the “Send” button to send the data to the specified topic.

    • To view the sent data, go to the device tab and select the device which is subscribed to the given topic and click   Messages from instant command   There you can see the message sent from the Instant command”.

User Management and Roles

In this tab, you can add a User tenant.


How to add a user:

    • Click the     icon on the right side, it will lead to add the user.

    • Give your required details like “Name”, “E-mail”, “Phone”, and “Role”.

    • Once you have done, click “add” to add the user.


    • Now, you can view your User’s details.

Device group

It provides details about the groups created by the users.


To add a Device Group:

    • Click the     icon on the top to create a device group.

    • Give the required details of “Group Name”, and “Description”.

    • Then click “Add” to create a device group.

    • Once you have completed creating the device group, you can add your devices to connect it to the IoT Device Management platform. 

To add a Device in the Device Group:

    • Click     icon to add the devices.

    • Give your “Device ID” on the required tab.


    • Click “Add” to add your device.

    • Now, you can view all your added devices status and manage them

Dashboard Permissions

    • The “Admin tab” provides a list of users.

    • For each user’s, the “device group” will be created.

    • In the “device group”, there will be a “permission” tab. This permission has two options: “view” and “manage”.

    • If the permission is given as “view”, then the user can only view the dashboard, widgets and the devices.

    • If the permission is given as “Manage”, then the user can view, add, delete, and manage all the dashboards, widgets and the devices.

Deployment & Orchestration


Deployment of the Bevywise IoT platform will be done by us. We will hand over with the necessary tools and give training about the setup, monitoring the platform and other services to check and manage them. Following is the model of our IoT Platform deployment and orchestration.


Deployment model

Bevywise IoT platform has multiple distributed services that will be deployed in Docker containers and to orchestrate or manage these containers we use Kubernetes setup.


    • To deploy, we use two Ubuntu server which will act as master and slave. Here the Kubernetes set up will be deployed in Master-Slave and all the containers which have the service will be loaded in the Slave server.

    • Through Kubernetes, users can manage all containers, check the status, create fail-over for the containers, automatic restart and more.

    • To collect data from Kubernetes for monitor containers, we use Prometheus set up which will be installed in the master server. Here Prometheus collect data about containers from the Kubernetes via API and store it in the Prometheus data storage.

    • To deploy, we use two Ubuntu server which will act as master and slave. Here the Kubernetes set up will be deployed in Master-Slave and all the containers which have the service will be loaded in the Slave server.

    • To visualize the container data for monitoring we use the Grafana on the Master server which will collect the data from Prometheus storage and show it in graphs or charts. Users can also set alert based on the data.

Monitoring the Service


Once we deployed our IoT Platform in your domain, you will get an Admin Console which helps you to manage your customers and their devices, Web access console for your users, Kubernetes console to manage containers, Prometheus and Grafana console for monitoring the containers where all platform depend services is deployed.

Self-healing

There are two methods to configure Kubernetes to manage containers, where platform depend will run. The two methods are

    • Restart Always – This method will take a replica or backup when starting a container and its functions. So, when the container fails, it will automatically create a new container with the backup and restart the service.

    • Never Restart – This method does not take any backup of containers and when the container fails, it remains in an inactive status and Kubernetes will not restart it.

We will deploy the Kubernetes console with “Restart Always” method. With this method, Kubernetes will take the backup of each container. So, when the container fails the Kubernetes will automatically create a new container and load the backup and restart the service.

Horizontal Scaling

Kubernetes observe each container CPU usage and automatically scale up or down based on CPU usage. When the platform service uses 80-90% CPU, then Kubernetes automatically create a new pod or container, then loads the service from deployment and runs the created pod, this will help service to scale up based on CPU usage. Also, when the container uses minimum usage, then Kubernetes scale down the pods based on usage. This setup will help the Bevywise IoT Platform to scale up when millions of millions connected.

Alert Configuration

Humans can’t monitor each service and platform for 24X7. So, if any container reaches its maximum CPU level or memory level, then the container will hang and stop all the services running inside it. In such cases, we should configure an Alert and notification based on CPU usage, Memory usage, etc.

To configure alert and notification, we use Grafana set up in which we will set up a separate alert panel to create alert and for notification, we will create a notification channel.


 
 
 
 

In the Notification channel, you can select notification types like Email notification, telegram notification, etc. Once you have done, the alert will automatically send to your selected notification type.

In Alert panel, you can set a certain limit in percentage or memory unit with condition check for CPU usage, Memory or RAM usage, CPU core usage, and Disk usage. So, when the condition is satisfied, the alert will send to users via notification type

 

Have more Questions?

We are with all ears waiting to hear from you. Post us with your questions and feedback.