aWATTar Client to analyse the energy market data
Project description
awattar
Installation
$ pip install awattar
This package is tested with Python 3.9, 3.10, 3.11
Command line
Use the command awattar --help and awattar fetch-prices --help to get more information.
$ awattar --help
Usage: awattar [OPTIONS] COMMAND [ARGS]...
Access aWATTar's energy prices API.
Options:
--country [DE|AT] the API's target country (either Germany or Austria),
default: AT
--help Show this message and exit.
Commands:
fetch-prices Fetch hourly energy prices
Command line example
$ awattar --country AT fetch-prices --day 2023-02-20
[
{
"start": "2023-02-20T00:00:00+01:00",
"end": "2023-02-20T01:00:00+01:00",
"price": 85.96,
"unit": "Eur/MWh",
"currency": "Eur",
"energy_unit": "MWh",
"price_per_kWh": 0.08596
},
...
]
Examples
from awattar.client import AwattarClient
print ('Connect to aWATTar')
client = AwattarClient('AT') # or DE for Germany
print ('Get marketdata from API')
data = client.request()
for item in data:
print(f'{item.start_datetime:%Y-%m-%d %H:%M:%S} - {item.end_datetime:%Y-%m-%d %H:%M:%S} - {(item.marketprice / 1000):.4f} EUR/kWh')
Output
Connect to aWATTar
Get marketdata from API
2020-08-11 13:00:00 - 2020-08-11 14:00:00 - 0.0350 EUR/kWh
2020-08-11 14:00:00 - 2020-08-11 15:00:00 - 0.0341 EUR/kWh
2020-08-11 15:00:00 - 2020-08-11 16:00:00 - 0.0340 EUR/kWh
2020-08-11 16:00:00 - 2020-08-11 17:00:00 - 0.0387 EUR/kWh
2020-08-11 17:00:00 - 2020-08-11 18:00:00 - 0.0417 EUR/kWh
2020-08-11 18:00:00 - 2020-08-11 19:00:00 - 0.0430 EUR/kWh
2020-08-11 19:00:00 - 2020-08-11 20:00:00 - 0.0465 EUR/kWh
2020-08-11 20:00:00 - 2020-08-11 21:00:00 - 0.0413 EUR/kWh
2020-08-11 21:00:00 - 2020-08-11 22:00:00 - 0.0400 EUR/kWh
2020-08-11 22:00:00 - 2020-08-11 23:00:00 - 0.0369 EUR/kWh
2020-08-11 23:00:00 - 2020-08-12 00:00:00 - 0.0309 EUR/kWh
Usage
Initialize Awattar Client
Currently only Austria and Germany are supported
client = AwattarClient('AT') # or DE for Germany
Get Market data
Get current Market data
data = client.request()
Get Market data from 2020-05-17
data = client.request(datetime.datetime(2020, 5, 17))
Get Market data between 2020-05-18 and 2020-05-19
data = client.request(datetime.datetime(2020, 5, 18), datetime.datetime(2020, 5, 19))
Analyse Market data
print ('Connect to aWATTar')
client = AwattarClient('AT')
print ('Get Market data from API')
client.request()
min_item = client.min()
print(f'Min: {min_item.start_datetime:%Y-%m-%d %H:%M:%S} - {min_item.end_datetime:%Y-%m-%d %H:%M:%S} - {(min_item.marketprice / 1000):.4f} EUR/kWh')
max_item = client.max()
print(f'Max: {max_item.start_datetime:%Y-%m-%d %H:%M:%S} - {max_item.end_datetime:%Y-%m-%d %H:%M:%S} - {(max_item.marketprice / 1000):.4f} EUR/kWh')
mean_item = client.mean()
print(f'Mean: {mean_item.start_datetime:%Y-%m-%d %H:%M:%S} - {mean_item.end_datetime:%Y-%m-%d %H:%M:%S} - {(mean_item.marketprice / 1000):.4f} EUR/kWh')
best_slot = client.best_slot(3)
if best_slot is None:
print("No slot found")
else:
print(f'Best slot 1: {best_slot.start_datetime:%Y-%m-%d %H:%M:%S} - {best_slot.end_datetime:%Y-%m-%d %H:%M:%S} - {(best_slot.marketprice / 1000):.4f} EUR/kWh')
best_slot = client.best_slot(1,datetime.datetime(2020, 10, 5, 0, 0, 0),datetime.datetime(2020, 10, 6, 3, 0, 0))
if best_slot is None:
print("No slot found")
else:
print(f'Best slot 2: {best_slot.start_datetime:%Y-%m-%d %H:%M:%S} - {best_slot.end_datetime:%Y-%m-%d %H:%M:%S} - {(best_slot.marketprice / 1000):.4f} EUR/kWh')
Output
Connect to aWATTar
Get Market data from API
Min: 2020-10-06 03:00:00 - 2020-10-06 04:00:00 - 0.0107 EUR/kWh
Max: 2020-10-05 19:00:00 - 2020-10-05 20:00:00 - 0.0544 EUR/kWh
Mean: 2020-10-05 17:00:00 - 2020-10-06 17:00:00 - 0.0349 EUR/kWh
Best slot 1: 2020-10-06 02:00:00 - 2020-10-06 05:00:00 - 0.0149 EUR/kWh
Best slot 2: 2020-10-06 02:00:00 - 2020-10-06 03:00:00 - 0.0190 EUR/kWh
Source code
The source code is currently available on Github: https://github.com/Gransi/awattar
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file awattar-0.8.1.tar.gz.
File metadata
- Download URL: awattar-0.8.1.tar.gz
- Upload date:
- Size: 27.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e33c64ece050f66672ab2724ee9a94895ad7cbe511e56a83ca868a140e0cb9b
|
|
| MD5 |
abafa1c3d88ae7dffeb0c93e7ebc4201
|
|
| BLAKE2b-256 |
59d1ee2a988061abadac29f3df2ea55254138bbb49c169f3c365a0134a0e2086
|
File details
Details for the file awattar-0.8.1-py3-none-any.whl.
File metadata
- Download URL: awattar-0.8.1-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73e576c309c980ea9ba3111819900bbc597dac9425f90514f341e71e1ff4c275
|
|
| MD5 |
a6ebea84c59cf4bd8af0afe95d7f7807
|
|
| BLAKE2b-256 |
6ce07cbada9567144795453892670d729d01d7e70dab25f2de410c6d66bf45d1
|