NB | DESK Ciphering

Content

Architecture

Components

NB | DESK

The Exelonix NB | DESK communication board is responsible for transmitting & receiving data via its NB-IoT modem from U-blox.
The following componets are included:

  • STM32 microcontroller: controls the complete board
  • U-blox SARA-N2xx: NB-IoT modem

Exelonix NB UDP protocol

The proprietary Exelonix NB protocol defines the message structure to send multiple values (e.g sensor values) of one device to the Exelonix UDP proxy.

It supports the follwoing data types

  • Integer
  • Float
  • String

The message structure is defined as follows: 

  • {device-identifier}?w={willValuesRequested}&e={encryptionOption}&b=[component-key1=value1&component-key2=value2,...]
    • values of type string in the batch message (b=[...]) have to be places inside quotes (") and must not contain quotes itself
  • Example: wo/ encryption: 357518080061153?w=1&b=[s=1,a=3500,v=1,x=3000,y=2000,z=2500,b=30,t=27,p=1]
  • Example: w/ encryption: 357518080061153?w=1&e=1&b=[xxxyyyzzz]

Exelonix UDP Proxy

The Exelonix UDP Proxy is a communication bridge between the UDP data received from the NB-IoT device and a IoT cloud.
As most of the IoT clouds are not able to handle/receive UDP data a proxy is needed that translates the UDP data into a supported data format (e.g. JSON) and transmits the data via a supported protocol (e.g HTTPS, MQTT)

In case of data to be transmitted to the Exelonix IoT cloud, the UDP proxy:

  • parses the received UDP message under the assumption the Exelonix NB UDP protocol is used.
  • converts the parsed UDP message parameter into the Exelonix IoT Cloud interface format (JSON)
  • transmits the converted data to the Exelonix IoT cloud via HTTPS

Exelonix IoT Cloud Interface

The Exelonix IoT Cloud Interface is used to send/receive IoT data to/from the Exelonix IoT Cloud. It is based on HTTPS and uses HTTP request methods (POST, GET) to handle the data exchange.
For more details see the following documentation: /wiki/spaces/IB/pages/1077995

The following example shows the storing of of sensor data into the cloud. The payload is formated in JSON.

HTTP body
{ 
 "_type":"com.exelonix.iot.platform.model.BatchMsg",
 "deviceKey": "357518080061153",
 "encryption": "0",
 "batchMsg": "s=1,a=3500,v=1,x=3000,y=2000,z=2500,b=30,t=27,p=1,s=\"Hello World\"",
 "time":"2018-01-10T15:06:05.954+01:00"
}

Exelonix IoT Cloud

The Exelonix IoT Cloud is a database that stores the IoT data put in via the Exelonix IoT cloud interface. The data is structured by the unique device ID.

The cloud's responsibilites include:

  • IoT data storage, management and provision
  • Deciphering of received IoT data in case data is encrypted
  • User management used by the Exelonix IoT Manager

Exelonix IoT Manager

The Exelonix IoT Manager can be used by the user to display the stored IoT data of the Exelonix IoT Cloud.
Website: iot.exelonix.com/iot-manager

The following option are supported:

  • User management:
    • a user can only see a specific set of devices
    • a user is part of an organization:
    • the organization has a manager which can see all devices of the organization and defines which devices a user of this organization can see
    • the IoT manager color scheme can branded to fit the look the organization
  • Device data view:
    • Dash board: displays the latest received values from the device; a single sensor can be selected to show a time diagram with previously received values
    • Log: a table that shows the complete payload of all received messages from the IoT device