A simple API client for Pod Point (https://pod-point.com) aimed at home users
Project description
Pod Point Client
Unofficial API client for Pod Point with a focus on home users.
Installation
pip install podpointclient
Usage
The Pod Point Client supports the following methods:
Method | Description |
---|---|
async_get_pods() |
Get all pods from a user's account - Returns a list of Pod objects. |
async_get_pod(pod_id=1234) |
Gets an individual pod - Returns a single Pod . NOTE: The Pod Point API does not support a single-pod return so this method gets all pods and filters. |
async_set_schedule(enabled=False, pod=pod) |
Updates a pod with a week of schedules that will enable or disable charging - See setting charging schedules for more information on how this works. |
async_get_charges(per_page=5, page=2) |
Get charges for a user - Returns a list of Charge objects. per_page can be 'all', or a number. Can get additional pages with page attribute. |
Example
The below walks through a common scenario:
- Get all pods
- Updating the schedule of an individual pod
- Confirm that it worked
PodPointClient
is async by default so the below example assumes you are running it within an async function.
from podpointclient import PodPointClient
# Create a client
client = PodPointClient(username="test@example.com", password="passw0rd!1")
# Get all pods for a user
pods = await client.async_get_pods()
# Select one to update schedules for
pod = pods[0]
# Update schedule to disabled (allow charging at any time)
await client.async_set_schedule(enabled=False, pod=pod)
# Get just that pod
pod = await client.async_get_pod(pod_id=pod.id)
# Check if the schedule is disabled
schedule_status = pod.charge_schedules[0].is_active
print(schedule_status)
Setting charging schedules
NOTE: According to Pod Point, schedules can take up to 5 minutes to be recognised by a device. This applies to both updating of a schedule affecting a device, and the device recognising that it is active/inactive due to entering/exiting a schedule window.
Currently this client supports setting the same schedule across all days for the week. By default it is designed to be used as an on/off switch for charging and creates a schedule lasting 1 second, from 00:00:00 - 00:00:01.
Due to the delay in pods recognising that they are in/out of a schedule this realistically means charging is turned off when this schedule is enabled.
You are able to pass a start_time and end_time when setting schedules but these are set for all days and are in-day only. By which I mean passing start_time="18:00"
and end_time="00:15"
will fail as 00:15
is before the start time.
Contributions are welcome!
If you want to contribute to this please read the Contribution guidelines.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.