Releases: ha-parcel-integrations/ha-speedx
Release list
0.10.0
New features
- stop re-fetching parcels that have already been delivered, since their details never change again; they still appear in the options list, sensor and stay visible for the usual retention window using their last known status
🙋 3 open questions need a real parcel to answer
📦 See every supported carrier — new ones land regularly.
💛 Support the project
0.9.3
Bug fixes
- name the parcels options menu entry the same way in every language
🙋 3 open questions need a real parcel to answer
📦 See every supported carrier — new ones land regularly.
💛 Support the project
0.9.2
Bug fixes
- Fixed the
59116status ("Parcel Disposal") being reported asunknown— it now maps toproblem, confirmed via a live captured event. - Fixed event timestamps being silently dropped for almost every history event. The integration assumed an event's local timestamp never carried its own UTC offset and would need one applied from a separate time zone field — in practice it normally does, so it is now trusted as-is.
🙋 Open questions still need a real parcel to answer
📦 See every supported carrier — new ones land regularly.
💛 Support the project
0.9.1
Bug fixes
- Fixed the
ORIGIN_HANDLINGstatus being reported asunknown— it now maps toin_transit, confirmed via live event history on two tracked parcels.
🙋 Open questions still need a real parcel to answer
📦 See every supported carrier — new ones land regularly.
💛 Support the project
0.9.0
The first release of the SpeedX integration — tracking for parcels shipped with SpeedX, a US last-mile carrier.
No account is needed: you enter the tracking code yourself, just like on the SpeedX tracking page.
New features
- Per-parcel sensors with the canonical status and SpeedX's own event code.
- Summary sensors — incoming parcels, next delivery and recently delivered parcels, each carrying the full parcel list as an attribute so one dashboard card can render everything.
- A read-only Deliveries calendar with the expected delivery windows for every active parcel.
- Events and device triggers for parcel registered, status changed, delivered and delivery time changed, so automations don't need to poll anything themselves.
speedx.track_parcel/speedx.untrack_parcelservices, so a dashboard button can add a parcel without opening the integration options.- Opt-in status history — the full event timeline per parcel, built from SpeedX's server-rendered tracking page.
- A manual refresh button and a diagnostic sensor showing when SpeedX was last polled successfully.
Known limitations — and how you can help
This release is built and tested against synthetic payloads, not a captured real-parcel response, so it ships conservatively:
- The semantic not-found branch for an unresolved tracking code has never been observed — an empty JSON scan plus an empty SSR history page is currently treated as a generic retryable failure.
- Timestamp parsing (from a local wall-clock string plus an IANA zone) and the newest-first ordering of the SSR history have only been exercised against synthetic fixtures, never a real parcel scanned more than once.
- ETA is deliberately withheld: SpeedX's
eddfield's timestamp semantics are unconfirmed. The first time a populated one comes back, only its presence is logged (never the value) so the semantics can be settled safely. - An event whose timestamp fields don't resolve to an aware timestamp is dropped rather than guessed at, with a one-time log line.
- The JSON current-scan status is cross-checked against the SSR history's latest event status, and a disagreement is logged once rather than silently trusted — the SSR value always wins.
- No rate-limit information has been observed; a
429backs off using the carrier's ownRetry-Afterheader when present, otherwise an exponential backoff, with a one-time log line.
That's exactly why this is 0.9.0 rather than 1.0.0 — a real, in-flight parcel is what moves it to a stable release.
Installation
Add https://github.com/ha-parcel-integrations/ha-speedx to HACS as a custom repository, install SpeedX, and restart Home Assistant.
🙋 3 open questions need a real parcel to answer
📦 See every supported carrier — new ones land regularly.
💛 Support the project