UNPKG

tesla-fleet-api

Version:

A library for the [Tesla Fleet API](https://developer.tesla.com/docs/fleet-api), and the third parties services [Teslemetry](https://teslemetry.com/docs/getting-started/api) and [Tessie](https://developer.tessie.com/docs/tesla-api-comparison), which provi

43 lines (34 loc) 1.45 kB
import TeslaFleetApi from "./teslafleetapi.js"; import { Scope } from "./types/commands.js"; import { VehicleDataResponse } from "./types/vehicle_data.js"; type TessieVehicleResponse = { vin: string, is_active: boolean, last_state: VehicleDataResponse, } export default class Telemetry extends TeslaFleetApi { constructor(accessToken: string) { super({ accessToken, server: `https://api.tessie.com`, partnerScope: false, userScope: false }); } /** * Get your approved Tesla scopes */ async tesla_scopes(): Promise<Scope[]> { return this._request("GET", "auth/tesla_scopes").then(({ scopes }) => scopes) } async metadata(): Promise<{ scopes: Scope[] }> { return this._request("GET", "auth/tesla_scopes") } async status(vin: string): Promise<"asleep" | "waiting_for_sleep" | "awake"> { return this._request("GET", `${vin}/status`).then(({ status }) => status); } async state(vin: string, use_cache: boolean = true): Promise<VehicleDataResponse> { return this._request("GET", `${vin}/state`, { use_cache }); } async vehicles(only_active: boolean = false): Promise<TessieVehicleResponse[]> { return this._request("GET", "vehicles", { only_active }).then(({ results }) => results); } async wake(vin: string): Promise<boolean> { return this._request("POST", `${vin}/wake`).then(({ result }) => result); } }