Vehicle Intelligence Lakehouse
Live vehicle telemetry, with one contract for simulator and phone relay.
This project pairs an OBD-focused intake path with a dashboard layer that serves two operators: household-level health monitoring and in-car live cockpit awareness. The system keeps simulator and real source data under one schema so quality checks, alerts, and downstream tools can consume the same stream.
Execution intent
Keep the pipeline honest from raw event to live display: stable schema, append-only sessions, controlled transforms, and a single export contract for external services.
This page captures the design as a live documentation tab, not a static release note.
Project overview
The project is a local-first telemetry lakehouse with operational dashboards and a device relay gate. The same event shape is used for simulator feeds, local mobile intake, and future connected vehicle sources.
Focus areas: dependable ingestion, deterministic transforms, readable monitoring, and clear compatibility with external consumers.
Dual dashboard surface
House dashboard
High-level trip and health view for home-level usage: moving averages, event counts, quality flags, and recent map context.
2 k+
Rows in recent windows
14
Live metric slots
Primary endpoint pattern
/api/dashboard and /api/dashboard/live
In-car cockpit
Direct sensor-first cockpit for current speed, engine load, throttle, coolant, brake force and session identity.
RPM
engine and load profile
OBD links
Bluetooth-friendly payload framing
Mobile/tablet adaptation
Cockpit mode is designed for wide, landscape tablets and can default to side-mounted dashboard for tablet use.
Live stream and consumer interface
Event feed
Server-sent events deliver compact telemetry updates with heartbeats for UI or monitoring consumers.
External consumer path
Downstream stack can pull or push through the same normalized envelope and optional signing/encryption envelope.
Designed simulator and profile flow
What users can control
The simulator profile list is loaded from API and mapped to realistic metric behavior with location movement parameters.
- Vehicle profile selection from
/api/simulator/profiles - Profile selection for live vehicle-like behavior
- Session control and replay-friendly metadata
- Route and movement values in every payload event
- Profile detail lookup from
/api/simulator/profiles/{slug}
Default and expandable profile pack
The system ships with multiple popular vehicle profiles and is structured for external profile files.
| Profile | Primary mode | Contract readiness |
|---|---|---|
| Toyota Camry 2023 Hybrid | hybrid | Ready |
| Tesla Model 3 2024 | electric | Ready |
| Ford F-150 2021 Lariat | truck | Ready |
| Honda Civic Hybrid 2022 | hybrid | Ready |
| BMW 320i 2024 | sedan | Ready |
Add any additional car profile in configuration and it appears automatically in the same dropdown.
Android/iPad connector posture
Phone relay contract
| Endpoint | Purpose |
|---|---|
POST /api/mobile/start-session | Open a continuous ingest session |
POST /api/mobile/ingest | Push batches from Bluetooth reads |
POST /api/ingest | Generic fallback endpoint for direct device payloads |
For OBD Link MX, the app should hold a bounded offline queue and flush in small batches when network reaches relay endpoint.
Tablet orientation behavior
The interface defaults to house metrics on phones and to dashboard-first cockpit mode on landscape tablets and pads. This gives a stable, side-by-side operator view when wide real-estate is available.
{
"orientation": "landscape",
"device": "tablet",
"default_view": "in_car_cockpit"
}
Data path and orchestration expansion
| Layer | Current state | Next expansion |
|---|---|---|
| Ingress | REST intake with session metadata | Containerized file watcher and scheduled replay tasks |
| Storage | telemetry_events and telemetry_sessions | Bronze/Silver tables with replayable batch IDs |
| Operations | On-demand aggregate endpoint | Streaming transforms and containerized notebook jobs |
| Distribution | SSE stream + export endpoint | Signed and encrypted endpoint bridge to external service stack |
Knowledge bank
Design notes and implementation reasoning are organized by section so operators can quickly navigate to each decision point.
Telemetry contract
Every row keeps the same fields for both simulator and source replay: timestamp, session_id, source, metric_name, value, unit, lat, lon, and profile metadata.
Schema decisions
The project starts with one contract-first schema and avoids source-specific forks. This makes validation and analytics deterministic while allowing source metadata to carry connector-specific context.
Profile-driven simulation
Profiles are defined as behavior profiles plus PID mapping, allowing simulator outputs to mirror how different vehicle classes read and change sensor signals over time and movement.
Live stream reliability
Heartbeat events and small payloads keep UIs responsive during low traffic periods. Queue-ready endpoints ensure external readers can recover after short disconnect periods.
Roadmap and release phases
Current release is live for local telemetry and dashboards. Next phases add connector-hardening, notebook and container orchestration, signed streaming bridge, and an encrypted receiver contract for external systems.
Map and movement context
Route context is projected from telemetry coordinates. For public docs we use a public tile embed as a quick visual context.