GPS fleet tracking · Traccar + a keyless dark map

Two phones and a van,
on one live map.

A self-hosted Traccar server already tracked the family's phones and the work van. This tab pulls those three onto the wall panel as a live, colour-matched dark map with per-device cards — its addresses named down to the actual house by a self-hosted property API, and a Day mode that draws the whole day's route and every stop straight from Traccar. No Google Maps, no paid tile key, nothing leaving the house.

Traccar server Esri dark · no key The Grid addresses day routes + stops

3devices tracked
£0map API cost
1 maddress precision
1tab, one web-app
01 · The fleet

Three trackers, three jobs

Traccar is an open-source GPS server — the phones run its app, the van has a hard-wired tracker, and all three report to Kevin's own server rather than a manufacturer's cloud. Home Assistant's Traccar-Server integration turns each into a device with position, speed, battery and motion.

Kev's Phone
Android app
Battery, speed and motion from the Traccar client; home/away from HA's own zone.
Kev's Transit
FMC003 · hard-wired
A vehicle tracker wired to the van's battery — so the card shows real supply voltage (a live check on the vehicle battery) instead of a phone %.
Mom's Phone
Android app
Same live position and battery — so a glance at the panel says whether she's home.
02 · The map

The base map had to move house — twice

Free dark map tiles turned out to be a moving target. Home Assistant's stock map wanted a paid key; the obvious free fallback got the app blocked; the answer in the end was a proper keyless dark basemap from Esri. The tab is one small self-contained web-app in an iframe, so swapping the tile source was a one-line change.

CartoDB
✗ wants a credit card
HA's built-in map card draws from CartoDB, which now stamps every tile "API KEY REQUIRED" until you register and pay.
Raw OpenStreetMap
✗ blocks apps
The free fallback — OSM's own tiles, CSS-darkened — works in a browser but violates OSM's tile policy for apps: their volunteer servers returned an "access blocked" tile (osm.wiki/blocked).
Esri Dark Gray
✓ keyless · permitted
Esri's "Dark Gray Canvas" — a genuine dark cartographic style, keyless and allowed for embedding. Its base is deepened to match the panel while the street labels stay bright.
The trap worth remembering. CartoDB's blocked tiles return an HTTP 200 with the words baked into the image — so an automated "did it load?" check passes while a human sees "API KEY REQUIRED" splashed across the map. The only reliable test was to actually look at it.
03 · Addresses

Not a nearby street — the actual building

A bare coordinate is useless on a wall. Turning it into an address normally means a geocoder, and free ones are coarse — often just a street or a postcode. So the tab asks Kevin's own Grid first: a self-hosted property API built on OpenStreetMap and enriched with UK property data, covering the local area. It resolves a fix to the actual building — house number, street, postcode, even the property type and energy rating.

The Grid, first

Tap a device and the detail panel shows a property card — the resolved address, the building's UPRN, type and EPC band, and the nearest neighbours — with a green GRID badge on the address to say it came from home.

OSM outside the fence

The Grid only covers the local area so far. Anywhere else, the tab falls back to OpenStreetMap's free Nominatim service and labels the result coarse honestly — a street or postcode, not a house.

Grows on its own

Because it always tries the Grid first, every time the Grid's coverage extends, those areas quietly upgrade from a coarse OSM guess to a precise property — with no change to the tab.

04 · Day mode

The whole day's movements, from the source

The live map shows now. Hit Day and it shows the story of the day — every route and every stop — pulled directly from the Traccar server's reports, not from Home Assistant's history (which only keeps sparse snapshots). Traccar has every raw GPS fix and works out the trips and stops itself.

The token is Home Assistant's own Traccar credential, kept in a device-local file on the Pi and never committed. The tab talks to Traccar on the LAN — the public address is bot-blocked at the edge, so the wall panel takes the direct route.

Pick who to show

Colour-matched chips let you draw one device's day or several at once — the van alone, or the whole family overlaid — and a Now button drops straight back to the live view.

Tap a stop

Every stopped place is a clickable pin. Tap one and the device panel tells you when it arrived, when it left, how long it was parked — with the address resolved through the Grid to the exact building.

Dense, not sparse

Because it reads Traccar's own report, the van's day comes back as hundreds of points — a real driven line, not the handful of snapshots Home Assistant happens to have logged.

05 · On the tab

A map you can drive, cards you can drill into

The big dark map fills two-thirds of the screen; three device cards sit alongside, each colour-keyed to its marker — the amber dot on the map is the amber card in the list.

Live map + trails

Colour-matched markers, a ring around home, and each device's recent trail. A "moving" marker pulses; a "Fit all" button frames everyone at once.

Cards with a badge

Each card shows Home / Away / Moving, the Grid address, speed in mph, a battery bar (or the van's voltage), distance from home, GPS accuracy and last-seen — with a Go to button that flies the map to that device.

Tap for the detail

Tap a card and it opens a focused view: that device on its own map, the Grid property card, plus distance from home, geofence and link status — the full picture, then back out.

Fleet at a glance. A strip across the top counts how many are home, how many are moving, and the van's battery voltage — flagged red if it drops below 12.0 V, so a van left with something draining the battery shows up before it's flat.

Where everyone is

The van, the phones, the family — one glance at the wall.

Self-hosted GPS, a map that costs nothing to draw, addresses named to the actual doorstep, and a day-replay pulled straight from the source — all reading the same local stack that runs everything else in the house. Next: geofence arrival routines off the day's stop patterns.

Traccar · self-hosted·Esri dark · no key·see it on the Wall panel