Tesla Fleet API library for Python
Project description
Tesla Fleet API
Tesla Fleet API is a Python library that provides an interface to interact with Tesla's Fleet API, including signed commands and encrypted local Bluetooth (BLE) communication. It also supports interactions with Teslemetry and Tessie services.
Features
- Fleet API for vehicles
- Fleet API for energy sites
- Fleet API with signed vehicle commands
- Bluetooth for vehicles
- Teslemetry integration
- Tessie integration
Installation
You can install the library using pip:
pip install tesla-fleet-api
Usage
Authentication
The TeslaFleetOAuth
class provides methods that help with authenticating to the Tesla Fleet API. Here's a basic example:
import asyncio
import aiohttp
from tesla_fleet_api import TeslaFleetOAuth
async def main():
async with aiohttp.ClientSession() as session:
oauth = TeslaFleetOAuth(
session=session,
client_id="<client_id>",
client_secret="<client_secret>",
redirect_uri="<redirect_uri>",
)
# Get the login URL and navigate the user to it
login_url = oauth.get_login_url(scopes=["openid", "email", "offline_access"])
print(f"Please go to {login_url} and authorize access.")
# After the user authorizes access, they will be redirected to the redirect_uri with a code
code = input("Enter the code you received: ")
# Exchange the code for a refresh token
await oauth.get_refresh_token(code)
print(f"Access token: {oauth.access_token}")
print(f"Refresh token: {oauth.refresh_token}")
# Dont forget to store the refresh token so you can use it again later
asyncio.run(main())
Fleet API for Vehicles
The TeslaFleetApi
class provides methods to interact with the Fleet API for vehicles. Here's a basic example:
import asyncio
import aiohttp
from tesla_fleet_api import TeslaFleetApi
from tesla_fleet_api.exceptions import TeslaFleetError
async def main():
async with aiohttp.ClientSession() as session:
api = TeslaFleetApi(
access_token="<access_token>",
session=session,
region="na",
)
try:
data = await api.vehicles.list()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
For more detailed examples, see Fleet API for Vehicles.
Fleet API for Energy Sites
The EnergySites
class provides methods to interact with the Fleet API for energy sites. Here's a basic example:
import asyncio
import aiohttp
from tesla_fleet_api import TeslaFleetApi
from tesla_fleet_api.exceptions import TeslaFleetError
async def main():
async with aiohttp.ClientSession() as session:
api = TeslaFleetApi(
access_token="<access_token>",
session=session,
region="na",
)
try:
energy_sites = await api.energySites.list()
print(energy_sites)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
For more detailed examples, see Fleet API for Energy Sites.
Fleet API with Signed Vehicle Commands
The VehicleSigned
class provides methods to interact with the Fleet API using signed vehicle commands. Here's a basic example:
import asyncio
import aiohttp
from tesla_fleet_api import TeslaFleetApi
from tesla_fleet_api.tesla.vehicle.signed import VehicleSigned
from tesla_fleet_api.exceptions import TeslaFleetError
async def main():
async with aiohttp.ClientSession() as session:
api = TeslaFleetApi(
access_token="<access_token>",
session=session,
region="na",
)
try:
vehicle = VehicleSigned(api, "<vin>")
data = await vehicle.wake_up()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
For more detailed examples, see Fleet API with Signed Vehicle Commands.
Bluetooth for Vehicles
The TeslaBluetooth
class provides methods to interact with Tesla vehicles using Bluetooth. Here's a basic example:
import asyncio
from bleak import BleakScanner
from tesla_fleet_api import TeslaBluetooth
async def main():
scanner = BleakScanner()
devices = await scanner.discover()
for device in devices:
if TeslaBluetooth().valid_name(device.name):
print(f"Found Tesla vehicle: {device.name}")
asyncio.run(main())
For more detailed examples, see Bluetooth for Vehicles.
Teslemetry
The Teslemetry
class provides methods to interact with the Teslemetry service. Here's a basic example:
import asyncio
import aiohttp
from tesla_fleet_api import Teslemetry
from tesla_fleet_api.exceptions import TeslaFleetError
async def main():
async with aiohttp.ClientSession() as session:
api = Teslemetry(
access_token="<access_token>",
session=session,
)
try:
data = await api.vehicles.list()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
For more detailed examples, see Teslemetry.
Tessie
The Tessie
class provides methods to interact with the Tessie service. Here's a basic example:
import asyncio
import aiohttp
from tesla_fleet_api import Tessie
from tesla_fleet_api.exceptions import TeslaFleetError
async def main():
async with aiohttp.ClientSession() as session:
api = Tessie(
access_token="<access_token>",
session=session,
)
try:
data = await api.vehicles.list()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
For more detailed examples, see Tessie.
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.
Source Distribution
Built Distribution
File details
Details for the file tesla_fleet_api-1.2.2.tar.gz
.
File metadata
- Download URL: tesla_fleet_api-1.2.2.tar.gz
- Upload date:
- Size: 100.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
1bf68c575f8e00ecf2bc55a6bba2c82e8f845d5f59a101f78b10909a2c77fb2e
|
|
MD5 |
e521aeca6f6c8c891f66e43127c19e77
|
|
BLAKE2b-256 |
b71a5a2be18492b43705a801a8df6389e52e377ee02894dcea2358ba4a2cd559
|
Provenance
The following attestation bundles were made for tesla_fleet_api-1.2.2.tar.gz
:
Publisher:
python-publish.yml
on Teslemetry/python-tesla-fleet-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
tesla_fleet_api-1.2.2.tar.gz
-
Subject digest:
1bf68c575f8e00ecf2bc55a6bba2c82e8f845d5f59a101f78b10909a2c77fb2e
- Sigstore transparency entry: 273978852
- Sigstore integration time:
-
Permalink:
Teslemetry/python-tesla-fleet-api@4141a44bca2df7f18287ff567353b136d7e8c776
-
Branch / Tag:
refs/tags/v1.2.2
- Owner: https://github.com/Teslemetry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
python-publish.yml@4141a44bca2df7f18287ff567353b136d7e8c776
-
Trigger Event:
push
-
Statement type:
File details
Details for the file tesla_fleet_api-1.2.2-py3-none-any.whl
.
File metadata
- Download URL: tesla_fleet_api-1.2.2-py3-none-any.whl
- Upload date:
- Size: 120.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
9284fce91d794743f25f96e72b1c5dd2c77b950abf92368358dbbace33f09bab
|
|
MD5 |
b8e0b2f76b647920d59ca81932df3dba
|
|
BLAKE2b-256 |
b7ad88fad6fe5e6a01e0d880a76b197fd0b81656144007811017ea553767f521
|
Provenance
The following attestation bundles were made for tesla_fleet_api-1.2.2-py3-none-any.whl
:
Publisher:
python-publish.yml
on Teslemetry/python-tesla-fleet-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
tesla_fleet_api-1.2.2-py3-none-any.whl
-
Subject digest:
9284fce91d794743f25f96e72b1c5dd2c77b950abf92368358dbbace33f09bab
- Sigstore transparency entry: 273978858
- Sigstore integration time:
-
Permalink:
Teslemetry/python-tesla-fleet-api@4141a44bca2df7f18287ff567353b136d7e8c776
-
Branch / Tag:
refs/tags/v1.2.2
- Owner: https://github.com/Teslemetry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
python-publish.yml@4141a44bca2df7f18287ff567353b136d7e8c776
-
Trigger Event:
push
-
Statement type: