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_keyapp_keyapp_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.1Improve security by adding timestamp and nonce to requests0.2.0Addget_detailsmethod0.1.0First 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| zevercloud-api-0.2.1.tar.gz | 8.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.