nordicopen / pyeasee

Easee EV charger API python library
MIT License
39 stars 12 forks source link

Maintenance

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.12

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

Attribution, support and cooperation

This project was started by the late Niklas Fondberg, @fondberg. The repository has been inherited by his collaborators.