Tesla Fleet API library for Python
Project description
Tesla Fleet Api
Python library for Tesla Fleet API and Teslemetry.
Currently does not support the end to end encrypted telemetry or command API.
Based on Tesla Developer documentation.
TeslaFleetApi
This is the base class, however can also be used directly if you have a valid user access_token.
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.vehicle.list()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
TeslaFleetOAuth
This extends TeslaFleetApi to support OAuth, and requires a client_id, and either a refresh_token or initial authentication code.
from tesla_fleet_api import TeslaFleetOAuth
from tesla_fleet_api.exceptions import TeslaFleetError
import json
async def main():
with open("auth.json", "r") as f:
auth = json.load(f)
async with aiohttp.ClientSession() as session:
api = TeslaFleetOAuth(
session,
client_id=<client_id>,
access_token=auth["access_token"],
refresh_token=auth["refresh_token"],
expires=auth["expires"],
region="na",
)
try:
data = await api.vehicle.list()
print(data)
except TeslaFleetError as e:
print(e)
with open("auth.json", "w") as f:
json.dump(
{
"access_token": api.access_token,
"refresh_token": api.refresh_token,
"expires": api.expires,
},
f,
)
asyncio.run(main())
Teslemetry
This extends TeslaFleetApi to send requests through Teslemetry, which manages all aspects of Tesla OAuth. This class only requires an access_token from the Teslemetry console.
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.vehicle.list()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
Tessie
This extends TeslaFleetApi to send requests through Tessie, which manages all aspects of Tesla OAuth. This class only requires an access_token from Tessie.
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.vehicle.list()
print(data)
except TeslaFleetError as e:
print(e)
asyncio.run(main())
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-0.8.0.tar.gz
.
File metadata
- Download URL: tesla_fleet_api-0.8.0.tar.gz
- Upload date:
- Size: 51.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d17d338c9cd8ae02f039f46dee777a40a66f83bdddf65505b8b8d661c9483c |
|
MD5 | e7f41a416dab1727516230ac65893493 |
|
BLAKE2b-256 | e23a00fd9c8a3d38a23a0fe3c8ac98f3331d67a933179cc9ab1abaee8f64fcf5 |
Provenance
File details
Details for the file tesla_fleet_api-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: tesla_fleet_api-0.8.0-py3-none-any.whl
- Upload date:
- Size: 63.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69ff1ef52af2be865bb633179bb0ffbe18f30ae43c208956b2a9e70312b8162b |
|
MD5 | ea2d122f268dbe05789a3c0825fd0c1b |
|
BLAKE2b-256 | ab59dda9877d9b62de42caa38dbd17311f099f4c604ec952cb9ee59cfbbe5f9d |