Skip to main content

solaredge-web

A python client library for SolarEdge Web. Fetches energy data for each inverter/string/module via the web API and not via the official API which doesn't expose this data.

Usage

import aiohttp
from solaredge_web import SolarEdgeWeb

async with aiohttp.ClientSession() as session:
    client = SolarEdgeWeb(username, password, site_id, session)

    # --- site facts (all cached until the next login) ---
    equipment = await client.async_get_equipment()          # inverters, strings, optimizers
    components = await client.async_get_site_components()   # hasConsumptionAndGrid, hasStorage, ...
    information = await client.async_get_site_information()  # peakPower, siteTimeZone, ...
    availability = await client.async_get_data_availability()
    details = await client.async_get_site_details()
    summary = await client.async_get_site_equipment_summary()
    communication = await client.async_get_communication_status()

    # --- energy ---
    # Hourly per optimizer/string/inverter/site, derived from playback power.
    energy = await client.async_get_energy_data()
    # Measured totals per device over a date range, no time series.
    totals = await client.async_get_energy_totals()
    # Measured site energy per slot: hours, days, months or years.
    site_energy = await client.async_get_site_energy(resolution="days")
    site_total = await client.async_get_site_energy_total()
    # Measured energy per slot for specific optimizers (one request per optimizer).
    optimizer_energy = await client.async_get_optimizer_energy(["7A012345-CA"])
    inverter_energy = await client.async_get_inverter_energy_totals()
    comparative = await client.async_get_comparative_energy("monthly")

    # --- production and consumption ---
    # quarter-hours, hours, days, months or years.
    consumption = await client.async_get_consumption_data(resolution="hours")
    storage = await client.async_get_storage_energy_distribution()

    # --- power ---
    live = await client.async_get_live_power()
    site_power = await client.async_get_site_power()
    inverter_power = await client.async_get_inverter_power()

    # --- per-device diagnostics ---
    optimizers = await client.async_get_optimizer_data()   # live W, V, A per optimizer
    inverters = await client.async_get_inverter_data()     # live readings and firmware
    temperatures = await client.async_get_optimizer_temperatures()  # max degrees C

    # --- everything else ---
    weather = await client.async_get_weather()
    benefits = await client.async_get_environmental_benefits()
    alerts = await client.async_get_alerts()

All energy values are in Wh, power in W, temperatures in degrees Celsius.

Timestamps are naive datetimes in the site's local time, whose IANA name is siteTimeZone from async_get_site_information. The one exception is last_measurement on OptimizerData and InverterData, which is an aware UTC datetime because those endpoints report a real UTC instant.

Consumption, grid import and grid export require a consumption meter: without one (hasConsumptionAndGrid is false) those fields are None rather than zero.

Each resolution has its own range limit, and the API answers HTTP 400 beyond it. The library warns before making such a request; see the method docstrings for the limits.

Endpoints that report a payload with no fixed shape - site details, weather, alerts and similar - are returned as-is rather than modelled, since their fields vary by account type, storage and metering.

Development environment

python3 -m venv .venv
source .venv/bin/activate
# for Windows CMD:
# .venv\Scripts\activate.bat
# for Windows PowerShell:
# .venv\Scripts\Activate.ps1

# Install dependencies
python -m pip install --upgrade pip
python -m pip install -e .

# Run pre-commit
python -m pip install pre-commit
pre-commit install
pre-commit run --all-files

# Run tests
python -m pip install -e ".[test]"
pytest

# Build package
python -m pip install build
python -m build

Release files for solaredge-web 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for solaredge-web 0.5.0
File Size Uploaded
solaredge_web-0.5.0.tar.gz 41.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for solaredge-web 0.5.0
File Interpreter ABI Platform
solaredge_web-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 72.5 kB

Release files / solaredge_web-0.5.0.tar.gz

Download URL solaredge_web-0.5.0.tar.gz
Size 41.9 kB
Tags Source
SHA-256 checksum
How to use checksums
110d442a88939721f9cfa3da462b235457bdb82430ecfc892c046f6bf8a690ed
BLAKE2b-256 checksum
How to use checksums
11e80ccd22db5234f8c240f6b77912826859d0c4a145c4cd1d01398c80ad98bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release files / solaredge_web-0.5.0-py3-none-any.whl

Download URL solaredge_web-0.5.0-py3-none-any.whl
Size 30.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7723982d595581afe9404da4e78a29e9ab4f0f0294119cb3f132ca8c2d5c07b
BLAKE2b-256 checksum
How to use checksums
172a6ec0fb869d0bd73813dd6d20eea4448cfe38264411e18a57e9eaddcdfb85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page