IoT Simulator 2.0 Release

IoT Simulator 2.0 Release

Security is one of the major concerns of the IoT Manager applications. Keeping this in mind, we built the manager applications with different level of security. IoT Network Simulator is enhanced to support all manager applications based on their security practices. Similar to the previous version, the simulator supports all its options from the user interface itself.

IoT Network simulator for AWS IoT core / Azure IoT hub

The User interface will provide options based on the IoT applications. For example Azure IoT hub supports SAS Token and Certificate based authentication. Users will be able to create a specific network for the Azure IoT core and able to create devices that handshakes with the IoT hub based on the details specified when configuring the device. Similarly, this is possible for the AWS IOT as well.

Simulating IoT Network for Other Manager applications

For all other manager applications like Bevywise IoT Platform, Losant , and others, you will be able to specify a single certificate at the common settings page and get your devices connected to the manager application.

Device-level SSL Security

Azure IoT / AWS IoT manages every device to have a unique certificate. In addition, the IoT Network simulator supports the configuration of the root Certificate in the settings window and ensures that you specify each and every client certificate in the device configuration screen. The WILL, QoS, retain event messages and command messages configuration is the same as before.

Individual Device IP Address

The simulator runs on a single machine and simulates all its devices. But, The manager will be seeing all the devices from one Host (IP Address). This contradicts the real-time Simulation. In order to overcome this, the 2.0 version has added support for using Virtual IP Addresses. By this functionality, each simulated device will connect to the manager application from a different host Address.

Try the new IoT Simulator 2.0 now

download now

 

Node Red MQTT Broker Integration

Node Red MQTT Broker Integration

Creating and implementing a real-time IoT network with hardware and MQTT application will take time and cost you an arm and leg. We at Bevywise, create a smart and easy way to set up a virtual IoT network with  node red  MQTT Broker integration.  Node-red is an open source visual programming tool for wiring the hardware with MQTT protocol support and Bevywise MQTT Broker is a highly scalable middleware which automate all IoT network with many customized features. Below steps help for  node red  MQTT Broker integration.

Node red setup

Node-red depends on node.js and npm to install Node software package. So, you should install node.js and npm in your PC. Below steps help you to install node.js and npm

Node.js and npm installation:

In Ubuntu:

Open terminal and install the below packages to install node.js and npm

  • Command to install node.js

sudo apt-get install nodejs-legacy

  • Command to verify node.js installed or not

node -v ##Should report version of node.js

  • Command to install npm [node package manager]

sudo apt-get install npm

  • Command to verify npm installed or not

npm -v ##Should report version of npm

In Windows 64/32 bit

  • Node.js – Download windows installer[.msi] file from the official Node.js home page
  • In that page select the Windows bit correctly and install it.
  • npm – Along with Node.js installation, npm will be installed.
  • In “Custom Setup” installation window, click “Add to path” and select “Will be installed on local hard drive” option to set environment variable for node.js and npm.
  • Once the node.js installation done, open command prompt and give the below command check whether node.js installed or not.
  • node -v #Should report node.js version
  • npm -v #Should report npm version

Note: Without setting the environment variable, you will get “not recognized” error.

Installing Node red :

Once node.js and npm installed successfully, you can start installing the node-red.

In Ubuntu :

  • Open terminal and use below command to install node-red

sudo npm install -g – -unsafe-perm node-red node-red-admin

  • Basically the “npm” will install the package in the current directory, but here we pass -g flag to install the package globally, so the package will be installed in /usr/local/bin directory.
  • After installation, you must enable the Ubuntu Firewall to allow node-red to access 1880 port, because node-red use 1880 port for user-interface.

sudo ufw allow 1880

  • To verify, node-red installed or not, open the terminal and type the below command

node-red

  • In terminal, “Welcome to node-red” message will print and at the end of that message you will get a URL like http://127.0.0.1:1880 to view the user interface. Open your web browser and copy paste this URL to view it.

In Windows :

npm install –global –production windows-build-tools

    • To verify node-red installed or not, open command prompt and use this command

node-red

  • In terminal, “Welcome to node-red” message will print and at the end of that message you will get a URL like http://127.0.0.1:1880 to view the user interface. Open your web browser and copy paste this URL to view it.

Installation of Bevywise MQTTBroker

Refer our Bevywise MQTTBroker help document to install MQTT broker in Ubuntu and Windows.

Node Red MQTT Broker integration

Here we show you a basic Node red MQTT Broker integration. With this basic you can create a virtual IoT network in node-red and integrate to Bevywise MQTTBroker.

Configuring Node red

Start the node-red and open the user interface of node-red in your web browser. In node-red user interface, the left side lists are the node and in the right side tab, quick description about the node will be shown.

  • First, drag and drop the “inject” node from the input list.
  • Next, click the injects node and hit enter to edit the node.
  • In the edit panel, you can see below parameters which will help you to give input to the Bevywise MQTTBroker
  • Payload – If you click the drop down, you can see many formats for the payload, based on this format payload will be injected to MQTT.
  • Topic – Give a published topic with UTF-8 string followed by a forward slash. For example : Dairy/Milk/Tank/level
  • Repeat – This helps you to inject the payload, multiple time with an interval
  • Name – Any name
  • After configuring, click Done button to save it.

     

    • Next, drag and drop “mqtt” node from output list.
    • Click mqtt node and hit enter, to open edit panel.
    • Server – Give the IP address where you’re running Bevywise MQTT Broker
    • Topic – the MQTT topic to publish to.
    • QoS – Select one QoS value
    • Retain – Select true to enable retain, if not select false
    • Name – Any name
    • After configuring, click Done button to save it.

    CONNECTION :

    SECURITY :

    MESSAGES :

    • Now connect inject input node and MQTT output node.

        After node-red configuration, start the Bevywise MQTT Broker. Once the Bevywise MQTT Broker, started the node-red will get connected and start the publishing.

            Get started your node red MQTT broker integration  by downloading Bevywise MQTT Broker

            download now

             

            MQTT Broker Google Pubsub Integration

            MQTT Broker Google Pubsub Integration

            Google Pubsub is one of the leading Queue engine used to collect data from the publisher or MQTT Application for better data analytics. Integration of Bevywise MQTT Broker with Google Pubsub helps you push data from your IoT & IIoT edge devices via MQTT Broker to google pubsub.

            Set up Google Compute for Pubsub

            Google Pubsub is accessible from your Google cloud services account.  You can follow the Google Pubsub document to create Google Pubsub with a publish topic.

             

            Create Ubuntu Instance

            We will be running the Bevywise MQTT Broker on the Ubuntu instance which was created in Google Cloud. Refer to the Google help document for creating the Ubuntu instance. in Google cloud.

             

            Installation Google Pub/Sub dependencies

            Once you created an Ubuntu instance, login to that instance and install the below dependencies.

            • Open terminal and install below gloud cloud packages
            • sudo pip install google-cloud-core
            • sudo pip install google-api-core
            • sudo pip install –upgrade google-cloud-pubsub
            • Go to “/usr/local/lib/python2.7/dist-packages/PyInstaller/hooks/” folder.

            cd /usr/local/lib/python2.7/dist-packages/PyInstaller/hooks/

            • In that foldder, open “hook-google.cloud.py” file by

            sudo vim hook-google.cloud.py

            • In that file, remove all the default lines and add the below code

            from PyInstaller.utils.hooks import copy_metadata
            datas = copy_metadata(‘google-cloud-core’)
            datas += copy_metadata(‘google-api-core’)
            datas += copy_metadata(‘google-cloud-pubsub’)

            • save and exit file

            MQTT Broker Google Pubsub Integration

            • Install Bevywise MQTTBroker in the created Ubuntu instance.
            • After installation, go to Bevywise/MQTT Broker/extension folder.
            • In that folder, open “custom_store.py” and replace the below code

            import os
            import sys
            import json

            from google.cloud import pubsub_v1
            sys.path.append(os.getcwd()+’/lib’)
            sys.path.append(‘/usr/local/lib/python2.7/dist-packages’)
            project_Id = ‘project_name’
            broker_Id = ‘testing’
            def handle_Received_Payload(data):
            global pubsub_v1
            global project_Id
            global broker_Id
            publisher = pubsub_v1.PublisherClient()
            topic_path = publisher.topic_path(project_Id, ‘broker’)
            data = json.dumps(data)
            data = data.encode(‘utf-8’)
            publisher.publish(topic_path, data=data, device=broker_Id)

            • In this code, “project id” represent the project id which you while creating google pubsub
            • Save and exit the file
            • Go to Bevywise/MQTT Broker/conf folder
            • Open “data_store.conf” and change the following parameters

              CUSTOMSTORAGE = ENABLED

            • Save and exit the file.
            • If you want to run the MQTTBroker with authentication, then follow the steps
            • open Bevywise/MQTTBroker/conf folder
            • In that open “broker.conf” file and change

              AUTHENTICATION_ENABLED = YES

            • Save and exit the file.
            • Google Pubsub use grpc authentication, so we must export the grpc ssl certificate path in the “/etc/environment” to set the default path for grpc ssl root certificate.
            • Go to /etc folder and open “environment” file by

            sudo vim environment

            • In that file, paste the below command and save it.

            export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=”usr/local/lib/python2.7/dist-packages/grpc/_cython/_credentials/roots.pem”

            • Next restarted the instance.
            • Once you restarted the instance, go to “Bevywise/MQTT Broker/bin” folder
            • Next start the Bevywise MQTTBroker by

            sudo sh runbroker.sh

            Now Bevywise MQTTBroker collects the data from your edge device and send to the Google pub/sub via Custom store. From Google Pub/Sub, you can hook and send the data to your data analytics tool.

            Get started your data analytics by downloading our MQTTbroker.

            download now

             

            MQTT Broker in Alibaba Cloud – Secure hosting

            MQTT Broker in Alibaba Cloud – Secure hosting

            Alibaba is the most used cloud hosting provider in China.  This article provides a step by step procedure to set up the MQTT Broker in Alibaba cloud.  Bevywise MQTT Broker just needed a Ubuntu instance to host the broker.

            Setting up the Alibaba Cloud for MQTT Broker:

            1. Select the Elastic Compute Service and create Ubuntu instance with minimum 1 CPU, 2GB RAM, 40 GB Disk with  Intel Xeon processor.
            2. After creating the instance, reset the password for ssh login.
            3. Create a inbound and outbound rule to ssh
              • To create outbound and inbound rule, expand “Network and  Security” and select “Security Group”.
              • In that page select “Add Rule”, it lead to Ingress and Outbound  page.
              • Click “Add Security Button” on the top right corner, it lead  to “Add Security Group Rule“.
              • In that Window select “Protocol type” as SSH and  “Authorization Objects” as 0.0.0.0/0 for access the Port  from any where or give specific IP address from which you  access SSH.
              • Do allow inbound flow of traffic for the following ports as well – 1883, 8080, 8081, 443 & 8883 
            4. Alibaba instance can be easily used via a remote connection from Windows, Ubuntu and MAC.
            5. Remote Connection from Windows:
              1. Download PuTTY fromhttp://www.chiark.greenend.org.uk/~sgtatham/putty/ or from other PuTTY download source. The “putty.exe” download is good for basic SSH.
              2. Save the download to your C:\WINDOWS folder.
              3. If you want to make a link to PuTTY on your desktop:
                1. Open the C:\WINDOWS folder in Windows Explorer.
                2. Right click on the putty.exe file and select Send To > Desktop
              4. Double-click on the putty.exe program or the desktop shortcut to  launch the application.
              5. Enter your connection settings:                                                                                                                                                                               Host Name: <Alibaba Public IP address>
                1. Port: 22 (leave as default
                2. Connection Type: SSH (leave as default)
              6. Click Open to start the SSH session.
              7. If this is your first time connecting to the server from this computer, you will see certain output. Accept the connection by clicking Yes.
              8. Once the SSH Connection is open, you should see a terminal prompt  asking for your username:
                login as: Connect with your SSH user of choice.Next, enter your  password.
              9. Please note that you will NOT see your cursor moving, or any  characters typed (such as ******), when typing your password. This is     a standard PuTTY security feature. Hit enter.
                Using keyboard-interactive authentication.
                Password:
              10. You are now logged into your server with SSH.
            6. Remote login from Liunx and MAC:
              • Open terminal and type [email protected]<public Alibaba IP>” and hit enter.
              • Type the password which you have reset in Step2.
              • You are now logged into your server with SSH.

            You must have created an Ubuntu server by now and might have tested access to the server from Windows or  Linux or MAC. The next step is to transfer MQTT Broker to Alibaba.

            Download the MQTT Broker

            The MQTT Broker can be downloaded using the following button. The MQTT Broker has a 30 day trial version which supports upto 100 devices. You have to download the Ubuntu Version

            Download Now

            Transfer MQTT Broker to Alibaba

            For Windows:

            1. Download the PSCP utility from PuTTy.org by clicking the file  name link and saving it to your computer.
            2. The PuTTY SCP (PSCP) client does not require installation in  Windows, but runs directly from a Command Promptwindow.  Move the download PSCP.exe file to the any location and note  the location
            3. Set the Environment Path for the PSCP.exe file.
            4. Open the Command Prompt window.
            5. Type “pscp <BevywiseMQTTRoute zip path> [email protected]<serverpublicIP>:/home/” and hit enter. The zip file will be automatically copy to the /home  location of Alibaba Ubuntu instance

            For Linux & Mac:

            1. 1. Open terminal and type below command .
              scp <BevywiseMQTTRoute zip path> [email protected]<serverpublicIP>:/home/”
            2.  Zip file will be saved in the /home location of Alibaba Ubuntu  instance.

            Starting MQTT Broker in Alibaba Cloud

            It is very easy to set up MQTT Broker in Alibaba cloud. You can simply follow these steps to achieve it.

            1. Login to the Alibaba Ubuntu server via SSH and go to /home location via           “cd /home” command
            2. Type “unzip Bevywise_MQTT_Route_Linux.zip” and hit enter. Now MQTT Broker file will be extract in /home location under the Bevywise folder.
            3. Go to the file Bevywise by below command and hit enter.
              “cd Bevywise/MQTTRoute/bin”
            4. Open the data_store.conf file which is inside the conf folder.

              “vim /home/Bevywise/MQTTRoute/conf/data_store.conf”

              In that file change follow conf and save the file:

              DB_SERVER = MYSQL and give MySQL username and password 

              MYSQL_USER = <username>

              MYSQL_PASSWORD = <password>

            5. Run the Bevywise MQTT broker using the following command. It is advisible to run the Broker in the background mode to make sure the broker runs even after you close the terminal.
              “sh runbroker.sh”

            Run MQTT Broker in Alibaba as a Service

            If you don’t run MQTT Broker in Alibaba cloud as a service, then it will quit when you close your ssh session. So make sure you run the MQTT Broker as a service.

            To run the MQTTBroker as service we need the Monit version 5.25 and it cannot be installed using the apt-get. The procedure to set up the monit is as follows. This application will ensure that the service will be started again when the server gets restarted.

            • Download the Monit for linux X64 or X86 based on your servers.
            • Extract the archive using tar -xzf < downloaded file >
            • Go to monit-5.25.2/bin
            • copy monit to /usr/bin folder – sudo cp monit /usr/bin
            • Go to monit-5.25.2/conf
            • copy the monitrc file to “/etc/” using below command – sudo cp monitrc /etc/
            • Modify the monit conf file. Uncomment the following lines in /etc/monitrc file.  use sudo vi /etc/monitrc. Change the username and password as per your  need.
              set httpd port 2812 and
                     use address localhost # only accept connection from localhost  (drop if you use M/Monit)
                     allow localhost # allow localhost to connect to the server and
                     allow admin:monit # require user ‘admin’ with password ‘monit’ 
            • Add the following at the end of the /etc/monitrc file
              check process MQTTRoute with pidfile < path to Bevywise/MQTTRoute >/Broker.pid
                   start program = “< path to Bevywise/MQTTRoute >/bin/runbroker.sh”  with timeout 2 seconds
                  stop program = “< path to Bevywise/MQTTRoute >/bin/stopbroker.sh”  with timeout 2 seconds
            • To reload the confirmation changes, run sudo monit reload
            • Add MQTTRoute process to monitoring sudo monit start MQTTRoute

            We have hosted a Chinese version of MQTT Broker here.  Do give it a try and let us know your feedback. We would be always ready to help you with setting up the MQTT Broker in Alibaba. Feel free to post your queries and support requirement to our support.

            MQTT Broker Tableau Integration for IoT Data Analysis

            MQTT Broker Tableau Integration for IoT Data Analysis

            MQTT Broker is a perfect middleware and fastest broker to be used for collecting data from your IoT edge devices and store and analyse it the way you needed.  Tableau is a cool BI tool that will help you analyse the data in all dimensions.  MQTT Broker Tableau integration will help you store all your data in the format you needed into the Tableau for a perfect data analysis. This blog helps you visualize data of MQTT Broker with Tableau by connecting it to MySQL or MongoDB.

            MQTT Broker Tableau Integration using MySQL

            Integrating MQTT Broker with MySQL :

            For integrating MQTT Broker with MySQL, some dependencies should be installed. To achieve this, follow the below step.

            • Run the file named install_mysql_connector.sh  

            All the required dependencies required for the integration process will be downloaded.

            Changes to be done in MQTT Broker: 

            1. Open the Conf folder(Bevywise/MQTTRoute/conf)
            2. Change the DB Server to MySQL
            3. Give the MySQL Password in “MySQL Password =”
            4. Save the File
            5. Check that the MySQL is running on 3306 Port.
            6. Start the MQTT Broker using sh runbroker.sh inside the bin/ folder.
            7. Next you need to connect the client and verify the  creation of “bevywise” DB in MySQL.

            To Verify the DB is Created or not in MySQL:

            1. Login to MySQL by the command “mysql -u<username> -p<password>”
            2. Next type “show databases;” command to view the created DB.
            3. In Output, you can see “bevywise” db is created.

            Connect Tableau via MySQL ODBC Connector :

            Tableau will use MySQL ODBC connector driver to talk to the MySQL. You might already have the required driver installed on your computer. If the driver is not available in your computer, Tableau displays a message in the connection dialog box with a link to the Driver Download page where you can find driver links and installation instructions. Click the “Data Source” drop down box and Select “MySQL”. Next choose OS & Bit Version and Install the driver.

            Make the connection and set up the Tableau:

            1.Start Tableau and under Connect, select MySQL. Then do the following:

            • Enter the name of the server that hosts the database.(Give “localhost” if MySQL is running in the same machine)
            • Enter the user name and password.
            • Select Sign In.

            2. On the data source page, do the following:

            • From the Database drop-down list, select a database or use the text box to search for a database by name.
            • Under Table, select a table or use the text box to search for a table by name.
            • Drag the table to the canvas, and then select the sheet tab to start your analysis.

            MQTT Broker Tableau Integration via MongoDB

            Configuring MQTT Broker:

            1. Please download and install MongoDB Plugin for Bevywise MQTT Broker.
            2. Follo the steps in Readme.md file to configure and setup the MongoDB Plugin.
            3. Next Restart the MQTT broker and Connect the device.

            To Verify the DB is Created or not in MongoDB:

            1. Login to Mongo DB by the command “mongo –port 27017”
            2. Next type “show dbs” command to view the Created DB.
            3. In Output, you can see “bevywise” db is created

            Connecting Tableau via MySQL ODBC Connector :

            Tableau use MongoDB Bi connector driver to talk to the MongoDB. You might already have the required driver installed on your computer. If the driver is not installed on your computer, Tableau displays a message in the connection dialog box with a link to the Driver Download page where you can find driver links and installation instructions. Click the “Data Source” drop down box and Select “MongoDB Bi Connector”. Next choose OS & Bit Version and Download the driver.

            Creating Authentication for Mongo DB:

            Login to the MongoDB shell by the command “mongo –port 27017

            Next use the “bevywise” database by the command ” use bevywise
            Type the below query to create a username and password for the DB

            db.createUser(

            {

              user: “<Username>”,

              pwd: “<Password>”,

            roles: [ { role: “userAdminAnyDatabase”, db: “bevywise” } ]

              }

            )

            Re-start and login to the MongoDB by the command

            mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “bevywise”

            For more reference refer the Enable Auth link

            Installation and Setup of MongoDB Bi connector in windows:

            1. To install the Mongo DB Bi connector, Double click the downloaded .msi Connector file and Install it.
            2. Next you need to check the installation of connector inside the MongoDB folder which is inside the program files.
            3. Follow the link to setup the MongoDB BI Connector.
            4. After Installation, don’t exit from the terminal.

            Make the connection and set up the Tableau:

            1.Start Tableau and under Connect, select MongoDB BI Connector. For a complete list of data connections, select More under To a Server. Then do the following:

            • Enter the name of the server as “localhost”.
            • Enter your user name with associated database name, and password.
            • Select Sign In.
            • If Tableau can’t make the connection, verify that your credentials are correct. If you still can’t connect, your computer is having trouble locating the server. Contact your network administrator or database administrator.

            2. On the data source page, do the following:

            • (Optional) Select the default data source name at the top of the page, and then enter a unique data source name for use in Tableau. For example, use a data source naming convention that helps other users of the data source figure out which data source to connect to.
            • Select the sheet tab to start your analysis.

            Download the MQTT Broker now to get started with the MQTT Broker Tableau integration.

            download now
            Feel free to contact support for any questions or help.