Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Home Assistant에서 모든 택배사의 배송을 추적
Package tracking in Home Assistant for every carrier — PostNL, DHL, DPD, GLS, PostNord, Hermes, Packeta and more. Track parcels and packages with one set of sensors, events and automations.
플러그인PythonGitHub @ha-parcel-integrations온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Track bpost parcels in Home Assistant
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
💬 Questions or feedback? Join the discussion on the Home Assistant community.
A custom Home Assistant integration that tracks your bpost (Belgium) parcels. Choose either tracking codes with a delivery postal code, or your My bpost account inbox.
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.README 전문 보기 ↗📦 Part of ha-parcel-integrations, a family of package-tracking integrations for Home Assistant that all publish the same parcel format, statuses and events, so they plug into cross-carrier automations and the optional Parcel Aggregator. Browse the other carriers on the website.
💬 Questions or feedback? Join the discussion on the Home Assistant community.
A custom Home Assistant integration that tracks your bpost (Belgium) parcels. Choose either tracking codes with a delivery postal code, or your My bpost account inbox.
out_for_delivery / delivered / unknown / …), the carrier's own status text, the expected delivery window (when bpost reports one) and a tracking deep-linkbpost.track_parcel / bpost.untrack_parcel services, so a dashboard button can add a parcelOr click the button below to open it directly in HACS:
Copy custom_components/bpost into your config/custom_components/ folder and restart Home Assistant.
Or set it up by hand: add the integration via Settings → Devices & Services → Add Integration → bpost, then choose Tracking codes or Account (automatic import). Both kinds can be set up side by side.
Tracking codes ask for the delivery postal code, which becomes the hub default for every parcel you add to it. Add parcels via the integration's Configure dialog, the bpost.track_parcel service, or a dashboard button — just the tracking code; the postal code comes from the hub.
Account (automatic import) asks for your My bpost e-mail address and password once, then keeps its parcel list in step with your inbox — nothing to add by hand. Only the rotating tokens bpost hands back are stored; your password is not.
Open Configure on the integration entry:
| Menu item | Description |
|---|---|
| Parcels | Edit the full list of tracked codes at once (add or remove any number, then save). No live validation — a tracking code is confirmed on the next poll. Tracking-code entries only; an account entry has no list to edit. |
| Settings | Delivered-parcel retention (filter by / amount) and the opt-in status-history attribute. |
Changes apply immediately, no restart.
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:
Standard HA removal applies: Settings → Devices & Services → bpost → ⋮ → Delete. Nothing is stored on bpost's side.
| Entity | Description |
|---|---|
sensor.bpost_incoming_parcels | Number of active tracked parcels, full list under the parcels attribute |
sensor.bpost_parcel_<barcode> | One per tracked parcel; state is the canonical status, attributes carry the full normalised parcel |
sensor.bpost_next_delivery | Earliest expected delivery moment across all active parcels |
sensor.bpost_en_route_to_pickup_point | Incoming parcels on their way to a pickup point, such as a bbox locker, that have not arrived yet |
sensor.bpost_awaiting_pickup | Incoming parcels that are ready to collect at a pickup point |
sensor.bpost_delivered_parcels | Recently delivered parcels (see the retention option) |
sensor.bpost_outgoing_parcels | Active sender parcels; account entries only |
sensor.bpost_outgoing_delivered_parcels | Recently delivered sender parcels; account entries only |
sensor.bpost_letters | Mail Ahead letters from the last 30 days, listed under the letters attribute (id, date, planned_delivery, sender, and bpost's untouched record as raw); account entries only |
image.bpost_letter_<sender or date> | One per letter: the scan of the envelope, fetched by Home Assistant and served through its own image proxy; account entries only. The entity_id follows your language (brief in Dutch, courrier in French), so match letters on the id attribute — see notify_when_letter_arrives.yaml |
sensor.bpost_last_successful_update | Diagnostic: when bpost was last polled successfully |
A delivered parcel moves from its per-parcel sensor to the delivered sensor automatically.
The status field is the carrier-agnostic enum shared by the whole integration family. Both the public tracker and the account inbox report the same bpost status vocabulary, and it is mapped in full — preparation, transit, out-for-delivery, ready-to-collect, delivered, return and customs states. An unseen delivery method is still matched on its family prefix, and any code that stays unmapped is reported as unknown with a one-shot log warning asking you to report it:
| Status | Meaning |
|---|---|
registered, in_transit, out_for_delivery | Announced, moving through the network, or with the courier today |
at_pickup_point, returning, problem | Ready to collect, returning to sender, or a delivery exception |
delivered | Delivered — including to a Kariboo pickup point, which is a delivery method, not a still-waiting state |
unknown | Not yet found, or a status code we have not mapped yet |
The carrier's own status code is always available as raw_status.
The integration fires these on the event bus (also available as device triggers on the bpost device):
| Event | When |
|---|---|
bpost_parcel_registered | A new parcel appears in the active list |
bpost_parcel_status_changed | A parcel's canonical status changes (old_status / new_status in the payload), except the final hop to delivered |
bpost_parcel_delivered | A parcel is delivered |
bpost_parcel_delivery_time_changed | The expected delivery window changes |
bpost_outgoing_parcel_status_changed | An account sender parcel's canonical status changes (old_status / new_status) |
bpost_outgoing_parcel_delivered | An account sender parcel is delivered or returned to its sender |
bpost_letter_announced | A new Mail Ahead letter appears on an account entry |
Every parcel payload is the full normalised parcel plus the hub's device_id; a letter payload is the letter as the letters sensor lists it, plus carrier and device_id. Events are suppressed on the first refresh after start-up.
| Service | Fields | Description |
|---|---|---|
bpost.track_parcel | tracking_code, postal_code (optional, to pick a hub when more than one is set up) | Start tracking a parcel |
bpost.untrack_parcel | tracking_code | Stop tracking a parcel |
Both act on tracking-code entries; account entries follow your My bpost inbox and are never edited by hand.
Ready-to-paste automations and dashboard snippets live in examples/, including tracking a new parcel straight from a dashboard.
Third-party cards that work with this integration's sensors:
logger:
logs:
custom_components.bpost: debug
unknown — either bpost has no record for that tracking code + the hub's postal code yet (it will pick up automatically once scanned), or bpost is reporting a status code that is not in the mapped vocabulary yet — the log says which one.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.
This is an independent, community-built project. It is not affiliated with, endorsed by, sponsored by, or supported by bpost, Home Assistant, or any other third party referenced in this project. Please don't contact bpost 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 bpost's terms. Data is sent only to bpost'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 uses the same public tracking endpoint as the bpost consumer website.
Pull requests and issues are welcome. Please open an issue before submitting a large change.