// #/obd2 — Apps rail placeholder for the OBD2 Telemetry project (parked). // No records UI is deployed yet, so this links into the project + wiki instead of // embedding. Swap to embedView({ src: 'https://obd2.hynesy.com/' }) once the // LubeLogger/Tracktor dashboard is up. import { el, mount } from '../dom.js'; import { navigate } from '../router.js'; const WIKI = '/page/bea9d582-44a2-4eec-a1ba-69ade15d3a73'; const PROJECT = '/project/02fc5b4c-12f4-4d0c-8220-6b053da71c46'; export async function render(main) { mount(main, el('div', { class: 'term-bar' }, el('span', { class: 'term-title' }, '◆ OBD2 Telemetry'), el('span', { class: 'muted', style: { fontSize: '11px' } }, 'project · parked, being set up') ), el('div', { class: 'card', style: { maxWidth: '760px' } }, el('h3', {}, 'OBD2 Telemetry — being set up'), el('p', { class: 'muted' }, 'Capture vehicle records from the car’s OBD2 port into the homelab (CT 112 · Postgres + TimescaleDB) with a maintenance/records UI. The capture pipeline is being rebuilt and the records UI isn’t deployed yet — nothing to embed here yet.'), el('p', {}, 'Plan: AndrOBD (F-Droid) + the BT ELM327 → CSV/MQTT → Timescale; WiCAN hardware later; LubeLogger / Tracktor for the UI (this tile will then embed it).'), el('div', { style: { display: 'flex', gap: '8px', marginTop: '14px' } }, el('button', { class: 'primary', onclick: () => navigate(PROJECT) }, 'Project + tasks'), el('button', { class: 'ghost', onclick: () => navigate(WIKI) }, 'Research / wiki') ) ) ); }