Intelligent Energy Analytics
- A multi-tenant system that can track energy consumption at different levels of granularity.
- Ability to aggregate power usage per customer, building, equipment_type or equipment_level.
- Ability to dynamically configure visualization charts and add to the dashboard.
- Ability to manage users, user roles and setup user privileges.
- It provides a sandbox in the form of notebooks whereby users can test their submissions against live data.
- Capability to host a competition where the data can be shared with the crowd and external users can come up with solutions according to the goal of the competition.
- Dynamic leaderboard computation based on the application of user solutions against live data.
- A kappa architecture system where ingestion from the edge device is done with consistency. The ingestion component was built using Java and supports a queueing mechanism.
- Data is processed using Apache Spark and stored in MongoDB as a datastore.
- Processed data is accessible via REST API’s developed using Node.js
- Customized Cube.js to enable a miniature data visualization platform within the application itself. This gave the user the ability to create their own charts and publish them against buildings/equipment.
- PassportJS based authentication system where user access to each entity is controlled from the admin interface.
- Jupyter notebook was integrated into the application to enable users to work on the published data within the environment itself. This enabled users to perform ML analysis within the environment itself.
- Submitted solutions gets evaluated on live data and leaderboard gets recomputed at regular intervals.
- Java 8
- Apache Kafka
- Apache Spark
- Node.JS with Express
- Jupyter Notebook