Releases: sergon2000/lovelace-track-history-card
Releases · sergon2000/lovelace-track-history-card
Release list
v1.6.0
Features
- Overlap-aware stop markers. Stop markers that would visually overlap at the current zoom now merge into a single combined marker (coloured by the roles involved — green/red/half-half/orange, with a "multiple" glyph). Zooming in splits them apart again. Clicking a combined marker zooms in just enough to break the group apart; when the stops it covers are virtually coincident and no zoom level can separate them, the click opens a popup listing those stops with their times instead.
- New
min_timeoption (default 10 min, range 1–30). A group of points now becomes a stop only when it meets both conditions: at leastmin_pointspoints and a time span (first→last point) of at leastmin_timeminutes. Brief pauses are treated as in-transit. Configurable in YAML and in the visual editor, under "minimum points per cluster". - Datapoint count in mid-stop popups. Intermediate stop popups now show how many recorded positions make up the cluster (e.g.
📍 14 points).
See CLUSTERING.md for the full clustering & marker-merging logic.
v1.5.2
Patch release.
- Fix: map disappearing after switching views — leaving the card's view and returning (or opening the visual editor) detached the card and destroyed the Leaflet map, leaving it blank until a full page reload or a date/device change. The card now redraws the map automatically when it is re-attached to the DOM (#52).
v1.5.1
Patch release with two refinements to the reverse-geocoding labels:
- Shorter labels — dropped the ISO country code suffix; stops now read e.g.
Main St, Madridinstead ofMain St, Madrid · ES(#50). - Mobile layout fix — a long location label no longer pushes a stop's time range / dwell duration onto a second line; the location truncates with an ellipsis while the time stays pinned to the right (#51).
v1.5.0
✨ Features
- Reverse geocoding for stops (opt-in) — stops that fall outside every Home Assistant zone can now be labelled with their address (street, city and ISO country code, e.g.
Calle Mayor 3, Madrid · ES), shown both in the timeline and the marker popups. HA zones still take precedence.- Enable it with the Reverse geocoding checkbox in the editor's Advanced section (or
reverse_geocode: true). - Off by default — your stop coordinates are sent to an external service (the public Nominatim server by default;
geocode_urlaccepts any Nominatim-compatible endpoint). - The map and timeline render immediately; addresses fill in progressively. Lookups are throttled (~1/sec) and cached in your browser for 90 days.
- Place names are localised to your Home Assistant UI language.
- Enable it with the Reverse geocoding checkbox in the editor's Advanced section (or
v1.4.2
🐛 Fixes
- Combined start/end marker — when a day starts and ends in the same place, the track line now meets the combined marker exactly instead of stopping slightly short of it (a small offset that was visible when zooming in).
v1.4.1
🐛 Fixes
- Date format — the date now displays in the format configured in the user's Home Assistant profile (
DMY/MDY/YMD/ language / system) instead of the browser's locale. The picker is now a button showing the formatted date that opens the native calendar. - No more flicker when changing the date or device: the map is reused across loads (only the track layers are swapped) instead of being torn down and rebuilt, the summary/timeline panels are replaced in place rather than blanked first, and more tiles are kept buffered to avoid flashing the empty background while panning.
v1.4.0
✨ New features
Zones
- Stops now show the Home Assistant zone they fall in (if any). In the timeline it appears after Start/End in parentheses, and on its own line under Stop N; in the map marker popups it's appended after the label (and shown first for the combined start/end marker). The smallest zone wins when they overlap.
Units
- New
unitsoption:metric(m / km) orimperial(ft / mi). It also sets the unit ofcluster_radius.
Direction arrows
- Arrows are now spread evenly by real distance along the path (uniform density) instead of by vertex index.
- New
show_arrowstoggle and configurablearrow_count(default 30), both available in the visual editor right below the title.
Device selector
- Shows the linked person's name in the device selector, keeping the tracker names when two trackers share a user. The selector is relabelled Track of.
Config validation
- Numeric options are now range-checked (clamped) both in the editor and in YAML:
arrow_count10–30,map_height200–1000,cluster_radius50–500,min_points2–5. The allowed ranges are shown in the editor field labels.
🔧 Changes
- Default
map_heightis now 450px. - Default
cluster_radiusis now 200 (minimum 50).
v1.3.0
Highlights
Timeline redesign
- Redistributed the timeline to use the full card width: icon + name on the left, time/range and distance right-aligned in their own column.
- Vertical connector line between events for a proper timeline feel.
- Intermediate stops now show their dwell duration (e.g.
(7 h 21 min)) under the time range. - Zebra background on stop rows so the right-hand value reads as part of the same row; movement segments stay transparent.
Map & popups
- New recenter control to refit the map to the track.
- Intermediate stop popups are now labelled (Start / Stop N / End) and show the dwell duration in parentheses, matching the timeline.
- Timeline stop markers are coloured to match the map (green start, orange numbered mid-stops, red end).
Fixes
- Vertically centered the recenter button icon.
- Correct dwell-duration calculation (milliseconds vs. seconds).
v1.2.1
Fixes
- Direction arrows now sit exactly on the smoothed line (previously offset on curves)
- Direction arrows no longer cover stop/start/end markers — those always render on top
- Times are shown using the user's Home Assistant time format (12h/24h) and language, instead of the browser default
v1.2.0
What's new in v1.2.0
Timeline
- New optional Timeline panel below the map (
show_timeline) listing each stop with its time range and the distance travelled while moving between stops
Map & clustering
- Combined start/end marker (half green / half red) when the day starts and ends in the same zone; circular start/end markers, color-only
- Start shows departure time, end shows arrival time
- Intermediate stops numbered from 1, with the same number shown on the map marker and the timeline
- Track line smoothed per segment so it always passes through every stop
- Single stray GPS points between clusters are ignored (no more line spikes; surrounding points stay one cluster)
min_pointsconfigurable minimum points per cluster (default 3)- Map theme option: system / light / dark
Fixes
- Past days now load correctly — fetch via the
history/streamWebSocket subscription (the one-shot REST/WS history endpoints returned empty for fully past days) - Map no longer renders above the Home Assistant header when scrolling
- Selected date/device preserved across re-renders; next-day arrow enabled correctly
- Editor: map height / cluster radius / min points grouped in an Advanced section that stays open while editing; title & default device fields render correctly
Docs
- Added CLUSTERING.md explaining the clustering and rendering logic