Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Voltpit

A Tesla Model Y style driving dashboard for iPhone: a big speedometer over a live Apple Map that follows your heading, fed by your car's data through the Tesla Fleet API with realtime updates over WebSocket.

Voltpit dashboard: speedometer, gear selector and estimated range over a live map of Kungsholmen, Stockholm, with battery and power cards

flowchart LR
    car["Tesla vehicle<br/>(your Model Y)"]
    fleet["Tesla Fleet API"]
    telemetry["Tesla fleet-telemetry"]
    backend["backend (Node)<br/>OAuth + tokens<br/>WebSocket hub"]
    cosmos[("Cosmos DB")]
    app["iPhone app (SwiftUI)<br/>Apple Map + speedometer dial"]

    car --> fleet
    car --> telemetry
    backend -->|poll vehicle_data| fleet
    telemetry -->|POST decoded records| backend
    backend -->|persist events| cosmos
    backend -->|ws://…/stream| app
Loading

Repo layout

Path What it is
backend/ Node + TypeScript service: Tesla OAuth, token storage, data sources (simulator, Fleet API poll, and Fleet Telemetry push), Cosmos DB event persistence, and a WebSocket hub that streams VehicleState to the app.
ios/ Native SwiftUI iPhone app: Apple MapKit background, Tesla-style speedometer, heading-follow camera, realtime WebSocket client.
docs/ARCHITECTURE.md System overview, realtime data-flow diagram, and component responsibilities.
docs/TESLA_FLEET_API_SETUP.md Step-by-step Tesla Fleet API onboarding (developer app, keys, OAuth, scopes).

Quick start (simulator mode: see the UI today)

You can run the entire thing with fake but realistic driving data, no Tesla account required, then flip a switch to use your real car later.

# 1. backend
cd backend
cp .env.example .env          # SOURCE=simulator is the default
npm install
npm run dev                   # WebSocket at ws://localhost:8080/stream
# 2. iOS app
cd ../ios
brew install xcodegen         # one-time
xcodegen generate             # creates TeslaDash.xcodeproj from project.yml
open TeslaDash.xcodeproj

Set the backend URL, then run on a device or simulator. You'll see the speedometer climb and the map follow a simulated drive. The map uses Apple MapKit, so no API key or billing is required.

Going live with your real Model Y

  1. Follow docs/TESLA_FLEET_API_SETUP.md to register a developer app, host your public key, and get OAuth credentials.
  2. In backend/.env set SOURCE=tesla and fill the Tesla values.
  3. npm run dev, open http://localhost:8080/auth/login once to authorize your Tesla account, then run the app.

See backend/README.md for the full backend reference.

About

Voltpit: a Tesla Model Y style driving dashboard. SwiftUI iPhone app with a Node/TypeScript backend that streams live vehicle state over WebSocket from the Tesla Fleet API, deployed to Azure Container Apps via Terraform.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages