HAOS — 15-month retention and Ford location timeline¶
Appliance: haos (192.168.6.227, VM 200)
Live audit: 2026-06-27 via HA_URL / HA_TOKEN in repo-root .env
Your item 3 in the earlier message was empty — add it when you’re ready and we can fold it in here.
Current state (live)¶
| Item | Value |
|---|---|
| HA Core | 2026.6.4 |
| Ford integration | fordpass (HACS marq24/ha-fordpass) |
| Vehicle | 2022 Mustang Mach-E (3FMTK4SE9NMA14535) |
| Location entities | device_tracker.fordpass_3fmtk4se9nma14535_tracker (lat/lon in attributes) |
| GPS sensor | sensor.fordpass_3fmtk4se9nma14535_gps (lat/lon/alt in state JSON) |
| Recorder depth today | ~30 days (oldest sun.sun history ≈ 2026-05-29) |
| Ford GPS history (30d) | ~31 location rows — Ford cloud updates, not continuous phone-style GPS |
Expectation: FordPass location is event-driven (Ford modem → cloud → HA websocket). You get points when the car reports (park, lock/unlock, periodic sync while on), not a dense trace every few seconds while driving like Google Maps Timeline on a phone.
1. Fifteen-month retention (all entities)¶
Home Assistant stores state changes in the Recorder SQLite DB (default). Default purge is 10 days; yours looks like ~30 days today. For 15 calendar months, set:
# configuration.yaml (or package include)
recorder:
purge_keep_days: 457 # ~15 × 30.4 days
auto_purge: true
commit_interval: 30 # fewer disk writes; OK for long retention
Apply via Settings → Add-ons → File editor (or SSH add-on) → edit
configuration.yaml → Developer Tools → YAML → Check configuration →
Restart Home Assistant.
Disk reality (32 GB HAOS VM)¶
Recording everything (~800+ entities) for 15 months on a 32 GB root disk is risky. Before flipping retention:
- Settings → System → Storage — note
home-assistant_v2.dbsize and free space. - After 1–2 weeks at 457 days, re-check growth.
- If the DB grows too fast, use recorder exclude for noisy domains (keep Ford + important stuff):
recorder:
purge_keep_days: 457
auto_purge: true
commit_interval: 30
exclude:
domains:
- update # firmware update entities
- weather
entity_globs:
- sensor.*_linkquality
- sensor.*_rssi
- sensor.*_last_seen
- Heavier option: MariaDB add-on
- recorder
db_url:on faster storage (Proxmox disk resize or NFS). Worth it if you truly want 15mo for all entities.
Statistics vs history¶
| Data | Default retention | 15mo note |
|---|---|---|
| State history (map paths, graphs) | purge_keep_days |
Set to 457 above |
| Long-term statistics (energy, etc.) | Kept indefinitely | Already long-lived |
| Short-term statistics | ~10 days | Separate from recorder; energy dashboards use long-term |
Verify retention after change¶
From repo root (uses .env token):
Or in HA: Developer Tools → Statistics / pick an entity → History → scroll to oldest date.
2. How Ford location works in your HA¶
flowchart LR
modem["Mach-E modem"]
ford["FordPass cloud"]
hacs["fordpass integration\n(marq24 HACS)"]
dt["device_tracker.fordpass_*_tracker"]
gps["sensor.fordpass_*_gps"]
rec["Recorder DB"]
modem --> ford --> hacs
hacs --> dt
hacs --> gps
dt --> rec
gps --> rec
| Entity | Role | Map / timeline use |
|---|---|---|
device_tracker.fordpass_3fmtk4se9nma14535_tracker |
Standard HA tracker; lat/lon attributes; home / not_home |
Map + Timeline card |
sensor.fordpass_3fmtk4se9nma14535_gps |
Raw {lat, lon, alt} in state string |
Diagnostics only |
Related sensors: sensor.fordpass_*_ignitionstatus, *_gearspeed (if present),
*_elveh (range), *_deviceconnectivity.
Refresh: button.fordpass_*_update_data or lock/unlock via FordPass app triggers
websocket push (marq24 integration).
3. Dashboard — Google Maps Timeline style¶
Two layers: native (quick) and timeline card (Timeline-like UX).
A. Native Map card (built-in, no HACS)¶
Shows recent path via hours_to_show (hours, not months — keep ≤ 168–720 for performance).
Import: Settings → Dashboards → Add dashboard → ⋮ → Import
Or paste cards from haos-ford-timeline-dashboard.yaml.
B. Location Timeline Card (recommended for day-by-day Timeline UX)¶
HACS → Frontend → install location-timeline-card (community: thread).
Example (add to dashboard YAML):
type: custom:location-timeline-card
entity: device_tracker.fordpass_3fmtk4se9nma14535_tracker
title: Mach-E
stay_radius_m: 75
min_stay_minutes: 10
map_height_px: 400
# Optional: reverse geocoding outside zones
# osm_api_key: you@example.com
Requires recorder history for the tracker (15mo setting above). Card reads history in the browser and groups stays vs moves.
C. Not in HA (optional later)¶
Export Ford trips from Google Takeout / FordPass app if you need vendor-native trip logs. HA only sees what Ford reports to the integration.
4. Operator checklist¶
| Step | Action |
|---|---|
| 1 | Set recorder.purge_keep_days: 457 + restart HA — or run scripts/ha-apply-ford-setup.py |
| 2 | Watch System → Storage for 1–2 weeks |
| 3 | Import haos-ford-timeline-dashboard.yaml — done by apply script |
| 4 | Location Timeline Card — registered by apply script (GitHub release URL) |
| 5 | Confirm Ford tracker updates after a drive (device_tracker.* on map) |
Related¶
- haos appliance
- Phase 7R HA integration health
scripts/ha-ford-audit.py— Ford entity + history depth probescripts/ha-apply-ford-setup.py— apply recorder package, dashboard, timeline card