Asoba Ona Documentation

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

System Capabilities


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:

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:

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

Data Collection Services

Core Platform Services

Ona Application Layer (OODA Loop)

Extensible Services


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:


Next Steps

  1. Get Started: Follow the User Guide to deploy and configure your platform
  2. Learn More: Explore the System Administration guide for technical details
  3. Stay Updated: Check the Changelog for latest features and improvements