Code repository: python-my-tesla
I was excited to create a Tesla Python library that would allow others to easily interface with the Tesla API. Finally, I released the library to the public and it was an instant hit! People were able to use it to do all sorts of of stuffs.
Some stories posted by a bloggers on medium:
Download stats as of :
PyPI link https://pypi.org/project/mytesla Total downloads 9,197 Total downloads - 30 days 217 Total downloads - 7 days 51
You can install latest stable version from PyPI:
pip3 install myTesla
import myTesla my_model_s = myTesla.connect('firstname.lastname@example.org', 'MySecurePassword') charge_state = my_model_s.charge_state() door_lock = my_model_s.door_lock() my_model_s.honk_horn() print(charge_state) print(door_lock)
This program was build using API documentation listed on https://tesla-api.timdorr.com/. The functions closely follow the API documentation. Please see this page for detailed information of the function parameters.
In order to initiate connection, the following information is needed.
The arguements for initiating the connection is the following:
def __init__(self, email='', password='', vehicle_index=0, base_url="https://owner-api.teslamotors.com", access_token=None, tesla_backend_token_response=None, ownerapi_client_id="81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384", ownerapi_client_secret="c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3", )
Connection argument description descriptioons:
The details of these parameters can be found on this page See https://tesla-api.timdorr.com/api-basics/authentication
password: Your mytesla password
vehicle_index: Index of your vehicle, if you have multiple vehicles
access_token: # Access token can be used instead of email and password.
tesla_backend_token_response: # A backend response can be used instead of email/password or accesss token. The format of the backend response is documented here https://tesla-api.timdorr.com/api-basics/authentication#response
base_url: base_url is taken from https://timdorr.docs.apiary.io/#reference/authentication/tokens/get-an-access-token
OWNERAPI_CLIENT_ID: OWNERAPI_CLIENT_ID is taken from https://tesla-api.timdorr.com/api-basics/authentication#post-oauth-token-grant_type-password
OWNERAPI_CLIENT_SECRET: OWNERAPI_CLIENT_SECRET is taken from https://tesla-api.timdorr.com/api-basics/authentication#post-oauth-token-grant_type-password
myTesla.connect.get_access_token: Returns access token information that could be used to authenticate instead of email/password.
myTesla.connect.select_vehicle: Switches car based on index/vin/or vehicle_id if you have multiple vehicle on your account.
myTesla.connect.vehicles: Retrieve a list of your owned vehicles
myTesla.connect.mobile_enabled: Determines if mobile access to the vehicle is enabled.
myTesla.connect.charge_state: Returns the state of charge in the battery.
myTesla.connect.climate_state: Returns the current temperature and climate control state.
myTesla.connect.drive_state: Returns the driving and position state of the vehicle.
myTesla.connect.gui_settings: Returns various information about the GUI settings of the car, such as unit format and range display.
myTesla.connect.vehicle_state: Returns the vehicle’s physical state, such as which doors are open.
myTesla.connect.wake_up: Wakes up the car from the sleep state. Necessary to get some data from the car.
myTesla.connect.set_valet_mode: Sets valet mode on or off with a PIN to disable it from within the car.
myTesla.connect.reset_valet_pin: Resets the PIN set for valet mode, if set.
myTesla.connect.charge_port_door_open: Opens the charge port.
myTesla.connect.charge_standard: Set the charge mode to standard
myTesla.connect.charge_max_range: Set the charge mode to max range
myTesla.connect.set_charge_limit:Set the charge limit to a custom percentage.
myTesla.connect.charge_start: Start charging. Must be plugged in, have power available, and not have reached your charge limit.
myTesla.connect.charge_stop: Stop charging. Must already be charging.
myTesla.connect.honk_horn: Honk horn
myTesla.connect.door_unlock: Unlock the car’s doors.
myTesla.connect.door_lock: Lock the car doors.
myTesla.connect.set_temps: Set the temperature target for the HVAC system.
myTesla.connect.auto_conditioning_start: Start the climate control system. Will cool or heat automatically, depending on set temperature.
myTesla.connect.auto_conditioning_stop: Stop the climate control system.
myTesla.connect.sun_roof_control: Controls the car’s panoramic roof, if installed.
myTesla.connect.remote_start_drive: Start the car for keyless driving. Must start driving within 2 minutes of issuing this request.
myTesla.connect.trunk_open: Open the trunk or frunk. Call the endpoint again to close (this only works on rear powered trunks)
Legal Agreement/ Disclaimer
This program is provided as is. This program is not supported or endorsed by Tesla Motors. By using this software, you agree to not hold me (Zobair Shahadat ) and any of the contributers liable for anything.