Asoba ODS-E Documentation
Get Started in 5 Minutes

Standardize energy data from any OEM — generation, consumption, and net metering

Code Examples

Copy-paste examples to get started quickly

Transform OEM Data

from odse import transform

# Huawei CSV to ODS-E records
rows = transform("huawei_export.csv", source="huawei")
print(rows[0])
# {"timestamp": "2026-02-09T12:00:00Z",
#  "kWh": 4.17, "error_type": "normal"}
View Full Example →

Validate Consumption Data

from odse import validate

result = validate({
    "timestamp": "2026-02-09T14:00:00Z",
    "kWh": 12.3,
    "error_type": "normal",
    "direction": "consumption",
    "end_use": "cooling",
    "fuel_type": "electricity"
})
print(result.is_valid)  # True
View Validation Guide →

What ODS-E Covers

Supported OEMs

Huawei, Enphase, Solarman, SolarEdge, Fronius, Switch, SMA, FIMER, Solis, SolaX

View Support Matrix →

What's New in v0.3.0

  • Direction-aware energy timeseries (generation / consumption / net)
  • End-use tagging aligned with ComStock/ResStock
  • Building metadata and asset type taxonomy
  • 10 OEM runtime transforms with test harness
Read Changelog →

Documentation Sections

Getting Started

Install the library, transform OEM data, and validate records in 5 minutes

Get Started →

Schema Reference

Energy timeseries and asset metadata field definitions and enums

View Schemas →

Transforms

OEM-to-ODS-E mapping specs and runtime transform functions

View Transforms →

Validation

Schema validation, semantic checks, and physical bounds verification

View Validation →

Building Integration

Join ODS-E data to NREL ComStock/ResStock benchmarks for EUI analysis

View Guide →

Contributing

Add OEM transforms, improve schemas, and submit pull requests

Contribute →

Community & Support

© 2026 Asoba Corporation. All rights reserved. ODS-E specification licensed under CC-BY-SA 4.0.