AI & MACHINE LEARNING
BESPOKE DATA VISUALISATIONS
CUSTOM SOFTWARE DEVELOPMENT
CLOUD & OPERATIONS
DATA & ANALYTICS
EMBEDDED & ENGINEERING
IOT & CLOUD
ABOUT CLIENT:
Our client, based in Norway, has a global presence through offices and partners worldwide and is a leading innovator in power conversion and energy storage. Specializing in facilitating the transition towards a more sustainable future, their expertise lies in power conversion between the grid, renewable energy sources, and batteries. Their battery energy storage systems are utilized across various sectors, including EV charging, distribution system operators, and residential and commercial applications, playing a pivotal role in advancing environmental sustainability.
The project aims to create an operational environment for
a battery energy storage system with the option of connecting solar panels. This environment comprises several integral elements:
· A module (called ‘SCG’) – positioned alongside the battery, responsible for gathering information from the system and sending commands.
· Mobile application – designed to retrieve data from the SCG module and the Cloud and empower users with comprehensive energy management functionalities.
· Cloud environment: A Kubernetes cluster deployed on Google Cloud Platform. The Cloud is tasked with seamlessly collecting data from the SCG module while hosting various other essential system components.
Analysis and Selecting Technology
the most suitable for SDK
IThe key requirement was it should enable full use of native applications. Following extensive investigation,Kotlin Multiplatform emerged as the optimal choice, meeting all specified criteria seamlessly.
Developing a logical layer in Kotlin Multiplatform, supporting two platforms (Android and iOS)
This layer, represented by the SDK library, acts as an intermediary between the application and communication with the ‘SCG’ module, ensuring seamless functionality. Our approach prioritized flexibility, anticipating potential requirements for creating native modules. To achieve this, we implemented the Dependency Injection mechanism along with the Koin library, facilitating efficient and scalable development.
Implementation of SDK<->SCG communication module
Cloud Development
The cloud environment consists of a Kubernetes cluster deployed on the Google Cloud Platform. Applications are developed in Golang and serve various functions, including mediating communication between SCG module, sending alerts and emails, exposing APIs for mobile applications, and aggregating & analyzing statistical data from battery systems.
Designing an Energy Flow Statistical Data Component
including kWh production by solar panels, energy consumption in the home, battery storage, and potential grid transfers. Our task was to design methods for data collection, processing, and aggregation, followed by API creation for mobile app development.
System Integration Tests
Our Client solution is a comprehensive and compact residential battery energy storage system. It aims to minimize energy expenses and decrease reliance on traditional power grids. Compatible with a wide range of solar panels, the system allows users to store surplus energy for future use.
The application’s enhanced functionalities encompass customizable battery modes such as peak shaving, solar consumption, and manual mode, offering users greater control over their energy consumption. Detailed energy analytics, featuring real-time monitoring and historical data, facilitate the identification of consumption trends and optimization opportunities. With its user-friendly interface, the app ensures instant updates on battery status, ensuring users remain well-informed at all times.
· Kotlin Multiplatform
· Android/iOS toolchain
· Xcode
· Kubernetes cluster deployed on Google Cloud Platform
· Golang
· Various ready-made solutions, or protocols, such as:
– Redis
– Cassandra
– Zitadel
– CockroachDB
– TimescaleDB
– GitLab
– Prometheus & Grafana
Contact us Today.