Skip to main content

Python API for the Zevercloud API

Project description

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
       },
       ...
    ]  

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

zevercloud-api-0.2.1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

zevercloud_api-0.2.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file zevercloud-api-0.2.1.tar.gz.

File metadata

  • Download URL: zevercloud-api-0.2.1.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for zevercloud-api-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b5200ef8df94c36439a021e2537444d6cd8f7949c85924276b3e72e2cbacd0ef
MD5 70a8e5fc335a483549585c6118402e3b
BLAKE2b-256 30222ae6015b43d0b2b325adf334d98534b3dff21b4605c53229cdd02bdcf11c

See more details on using hashes here.

File details

Details for the file zevercloud_api-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for zevercloud_api-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ec1427d7c2da84f417fc6ec96f35b7adc70b4706940606a7a795c125e386ab2
MD5 59815fd692574ff563d1e45a30d19246
BLAKE2b-256 b9973c7d1c61cc06a4df970275ca7ebb9d6e28420fe6117170a92b44e5129a3e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page