Skip to main content

Zevercloud API

Python API for the Zevercloud API

Note: This piece of software is not approved or endorsed by ZeverCloud. Nor do I endorse their products.

Installation

You can install zevercloud-api using your favorite package manager. For example:

pip install zevercloud-api

Credentials

Three keys are needed to connect to the Zevercloud API:

  • api_key
  • app_key
  • app_secret

Your api_key can be found on the Zevercloud site, under Configuration > Plant Configuration > 5. Api Key. The app_key and app_secret can be found under Account Management > Security Settings, but are only visible once approved by Zeversolar Support. Send an email to service.eu@zeversolar.net, for example, and ask them to make the app_key and app_secret visible to you. They typically do so within a day.

Usage

To see the last known status of your site, as well as some yield statistics:

from zevercloud import ZeverCloud

zc = ZeverCloud(API_KEY, APP_KEY, APP_SECRET)

print(zc.overview)
>>  {
        "last_updated": datetime(2022, 2, 3, 13, 57, 26),
        "online": False,
        "power": 0,
        "site_id": 12345,
        "yield": {
            "today": 5.9,
            "month": 218.42,
            "total": 5800,
            "year": 1770,
        },
    }

Historical power and yield

Historical yield and power figures can also be obtained:

zc.get_output(date=date(2022, 8, 1))
>>  [
       ...
        {"power": 1183, "timestamp": datetime(2022, 8, 1, 12, 0)},
        {"power": 1240, "timestamp": datetime(2022, 8, 1, 12, 20)},
        {"power": 1815, "timestamp": datetime(2022, 8, 1, 12, 40)},
        ...
    ]
zc.get_daily_output(month=date(2022, 8, 1))
>>  [
        {"date": date(2022, 3, 1), "yield": 4.1},
        {"date": date(2022, 8, 2), "yield": 5.2},
        {"date": date(2022, 8, 3), "yield": 0.2},
        ...
    ]
zc.get_monthly_output(year=2022)
>>  [
       {"date": date(2022, 1, 1), "yield": 40.1},
       {"date": date(2022, 2, 1), "yield": 52.1},
       {"date": date(2022, 3, 1), "yield": 113},
       {"date": date(2022, 4, 1), "yield": 8.11},
        ...
    ]
zc.get_yearly_output()
>>  [
       {"year": 2012, "yield": 4069},
       {"year": 2013, "yield": 308},
        ...
    ]

Power is always presented in W (Watt), and yield in kWh (kiloWatt-hour). Due to the internals of the Zevercloud API, all numbers may be rounded up to two significant digits.

Events

Events (errors) can be listed:

zc.get_events(start_date=date(2022, 1, 1), end_date=date(2022, 8, 1))
>>  [
        ZeverSolarEvent(
            event_time=datetime(2022, 1, 1, 12, 34, 56), 
            inverter_id="ZS12345678", 
            event_code=3, 
            event_type=101,
        )
    ]

The ZeverSolarEvent has a human-readable event_description.

Note: the internal Zevercloud API can only return events for 7 days at a time. Using the get_events-method on a large date range will result in many API-calls being made, and may hence possibly take a rather long time.

Releases

  • 0.2.1 Improve security by adding timestamp and nonce to requests
  • 0.2.0 Add get_details method
  • 0.1.0 First working version

Detailed logs

More detailed logs can be retrieved with get_details. This endpoint requires the id of the monitor as input. This monitor can be found on the ZeverCloud website.

zc.get_details(date=date(2022, 1, 1), psno="EAB1234C5678")
>>  [
       {
          'ac_frequency': 50,
          'ac_power': 30,
          'ac_current_p1': 0,
          'ac_current_p2': 0,
          'ac_current_p3': 0,
          'ac_voltage_p1': 236.8,
          'ac_voltage_p2': 0,
          'ac_voltage_p3': 0,
          'inverter_id': 'ZS12345678',
          'pv_current_1': 0,
          'pv_current_2': 0,
          'pv_current_3': 0,
          'pv_voltage_1': 271.4,
          'pv_voltage_2': 0,
          'pv_voltage_3': 0,
          'temperature': 26.7,
          'timestamp': datetime.datetime(2022, 8, 1, 6, 49, 37),
          'yield_today': 0.1,
          'yield_total': 5615.2
       },
       ...
    ]  

Metadata

Release files for zevercloud-api 0.2.1

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

Source distribution (sdist)

Source distribution for zevercloud-api 0.2.1
File Size Uploaded Provenance
zevercloud-api-0.2.1.tar.gz 8.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for zevercloud-api 0.2.1
File Interpreter ABI Platform
zevercloud_api-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.3 kB

Release files / zevercloud-api-0.2.1.tar.gz

Download URL zevercloud-api-0.2.1.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b5200ef8df94c36439a021e2537444d6cd8f7949c85924276b3e72e2cbacd0ef
BLAKE2b-256 checksum
How to use checksums
30222ae6015b43d0b2b325adf334d98534b3dff21b4605c53229cdd02bdcf11c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / zevercloud_api-0.2.1-py3-none-any.whl

Download URL zevercloud_api-0.2.1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ec1427d7c2da84f417fc6ec96f35b7adc70b4706940606a7a795c125e386ab2
BLAKE2b-256 checksum
How to use checksums
b9973c7d1c61cc06a4df970275ca7ebb9d6e28420fe6117170a92b44e5129a3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Security for zevercloud-api 0.2.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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