loader

Requirement​

Our client is specialized in system integration for building automation controller system. They approached us to create a SaaS model web application to remotely manage building automation controllers deployed in client sites. Various programmable automation controllers (PAC) are available like Pi-Cube. Pi-Cube has a Node-RED interface for custom programming. The SaaS model application would be used for both reading data from the sensors and triggering the actuators connected to PAC. Advanced level users would have programmable data aggregation and flexible rules management facilities which should be completely customizable according to client’s needs. They also wanted us to provide a SCADA like UI and hardware abstraction to control the automated sub-systems like HVAC, Security, and Safety etc. in the next phase.

Solution​

 
We developed a SaaS building automation controller system application in a multi-tenant architecture using Node.js in the server side and MongoDB as the database. In the SaaS application, users can add I/O modules to Pi-Cubes that are actually set up in the buildings. Pi-Cubes can be then accessed through a static IP for remote programming as well as for performing read write operations.
Multiple custom Node-RED nodes are developed and integrated to a managed Node-RED service which allows the users to do custom programming using the data fetched from controllers. The Node-RED service is dynamically provisioned by the SaaS application as new tenants are registered. Alarms can also be set using the custom nodes which will trigger an email when a data point exceeds a configured threshold. We have also done some base work for the next phase requirement of creating a real time SCADA-like UI for the Building Automation Controller System. Extensive testing was done in various phases of development.
Technologies :
Key Technologies:
  • Node.js
  • ExpressJS web framework
  • Passport Node.js module for authentication
  • Mongo DB
  • Node-RED
Main Hardware Used:
  • PAC that supports Node-RED