Interface to the Amber Electric API, allowing you to download current and forecast price, as well as download your historic usage.
Amber - An entirely new way to buy electricity
Amber is an Australian-based electricity retailer that pass through the real-time wholesale price of energy.
Because of Amber's wholesale power prices, you can save hundreds of dollars a year by automating high power devices like air-conditioners, heat pumps and pool pumps.
This Python library provides an interface to the API, allowing you to react to current and forecast prices, as well as download your historic usage.
- API version: 1.0
- Package version: 1.0.3
Python >= 3.6
Not an Amber customer yet? Join here: https://join.amber.com.au/signup
Once your account has been created, you need to create an API token
If the python package is hosted on a repository, you can install directly using:
pip install amberelectric
Setup and confirguration
# Import the library import amberelectric from amberelectric.api import amber_api # These are just for demo purposes... from pprint import pprint from datetime import date # Insert the API token you created at https://app.amber.com.au/developers configuration = amberelectric.Configuration( access_token = 'psk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ) # Create an API instance api = amber_api.AmberApi.create(configuration)
All the interesting functions require a site id, so find one of those first - they can be identified by the National Metering Identifier (NMI)
try: sites = api.get_sites() except amberelectric.ApiException as e: print("Exception: %s\n" % e)
This will return a List of Sites
The API allows you to fetch previous, current and forecast prices by day.
If no start_date or end_date is supplied, it default to the current day.
Note: If duration is 30, there will be 48 intervals per channel. A duration of 5 returns 288 intervals.
site_id = sites.id try: start_date = date(2021, 6, 1) end_date = date(2021, 6, 2) range = api.get_prices(site_id, start_date=start_date, end_date=end_date) today = api.get_prices(site_id) except amberelectric.ApiException as e: print("Exception: %s\n" % e)
You can also just ask for the current price
site_id = sites.id try: current = api.get_current_prices(site_id) except amberelectric.ApiException as e: print("Exception: %s\n" % e)
and the current price plus some number of previous and next intervals
site_id = sites.id try: current = api.get_current_price(site_id, next=4) # returns the current interval and the next 4 forecast intervasl except amberelectric.ApiException as e: print("Exception: %s\n" % e)
You can request your usage for a given day.
site_id = sites.id try: usage = api.get_usage(site_id, date(2021, 6, 1), date(2021, 6, 1)) except amberelectric.ApiException as e: print("Exception: %s\n" % e)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for amberelectric-1.0.4-py3-none-any.whl