Highlights
- Remote mesh network management of geographically distributed devices
- Scalable system applicable to connected devices of any number and type
- Collection, processing and visualization of real-time and meta data
Technologies Used: JavaScript, Node.js, Angular, PouchDB, CouchDB, InfluxDB
Methodology: Agile
Customer
A European provider of end-to-end IoT solutions to enterprises in areas such as Automotive, Manufacturing, Retail, Logistics and more.
Need
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:
- 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.
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
Outcome
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.
Check Out Other Works
See How We Approach Business Objectives
We are open to seeing your business needs and determining the best solution. Complete this form, and receive a free personalized proposal from your dedicated manager.
Sergei Vardomatski
Founder