Skip to content

Open-source Python SDK for Ford vehicles connected with Sync Connect (Ford Pass)

License

Notifications You must be signed in to change notification settings

safehome-jdev/connectedCar

This branch is 2 commits behind ianjwhite99/connected-car-python-sdk:stable.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2a021ee · Nov 4, 2022

History

23 Commits
Dec 22, 2021
Nov 4, 2022
Dec 24, 2021
Dec 26, 2021
Nov 4, 2022
Dec 22, 2021
Dec 22, 2021
Dec 22, 2021
Oct 25, 2022
Dec 22, 2021
Dec 24, 2021

Repository files navigation

ConnectedCar Python SDK Logo

The ConnectedCar Python SDK is an open-source, python package that provides the ability to send commands to your Ford Sync Connect connected vehicle.

Installation PyPI version

python3 -m pip install connectedcar

Requirements

  • To make requests to a vehicle, the end user must have signed up for an account using Ford Pass. These credentials will be used to authenticate your requests.

Getting Started

Import the ConnectedCar SDK

import connectedcar

Create a new connectedcar client

  • Note the default ConnectedCar client_id is 9fb503e0-715b-47e8-adfd-ad4b7770f73b
client = connectedcar.AuthClient('9fb503e0-715b-47e8-adfd-ad4b7770f73b', None, None, None, 'US') # Region argument is only required if you live outside the United States.
  • Note: If your region is outside of the US you can pass different region parameters. Regions: (US, CA, EU, AU)

Use client.get_user_access_token() to exchange your user credentials for an access object. To make any vehicle data request to the Ford Sync Connect API, you'll need to give the SDK a valid access token.

access = client.get_user_access_token('<username>', '<password>')

This access object will look like this:

{
  "access_token": "...",
  "token_type": "Bearer",
  "expiration": "2021-03-01T18:04:25+00:00",
  "refresh_token": "...",
  "refresh_expiration": "2021-03-02T18:03:25+00:00",
  "expires_in": "..."
}

Access tokens will expire every 2 hours, so you'll need to constantly refresh them by calling client.exchange_refresh_token()

refreshToken = client.exchange_refresh_token(access['refresh_token'])

With your access token in hand, use connectedcar.User() to get a User object representing the user.

user = connectedcar.User(access['access_token'], "US") # Region argument is only required if you live outside the United States.

Use user.vehicles() to return an array of all the vehicles associated with a users account. The response will include the vehicle vin.

vehicles = user.vehicles()

vehicleList = [] # Array of vehicles

for userVehicle in vehicles: # For each user vehicle
    vehicleList.append(userVehicle['VIN'])

Now with a vehicle vin in hand, use connectedcar.Vehicle() to get a Vehicle object representing the user's vehicle.

currentVehicle = connectedcar.Vehicle(vehicleList[0], access['access_token'], "US") # Region argument is only required if you live outside the United States.

Now you can ask the car to do things, or ask it for some data! For example:

currentVehicle.start()

Examples & Documentation

For more examples on what you can do with Sync Connected car, see the examples folder or take a peek at the documentation.

Funding & Support

If you are interested in supporting the development of my projects check out my patreon or buy me a coffee.

Disclaimer

THIS CODEBASE IS NOT ENDORSED, AFFILIATED, OR ASSOCIATED WITH FORD, FOMOCO OR THE FORD MOTOR COMPANY.

About

Open-source Python SDK for Ford vehicles connected with Sync Connect (Ford Pass)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%