Ona SDK Documentation
Typed client libraries for Python and JavaScript, built for the Ona Intelligence Layer — energy forecasting, fault detection, inverter telemetry, and O&M intelligence for solar, wind, and battery storage assets.
New here? Contact support@asoba.co for an API key first.
Introduction
Ona is an asset intelligence ecosystem built to autonomously operate distributed renewable energy systems — solar, wind, and battery storage — across large, geographically dispersed fleets.
At its core, Ona implements a hybrid decision architecture modeled on the cognitive split between fast, automatic processing and slow, deliberate reasoning: a continuously running world model monitors every asset at five-minute intervals, flagging physical deviations the moment they emerge, while a retrieval-grounded language model activates only when a deviation crosses an explicit severity threshold and synthesizes cited diagnostic guidance from technical documentation. This separation ensures that cheap, narrow intelligence handles the vast majority of monitoring tasks, reserving expensive reasoning for conditions that have earned the compute cost.
Alongside real-time fault detection and O&M decision support, Ona produces device-, site-, and customer-level production forecasts that incorporate asset-specific history, weather data, and irradiance physics — enabling operators and their systems to anticipate output rather than only react to it.
The result is a platform that closes the OODA loop end-to-end: from raw inverter telemetry through anomaly detection, diagnostic synthesis, and forward-looking production intelligence, all exposed through typed SDK clients for Python and JavaScript.
Quick Start
Python
pip install asoba
Or from source: git clone https://github.com/AsobaCloud/sdk.git && cd sdk/python && pip3 install -e .
Typed client for scripts, notebooks, and backend services.
JavaScript
npm install @asobacloud/sdk
Or from source: git clone https://github.com/AsobaCloud/sdk.git && cd sdk/javascript && npm install
Typed client for Node.js and browser applications.
from asoba import OnaClient
client = OnaClient()
period = client.inverter_telemetry.get_data_period(site_id="Sibaya")
print(f"Data available from {period['first_record']} to {period['last_record']}")
→ See the full Quickstart Guide for streaming, alerts, and more.
SDK Service Guides
Inverter Telemetry
Query and stream live inverter data
OODA Terminal Alerts
Query and stream fault/diagnostic alerts
Forecasting
Device, site, and customer-level energy forecasts
Freemium Forecasting
No-API-key forecasting with email verification
Terminal OODA Workflow
Full OODA loop: detect → diagnose → decide → act
Partner API
Pre-computed JSON snapshots with ETag caching
Data Ingestion & Training
Upload data and manage ML models
PV Insight Service
RAG-powered O&M recommendations from anomaly detections
ODS-E & Data Architecture
What is ODS-E?
The Open Data Schema for Energy specification
Ona Intelligence Layer Architecture
How ODS-E fits with the platform
ODS-E & the SDK
How ODS-E connects to SDK data flows
Schema Reference
Field-level ODS-E schema definitions
Transform Specs
How raw data maps to ODS-E
Validation Guide
Validating data against the schema