How It Works

Backend infrastructure that absorbs unreliable energy data and exposes stable intelligence your systems can depend on for state of the art decision support

Explore the Docs Try it Free
Office workspace

Architecture Simplified

eSUMS connects to your inverters and energy assets via standard APIs, serving as complete middleware for the data pipelines necessary to run ML/AI models. These models can be called via API or SDK, embedded directly within your existing business logic.

This is a platform that supports your technical roadmap, rather than forcing you to adjust your business logic to fit the platform's idiosyncrasies. Integrate once, consume intelligence through the interfaces you already use.

Ona Intelligence Layer Architecture

Embedded Intelligence

Ona absorbs unreliable, heterogeneous inputs, manages forecasting models over time, and exposes stable outputs that production systems can depend on.

You integrate once. You consume intelligence, not models. Call the forecasting API directly from your existing systems, or use our SDK to embed intelligence seamlessly into your Python or JavaScript applications.

// REST API Request
POST /forecast
Content-Type: application/json

{
  "site_id": "Sibaya",
  "device_id": "INV001",
  "forecast_hours": 24
}

// Response
{
  "site_id": "Sibaya",
  "device_id": "INV001",
  "forecasts": [
    {
      "timestamp": "2025-12-26T10:00:00Z",
      "hour_ahead": 1,
      "kWh_forecast": 1250.5
    }
  ],
  "model_info": {
    "model_type": "device_validation_lstm"
  }
}
from ona_platform import OnaClient

# Initialize client
client = OnaClient()

# Get device-level forecast
forecast = client.forecasting.get_device_forecast(
    site_id='Sibaya',
    device_id='INV001',
    forecast_hours=24
)

# Use in your business logic
for point in forecast['forecasts']:
    energy = point['kWh_forecast']
    schedule_dispatch(energy)
const { OnaSDK } = require('@asoba/ona-sdk');

// Initialize SDK
const sdk = new OnaSDK({
  region: 'af-south-1'
});

// Get forecast
const forecast = await sdk.forecasting.getDeviceForecast({
  site_id: 'Sibaya',
  device_id: 'INV001',
  forecast_hours: 24
});

// Use in your business logic
forecast.forecasts.forEach(point => {
  scheduleDispatch(point.kWh_forecast);
});

What It Guarantees

What It Guarantees

  • Clear separation between raw data and decisions
  • Reproducible outputs over time
  • Safe iteration on models without breaking integrations

What It Replaces

Without an intelligence layer, teams build per-OEM data cleaning pipelines, feature engineering logic, model deployment processes, and glue code. Ona centralizes this behind a single integration boundary.

What It Is Not

Not a dashboard-first product. Not a single forecasting model. Not a consulting workflow. It is backend infrastructure for energy intelligence.

Getting Started

Weeks 1-2
Integration
We connect SCADA/inverters, ingest historical data, and establish performance baselines.
Weeks 3-12
Optimization
Real-time monitoring goes live. You receive weekly performance reports as models continuously improve.
Week 13
Decision
Executive ROI analysis. Automatic conversion upon meeting metrics, followed by scale-up.

Detailed architecture, APIs, and implementation details are available in the documentation.

Ready to Integrate?

Start with our free API tier or schedule a technical consultation for enterprise deployment.

Try Free Demo Schedule Consultation