You can install latest stable version from PyPI:
pip3 install myTesla
import myTesla
my_model_s = myTesla.connect('test@example.com', '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",
)
The details of these parameters can be found on this page See https://tesla-api.timdorr.com/api-basics/authentication
email
: Your mytesla usernamepassword
: Your mytesla passwordvehicle_index
: Index of your vehicle, if you have multiple vehiclesaccess_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#responsebase_url
: base_url is taken from https://timdorr.docs.apiary.io/#reference/authentication/tokens/get-an-access-tokenOWNERAPI_CLIENT_ID
: OWNERAPI_CLIENT_ID is taken from https://tesla-api.timdorr.com/api-basics/authentication#post-oauth-token-grant_type-passwordOWNERAPI_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 vehiclesmyTesla.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 standardmyTesla.connect.charge_max_range
: Set the charge mode to max rangemyTesla.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 hornmyTesla.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)
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.