Getting Started Guide

Introduction

Bevywise IoT Simulator is a GUI based, data simulation tool which is used to load and test the MQTT/IoT Application to know the performance level of that Application. In IoT simulator, you can create virtual IoT network and device, create publish events with normal or complex JSON payload, create subscription, and more. IoT simulator help documentation will let you know how to simulate IoT networks & IoT devices. For reference, refer to our introduction video tutorial.

System Requirements

OS – Windows 7 or Windows 8 & 8.1, Ubuntu 14.04 or higher, Mac 10.1 or higher

CPU – Pentium 4 or higher.

Memory – 512 MB RAM or more.

Hard drive – 100 MB of free disk space

Installation and Setup

Windows Installation and setup

  • Just Double click the downloaded“Bevywise_IoTSimulator_Win_64.exe” file to open the installation window.

  • In Installation Window, give the installation path and install it.

  • Next, open the command prompt and go to the “bin” folder(< Installation path>/Bevywise/Iotsimulator/bin).

  • Now type “runsimulator.bat” and hit enter to start the IoT Simulator. Once you start the IoT simulator user interface will open in your default web browser.

  • For reference, refer to our installation video.

Linux / Mac Installation

  • Unzip the downloaded “Bevywise_IoTSimulator__Linux.zip.zip” or “Bevywise_IoTSimulator_Mac.zip” file and extract it to the location you want, Now Bevywise folder will be created in the extracted location.

  • Open the Linux/Mac terminal and go to the bin folder(< Installation path >/Bevywise/Iotsimulator/bin).

  • Run the “runsimulator.sh” by “sh” command and hit enter to start the IoT Simulator.

  • Once you start the IoT simulator, user Interface will open in the Default web browser, in which you can see the sample IoT network called Health_care.

    $ sh runsimulator.sh


Default running configuration and port

  • Default Data storage – SQLite

  • Default user interface port – 9000.

  • Websocket Port -12345.

Creating an IoT Network

  • To Create Network, click the  bar icon   icon on the top bar and select ” + New Network”

  • Provide Network name & Description of the Network. The network name should be Alphanumeric and can have underscore.

  • After providing the details, hit create. After creating a network, the Simulator Setting window will pop-up.


Creating an IoT Network

Simulator Settings

1. Broker Details settings

  • Manager Application: Manager Application has four options, they are
  •  
  • Azure: This option is used to connect the IoT simulator to Azure IoT Hub.

  • AWS: This option is used to connect the IoT simulator to the AWS IoT core.

  • Other: If you want to connect the IoT simulator to any other MQTT Application or Broker, choose this option.

  • Bevywise IoT Platform: This option is used to connect the IoT simulator to the Bevywise IoT platform.


Broker details

Broker IP address

  • Here you should specify the PC IP address where Broker is running or DNS/Hostname of the MQTT Application. For example, if you want to connect to AWS IoT Core, you must specify the Host or DNS name of the AWS IoT Core and suppose if you want to connect to the MQTT broker which is running in your localhost or any server, then you must give the IP address of the PC or server where MQTT broker is running.[If IoT simulator and MQTT Broker are running in the same PC or server, then give “Broker IP address” as “localhost”]. 

  • Note: The Manager Application and Broker IP address settings will not be modified after saving the Simulator settings.

TLS/SSL

  • Enable this option if the Broker or your MQTT Application is running with TLS/SSL enabled.

Broker Ports

  • Specify the Broker or MQTT Application port number. By default, if your Broker runs without TLS/SSL then the port will be 1883, and if TLS/SSL enable port should be 8883.

Root Certificates

  • Here you should upload the root certificate of the MQTT Application or MQTT Broker. You can enable this, only for TLS/SSL.

Clean Session

  • If the clean session enabled, the broker will delete all the details about the clients after the disconnection from the Broker. so if the client connects next time it will be like a new device to the broker and the actions it has done on the previous session won’t affect it in the current session. By default clean session will be 0. 
  •  
  • Clean Session = 0, means Clean Session is disabled.

  • Clean Session = 1, means Clean Session is enabled.

2. Advanced Settings

Client IP address:

This feature will assign a separate IP address for each client in the Network. For example, if you create 5 devices, then by default the 5 devices will connect to the MQTT broker with the same IP address. But, when you enable “Client IP address” and give IP address range [like 192.168.1.2 to 192.168.1.5] in First & Last IP address, then the IoT simulator will automatically assign separate IP address for each created client or device. Now the device will connect to the MQTT Application with a different IP address. To enable, follow the below steps

  • Click the setting button on the top left corner.

  • In Simulator, setting window click Advanced tab and enable the Client IP Adress.

  • Next, specify your IP range in the First IP address and Last IP address.[Support only IPV4]

  • Now the simulator will assign separate IP address for each created device.

Random Start/Stop:

Bevywise IoT Simulator will randomly stop and start the created IoT Devices based on the minimum uptime or runtime using the “Random Start/Stop” feature. For example, if you specify the minimum uptime as 50%, then the devices will randomly stop when it reaches 50% running or uptime. To enable, follow the below steps

  • Click the setting button on the top left corner.

  • In Simulator setting window click Advanced tab and enable the “Random Start/Stop”.

  • Next, specify the Minimum Uptime [range for Minimum Uptime should be 1 to 100 percent].

  • Now the Simulator will randomly stop and start the created IoT devices.

  • Advanced settings

Advanced Python Interceptor:

Bevywise IoT Simulator can be customized using a python-based interface called Python interceptor. This interceptor provides all created client information and its received payload via python file called “default_interceptor.py”. In that python file, you can write your code based on the received payload and also allows you to call API to simulate complex scenarios. To enable, please follow the below steps

  • Click the setting button on the top left corner.

  • In Simulator setting window click Advanced tab and enable Python interceptor.

  • Specify the default_interceptor.py file path in Python File. Default path should be [./extensions/default_interceptor.py]

  • Next start writing your code in default_interceptor.py file to customize the simulator based on received payload.

For reference, refer to our Simulator settings video tutorial.

 

Creating an IoT Device

  • Click the same  plus icon  icon on the top left corner and select the “Blank Device” option.

  • In the following dialogue box, fill the Device name (Device name should be in Alphanumeric and underscore) without any Space.

  • Fill unique Device ID (maybe in Special Character, Alphanumeric), which will give an identifier for your Devices.

  • Fill Description or Function about the Device and hit the Save button.

  • A Blank device will be created without any Events on the Corresponding Network.

Creating an IoT Device

Configuring IoT Authentication

Edge device authentication will provide a secure connection between the MQTT application and device. Likewise, Bevywise IoT Simulator supports edge device authentication to connect the create device to the MQTT application securely. To enable Authentication,

  • Select the Device from the Device list.

  • Click the off iconRed checkbox next to Authentication to enable the Authentication.

  • Next, give the MQTT username in Access Key and MQTT password in Access Token.

  • IoT simulator has two types of Authentication which help you to connect to different MQTT/IoT applications, they are

  • SAS: With a SAS token, you can grant created clients access to your MQTT Application. It will be useful when you connect to MQTT Applications like Azure.

  • Self Signed: If your MQTT application allows access to clients with client or device certificate and key, then you can select Self Signed. Here you should upload the client certificate and key which you have got from the MQTT Application.

Note: This Authentication type will appear when you select Azure and AWS in Manager Application on Simulator Settings.

For other MQTT Application, you can directly copy & paste the client.certificate and key inside the client folder[./Bevywise/IotSimulator/Certificate]. Once you paste the certificate and key, you must rename the certificate client.crt and client.key. For the Root certificate, you can add it via simulator settings.


Configuring IoT Authentication

Configuration of MQTT Will Message

In case, if one of the IoT devices disconnected due to some issue it can publish the events to the subscriber(who subscribes to the topic in that device) only when the WILL message is enabled. To enable the WILL message, Select the WILL checkbox and give the topic, message, QoS, etc.

  • To enable Will message, Select the Device from the Device list and click the Red off icon Checkbox parallel to the Authentication tab, it will change to the Green Checkbox.

  • Click the edit icon icon and give the Topic and Message.

  • We can enable Qos and Retain for Will messaging like Device Events.

Ultra-sonic-sens

Configuration of IoT Events

Events are used to create a time-based publishing message for the IoT devices. Based on the time-based publishing Message, Broker will collect the data from IoT Device and send the data to the subscriber.

  • There are Six different types of events with Customized time-based publishing.

  • To Create Events, Click the plus icon icon on the top right corner

  • Select the features which are below the Event title  

  • We can create more than one Event for a Device.

Configuration of IOT Events

Before Configuring the IoT Events you must know about the Following Parameters:

  • Topic: It is a UTF-8 string format, which is used by the broker to filter messages for each connected client. A topic consists of one or more topic levels and each topic level is separated by a forward slash (topic level separator).

  • QoS: It guaranteed that the events will reach the subscriber. For more information, refer to our Time based publish events video tutorial.

  • Retain message: Basically, retain means keep or hold something. Likewise, in events, if the retain flag is one then the broker will hold or keep the corresponding details and message of those events. So it will help newly subscribed clients to get a status update

  • Events Type: Format of the events or messages to be published. Simulator support two types of events or message type, they are Text [Normal message] and JSON message.

  • Variant: It defines how the events will be sent to the subscriber. It has four types of value they are,

  • Constant – This value is used to publish the events in Alphabet and numbers

  • System variables – This value is used to publish the events with the System variables like $Client_ID, $Current_time, etc.

  • Random – This value is used to publish the events in random like when the is ON|OFF

  • Range – This value is used to publish the events for a certain range of numbers like 1-100

  •  
  • Message: The data which are written here will be published, which can in text or JSON to be published.

  • JSON & Nested JSON 

  • By using JSON, we can easily read the Published message and enclosed multiple data in a single message.

  • In the Nested JSON, we can enclose multiple Object data in a single message. Refer the below example

  • To create JSON, click the   plus icon  icon and Just enter the Key & Value and Click “Add”, JSON will create automatically.

  • To Create Nested JSON, click the  plus icon  below the Message and Just enter the Key & Select Value as “Object” and click “Add”.

  • An object will be added, click the  plus icon  icon below that Object, and add the Keys and Values. Take the below example, there “Accelerometer” is the Object, below that Keys and Values are nested by {} like this you can add multiple objects.

 

JSON syntax

{ “ KEY 1” : “ VALUE1 ” , “KEY2” : “ VALUE2 “ , “ KEY 3“ : “VALUE 3” }

 

Example For Nested JSON

 
     { 

     "Accelerometer": 

     {

        "Status": "On|Off-RANDOM",

         "Vibration_level": "50-55-RANGE",

         "Sensor_On_Time": "$Client_uptime-SYSTEMVARIABLE"

     },

     "Gas_Sensor"

     {

         "Status":"On|Off-RANDOM",
	 
         "Methane_level": "10-20-RANGE",

         "Sensor_On_Time": "$Client_uptime-SYSTEMVARIABLE"

      }

      }
 

1. On connect Events

  • This Event will make the IoT Devices Publish the data when it connected to the Broker.

  • If we want to know the status of the device when it is connected from the broker, We can use this Event.

  • Select a Device from the Device list on the left side and click the plus icon icon on the top right corner and Select “On Connect”

  • In the following Dialogue, Fill the Topic, QoS, Retain & Select Text or JSON for Message type and Save it.

  • “On Connect” event will create below the Event tab with the given Topic name, Date, and Time. If you want to delete the events Click the delete icon Delete  button.

  •  

Parameters

  • Topic: Coal_Mines/Accelerometer/Vibration_Level
  • QoS level: 1 At least once
  • Retain: 1 Set Retain Flag
  • Events Type: JSON Format

On connect Events

2. On Disconnect

  • These events will make the IoT Device to Publish the data before disconnecting to the Broker. 

  • If we want to know the status of the Device when it is disconnected from the broker, We can use this Event.

  • Select a Device from the Device list on the left side and click the add icon icon on the top right corner and select “On Disconnect”

  • In the following Dialogue, Fill the Topic, QoS, Retain & Select Text or JSON for Message type and Save it.

  • “On Disconnect” event will create below the Event tab with the given Topic name, Data, and Time. If you want to delete the events Click the delete icon Delete  button. 

 

Parameters

  • Topic: Coal_Mines/Ultra_Sonic_Sensor/Depth
  • QoS level: 0 Atmost once
  • Retain: 0 Set Retain Flag
  • Events Type: JSON Format

On Disconnect

3. Specific Time

  • This feature will make the IoT Device to Publish the data for a specific time.

  • We can set any time on AM & PM to Publish the data in the “Publish On” text box.

  • Select a Device from the Device list on the left side and click the  add icon icon on the top right corner and select “Specific Time”

  • In the following Dialogue, Fill the Topic, QoS, Retain & Select Text or JSON for Message type and save it.

  • “Specific Time” event will create below the Event tab with the given Topic name, Data, and Time. If you want to delete the events Click the delete icon Delete button.

Parameters

 
  • Publish on: 9:00 AM
  • Topic: Coal_Mines/Humidity_Sensor/Temperature_Level
  • QoS level: 0 At most once
  • Retain: 0 Set Retain Flag
  • Events Type:JSON

 Specific Time
 

4. Instant 

  • If we like to test our IoT Device after configuring the Events, you can use this Event.

  • After configuring the events, click the  publish icon   action button  on the right side next to time column, the message will be Published and we can verify it in the “Device log”. But make sure that the IoT Simulator is connected to MQTT Broker.

  • Select a Device from the Device list on the left side and click the add icon icon on the top right corner and select “Instant”

  • In the following Dialogue, Fill the Topic, QoS, Retain, & Select Text or JSON for Message type and Save it.

  • “Instant” event will create below the Event tab with the given Topic name, Data and Time if you want to test it click the action   add icon  button. You can delete the events by Click the delete icon Delete  button.

  •  

Parameters

  • Topic: Coal_Mines/Testing/Switch
  • QoS level: 0 Atmost once
  • Retain: 0 Set Retain Flag
  • Events Type:Text
  • Variant: Random
  • Message: ON|OFF

 
instant-LSM303
events

5. Specific Duration

  • If we like to configure the IoT Device to Publish the Data for a Specific Duration like 9.00 AM to 10:00 AM with Interval Every 10sec or Every min, we can use this Event. 

  • Select a Device from the Device list on the left side and click the plus icon  icon on the top right corner and select “Specific Duration”

  • In the following Dialogue, select Interval like “Every 5 sec” in the “Interval” drop-down box and Type the Duration in “Starts at” & “Stops at”

  • Next, fill the Topics, QoS, Retain, & Select Text or JSON for Message type and Save it.

  • “Specific Duration” event will create below the Event tab with the given Topic name, Data, and Time. If you want to delete the events Click the delete icon Delete  button. 

 

Parameters

  • Interval: Every 30 Seconds
  • start at: 9:00 AM | Stop at: 1:00 PM
  • Topic: Coal_Mines/Oxygen_Sensor/Oxygen_Percent
  • QoS level: 0 Atmost once
  • Retain: 0 Set Retain Flag
  • Events Type: JSON

Specific Duration

6. Whole Day

  • Using this Event, we can configure our IoT Device to publish the data for Every hour or Every min or sec in a day.

  • Select a Device from the Device list on the left side and click the plus icon icon on the top right corner and select “Whole day”.

  • In the following Dialogue, select Interval like “Every 20 sec” in the “Interval” drop-down box and fill the Topics, QoS, Retain, & Select Text or JSON for Message type and Save it.

  • “Whole day” event will create below the Event tab with the given Topic name, Data, and Time. If you want to delete the events Click the Delete delete icon button.

  •  
 

Parameters

  • Interval: Every 20 Seconds
  • Topic: Coal_Mines/Gas_Sensor/Harmful_gases_Level
  • QoS level: 0 Atmost once
  • Retain: 0 Set Retain Flag
  • Events Type: JSON

Whole Day


7. From CSV

  • In this event, you can upload the CSV file with different payloads.

  • Based on the number of payloads in the CSV file, we will create events.

  • Select a Device from the Device list on the left side and click the plus icon icon on the top right corner and select “From CSV”.

  • In the following Dialogue box, select start time, and fill the Topic, QoS, Retain, Select the interval, upload the CSV file and click save.

  • Now “From CSV” event will create below the Event tab with the given Topic name, Qos, and Retain. If you want to delete the events, click the Delete  button.

  • For more information, refer to our create events by CSV file video tutorial.

 

Parameters

  • Start at: 12:24 PM
  • Topic: Temperature/Room
  • QoS level: 1 Atleast once
  • Retain: 0 Set Retain Flag
  • Once in: Every minute
  • CSV upload: CSV file
  • Number of Events: 1

Whole Day

Configuring MQTT Subscription

  • After the event configuration, the broker will collect data from the Sensors and store in the data in DB, but the data will not send to the receiver side. To send the data to the receiver side you must want to Subscribe to the existing topic i.e the topic created while configuring the events.

  • Here there are two types of “Subscribe on” value, one is “on start” and another one is “Specific Time”. If you want to receive the data for the whole day you can select “on Start” value or If you want to receive the data for a specific time you can select the “Specific Time” value. Below Topics give the same topic which was given in the Events, so that the MQTT Broker can identify easily identify the topic and send the data to the subscriber. You can add more than one topic in this tab. 

  • To Create, Select a Device from the Device list on the left side and click the plus icon  icon on the top right corner and select the “Subscribe to command” option 
  •  
  • In the following Dialogue, type the existing Event Topic name to subscribe to that topic & Specify QoS Level and Save it.

  • “Subscribe to command” will create below the ‘Subscribe to Command” tab with topic name, QoS level, and time. You delete the “Subscribe to command”, Click the delete icon delete  button. 

  •  

Example Topics

First Topic Second Topic
Subscribe on: On Start Subscribe on: Specific Time
Topic:Coal_Mines/Gas_Sensor/Harmful_gases_Level Time: 10:00 AM
Topic:Coal_Mines/Oxygen_Sensor/Oxygen_Percent
QoS: At most Once QoS: At most once m,,

Configuring MQTT Subscription

Configuring IoT Device Response (Behavior)

  • Bevywise IoT Simulator has an automatic response engine that will respond to the Subscriber based on the received messages & topics. The device will publish a defined message if the required message received on the required topic.

  • A client who wants to set a request-response has to subscribe to the topic it wants to set a response property.   

  • Make sure the Existing Event topic in which you like to create “response” must be subscribed in the “Subscribe to Command”.

  • To create Behavior or Response, Select a Device from the Device list on the left side and click plus icon on the top right corner, in that Select “Behavior”

  • In the following Dialogue, give the same existing event topic in the “Command Topic” and give the “Command Data” for which you like to get a response, but make sure Command Data will be the same or within the range as existing event Publishing data. Then give the response topic and response message. 

  • On the same client subscribe to the response topic ie (“Event Topic”) by “subscribe to command”. So it can receive the response message.

  • Note that, “Behavior” will not work on the JSON message type. It will work only for the Text message type.

  • For more information, refer to our create behavior simulation video tutorial.

Configuring IOT Device Response

Start / Stop Simulator

  • To start/stop the Network i.e all device at a time, then click the dashboard and click the red icon start  button on the top right corner. If the IoT Simulator connected to the MQTT Broker Red color button will change to green color. 

  •  
  • Once you Start the whole Network, you can see the all Published Events in the “Network Log”.

  •  
  • In the “Network log”, Published topics message are in “Green Color” and Subscribe topic message is in “Orange Color”.

  •  
  • To Stop the whole Network, click the Start green icon button on the top right corner, now it will change to red color.

  •    

Start / Stop Simulated IoT Device

  • To start/stop the particular IoT Device, select any one Device from the right side Device list and click the red icon start  button on the top right corner. If the IoT Simulator Connected to the MQTT Broker Red Color button changes to green color. Make sure that IoTSimulator is connected to the MQTT Broker.

  • Once you Start the IoT Device, you can see the Published Events in the “Device Log”.

  • In the “Network log”, Published topics message are in “Green Color” and subscribe topic message is in “Orange Color”.

  • To Stop the whole Network, click the green icon Start  button on the top right corner, now it will change to red color.

Creating IoT Device Templates

In Templates, you can create a per-defined device with events, subscription, and device response. This will save time by creating a new device and also help you to add a bulk number of devices.

  • To create a new Template click the  bar icon  icon on the top left Conner and select Templates and select the “Add New Template” option to Create a New Template.

  • lists
  • Click the “Add Template” button and give the Template name & Template ID without any space and Click “Create” button.

  • A template will create without any events. We can create events for Template the same as the Device (For more refer Configuration of IoT Events above).

  • Like Device, we can also Configure Authentication and Will message for Templates. 

 
templates
 

Creating Bulk IoT Devices

  • If we are implementing IoT Devices in large scale Industries, we should connect the large or bulk amount of Devices, so if we add one by one, it takes time. For that, we can create a bulk amount of device in a network using “Add Device from Template”.

  • We can add up to 10000 Devices by a single click.  

  • To Create Bulk IoT Device, open the Existing Network or Create a New Network, then click the “Add device from Template” button if you created New network or Click the plus icon icon on the top right corner and select “Device from Template” option.

empty-device
create-device-from-template
  • In the above Dialogue box, Select template from the drop-down list box, Give the number of devices in the “No of Device” box (maximum 10000), Enter the “Device Prefix Name” and hit “Create” button.

  • For more information, refer to our Device templates & Bulk device creation video tutorial.
  • Connecting Bevywise IoT Simulator to Microsoft Azure IoT Hub

    Microsoft Azure has a built-in IoT application called IoT Hub. Azure will allow the client only via TLS/SSL connection. Message Broker will run with TLS/SSL at port 8883. There are accidents, longer response times — Kansas City uses TrafficVision to ease problems with congestion. There are two methods to connect to Azure IoT over TLS/SSL

    • Self-signed Certificates

    • CA Certificate

    Requirements

    • Open SSL to generation self-signed certificates

    • Azure IoT Hub C SDK

    Self-signed

    Azure configuration

    • First, you must create IoT Hub in the Azure cloud platform. For reference, link.

    • Once you created, open Azure IoT HUB portal.

    • Azure configuration

    • In the IoT Hub portal, select “IoT Devices” from the left side panel and create a new device by clicking the ‘+’ button.

    • Specify the name[should be unique] and select authentication type as “X.509 Self Signed”


    • Next, to add the Primary Thumbprint and Secondary Thumbprint, you must need a self-signed client certificate. Follow the below steps to create a self-signed certificate and thumbprint for that certificate.

      • Install OpenSSL in your environment. For windows user, please set an environmental variable for OpenSSL

      • Open the terminal or command prompt and give the below command

      • openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt

      • Next, skip others by clicking enter and give the only Common Name as the device name

      • Now certificate.crt and private.key will be generated in the current location.

      • Next, you must get the fingerprint for the created certificate which is to be uploaded in Azure IoT Hub device as a thumbprint. Use the below command to get a fingerprint for the created certificate.

      • openssl x509 -noout -fingerprint -sha1 -inform pem -in certificate.crt

      • The Output will be similar to

      • SHA1 Fingerprint= D7:A8:16:71:AF:22:DA:E0:AA:26:7A:48:4A:52:A5:83:B7:89:C7:96

      • Now, copy only the fingerprint and paste in any text editor and remove ‘:’

      • [For example, D7A81671AF22DAE0AA267A484A52A583B789C796]

    • Now copy the fingerprint from the text editor and paste it in both Primary and Secondary thumbprints.

    • Click save to create an Azure IoT Hub device.

    Simulator Configuration

    • Before starting the Simulator, you must need an Azure root certificate. To create, follow the below steps

      • Clone or download the zip in the Azure IoT SDK for C from github.

      • Extract the downloaded zip and go to certs folder. 

      • Inside certs folder open certs.c and you can see many root Certificates for Azure IoT Hub.

      • Next, create the file with name root.crt and copy & paste any one certificate [including the lines BEGIN CERTIFICATE and END CERTIFICATE, also remove“,\r,\n from all lines].

    • Next, run the IoT Simulator in your environment.

    • Create a new network.

    • After creating a new network, the Simulator Setting windows will appear.

    • In that, change the Manager application as Azure IoT.

    • Next, give the Azure IoT hub Hostname in Broker IP Address.

    • In Root-Certificate, browse and upload the root.crt file which you copy&paste from Azure IoT SDK GitHub.

    • Once you have done, click Save to save the configuration.


    • Next, create a device with the same name which you have given while creating IoT device in IoT Hub.

    • After creating the device, enable authentication by clicking the red off icon checkbox next to Authentication.

    • In the drop-down, select the Authentication type as Self Signed.

    • In the drop-down, upload created certificate.crt & private.key file and click upload.

    • Next, give Access Key by below syntax and click save

    • “< hostname >/< devicename >“

      • hostname – Azure IoT Hub hostname

      • devicename – The name of the device

    • For Access Token, leave it as empty.

    • Next, create events for the device by the below topic syntax.

      • Publish event topic – “devices/{devicename}/messages/events/ ”

      • Subscribe topic – “devices/{devicename}/messages/devicebound/#”

      Note: Change only device name, other than that don’t change any other syntax.

    • Start the network by clicking the start red icon button and if the connection is successful, then you can see the published message in the simulator Network log or device log.

    Connecting Bevywise IoT Simulator to AWS IoT core.

    AWS platform as a built-in IoT platform is called as AWS IoT core. AWS will allow the client only via TLS/SSL connection and has Message Broker running with TLS/SSL at port 8883. Below steps will help you to connect IoT Simulator to AWS IoT core.

    AWS Configuration

    • Login to AWS account.

    • Click on services select AWS IoT core.

    • Connecting Bevywise IoT Simulator to AWS IoT core

    • Create a device policy by clicking “Secure” on the left side. Then select policies

      • Give policy name and in the action section give iot:*

      • Resource ARN give *


      Connecting Bevywise IoT Simulator to AWS IoT core

    • Click “Create a Single Thing” to create a Device/thing.

    • Connecting Bevywise IoT Simulator to AWS IoT core

    • Give a name to the device in the “NAME” field & select “THING TYPE” if you already created or create a new one and select that. After that, click Next.

      • To create “Thing TYPE”

        • Click the “Create a type” button next to the Thing type drop-down box.

        • In “Create a type” window give the type name and description, Other than that, all are optional.

        • Connecting Bevywise IoT Simulator to AWS IoT core

        • Click “create thing type” to create a thing type.

        • Now select the create thing to type in the “THING TYP” drop-down box.

      • Click “Create Certificate” to download TLS/SSL certificate for AWS IoT Core.

      • AWS IoT itself generate certificates for you because AWS uses TLS for device communication.

      • Connecting Bevywise IoT Simulator to AWS IoT core

      • Download first & last certificate and download root certificate above “Activate button”.

      • Click on activate to activate the created device.

      • Connecting Bevywise IoT Simulator to AWS IoT core

      • Next, click the “Attach Policy” button. In that window select the policy which you have created and click “Register Thing”.

      Connecting Bevywise IoT Simulator to AWS IoT core

      Simulator Configuration

      • Rename the downloaded *****.crt file to client.crt and *******.key as client.key.

      • Also, rename the downloaded root certificate to root.crt.

      • Copy these certificates as follows

        • Client.crt and .key file in Bevywise/IOTSimulator/Certificates/client

      • Next, run the IoT Simulator in your environment.

      • Create a new network.

      • After creating a new network, the Simulator Setting windows will appear.

      • In that, change the Manager application as AWS IoT.

      • Next, give the AWS IoT Hostname which is present in the settings menu in AWS IoT Core in Broker IP Address.

      • In Root-Certificate, browse and upload the root.crt file which is downloaded from the AWS IoT.

      • Simulator Configuration

      • Next, click Advanced and change “Clean session” as “1 and save the configuration.

      • Create a device with the same name, which you have given while adding Device to AWS registry [refer steps 4 & 5 ] in AWS configuration.

      • Create events for the created device.

      • Start the network by clicking the start red icon button and if the connection is successful, then you can see the published message in the simulator Network log or device log.

    Connecting Bevywise IoT Simulator to Bevywise IoT platform

    Bevywise IoT platform configuration

    Bevywise IoT platform as a demo server called Device manager for users to test the IoT platform. Follow the below steps to connect IoT Simulator to the Bevywise IoT platform.

    • Sign-in and login to Device manager. After login, you can see the Device Manager user interface.

    • In the user interface, click the Security tab on the left side panel.

    • In the Security window, click plus icon button to create new Authentication keys.

    • Bevywise IoT platform configuration

    • In the “Device Authorization Key Generation” window, give the key description and select permission for the keys and click save.

    • Bevywise IoT platform configuration

    • Now you can see a new Auth key and the Auth token is added. Here the Auth key will act as username and Auth token as a password.

    Bevywise IoT platform configuration

    IoT Simulator Configuration

    • Start the IoT Simulator in your environment.

    • Create a new network.

    • After creating a new network, the Simulator Setting windows will appear.

    • In that, change the Manager application as Bevywise IoT Platform.

    • Next, leave the Broker IP address, port number, and root certificate as default.

    • IoT simulator Configuration
    • Once you’re done, save the configuration.

    • Create a device and enable authentication by clicking the redoff icon checkbox next to Authentication.

    • In the drop-down, click the edit icon next Access key and copy & paste the Auth key from Device manager and click save.

    • For Access token, copy&paste the Auth token from Device manager and save it.

    • Next, create events and publish messages and then start the simulator.

    • Start the network by clicking the startred icon button and if the connection is successful, then you can see the published message in simulator Network log or device log and also in the Device manager dashboard or user interface.

    Connecting Bevywise IoT Simulator to other MQTT/IoT Applications

    If you’re using MQTT/IoT application other than AWS, Azure or Bevywise IoT platform,

    • You should download the root certificate, client certificate, and client key from your IoT application.

    • Note hostname of the IoT application.

    • Also if your IoT application has the option to create an IoT device with it, create the device and choose the suitable Authentication type which was supported by the IoT simulator.

    Simulator Configuration

    • Rename the downloaded *****.crt file as client.crt and *******.key as client.key.

    • Also, rename the downloaded root certificate to root.crt.

    • Copy these certificates as follows

      • Client.crt and .key file in Bevywise/IOTSimulator/Certificates/client

    • Next, run the IoT Simulator in your environment.

    • Create a new network.

    • After creating a new network, the Simulator Setting windows will appear.

    • In that, change the Manager application as Others.

    • Simulator Configuration
    • Next, give your MQTT/IoT Application hostname in Broker IP Address and enable TLS/SSL only if the MQTT application runs with TLS/SSL, after that mention the port number and save the configuration.

    • Create a device with the same name which you have given while creating an IoT device in your MQTT application. Suppose if you haven’t created any IoT device in your MQTT/IoT application then create the device as per your wish.

    • Next, create events and publish messages and then start the simulator.

    • Note: If your MQTT Application has some topic restriction then you must create an event with that topic format. For example, refer Azure IoT Hub.


    • Start the network by clicking the startred icon button and if the connection is successful, then you can see the published message in the simulator Network log or device log.

    • Note: For more help and support to connect IoT Simulator to your own MQTT Application, please contact Bevywise Support team.

    Connecting IoT Simulator to MQTT Broker

    This section helps you to connect IoT Simulator to MQTT Broker. Below, we have shown the connection of IoT simulator to MQTT Broker with TLS/SSL and to MQTT Broker without TLS/SSL. For more information, refer to our video tutorial.

    Connecting to MQTT Broker running with TLS/SSL enabled.

    MQTT Broker configuration

    • The maximum number of MQTT brokers in the market will not provide client & root certificates. For that, you can create your own self-signed root, server, and client certificates. To create, refer to this link. But if your MQTT Broker provides a client & root certificate, you can download and use it.

    • Once you got the certificates, rename the client certificate as client.crt and client key as client.key and paste the certificate as follows:

      • Paste Client certificate & key –> Bevywise/IotSimulator/Certificate/client.

      Also, rename the downloaded root certificate to root.crt and save it any location.

    • Now, enable the TLS/SSL in MQTT Broker and check port number[ by default 8883 port].

    Simulator Configuration

    • Start the Simulator in your environment and it will lead you to an IoT simulator user interface.

    • Next, create a new network, and the Simulator Setting windows will appear.

    • In the Simulator settings, choose as follows:

      • Manager Application – Others.

      • Broker IP Address – IP address of PC or server where you run the MQTT Broker.

      • TLS/SSL – Enable

      • Port – By default 8883, if your MQTT broker runs in a different port, specify here.

      • Root certificate – Upload the root.crt file which you have created or downloaded before[ Don’t forget to click upload].

      Simulator Configuration
    • Once you’re done, save the configuration.

    • Next, create devices and events with published messages.

    • [Only for Authentication enabled in the MQTT Broker] – If Authentication is enabled in the MQTT Broker side, then enable authentication by the below steps. But if the Authentication is disabled in the MQTT Broker side, skip this step.

      • clicking the red off icon checkbox next to Authentication.

      • In the drop-down, click the edit icon next Access key and paste username from MQTT Broker, then save it.

      • For Access token, paste password from MQTT Broker, then save it.

    • Start the network by clicking the startred icon button and if the connection is successful, then you can see the published message in the simulator Network log or device log.

    Connecting to MQTT Broker running without TLS/SSL enabled.

    MQTT Broker configuration

    • Start the MQTT Broker in your environment.

    • Check the running port of MQTT Broker[by default 1883]

    Simulator Configuration

    • Start the Simulator in your environment and it will lead you to an IoT simulator user interface.

    • Next, create a new network, and the Simulator Setting windows will appear.

    • In the Simulator settings, choose as follows:

      • Manager Application – Others.

      • Broker IP Address – IP address of PC or server where you run the MQTT Broker.

      • TLS/SSL – Disable.

      • Port – By default 1883, if your MQTT broker runs in a different port, specify here.

      • Root certificate – Leave it as such.

      Simulator Configuration
    • Once you’re done, save the configuration.

      • Only for Authentication enabled in MQTT Broker – If Authentication is enabled in the MQTT Broker side, then enable authentication by the below steps. But if the Authentication is disabled in the MQTT Broker side, skip this step

      • clicking the red off iconcheckbox next to Authentication.

      • In the drop-down, click the edit icon next Access key and paste username from MQTT Broker, then save it.

      • For Access token, paste password from MQTT Broker, then save it.

    • Next, create devices and events with published messages.

    • Start the network by clicking the startred icon button and if the connection is successful, then you can see the published message in the simulator Network log or device log.

    MySQL Configuration

    By Default IoT Simulator will run with SQLite. But, for more device connection or load testing SQLite is not efficient. For that case, you can change the storage configuration to MySQL. Before configuring MySQL in IoT Simulator, you must install MySQL 5.7 or higher on your PC. After installing MySQL, please follow the below step.

    For Linux and Mac user:

    • Open Terminal and go to ./Bevywise/MQTTRoute/bin.

    • Run “sh installer.sh”, this file will install all dependence and MYSQL-connector.

    • Install MySQL 5.7 server or higher.

    • Go to ./Bevywise/MQTTRoute/conf and data_store.conf.

    • In data_stor.conf set DB_SERVER = MYSQL and give MYSQL username and password.

    For Window/Windows server users:

    • Download and install WGET from [https://eternallybored.org/misc/wget/]. In that webpage download wget-1.20 zip and extract it.[version 1.20].

    • Window/Windows server users


    • From the desktop, right-click My Computer.

    • Choose Properties from the context menu.

    • Click the Advanced system settings link.

    • Advanced system settings


    • Click the Environment Variables. In the section System Variables, find the PATH environment variable and select it. Click Edit. If the PATH environment variable does not exist, click New.


    • New


      path edit


    • In the Edit System Variable (or New System Variable) window, specify the path where wget.exe located. Click OK. Close all remaining windows by clicking OK.


    • wget path

      setting environment




    • Open cmd and go to ./Bevywise/MQTTRoute/bin.

    • Type installer.bat and hit enter, this file will install all dependence which required to establish the connection between MQTTBroker and MySQL.

    • Dependency installed after running “installer.bat” file.

    • Python 2.7.

    • Pip 2.7.

    • Mysql-connector-python.

    • Note: The Above dependencies will be skipped if it is already installed on PC.

    • Once the “installer.bat” finished successfully, open db.conf [./Bevywise/IotSimulator/conf] in file.

    • In that file change

      • DB_Server = MYSQL.

      • Also, give the MySQL username and password below DB details.

      Note: Check whether MySQL running on 3306 port.

      MySQL running

      Note: Please don’t use XAMPP or MAMP for MySQL.

    Python installation in windows

    Once you run the installer.bat file, python2.7 will automatically download and the installation will start.[The python installation will skip, if it was already installed].

    Follow the below steps to install python2.7:

    • At first, you can see the following window will show up. In that, select the first option and click next.

    • python installation in windows
      python installation in windows
      python installation in windows
      python installation in windows
      python installation in windows