GitHub

Blue Current Api

Documentation Status

Python wrapper for the blue current api

The library is an asyncio-driven library that interfaces with the Websocket API provided by Blue Current. This was made for the Blue Current Home Assistant integration.

Usage

Requirements

  • Python 3.11 or newer
  • websockets

Installation

pip install bluecurrent-api

Api token

Using this library requires a Blue Current api token. You can generate one in the Blue Current driver portal.

Example

from bluecurrent_api import Client
import asyncio
async def main():
    api_token = 'api_token'
    client = Client()
    # data receiver
    async def on_data(data):
        print('received: ', data)
    # validate and set token.
    await client.validate_api_token(api_token)
    # example requests
    async def on_open():
        await client.get_charge_points()
        await asyncio.sleep(10)
        await client.disconnect()
    # connect and send requests
    await client.connect(on_data, on_open)
asyncio.run(main())

Implemented methods


The methods validate_token and get_email are stand-alone and are to be used before connecting to the websocket with connect().

await validate_token(api_token) -> str

  • Validates the given token.

await get_email() -> str

  • Returns the account's email.

await connect(receiver)

  • Connects to the websocket.
  • Calls get_charge_points and get_charge_cards when connection is established.

is_connected() -> bool

  • Returns if the client is connected

await wait_for_charge_points()

  • Waits until chargepoints are received.

get_next_reset_delta() -> TimeDelta

  • Returns the timedelta to the next request limit reset (00:00 Europe/Amsterdam).

await disconnect()

  • Stops the connection.

Data


await get_charge_points()

  • Gets the chargepoints

await get_charge_cards()

  • Returns the users charge cards.

await get_status(evse_id)

  • Gets the status from a chargepoint.

await get_settings(evse_id)

  • Gets the setting states from a chargepoint.

await get_grid_status(evse_id)

  • Gets the grid status from a chargepoint.

await get_user_override_currents_list()

  • Returns a list with current override values set by the user and the related scheduling data.

Settings


await set_linked_charge_cards_only(evse_id, value)

  • Sets set_linked_charge_cards_only.

await set_plug_and_charge(evse_id, value)

  • Sets set_plug_and_charge.

await block(evse_id, value)

  • Blocks or unblocks a charge point.

Actions


await reset(evse_id)

  • Resets the chargepoint.

await reboot(evse_id)

  • Reboots the chargepoint.

await start_session(evse_id card_uid)

  • Starts a charge session.

await stop_session(evse_id)

  • Stops a charge session.

await set_delayed_charging(evse_id, value)

  • Turns smart charging profile on/off and sets the profile to delayed charging.

await set_delayed_charging_settings(evse_id, days, start_time, end_time)

  • Sends the settings for the scheduling of the delayed charging profile.

await set_price_based_charging(evse_id, value)

  • Turns smart charging profile on/off and sets the profile to price based charging.

await set_price_based_settings(evse_id, expected_departure_time, expected_kwh, minimum_kwh)

  • Sends the settings for the price based charging profile.

await override_price_based_charging_profile(evse_id: str, value)

  • Overrides the settings set up by the price based charging profile and starts charging immediately.

await override_delayed_charging_profile(evse_id, value)

  • Overrides the timeout set by the delayed charging profile and starts charging immediately.

await set_user_override_current(payload)

  • Schedules an override of the electricity current that chargepoints are allowed to use when charging.

await clear_user_override_current(schedule_id)

  • Clears a previously set user override using the given schedule ID.

edit_user_override_current(schedule_id, payload)

  • Lets the user edit a scheduled override of the electricity current that chargepoints are allowed to use when charging.

Read the original on github.com ↗