If I was doing 1000 parcels a month, it might be worth considering, but for maybe 10, maybe 20 let month, yeah nah. $9 (presumably US, who knows, they don’t say) per month minimum.
Should I had this steps into the project’s readme?
EDIT: I don’t even have 9$ option, it starts at 19$. If you still need to pay, then maybe there’s a geo-restriction ? (sooooo, maybe a VPN could help?)
I didn’t notice that it you set up an account and don’t choose a tier, it does give you a free tier at 10 per month. Thanks for pointing that out. Cool.
As you can see in first post, this one is a work in progress. I post here for early adopters or for those who like tinkering as I need reviews so I can shape the integration based on needs.
I’m thinking about creating a new service to remove old parcel and also a custom front card to see and manage tracked parcels
Now, if your question is “17track vs parcelsapp”, it mostly depends on where you live and what are your most used delivery company. In France, 17track is really slow to update and overall parcels is better. It may be different for other countries.
Hi
I live in Belgium so main company is bpost, postnl and DHL…
Would love to see packages added automatically and a dashboard custom card is welcome too.
Main thing is, it should be free to use.
Hello, here’s a Frontend display for the integration. It only works with versions above 0.1.2!
It can be quickly rewritten into other languages as it includes a translation option. I took the basics from the widely used Track17 markdown script and adapted it for ParcelsApp.
And below you can find a simple package removal tool.
The code is in English, only the example is in Hungarian
{% set computer_text = '<ha-icon icon="mdi:laptop" style="color:yellow"></ha-icon>' %}
# **[ParcelsApp](https://parcelsapp.com/)**
{% set parcels = states.sensor | selectattr('entity_id', 'match', 'sensor.parcelsapp_tracking_*') | list %}
{% set parcels_by_status = parcels | groupby('attributes.status') %}
{% set status_translation = {
'archive': 'Archived packages',
'delivered': 'Delivered packages',
'transit': 'Packages in transit',
'arrived': 'Packages awaiting delivery',
'pickup': 'Packages awaiting pickup',
'pending': 'Pending'
} %}
{% for status_group in parcels_by_status %}
{% set status = status_group.grouper %}
{% set packages = status_group.list %}
## {{ status_translation.get(status, status) | capitalize }}
---
{% for package in packages %}
### <ha-icon icon="mdi:package-variant" style="color:yellow"></ha-icon> **{{ package.attributes.get('name', '') }}** [{{computer_text}}](https://parcelsapp.com/en/tracking/{{ package.attributes.get('tracking_id', '') }})
{%- if package.attributes.get('tracking_id') not in [None, 'undefined'] %}
> **Tracking number**: {{ package.attributes.tracking_id }}
{%- endif %}
{%- if package.attributes.get('message') not in [None, 'undefined'] %}
> **Status**: {{ package.attributes.message }}
{%- endif %}
{%- if package.attributes.get('carrier') not in [None, 'undefined'] %}
> **Carrier**: {{ package.attributes.carrier }}
{%- endif %}
{%- if package.attributes.get('location') not in [None, 'undefined'] %}
> **Location**: {{ package.attributes.location }}
{%- endif %}
{%- if package.attributes.get('origin') not in [None, 'undefined'] %}
> **Origin**: {{ package.attributes.origin }}
{%- endif %}
{%- if package.attributes.get('destination') not in [None, 'undefined'] %}
> **Destination**: {{ package.attributes.destination }}
{%- endif %}
{%- if package.attributes.get('days_in_transit') not in [None, 'undefined'] %}
> **Days in transit**: {{ package.attributes.days_in_transit }}
{%- endif %}
{%- if package.attributes.get('uuid') not in [None, 'undefined'] %}
> **UUID**: {{ package.attributes.uuid }}
{%- endif %}
{%- if package.attributes.get('uuid_timestamp') not in [None, 'undefined'] %}
> **UUID timestamp**: {{ package.attributes.uuid_timestamp }}
{%- endif %}
{%- if package.attributes.get('last_updated') not in [None, 'undefined'] %}
> **Last updated**: {{ relative_time(package.attributes.last_updated) }}
{%- endif %}
{% endfor %}
{% endfor %}
Track17 and Aftership can only query one carrier and are slower compared to Parcelsapp. I often get packages that are handled by 2-3 different carriers, and Parcelsapp can manage that seamlessly. It’s also much faster because I don’t have to wait for the main carrier to receive data from the underlying carriers.
For example, my last order from the US went with DHL within the US, then Yun Express took it to Germany, where Deutsche Post sent it to Hungary, and finally Hungarian Post delivered it. Of course, everything is trackable through the main tracking number, but by the time Hungarian Post syncs with the main track, the package is already in my hands