Skip to main content

Python Client for the ENSEK API (http://www.ensek.co.uk/)

Project description


ENSEK
=======

|PyPI| |Python Versions| |Build Status|

🐍 Python Client for the ENSEK API (http://www.ensek.co.uk/)
This client does not implement all the features of the API, pull requests are very welcome to expand functionality.

Installation
------------

To install ensek, simply:

.. code:: bash

pip install ensek

How To Use
----------

Initialise the client
~~~~~~~~~~~~~~~~~~~~~

.. code:: python

from ensek import Ensek
client = Ensek(
api_url='https://api.usio.ignition.ensek.co.uk/',
api_key='fill_this_in',
)

Available methods
~~~~~~~~~~~~~~~~~

**Get an account by id**

``client.get_account(account_id=123)``

**Get account settings by id**

``client.get_account_settings(account_id=123)``

**Get account live balances**

``client.get_live_balances(account_id=123)``

``client.get_live_balances_detailed(account_id=123)``

**Get tariffs for an account by id**

``client.get_account_tariffs(account_id=123)``

**Get meter points for an account by id**

``client.get_meter_points(account_id=123)``

**Get the account id currently associated with an MPAN core id or MPRN**

``client.get_account_for_meter_point(meter_point_id='9910000001507')``

**Get the PES Area for a postcode** (`<http://www.energybrokers.co.uk/electricity/PES-Distributor-areas.htm>`_)

``client.get_region_id_for_postcode(postcode='se14yu')``

**Get gas utility information for a MPRN (meter point reference number)**

``client.get_gas_utility(mprn='3226987202')``

**Get electricity utility information for a MPAN CORE ID (meter point administration number)**

``client.get_electricity_utility(mpan_core_id='3226987202')``

**Create a meter reading**

``client.create_meter_reading(account_id=1507, source='SMART', meter_point_id=1597, register_id=1496, value=2.0, timestamp=datetime(2018, 7, 24, 13, 49, 34, 661562, tzinfo=timezone.utc))``

**Get readings for a meter point**

``client.get_meter_point_readings(meter_point_id=1597)``

**Get all customer account ids**

``client.get_all_account_ids()``

**Get addresses at a postcode**

``client.get_addresses_at_postcode(postcode='se14yu')``

**Get account attributes**

```python
client.get_account_attributes(account_id=1597)
```

**Update account attribute**

```python
client.update_account_attribute(
account_id=1597,
name='PaymentType',
value='some-value',
type='string',
)
```

Note: For each client method:

- If API response is 404, method will raise ``LookupError``.
- If API response is between 400 and 499, method will raise ``ValueError``.
- For any other bad status code ``EnsekError`` will raise.


Requirements
------------

::

1. Python 3.6+
2. See requirements.txt

Running the tests
-----------------

.. code:: bash

pip install -r requirements-test.txt
pytest

Releasing to PyPI
-----------------

.. code:: bash

pip install zest.releaser
fullrelease

.. |PyPI| image:: https://img.shields.io/pypi/v/ensek.svg
:target: https://pypi.python.org/pypi/ensek
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/ensek.svg
:target: https://pypi.python.org/pypi/ensek
.. |Build Status| image:: https://travis-ci.org/Usio-Energy/ENSEK.png?branch=master
:target: https://travis-ci.org/Usio-Energy/ensek


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

ENSEK-1.7.0.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

ENSEK-1.7.0-py2.py3-none-any.whl (4.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ENSEK-1.7.0.tar.gz.

File metadata

  • Download URL: ENSEK-1.7.0.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5

File hashes

Hashes for ENSEK-1.7.0.tar.gz
Algorithm Hash digest
SHA256 2a7e68123b852140a987fe9de55b9d9f842982bf9557aa112f414ab5ff0c0075
MD5 61261728f166d076825ad356fb5599b4
BLAKE2b-256 6f5f5e96761ca054d980bfa68177a014561bdfd4f981c9a6fcb147851cebc8fe

See more details on using hashes here.

File details

Details for the file ENSEK-1.7.0-py2.py3-none-any.whl.

File metadata

  • Download URL: ENSEK-1.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5

File hashes

Hashes for ENSEK-1.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a5258ae5bb649bc007fa50f02e507fbe4f8b278f0b5a4eb1bfed1fb52eb8f3ad
MD5 b8f10ec4e07406e685148d794b6eee3e
BLAKE2b-256 d70856abdd5366dfd8c582e8eca38d6ecf221fd32f1449e616253da90e8100bb

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