/pyeasee

Easee EV charger API python library

Primary LanguageHTMLMIT LicenseMIT

Maintenance Easee library

Buy me a coffee

Easee EV Charger library

This library is an async thin wrapper around Easee's Rest API

Installation

You can install the libray from PyPI:

pip install pyeasee

The library is tested on Python 3.7 and Python 3.8

Command line tool

Run python -m pyeasee -h for help.

Usage of the library

Docs

Read the API documentation here

Small example

Save the example to a file and run it like this: python3 example.py Username is the phone number that was used to register the Easee account with country code. E.g. +46xxxxxxxxx.

import asyncio
import sys
from pyeasee import Easee

async def async_main():

    if len(sys.argv) < 3:
        print(f"Usage: {sys.argv[0]} <username> <password>")
        return
        
    print(f"Logging in using: {sys.argv[1]} {sys.argv[2]}")
    easee = Easee(sys.argv[1], sys.argv[2])

    sites = await easee.get_sites()
    for site in sites:
        print(f"Site {site.name} ({site.id})")
        equalizers = site.get_equalizers()
        for equalizer in equalizers:
            print(f"  Equalizer: {equalizer.name} ({equalizer.id})")
        circuits = site.get_circuits()
        for circuit in circuits:
            print(f"  Circuit {circuit.id}")
            chargers = circuit.get_chargers()
            for charger in chargers:
                state = await charger.get_state()
                print(f"    Charger: {charger.name} ({charger.id}) status: {state['chargerOpMode']}")

    await easee.close()

asyncio.run(async_main())

See also __main__.py for a more complete usage example.

Development

This project uses black for code formatting and flake8 for linting. To autoformat and run lint run

make lint