Inverter API Access
This guide captures API onboarding requirements for inverter OEMs used by ODS-E transforms, including OEMs with newly added transform specifications.
Last reviewed: 2026-02-09
Transform Specs
- Huawei:
transforms/huawei-fusionsolar.yaml - SolarEdge:
transforms/solaredge-monitoring.yaml - Enphase:
transforms/enphase-envoy.yaml - Fronius:
transforms/fronius-solar-api.yaml - Switch:
transforms/switch-meter.yaml - SMA:
transforms/sma-monitoring-api.yaml - FIMER:
transforms/fimer-auroravision-api.yaml - Solis:
transforms/soliscloud-api.yaml - SolaX:
transforms/solaxcloud-api-v2.yaml
Runtime Support (Python odse.transform)
| Source Key | Runtime Status |
|---|---|
huawei |
Implemented |
switch |
Implemented |
solaxcloud, solax |
Implemented |
fimer, auroravision |
Implemented |
enphase |
Implemented |
solarman |
Implemented |
solaredge |
Implemented |
fronius |
Implemented |
sma |
Implemented (normalized contract input) |
solis, soliscloud |
Implemented (normalized contract input) |
Runtime Verification Harness
Use tools/transform_harness.py to validate transform functions.
Modes
fixture: tests all OEMs with built-in payload fixturesmixed: uses live API calls when environment config exists, else fixture fallbacklive: requires live API config for every selected OEM
Commands
PYTHONPATH=src/python python3 tools/transform_harness.py --mode fixture
cp .env.example .env
PYTHONPATH=src/python python3 tools/transform_harness.py --mode mixed --oems all
PYTHONPATH=src/python python3 tools/transform_harness.py --mode live --oems enphase,sma,fronius
Live API Configuration
- Configure per-OEM live request settings in
.env(see.env.example). - Enphase and SMA live checks require endpoint URLs that return payloads compatible with current runtime mappers.
- Fronius live checks can use
FRONIUS_HOSTfor local inverter polling.
Example .env values for live checks:
ODS_LIVE_ENPHASE_URL=https://api.enphaseenergy.com/api/v4/systems/<system_id>/telemetry/production_micro?start_at=2026-02-09T12:00:00Z&end_at=2026-02-09T12:15:00Z
ODS_LIVE_ENPHASE_METHOD=GET
ODS_LIVE_ENPHASE_HEADERS={"Authorization":"Bearer <enphase_access_token>"}
ODS_LIVE_ENPHASE_TRANSFORM_KWARGS={"expected_devices":10}
ODS_LIVE_SMA_URL=https://sandbox.smaapis.de/monitoring/<endpoint-returning-normalized-payload>
ODS_LIVE_SMA_METHOD=GET
ODS_LIVE_SMA_HEADERS={"Authorization":"Bearer <sma_access_token>"}
FRONIUS_HOST=192.168.1.50
Troubleshooting:
live config missingmeans the harness could not findODS_LIVE_<OEM>_URL(orFRONIUS_HOSTfor Fronius).
Status Key
- Included: OEM has an existing transform in this repository.
- Included (Spec): OEM has a transform specification in this repository; production connector/runtime may still be pending.
OEM API Access Summary
| OEM | Status | API Type | Setup Prerequisites | Auth Model |
|---|---|---|---|---|
| Huawei FusionSolar | Included | Cloud (Northbound) | Enable Northbound management in FusionSolar company admin and assign API capability | API account or OAuth2 (depends on access mode) |
| SolarEdge | Included | Cloud Monitoring API | Generate site/account API key in SolarEdge monitoring portal | API key in query parameter |
| Enphase Envoy / Enlighten | Included | Cloud + local gateway | Register app in Enphase developer platform and authorize system access | OAuth2 (token-based) |
| Fronius | Included | Local inverter API | Inverter reachable on LAN; Solar API enabled on device/network | Typically none (local endpoint access) |
| SMA | Included (Spec) | Cloud API | Create developer app in SMA developer portal and complete consent for target system owner | OAuth2 (authorization code flow) |
| FIMER Aurora Vision | Included (Spec) | Cloud API | Aurora Vision account with required role; request API enablement via FIMER support | Vendor-issued credentials per Aurora Vision API docs |
| SolisCloud | Included (Spec) | Cloud API | Complete Solis cooperation/application process and receive API activation materials | OAuth2 with AppKey/AppSecret |
| SolaX Cloud | Included (Spec) | Cloud API | Generate API token in Solax Cloud third-party ecosystem settings | API token |
Setup Instructions by OEM
Huawei FusionSolar
- Sign in as company administrator in FusionSolar.
- Open
System > Company Management > Northbound Management. - Create or enable a Northbound application and grant required API capabilities.
- Choose an access mode:
- API account access (northbound account created in FusionSolar), or
- OAuth Connect (OAuth2 client setup for third-party app).
- Confirm plant/site visibility for the account/client before ingestion.
Official references:
- https://support.huawei.com/enterprise/en/doc/EDOC1100440661/d5d876c7/creating-api-account-company-administrator
- https://support.huawei.com/enterprise/en/doc/EDOC1100427895/95c18db0/oauth-connect
SolarEdge
- In Monitoring Portal, open API access for account or specific site.
- Create/copy API key.
- Use key on Monitoring API endpoints (
monitoringapi.solaredge.com).
Official reference:
- https://knowledge-center.solaredge.com/sites/kc/files/se_monitoring_api.pdf
Enphase Envoy / Enlighten
- Register an app in the Enphase developer platform.
- Configure OAuth redirect/callback.
- Have the system owner authorize the app.
- Exchange authorization code for access token.
- Use token for system/telemetry API calls.
Official references:
- https://developer-v4.enphase.com/docs/quickstart.html
- https://developer-v4.enphase.com/docs/authentication.html
Fronius Local Solar API
- Ensure the inverter is on the same network as the integration service.
- Resolve inverter IP/hostname.
- Query local endpoints under
/solar_api/v1. - Validate required endpoints respond (
GetPowerFlowRealtimeData.fcgi,GetInverterRealtimeData.cgi, etc.).
Official reference:
- https://www.fronius.com/~/downloads/Solar%20Energy/Operating%20Instructions/42,0410,2012.pdf
SMA
- Create a developer app in SMA developer portal.
- Configure OAuth client details and redirect URI.
- Ask system owner to consent to API scopes.
- Exchange authorization code for access/refresh tokens.
- Use SMA APIs for plant and inverter telemetry.
Official reference:
- https://developer.sma.de/
FIMER Aurora Vision
- Ensure Aurora Vision account is active and validated.
- Ensure account role/permissions are sufficient for portfolio access.
- Open a FIMER support ticket to enable required Aurora Vision API capabilities.
- Use credentials and authentication flow exactly as provided in Aurora Vision documentation.
Official references:
- https://www.fimer.com/faq/where-can-i-find-documentation-such-release-notes-and-guides-dedicated-aurora-vision-products
- https://www.fimer.com/faq/how-can-i-access-plant-portfolio-manager
SolisCloud
- Reach a cooperation agreement with Solis and submit API activation materials.
- Receive OAuth2 access documentation plus
AppKeyandAppSecretfrom Solis. - Implement OAuth2 authorization flow for user-consented data access.
- Call SolisCloud APIs within the authorized scope.
Official reference:
- https://doc.soliscloud.com/en/20.API%20documentation/01.SolisCloud%20Platform%20API%20Document.html
SolaX Cloud
- Sign in to Solax Cloud.
- Open
Service > API(third-party ecosystem section). - Generate or copy
tokenId. - Use token in SolaX API v2 requests.
Official references:
- https://global.solaxcloud.com/blue/4/user_api/2024/SolaXCloud_User_API_V2.pdf
- https://doc.solaxcloud.com/en/inst-w/service/
Implementation Notes for ODS-E
- Treat cloud APIs as rate-limited and implement retries with backoff.
- Store API credentials in a secret manager; do not commit secrets into repository files.
- Transform specs for SMA, FIMER Aurora Vision, SolisCloud, and SolaX Cloud are present in
transforms/. - Runtime ingestion connectors should bind to vendor docs/OpenAPI and validate with sample payload captures before production use.