๐ฌ Questions or feedback? Join the discussion on the Home Assistant community.
A custom Home Assistant integration that tracks parcels from your SEUR account. Sign in with the credentials you use for miSEUR and received and sent parcels are imported automatically.
Part of the ha-parcel-integrations family: it publishes the same canonical parcel format, statuses and events as the other carrier integrations, so it plugs straight into the Parcel Aggregator and cross-carrier automations.
- Features
- Requirements
- Installation
- Configuration
- Options
- Removal
- Sensors
- Parcel status reference
- Events
- Examples
- Debugging
- Troubleshooting
- Related integrations
- Disclaimer
- Contributing
- License
- Auto-imports every parcel your SEUR account already knows about โ no per-parcel setup
- Per-parcel sensor with the canonical status (
registered/in_transit/out_for_delivery/delivered/ โฆ), carrier status code, weight and optional history - Summary sensors for incoming parcels, outgoing parcels, delivered incoming parcels and delivered outgoing parcels
- Events + device triggers for incoming parcel registration/status/delivery and outgoing status/delivery changes
- Opt-in per-parcel status history
- Manual refresh button and a diagnostic last-update sensor
- Home Assistant 2024.12 or newer
- A SEUR account (the same one you use on the SEUR website or app)
- In HACS, choose the three-dot menu โ Custom repositories.
- Add
https://github.com/ha-parcel-integrations/ha-seuras an Integration. - Install SEUR and restart Home Assistant.
Copy custom_components/seur into your config/custom_components/ folder and restart Home Assistant.
Add the integration via Settings โ Devices & Services โ Add Integration โ SEUR and sign in with your SEUR account email and password.
Parcels are discovered automatically from the configured miSEUR account. There is no tracking-code editor or manual tracking service.
Open Configure on the integration entry:
| Section | Option | Default | Description |
|---|---|---|---|
| Delivered parcels | Filter by / amount | last 7 days | How long delivered parcels stay visible on the delivered sensor. |
| Parcel history | Include status history | off | Adds a history attribute per parcel with each status update. |
Polling isn't one of these settings: the integration polls on a dynamic, status-driven schedule with nothing to configure.
Polling isn't a setting here โ the integration adjusts its own cadence to what your tracked parcels are actually doing:
- Quiet hours โ no polling between 00:00โ06:00 local time, aside from one catch-up check at each end of that window (around midnight and around 6 AM), so an overnight update is never missed.
- Hot (every 15 minutes) โ while any tracked parcel is out for delivery today, starting an hour before its delivery window opens (or immediately if no window is known yet โ this is the fallback that fires in practice for SEUR, whose account feed never reports a delivery window at all).
- Normal (every 45 minutes) โ for anything else still on its way.
- Never fully stops โ with nothing hot or in transit, polling keeps running at the normal cadence, since that's also how a new shipment on your account gets discovered.
- A small, fixed per-hub offset is added on top, so not every SEUR hub out there polls at exactly the same second.
Standard HA removal applies: Settings โ Devices & Services โ SEUR โ โฎ โ Delete. Nothing is stored on SEUR's side.
| Entity | Description |
|---|---|
sensor.seur_incoming_parcels |
Number of active incoming parcels, full list under parcels |
sensor.seur_outgoing_parcels |
Number of active outgoing parcels, full list under parcels |
sensor.seur_outgoing_delivered_parcels |
Recently delivered outgoing parcels (see the retention option) |
sensor.seur_awaiting_pickup |
Parcels waiting for you at a pickup point. Stays at 0 for now: SEUR's pickup-point data hasn't been confirmed from a real parcel yet |
sensor.seur_parcel_<code> |
One per active incoming parcel; state is the canonical status and attributes carry the normalised parcel |
sensor.seur_next_delivery |
Present but empty until SEUR supplies a confirmed delivery time |
sensor.seur_delivered_parcels |
Recently delivered incoming packages (see the retention option) |
sensor.seur_last_successful_update |
Diagnostic: when SEUR was last polled successfully |
A delivered incoming parcel moves from its per-parcel sensor to the delivered summary automatically. Outgoing parcels are represented by summary sensors only.
The status field is the carrier-agnostic enum shared by the whole integration family:
| Status | Meaning |
|---|---|
registered |
Announced / received by SEUR |
in_transit |
In the sorting network |
out_for_delivery |
With the courier today |
at_pickup_point |
Waiting for you at a pickup location |
delivered |
Delivered |
returning |
Going back to the sender |
problem |
SEUR reports an exception |
unknown |
Not yet scanned, or a status we have not mapped yet |
The carrier's own human-readable text is always available as raw_status.
The integration fires these on the event bus (also available as device triggers on the SEUR device):
| Event | When |
|---|---|
seur_parcel_registered |
A new parcel appears in the active list |
seur_parcel_status_changed |
A parcel's canonical status changes (old_status / new_status in the payload), except the final hop to delivered |
seur_parcel_delivered |
A parcel is delivered |
seur_parcel_delivery_time_changed |
The expected delivery window changes |
seur_outgoing_parcel_status_changed |
An outgoing parcel's canonical status changes |
seur_outgoing_parcel_delivered |
An outgoing parcel is delivered |
Every payload is the full normalised parcel plus the hub's device_id. Events are suppressed on the first refresh after start-up.
Ready-to-paste automations and dashboard snippets live in examples/.
Third-party cards that work with this integration's sensors:
logger:
logs:
custom_components.seur: debug- A parcel shows
unknownโ SEUR returned a status code that is not mapped yet. It remains visible and its carrier code is available asraw_status. - A status logs "Unrecognised SEUR status" โ please open an issue with the logged line so the mapping can be extended.
This integration is part of ha-parcel-integrations โ a family of parcel-carrier integrations that all publish the same canonical parcel format, statuses and events.
- Parcel Aggregator rolls every installed carrier up into one set of sensors.
- Browse the organisation for the current list of supported carriers.
This is an independent, community-built project. It is not affiliated with, endorsed by, sponsored by, or supported by SEUR, Home Assistant, or any other third party referenced in this project. Please don't contact SEUR for support with this integration.
All third-party trademarks, trade names, product names, logos, and other brand assets are the property of their respective owners. References to them are solely to identify the relevant carrier or service and do not imply affiliation, sponsorship, or endorsement. Nothing in this project grants or implies any licence or right to use third-party brand assets.
This integration may rely on public, unofficial, or undocumented carrier interfaces, accessed with your own account or API key where required. These may change or be withdrawn without notice and may be subject to SEUR's terms. Data is sent only to SEUR's own services or those of its group; this project operates no servers of its own. You are responsible for ensuring that your use complies with applicable law and those terms. Use is at your own risk; see the licence for warranty limitations.
This integration reads the configured user's miSEUR account inbox. It does not use the public tracking endpoint.
Pull requests and issues are welcome. Please open an issue before submitting a large change.