Skip to content

Releases: ha-parcel-integrations/ha-speedx

0.10.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 11:30
1b684c4

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

Choose a tag to compare

@github-actions github-actions released this 08 Sep 19:15
cec51b1

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

Choose a tag to compare

@peternijssen peternijssen released this 01 Sep 18:12

Bug fixes

  • Fixed the 59116 status ("Parcel Disposal") being reported as unknown — it now maps to problem, 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

Choose a tag to compare

@peternijssen peternijssen released this 31 Aug 15:07

Bug fixes

  • Fixed the ORIGIN_HANDLING status being reported as unknown — it now maps to in_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

Choose a tag to compare

@peternijssen peternijssen released this 29 Aug 12:13

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_parcel services, 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 edd field'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 429 backs off using the carrier's own Retry-After header 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