Ona Platform: AI-Driven Solar Asset Management
The Ona Platform is a comprehensive, end-to-end solution for energy analytics and forecasting that transforms raw data from various sources into actionable insights, enabling predictive maintenance, optimized energy dispatch, and enhanced operational efficiency.
What is Ona Platform?
The Ona Platform is an AI-driven solar asset management system built on a modern, scalable, and event-driven architecture. It provides real-time monitoring, predictive analytics, and automated maintenance workflows for solar energy portfolios.
Key Value Propositions
- Predictive Maintenance: 30+ day forecasting capabilities for proactive maintenance planning
- AI-Driven Optimization: Transform reactive maintenance into AI-driven asset optimization
- Real-Time Monitoring: Sub-5 minute fault detection and diagnosis
- Automated Workflows: End-to-end automated workflows from fault prediction to work order execution
- SAWEM Compliance: Built specifically for South Africa’s SAWEM requirements with insurance-grade reporting
System Capabilities
- Real-Time Data Processing: Process SCADA/inverter data with sub-5 minute latency
- Weather Integration: ML-powered insights combining operational and meteorological data
- Global Predictive Analytics: 30+ day forecasting with natural language insights
- Extensible Architecture: Modular services that can be plugged into existing API ecosystem
- Multi-Platform Integration: Works with SolarEdge, Huawei FusionSolar, SMA Sunny Portal, and others
Quick Start
To begin using the Ona Platform, please refer to the User Guide for detailed instructions on deployment, configuration, and initial setup. The User Guide provides a step-by-step walkthrough for onboarding your solar assets and integrating your data sources.
Prerequisites
Before starting, ensure you have:
- AWS Account with appropriate permissions
- Domain Control (e.g., api.yourcompany.com)
- SCADA/Inverter Access or data export capabilities
- Visual Crossing API Key for weather data
- Asset Inventory (inverter models, locations, capacities)
- Historical Data (at least 30 days of sensor data)
Quick Deployment
# 1. Clone the platform repository
git clone <repository-url>
cd ona-platform
# 2. Configure your environment
cp config/environment.sh.example config/environment.sh
# Edit config/environment.sh with your specific settings
# 3. Deploy core platform services
./deploy-all.sh
# 4. Deploy terminal/O&M services
./deploy-terminal.sh
Note on Performance: Deployment has been optimized with parallel execution:
- Platform deployment: 2-3 minutes (down from 8-9 minutes)
- Terminal deployment: ~20 minutes
- All deployment scripts are idempotent and can be safely re-run
For detailed setup instructions, see the User Guide.
Architecture
The Ona Platform follows a layered architecture that transforms raw operational data into actionable business intelligence:
flowchart TD
subgraph sources["Data Sources"]
A1["SCADA Systems"]
A2["Solar Assets"]
A3["Current Monitoring"]
A4["Weather Data"]
end
subgraph gateway["API Gateway Layer"]
B1["API Gateway<br/>api.yourcompany.com"]
B2["Authentication &<br/>Rate Limiting"]
end
subgraph core["Core Platform Services"]
C1["dataIngestion<br/>Real-time ingestion"]
C2["weatherCache<br/>ML-powered insights"]
C3["interpolationService<br/>Data enrichment"]
C4["globalTrainingService<br/>LSTM model training"]
C5["forecastingApi<br/>30+ day predictions"]
end
subgraph ona["Ona Application Layer"]
D1["Observe<br/>Anomaly Detection<br/>< 5 min"]
D2["Orient<br/>AI Diagnostics<br/>< 10 min"]
D3["Decide<br/>Energy-at-Risk<br/>< 15 min"]
D4["Act<br/>Automated Dispatch<br/>Continuous"]
end
subgraph extensible["Extensible Services"]
E1["Insurance<br/>Automation"]
E2["Fleet<br/>Analytics"]
E3["Soiling<br/>Calculations"]
E4["Energy Market<br/>Integration"]
E5["Electricity<br/>Dispatch"]
end
subgraph outcomes["Business Intelligence"]
F1["Predictive Alerts<br/>30+ days"]
F2["Automated<br>Work Orders"]
F3["SAWEM<br>Compliance"]
F4["ROI Analytics"]
end
sources --> B1
B1 --> B2
B2 --> C1
C1 --> C3
C2 --> C3 & C5
C3 --> C4 & C5 & D1
C4 --> C5
C5 --> D1
D1 --> D2
D2 --> D3
D3 --> D4
D4 --> outcomes
%% Extensible services integration
core --> extensible
extensible --> outcomes
style gateway fill:#1e40af,color:#fff
style core fill:#3b82f6,color:#fff
style ona fill:#6366f1,color:#fff
style extensible fill:#8b5cf6,color:#fff
style sources fill:#AA00FF,stroke:#cbd5e1,color:#fff
style outcomes fill:#10b981,stroke:#059669,color:#fff
Data Flow and Service Interactions
sequenceDiagram
participant User
participant API as API Gateway
participant DI as dataIngestion
participant S3 as S3 Input
participant IS as interpolationService
participant WC as weatherCache
participant GT as globalTraining
participant FA as forecastingApi
participant S3O as S3 Output
%% Historical Upload Flow
rect rgb(200, 230, 255)
Note over User,S3O: Historical Data Upload & Training
User->>API: POST /upload_train
API->>S3: Direct upload to historical/
S3->>IS: S3 Event Trigger
IS->>S3: Load weather cache
IS->>IS: Enrich & Interpolate
IS->>S3: Save to training/
S3->>GT: S3 Event Trigger
GT->>GT: Train LSTM Model
GT->>S3O: Save model
end
%% Nowcast Flow
rect rgb(255, 230, 200)
Note over User,S3: Real-time Data Upload
User->>API: POST /upload_nowcast
API->>S3: Direct upload to nowcast/
S3->>IS: S3 Event Trigger
IS->>S3: Load cached weather
IS->>IS: Calculate metrics
IS->>S3: Save processed data
end
%% Weather Cache Update
rect rgb(230, 255, 200)
Note over WC,S3: Weather Cache Update (Every 15 min)
WC->>WC: Get all locations
WC->>External API: Fetch weather
WC->>S3: Update cache
end
%% Forecast Generation
rect rgb(255, 200, 255)
Note over User,FA: Forecast Generation
User->>API: GET /forecast
API->>FA: Invoke
FA->>S3O: Load model
FA->>S3: Load nowcast data
FA->>S3: Load forecast weather
FA->>FA: Generate forecast
FA->>User: Return forecast
end
Core Components Overview
API Gateway Layer
- Secure entry point with authentication and rate limiting
- Custom domain support (api.yourcompany.com)
- Request routing and load balancing
Data Collection Services
- huaweiHistorical: Historical data collection from Huawei FusionSolar inverters
- weatherDataUpdater: Automated weather data collection and caching
Core Platform Services
- weatherCache: Weather data integration with ML-powered insights
- interpolationService: Data enrichment and ML interpolation
- globalTrainingService: LSTM model training and management
- forecastingApi: 30+ day forecasting capabilities
Ona Application Layer (OODA Loop)
- Observe: Anomaly detection in < 5 minutes
- Orient: AI diagnostics in < 10 minutes
- Decide: Energy-at-Risk calculation in < 15 minutes
- Act: Automated dispatch and continuous monitoring
Extensible Services
- Insurance automation
- Fleet analytics
- Soiling calculations
- Energy market integration
- Electricity dispatch optimization
Further Research
Case Studies and Research Papers
| Resource | Description | Link |
|---|---|---|
| Case Study | Real-world implementation and results | View on Zenodo |
Additional Resources
For more detailed information, please refer to:
- User Guide - Step-by-step onboarding guide
- System Administration - Technical administration details
- Changelog - Version history and release notes
Next Steps
- Get Started: Follow the User Guide to deploy and configure your platform
- Learn More: Explore the System Administration guide for technical details
- Stay Updated: Check the Changelog for latest features and improvements