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.

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.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

zevercloud_api-0.2.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zevercloud-api-0.2.0.tar.gz
  • Upload date:
  • Size: 8.3 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.0.tar.gz
Algorithm Hash digest
SHA256 f3c0ad58c51f739ecff9c3e49bdf502ec664035362925dd59f6d93f57a283e5d
MD5 fa9929ea3dd30e4652f2fb4dd770b122
BLAKE2b-256 601e80649b56b3dbf25416868f563f919ef5175814ef54d370057435139bb82e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zevercloud_api-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd58bab8ca5ab5dcbb2625b29a6200120cf8b795a980414d0ce4de5dc106f8c8
MD5 74907fd141753f608011d2f97c631ecb
BLAKE2b-256 a7984db44c92bf98c30dc3f10fe8fc422f0fdc3b0b90712c2d4ed4c172781095

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