Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timdorr/tesla-api
🚘 A Ruby gem and unofficial documentation of Tesla's JSON API for the Model S, 3, X, and Y.
https://github.com/timdorr/tesla-api
api car iot ruby tesla
Last synced: 2 days ago
JSON representation
🚘 A Ruby gem and unofficial documentation of Tesla's JSON API for the Model S, 3, X, and Y.
- Host: GitHub
- URL: https://github.com/timdorr/tesla-api
- Owner: timdorr
- License: mit
- Created: 2013-02-03T00:00:55.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-12-06T08:09:00.000Z (about 1 month ago)
- Last Synced: 2024-12-31T03:05:13.436Z (9 days ago)
- Topics: api, car, iot, ruby, tesla
- Language: Ruby
- Homepage: https://tesla-api.timdorr.com/
- Size: 986 KB
- Stars: 2,012
- Watchers: 131
- Forks: 536
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Referrals are back! Need a vehicle to test with? [Get a Tesla with free supercharging](http://ts.la/timothy8449)
Do you work at Tesla? Get in contact! I'd love to help with making this API official.
# Tesla JSON API
[View Documentation](https://tesla-api.timdorr.com/)
This is unofficial documentation of the Tesla JSON API used by the iOS and Android apps.
The API provides functionality to monitor and control the Model S (and future Tesla vehicles) remotely.
The project provides both a documentation of the API and a Ruby library for accessing it.> If any folks at Tesla are reading this, I'd love to help coordinate a developer program for your APIs. If there's any way I can be helpful, please feel free to get in contact. Also, I'd love to be in the beta firmware program :wink:
## Ruby Gem [![Gem Version](https://img.shields.io/gem/v/tesla_api.svg)](http://rubygems.org/gems/tesla_api) [![Build Status](https://img.shields.io/travis/timdorr/tesla-api/master.svg)](https://travis-ci.org/timdorr/tesla-api)
This gem provides a basic wrapper around the API to easily query and command the car remotely.
It also provides access to the streaming API and a means to process data coming from it.## Installation
Add this line to your application's Gemfile:
```ruby
gem 'tesla_api'
```Or install it yourself:
```sh
gem install tesla_api
```## Usage
Here's a quick example:
```ruby
require 'tesla_api'tesla_api = TeslaApi::Client.new(email: email, client_id: client_id, client_secret: client_secret)
tesla_api.login!(password)
# Or if you have an access token:
tesla_api = TeslaApi::Client.new(access_token: access_token)model_s = tesla_api.vehicles.first # =>
model_s.wake_up
vehicle_data = model_s.vehicle_data
model_s.auto_conditioning_start unless vehicle_data["climate_state"]["is_auto_conditioning_on"]model_s.set_charge_limit(90)
model_s.charge_startcharge_state = vehicle_data["charge_state"]
puts "Your Model S is #{charge_state["charging_state"]} " +
"with a SOC of #{charge_state["battery_level"]}% " +
"and an estimate range of #{charge_state["est_battery_range"]} miles"
```## Copyright
Ruby portions are Copyright (c) 2014-Present Tim Dorr. Released under the terms of the
MIT license. See LICENSE for details.