Go to file
2023-08-30 20:15:31 +10:00
examples feat: added vehicle charge related apis 2023-08-30 15:14:33 +10:00
src refactor: separate from_interactive_url to pub fn 2023-08-30 20:13:51 +10:00
.gitignore chore: gitignore .idea 2023-08-29 14:05:52 +10:00
Cargo.toml chore: v0.1.3 2023-08-30 20:15:31 +10:00
justfile chore: also push before publish 2023-08-30 15:57:57 +10:00
LICENSE-APACHE fix: Add licences 2022-07-21 13:55:45 +10:00
LICENSE-MIT fix: Add licences 2022-07-21 13:55:45 +10:00
README.md docs: README tweaks, big CLI example 2023-08-29 14:02:46 +10:00

Teslatte 🚗🔋

⚠️ Alpha Warning! ⚠️

This Rust crate is still in alpha stage. It is something I quickly put together if anyone needed it. I'm aiming to work on it as I need more features.

A Tesla API using the owner-api.teslamotors.com endpoint as well as "interactive" OAuth.

Currently, it only supports some the /api/1/vehicles endpoint, but might be expanded in the future.

It is fairly trivial to add in new endpoints if you feel like creating a PR. Please let me know if your PR is a massive change before spending a lot of time on it.

Thanks to https://tesla-api.timdorr.com/ for their excellent reference.

CLI

There is a CLI that can be used to interact with the API. Example:

$ teslatte --help
Usage: teslatte api [OPTIONS] <COMMAND>

Commands:
  vehicles      List of vehicles
  vehicle       Specific Vehicle
  energy-sites  List of energy sites
  energy-site   Specific energy site
  powerwall     Powerwall queries
  help          Print this message or the help of the given subcommand(s)

Options:
  -a, --access-token <ACCESS_TOKEN>  Access token. If not provided, will try to load from the cli.json file [env: TESLA_ACCESS_TOKEN=]
  -h, --help                         Print help
  
# Prints a URL to start the OAuth flow, then asks for the token URL, then saves the token to `cli.json`.
$ teslatte auth --save 

# Lists your vehicles:
$ teslatte api vehicles
{
  "response": [{
    "vehicle_id": 1234567890,
  }]
}

$ teslatte api vehicle 1234567890
Specific Vehicle

Usage: teslatte api vehicle <ID> <COMMAND>

Commands:
  data               Get vehicle data
  charge-state       Get charge state
  set-charge-limit   Set charge limit
  set-charging-amps  Set charge amps
  charge-start       Start charging
  charge-stop        Stop charging
  help               Print this message or the help of the given subcommand(s)

Arguments:
  <ID>

Options:
  -h, --help  Print help
  
$ teslatte api vehicle 1234567890 data
{ ... }

Example

A basic example: examples/basic.rs

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.