Skip to main content

A simple API client for Pod Point (https://pod-point.com) aimed at home users

Project description

Pod Point Client

GitHub Release GitHub Activity License

Project Maintenance BuyMeCoffee

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_credentials_verified() Verify that the credentials we have can pull atleast one Pod - Returns bool.
async_get_all_pods(includes=[]) Get all pods from a user's account - Returns a list of Pod objects. Optional includes can be used to change what will be returned. Defaults to all data.
async_get_pods(perpage=5, page=2, includes=[]) Get pods from a user's account - Returns a list of Pod objects. perpage can be 'all', or a number. Can get additional pages with page attribute. includes is a list of additional information pulled for the Pod. Pass an empty list to includes for minimal information or None for full data (defaults to None).
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_all_charges() Get all charges from a user's account - Returns a list of Charge objects.
async_get_charges(perpage=5, page=2) Get charges for a user - Returns a list of Charge objects. perpage can be 'all', or a number. Can get additional pages with page attribute.
async_get_firmware(pod=_Pod_) Get firmware information for a pod - Returns a list of Firmware objects.
async_get_user(includes=[]) Get current user account information - Returns a User object including account balance, units and vehicles. includes is a list of additional information pulled for a User. Pass an empty list to includes for minimal information or None for full data (defaults to None)
async_get_charge_override(pod=_Pod_) Get the current charge override for a pod - Returns a ChargeOverride object.
async_set_charge_override(pod=_Pod_, enabled=False, start_time=None, end_time=None) Set a charge override for a pod - Returns a ChargeOverride object.
async_delete_charge_override(pod=_Pod_) Delete a charge override for a pod - Returns a boolean.
async_set_charge_mode_manual(pod=_Pod_) Set a pod to manual charge mode - Returns a Pod object.
async_set_charge_mode_smart(pod=_Pod_) Set a pod to smart charge mode - Returns a Pod object.
async_get_charge_mode(pod=_Pod_) Get the current charge mode for a pod - Returns a ChargeMode object.
async_get_connection_status(pod=_Pod_) Get the current connection status for a pod - Returns a ConnectionStatus object.

Example

Included in the project is example.py which walks through a common scenario:

  1. Get all pods
  2. Get firmware and serial number data for one pod
  3. Updating the schedule of an individual pod
  4. Confirm that it worked
  5. Get information from the last charge

You must provide your email address and password to the script as detailed below:

python3 example.py --email PODPOINTEMAIL --password PODPOINTPASSWORD

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

This version

1.6.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podpointclient-1.6.1.tar.gz (21.5 kB view details)

Uploaded Source

File details

Details for the file podpointclient-1.6.1.tar.gz.

File metadata

  • Download URL: podpointclient-1.6.1.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for podpointclient-1.6.1.tar.gz
Algorithm Hash digest
SHA256 6ccde9bdd8b8d16d605da5bb27e6e99f5783e93c6a8254322828abc1a977ad6d
MD5 2235602930398de3e952afbcb436020e
BLAKE2b-256 59eb515026aeb7034900dcc964bfc4a93c03234dad05bb2053a3dabefc7585cb

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