AI & MACHINE LEARNING
BESPOKE DATA VISUALISATIONS
CUSTOM SOFTWARE DEVELOPMENT
CLOUD & OPERATIONS
DATA & ANALYTICS
EMBEDDED & ENGINEERING
IOT & CLOUD
ABOUT CLIENT:
Our client, headquartered in Norway with a global network of offices and partners, is a leading innovator in power conversion and energy storage technologies. Committed to supporting the transition to a more sustainable future, the company specialises in converting power between the grid, renewable energy sources, and battery systems.
Their battery energy storage solutions are deployed across a wide range of sectors – including electric vehicle charging, distribution system operators, and both residential and commercial applications – playing a key role in promoting environmental sustainability and improving energy efficiency.
The goal of the project is to develop an operational environment for a battery energy storage system, with the option to integrate solar panels. This environment consists of several key components:
· A module (called ‘SCG’) – a hardware unit located next to the battery, responsible for collecting data from the system and issuing commands.
· Mobile application – designed to retrieve data from the SCG module and the cloud, providing users with advanced energy management capabilities.
· Cloud environment: A Kubernetes cluster deployed on Google Cloud Platform, responsible for efficiently collecting data from the SCG module and hosting various other essential components of the system.
Analysis and Technology Selection
Our team was responsible for analysing and selecting the most suitable technology for the SDK. The key requirement was to ensure full support for native applications. Following an in-depth evaluation of available options, Kotlin Multiplatform emerged as the optimal choice, meeting all specified criteria seamlessly.
Developing a logical layer in Kotlin
We developed a shared logical layer in Kotlin Multiplatform to support both Android and iOS platforms. This layer, delivered as an SDK library, serves as an intermediary between the mobile application and communication with the SCG module, ensuring smooth and reliable functionality.
Our approach emphasised flexibility, anticipating future requirements for native module integration. To support this, we implemented a Dependency Injection mechanism using the Koin library, enabling efficient, scalable, and maintainable development.
Implementation of SDK<->SCG communication module
Cloud Development
We developed a cloud environment based on a Kubernetes cluster hosted on Google Cloud Platform, with services written in Golang responsible for SCG communication, alerts, API exposure, and energy data analytics.
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’s solution is a compact, all-in-one residential battery energy storage system designed to reduce energy costs and decrease dependence on traditional power grids. Fully compatible with a wide range of solar panels, the system enables users to store surplus energy for later use.
The application offers advanced functionality, including customisable battery modes such as peak shaving, solar consumption, and manual control – providing users with greater flexibility in managing their energy usage.
Comprehensive energy analytics, with real-time monitoring and historical data, help users identify consumption patterns and uncover optimisation opportunities. With its intuitive interface, the app delivers instant updates on battery status, keeping users informed at all times.
· Kotlin Multiplatform
· Android/iOS toolchain
· Xcode
· Kubernetes cluster deployed on Google Cloud Platform
· Golang
· AWS
· React Native
· Various ready-made solutions, or protocols, such as:
– Redis
– Cassandra
– Zitadel
– CockroachDB
– TimescaleDB
– Prometheus & Grafana
Contact us Today.