IoT: Remote Network Management of Connected Devices

A scalable and modular solution that allows remote network management of connected devices in a variety of areas, be it smart homes, cities, plants or others applicable.

  • Technologies used:JavaScript, Node.js, AngularJS, PouchDB, CouchDB, InfluxDB
  • Industry:internet of things
  • Timeframe:9 months
  • Methodology:agile
Online Golf Course Reservation System
prev. project
Mobile App that Gamifies Relationships of Couples
next project

Customer

A European provider of end-to-end IoT solutions to enterprises in areas such as Automotive, Manufacturing, Retail, Logistics and more.

Challenge

The customer came up with an idea to create a scalable and modular solution that would allow remote network management of connected devices in a variety of areas, be it smart homes, cities, plants or others applicable. The main challenge was to provide seamless data exchange in a highly dynamic mesh network of devices with limited CPU and RAM resources.

Solution

 

Architecture

The solution architecture allows connecting devices of any number and type into a single wireless mesh network. This way, all devices are interconnected so that should one of them drop out due to a weak signal or mechanical failure, the rest will still be able to communicate with each other.
The system exchanges two types of data:

IoT software development

  •  Meta data stored in a database and including each device’s description, settings, attachments (e.g. service manuals), event calendar with scheduled maintenance days, and analytics
  • Real-time data fetched directly from devices – e.g. gauge measurements

 

To ensure smooth collection, processing and visualization of all that data, HQSoftware developed a client-server solution with database, data collection and master servers.

IoT software development

Database server

The team exploited Apache CouchDB to store meta data, which is more static in nature. This non-relational, scalable and document-oriented database allows storing data offline and sharing it with other servers when going online again with the help of the client-side library PouchDB.

For real-time data storage and advanced analytics over extended periods of time, HQSoftware implemented InfluxDB showing unmatched performance when providing quick insights, such as the average hourly pressure or temperature registered on a device throughout the last six months.

Data collection server

Whether it is real-time or meta data, this server collects it from devices and routs to the above-mentioned databases, respectively. In addition to that, real-time data is sent over the WebSocket protocol to the master server for further visualization.

Master server

As the system’s core, the project team created a Node.js-based master server that connects all the nodes and provides the API and user interface for centralized management of devices.

Web Interface Functionality

 

Role-based access

The system supports two access roles: cloud admin and user.
A cloud admin can add devices to the network, enable/disable them and view all device clouds in the system. In case the system implies an involvement of several end clients, the admin can create accounts, upload contracts and edit client data.
A user, in turn, is able to configure their network of connected devices and exploit real-time statistics, including such insights as status, performance and troublesome issues.

Mesh network visualization

To make easier network management of geographically distributed devices both separately and in groups, HQSoftware implemented a Google map that shows each device as a custom Google marker as well as connections among devices. The user can view and edit basic device information and settings by simply clicking on a marker.

Network management features

With a single, intuitive interface, users are able to:

  • View real-time and meta data for each device and groups of devices, including analytics
  • Configure devices
  • Upload, edit and view service manuals
  • Schedule maintenance activities in a calendar, where all events are presented in a timeline view
  • Create rules – for example, notify once a certain threshold on a device has been reached
  • Open and handle user-to-user, user-to-support and device-to-user tickets through an email-like ticket system
  • Chat with other users and support specialists

Results

HQSoftware’s team developed a scalable solution for network management of geographically distributed devices. It has already been adopted by the world’s leading manufacturer of automotive measurement and test systems as well as a city municipality. Below, you can also find out how HQSoftware’s team implemented this system to control smart bulbs.

System in Use: Mobile App for Smart Lighting Management

The project team developed a cross-platform Cordova mobile app to manage a Wi-Fi network of light bulbs in a building or an apartment, which allowed to:

  • Divide all bulbs into groups (i.e. rooms)
  • Turn bulbs on/off
  • Adjust lighting settings for every bulb or for the whole group via a dimmer
  • Create and save lighting scenes
  • Adjust settings while offline and then synchronize the data once the internet connection is available

For precise management, every bulb joins the Wi-Fi network with a unique MAC address. When the user, for example, wants to reduce the brightness of a particular bulb, the application sends a request via the WebSocket protocol to be processed by Node.js servers installed on the bulbs. This way, the network knows which bulb should be reconfigured.

 

Online Golf Course Reservation System
prev. project
Mobile App that Gamifies Relationships of Couples
next project