Open Data Schema for Energy - validation and transformation library
Project description
ODS-E: Open Data Schema for Energy
ODS-E is an open specification for standardizing energy asset data from IoT devices, enabling interoperability across the renewable energy ecosystem.
Why ODS-E?
- No Vendor Lock-in: Your data works with any ODS-E compatible system
- Faster Integrations: Pre-built transforms for common OEMs (Huawei, Enphase, Solarman)
- Analytics-Ready: Standardized error taxonomy and semantic validation
- Future-Proof: CC-BY-SA licensed specification ensures extensions stay open
Quick Start
pip install odse
from ods_e import validate, transform
# Validate ODS-E data
result = validate("production_data.json")
# Transform from OEM format
ods_data = transform("huawei_export.csv", source="huawei")
Repository Structure
ona-protocol/
├── LICENSE-SPEC.md # CC-BY-SA 4.0 (specification, schemas, transforms)
├── LICENSE-CODE.md # Apache 2.0 (reference implementation, tools)
├── spec/ # Specification documents
├── schemas/ # JSON Schema definitions
├── transforms/ # OEM transform specifications
├── src/ # Reference implementation
└── tools/ # CLI tools
Core Schema
{
"timestamp": "2026-02-05T14:00:00Z",
"kWh": 847.5,
"error_type": "normal",
"PF": 0.98
}
Required fields:
timestamp- ISO 8601 with timezonekWh- Active energy (≥ 0)error_type- One of:normal,warning,critical,fault,offline,standby,unknown
Supported OEMs
| OEM | Format | Status |
|---|---|---|
| Huawei FusionSolar | CSV, API | ✅ Included |
| Enphase Envoy | JSON, API | ✅ Included |
| Solarman Logger | CSV | ✅ Included |
| SolarEdge | JSON API | ✅ Included |
| Fronius | JSON API | ✅ Included |
| Switch Energy | CSV | ✅ Included |
License
- Specification, Schemas, Transforms: CC-BY-SA 4.0
- Reference Implementation, Tools: Apache 2.0
Documentation
Contributing
Contributions are welcome. Schema and transform contributions must be licensed under CC-BY-SA 4.0.
Maintained by Asoba Corporation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file odse-0.2.0.tar.gz.
File metadata
- Download URL: odse-0.2.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6528c7e19e14cc8b49a9d52a1c95f1266892fd8ada4981bfd39ea41ebcc86c8
|
|
| MD5 |
7cd74e4374f69776e4a3b3f242bc575e
|
|
| BLAKE2b-256 |
a63621dc1e445371bea57db735ae720804edff131c64a8f3eaadb516ab690658
|
Provenance
The following attestation bundles were made for odse-0.2.0.tar.gz:
Publisher:
python-publish.yml on AsobaCloud/odse
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odse-0.2.0.tar.gz -
Subject digest:
c6528c7e19e14cc8b49a9d52a1c95f1266892fd8ada4981bfd39ea41ebcc86c8 - Sigstore transparency entry: 920107543
- Sigstore integration time:
-
Permalink:
AsobaCloud/odse@a6d987b03d6e48c432954b599a2fcb4576d97639 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/AsobaCloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@a6d987b03d6e48c432954b599a2fcb4576d97639 -
Trigger Event:
release
-
Statement type:
File details
Details for the file odse-0.2.0-py3-none-any.whl.
File metadata
- Download URL: odse-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aed60101fe1535a14d0688df705d79fb9a6f3ae2f81db8c7d5b505de77b9b927
|
|
| MD5 |
d1c45a682af2da725b23e6c48a9cc1cb
|
|
| BLAKE2b-256 |
2bef8613fc23520c7e005b782d70ad8624d58ae09cdf8f399a7d7f45c166052a
|
Provenance
The following attestation bundles were made for odse-0.2.0-py3-none-any.whl:
Publisher:
python-publish.yml on AsobaCloud/odse
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odse-0.2.0-py3-none-any.whl -
Subject digest:
aed60101fe1535a14d0688df705d79fb9a6f3ae2f81db8c7d5b505de77b9b927 - Sigstore transparency entry: 920107546
- Sigstore integration time:
-
Permalink:
AsobaCloud/odse@a6d987b03d6e48c432954b599a2fcb4576d97639 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/AsobaCloud
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@a6d987b03d6e48c432954b599a2fcb4576d97639 -
Trigger Event:
release
-
Statement type: