Skip to content

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.yamlDeveloper Tools → YAML → Check configurationRestart 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:

  1. Settings → System → Storage — note home-assistant_v2.db size and free space.
  2. After 1–2 weeks at 457 days, re-check growth.
  3. 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
  1. Heavier option: MariaDB add-on
  2. 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):

uv run python scripts/ha-ford-audit.py

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.

HACSFrontend → 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)