docs: FEAT-05 DTC sync shipped — multi-device selector, portal DTC page, Pi snapshot upload

This commit is contained in:
Mathieu Moran
2026-08-12 02:20:48 -04:00
parent ed2b3aacfc
commit bc29a01337
7 changed files with 617 additions and 59 deletions
+45
View File
@@ -106,6 +106,51 @@ dedicated PLAN.md phase (or fold it into the relevant existing work) and mark it
correctly on wlan0 AP and home WiFi. Settings "Last phone IP" link is the workaround.
Cannot be fixed in software — this is a phone-OS limitation.
### FEAT-10 — Home Assistant integration
- **Status**: `IDEA`
- **Area**: `modules/app_homeassistant.py` (new), `server/` (API endpoints), Pi-side MQTT/HTTP
- **Phase**: unassigned
- **Requested**: owner — wants the car's live telemetry and status visible in Home Assistant
dashboards alongside other smart-home devices.
- **Idea**: expose yaris-obd data (speed, RPM, coolant temp, fuel level, GPS position, DTC
alerts, ignition state, trip stats, cellular signal, etc.) as Home Assistant entities so
they appear automatically via MQTT discovery or a REST-based integration. The Pi already
collects all this data — the integration just needs to publish it in a format Home
Assistant can consume.
- **Possible approaches** (to scope later):
- **MQTT discovery**: Pi publishes to a local MQTT broker (e.g. Mosquitto on the same
network or on the HA host) with Home Assistant's auto-discovery topic schema
(`homeassistant/sensor/yaris/.../config`). HA picks up the entities automatically with
zero manual YAML. Works well on home WiFi; not available on phone hotspot or cellular.
- **REST API integration**: a custom Home Assistant integration (HACS or core) that polls
the Pi's `/api/stats` (or a new `/api/v1/ha/state` endpoint on the server) periodically.
Works from anywhere the server is reachable, including remotely via the self-hosted
server.
- **Hybrid**: MQTT when on home WiFi (real-time, low-latency), REST via server as a
fallback for remote/cellular visibility.
- **Entity ideas**:
- `sensor.yaris_speed` (km/h), `sensor.yaris_rpm`, `sensor.yaris_coolant_temp` (°C)
- `sensor.yaris_fuel_level` (%), `sensor.yaris_odometer` (km)
- `device_tracker.yaris_location` (lat/lon from GPS)
- `binary_sensor.yaris_ignition` (on/off), `binary_sensor.yaris_mil` (check engine light)
- `sensor.yaris_dtc_count`, `binary_sensor.yaris_dtc_active` (any active DTCs)
- `sensor.yaris_cellular_signal` (dBm or %), `sensor.yaris_uplink_mode` (home/phone/cell)
- `sensor.yaris_trip_distance`, `sensor.yaris_trip_duration` (current trip)
- `device_tracker.yaris_phone_hotspot` (when connected via phone hotspot — confirms car
is near the phone)
- **Outstanding considerations**:
- MQTT path only works when the Pi is on the same LAN as Home Assistant (home WiFi) — not
in the car on its own AP or cellular. This may be fine for "car is home" use cases
(charging status, maintenance reminders, trip summaries after returning).
- REST path via the self-hosted server works remotely but adds latency and depends on the
server being up.
- Decide whether to publish directly from the Pi or from the server (server already has
post-upload trip data; Pi has real-time data the server doesn't).
- Home Assistant OS vs container vs core install — MQTT discovery is universal, REST
would need a custom component or HACS add-on.
- Keep the integration opt-in and lightweight — don't add MQTT dependencies to the core
app.py startup unless the user explicitly configures it.
---
## Ideas that landed