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.

3Dashboard modes
7Tracked metrics
1Live stream
GitHub repository Open dashboard layout Open simulator panel

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.

profile-aware simulation SSE + table + summaries mobile ingest and relay-ready

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.

{ "path": "/api/stream/telemetry", "type": "GET", "format": "server-sent events", "channels": ["telemetry", "heartbeat"] }

External consumer path

Downstream stack can pull or push through the same normalized envelope and optional signing/encryption envelope.

{ "path": "/api/ai/telemetry/exchange", "params": ["session_id", "since_id", "limit", "encrypt", "sign"], "export": "/api/ai/telemetry/export" }

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.

ProfilePrimary modeContract readiness
Toyota Camry 2023 HybridhybridReady
Tesla Model 3 2024electricReady
Ford F-150 2021 LariattruckReady
Honda Civic Hybrid 2022hybridReady
BMW 320i 2024sedanReady

Add any additional car profile in configuration and it appears automatically in the same dropdown.

Android/iPad connector posture

Phone relay contract

EndpointPurpose
POST /api/mobile/start-sessionOpen a continuous ingest session
POST /api/mobile/ingestPush batches from Bluetooth reads
POST /api/ingestGeneric 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

LayerCurrent stateNext expansion
IngressREST intake with session metadataContainerized file watcher and scheduled replay tasks
Storagetelemetry_events and telemetry_sessionsBronze/Silver tables with replayable batch IDs
OperationsOn-demand aggregate endpointStreaming transforms and containerized notebook jobs
DistributionSSE stream + export endpointSigned 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.