Code Monkey home page Code Monkey logo

teslaclient's Introduction

#Tesla Model S Rest API

A Java implementation of the client side interface to the Tesla Model S API documented at:

Note: This version of the library corresponds to the "owner" API from Tesla which came about in the same timeframe as version 6 of the car software. This version is completely incompatible with the old Tesla API and the old version of this library. If you want to continue to use the older library, please refer to tag 0.5.

This is unofficial documentation of the Tesla Model S REST API used by the iOS and Android apps. It features functionality to monitor and control the Model S remotely. The documents are updated as new information is found.

This software and documentation do not come from Tesla Motors Inc.

Be careful when using this software as it can lock and unlock your car as well as control various functions relating to the charging system, sun roof, lights, horn, and other subsystems of the car.

Be careful not to send your login and password to anyone other than Tesla or you are giving away the authentication details required to control your car.

#Disclaimer

Use these programs at your own risk. The authors do not guaranteed the proper functioning of these applications. This code attempts to use the same interfaces used by the official Tesla phone apps. However, it is possible that use of this code may cause unexpected damage for which nobody but you are responsible. Use of these functions can change the settings on your car and may have negative consequences such as (but not limited to) unlocking the doors, opening the sun roof, or reducing the available charge in the battery.

#Contributors Joe Pasqua

Greyson Fischer

Preparing your build environment (gradle)

The following command will resolve and download all dependencies, set up the classpath, and create the JAR file. This allows the Tesla project to be included in other gradle builds in the usual way (using settings.gradle)

    > gradle assemble

#Preparing your build environment (Ant/NetBeans)

This project assumes a directory structure that looks like this:

Tesla					-- Overall container that may include other Tesla related projects
	TeslaClient			-- This project
		build
		src
ThirdParty				-- A repository for third party library dependencies
	apache
		commons-codec-1.10
		commons-lang3-3.3.2
		commons-logging-1.1.3
	geocoder
	google-gson-2.2.4
	resty

The Tesla/TeslaClient directory corrsponds to this github project (TeslaClient.git).

The following commands will create and populate the hierarchy. It assumes that:

  • $ROOTis where the Tesla and ThirdParty directories will reside

Be sure to either set these variables or adapt the commands below:

cd $ROOT
mkdir $ROOT/Tesla
mkdir $ROOT/ThirdParty
mkdir $ROOT/ThirdParty/apache
mkdir $ROOT/ThirdParty/geocoder-java
mkdir $ROOT/ThirdParty/resty

# Download the TeslaClient repo
cd $ROOT/Tesla
git clone https://github.com/jpasqua/TeslaClient.git

# Download the apache libraries
cd $ROOT/ThirdParty/apache
curl -s -O http://www.eng.lsu.edu/mirrors/apache/commons/codec/binaries/commons-codec-1.10-bin.zip
unzip commons-codec-1.10-bin.zip
rm commons-codec-1.10-bin.zip

curl -s -O http://mirror.cc.columbia.edu/pub/software/apache//commons/lang/binaries/commons-lang3-3.3.2-bin.zip
unzip commons-lang3-3.3.2-bin.zip
rm commons-lang3-3.3.2-bin.zip

curl -s -O http://apache.mirrors.hoobly.com//commons/logging/binaries/commons-logging-1.1.3-bin.zip
unzip commons-logging-1.1.3-bin.zip
rm commons-logging-1.1.3-bin.zip

# Download the geocoder library
cd $ROOT/ThirdParty/geocoder-java
curl -s -O http://repo1.maven.org/maven2/com/google/code/geocoder-java/geocoder-java/0.15/geocoder-java-0.15.jar

# Download the gson library
cd $ROOT/ThirdParty
curl -s -O http://google-gson.googlecode.com/files/google-gson-2.2.4-release.zip
unzip google-gson-2.2.4-release.zip
rm google-gson-2.2.4-release.zip

# Download the resty library
cd $ROOT/ThirdParty
cd resty
curl -s -O http://repo2.maven.org/maven2/us/monoid/web/resty/0.3.2/resty-0.3.2.jar

#Tests and Samples There are two test programs included in the project: BasicTest and Interactive. The former simply runs through a sequence of functions in the client library to demonstrate that it is connecting and working. The second presents an interactive shell that allows the user to issue the various commands that are available through the client library.

To use either of these programs you must have active credentials for a Tesla vehicle that has remote access enabled. If you have more than one vehicle, you may select which vehicle to use in the Interactive program. BasicTest will always use the first vehicle returned by the Tesla portal.

teslaclient's People

Contributors

jpasqua avatar greyson avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.