pyseasnve

An unofficial class to interact with the Seas-NVE API


Keywords
pyseasnve
License
GPL-3.0
Install
pip install pyseasnve==0.1.1

Documentation

PySeasNVE

Documentation Status

An unofficial class to interact (read-only) with the Seas-NVE API

You'll need to own an account over at https://seas-nve.dk/

Features

  • Current pricing & climate stats
  • Forecasts for pricing and climate stats
  • The next cheapest/greenest/mixed period (for any given intervals)

TODO:

  • Billing stats?
  • Long-term stats (i.e. weekly/monthly/yearly usage)
  • Possibility to set configuration values via the API

Usage

# Install
python3 -m pip install -U pyseasnve

# Login
>>> from pyseasnve import PySeasNVE
>>> seas = PySeasNVE('test@email.com', 'secretPassword')

# Current price + climate stats
>>> seas.current_price()
1.68 # DKK/kWh
>>> seas.current_green_energy()
75.68 # %
>>> seas.current_co2_intensity()
188 # gCO2eq/kWh

# Get the price & climate at some hour
>>> seas.price_at(9)
{'start_time': '2022-03-26T09:00:00', 'kwh_raw_price': 1.48, 'kwh_tax': 1.56, 'kwh_total': 3.04}
>>> seas.price_at("2022-03-26T18:00:00")
{'start_time': '2022-03-26T18:00:00', 'kwh_raw_price': 2.44, 'kwh_tax': 2.05, 'kwh_total': 4.49}

>>> seas.climate_at(26)
{'start_time': '2022-03-27T02:00:00', 'green_energy_percent': 68.7, 'co2_intensity': 251, 'consumption_breakdown_percent': {'biomass': 23.94, 'coal': 21.6, 'gas': 8.36, 'geothermal': 0.0, 'hydro': 1.7, 'nuclear': 7.22, 'oil': 0.0, 'solar': 2.83, 'wind': 33.0, 'unknown': 1.35}}

# Next two cheapest 4-hour intervals
>>> seas.cheapest_interval(4, 2)
[{'start_time': '2022-03-20T12:00:00', 'interval_hours': 4, 'interval_avg_kwh_price': 1.59, 'interval_avg_kwh_price_estimate': False, 'interval_avg_green_energy_percent': 75.68, 'interval_avg_green_energy_percent_estimate': False}, {'start_time': '2022-03-20T11:00:00', 'interval_hours': 4, 'interval_avg_kwh_price': 1.6, 'interval_avg_kwh_price_estimate': False, 'interval_avg_green_energy_percent': 75.68, 'interval_avg_green_energy_percent_estimate': False}]

# Next greenest 1-hour interval
>>> seas.greenest_interval(1, 1)
[{'start_time': '2022-03-20T12:00:00', 'interval_hours': 1, 'interval_avg_kwh_price': 1.57, 'interval_avg_kwh_price_estimate': False, 'interval_avg_green_energy_percent': 75.68, 'interval_avg_green_energy_percent_estimate': False}]

# Or simply use the "best" method, depending on your motivation in SEAS-NVE
>>> seas.best_interval()
[{'start_time': '2022-03-20T12:00:00', 'interval_hours': 1, 'interval_avg_kwh_price': 1.57, 'interval_avg_kwh_price_estimate': False, 'interval_avg_green_energy_percent': 75.68, 'interval_avg_green_energy_percent_estimate': False}, {'start_time': '2022-03-20T13:00:00', 'interval_hours': 1, 'interval_avg_kwh_price': 1.57, 'interval_avg_kwh_price_estimate': False, 'interval_avg_green_energy_percent': 75.68, 'interval_avg_green_energy_percent_estimate': False}, {'start_time': '2022-03-20T14:00:00', 'interval_hours': 1, 'interval_avg_kwh_price': 1.57, 'interval_avg_kwh_price_estimate': False, 'interval_avg_green_energy_percent': 75.68, 'interval_avg_green_energy_percent_estimate': False}]

You can access the forecasts directly aswell, to write you own wrapper code around it. If you find something is missing, please raise an issue or submit the code :-)

>>> seas.forecast_price()
# output not shown
>>> seas.forecast_climate()
# output not shown

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.