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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages