{"id":26265670,"url":"https://github.com/jmdevita/parcel-ha","last_synced_at":"2026-04-25T19:01:31.005Z","repository":{"id":280344951,"uuid":"941682205","full_name":"jmdevita/parcel-ha","owner":"jmdevita","description":"Unofficial ParcelApp integration with Home Assistant","archived":false,"fork":false,"pushed_at":"2026-04-19T21:22:49.000Z","size":476,"stargazers_count":66,"open_issues_count":17,"forks_count":7,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-19T23:38:29.751Z","etag":null,"topics":["custom-integration","hacs","hacs-integration","home-assistant","parcelapp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmdevita.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-02T21:09:56.000Z","updated_at":"2026-04-08T17:56:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"1151bf55-e741-4f27-a7c1-da7b8f1e20ec","html_url":"https://github.com/jmdevita/parcel-ha","commit_stats":null,"previous_names":["jmdevita/parcel-unofficial"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/jmdevita/parcel-ha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmdevita%2Fparcel-ha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmdevita%2Fparcel-ha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmdevita%2Fparcel-ha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmdevita%2Fparcel-ha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmdevita","download_url":"https://codeload.github.com/jmdevita/parcel-ha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmdevita%2Fparcel-ha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32273223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["custom-integration","hacs","hacs-integration","home-assistant","parcelapp"],"created_at":"2025-03-14T03:14:38.333Z","updated_at":"2026-04-25T19:01:30.981Z","avatar_url":"https://github.com/jmdevita.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"[![hacs_badge](https://img.shields.io/badge/HACS-Default-41BDF5.svg)](https://github.com/hacs/integration)\n[![GH-release](https://img.shields.io/github/v/release/jmdevita/parcel-ha)](https://github.com/jmdevita/parcel-ha/releases)\n[![GH-downloads](https://img.shields.io/github/downloads/jmdevita/parcel-ha/total)](https://github.com/jmdevita/parcel-ha/releases)\n![GH-stars](https://img.shields.io/github/stars/jmdevita/parcel-ha?style=flat-square)\n\\\n[![Python package](https://github.com/jmdevita/parcel-ha/actions/workflows/pythonpackage.yaml/badge.svg?branch=main)](https://github.com/jmdevita/parcel-ha/actions/workflows/pythonpackage.yaml)\n[![Validate with hassfest](https://github.com/jmdevita/parcel-ha/actions/workflows/hassfest.yaml/badge.svg?branch=main)](https://github.com/jmdevita/parcel-ha/actions/workflows/hassfest.yaml)\n[![HACS Action](https://github.com/jmdevita/parcel-ha/actions/workflows/validate.yaml/badge.svg?branch=main)](https://github.com/jmdevita/parcel-ha/actions/workflows/validate.yaml)\n[![Latest Commit](https://badgen.net/github/last-commit/jmdevita/parcel-ha/main)](https://github.com/jmdevita/parcel-ha/commit/HEAD)\n\nParcel App Integration for Home Assistant\n=====================================\n\nThis is an integration for Home Assistant that allows you to track your parcels using the [Parcel REST API](https://web.parcelapp.net/#apiPanel). This integration fetches the latest shipment data and displays it as a sensor in Home Assistant. This does require a pro account, but only costs $5/year.\n\nFeatures\n--------\n\n-   Track most recent parcel shipments\n-   Display shipment details such as description, tracking number, status code, carrier code, event date, and event location\n-   Automatically updates the shipment data at a 5 minute interval.\n\nInstallation\n------------\n\n### HACS (Home Assistant Community Store)\n[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=jmdevita\u0026repository=parcel-ha\u0026category=Integration)\n\n### Other ways to Install\n\n1.  Ensure that you have HACS installed in your Home Assistant instance.\n2.  Add this repository to HACS as a custom repository.\n3.  Search for \"Parcel\" in HACS and install it.\n\nConfiguration\n-------------\n\n### Adding the Integration\n\n1.  In Home Assistant, navigate to **Configuration** \u003e **Devices \u0026 Services**.\n2.  Click on **Add Integration** and search for \"Parcel\".\n3.  Follow the prompts to enter your Parcel API key. You can find your key [here](https://web.parcelapp.net/#apiPanel)\n\n### Configuration Options\n\nYou can configure the integration options by navigating to **Configuration** \u003e **Devices \u0026 Services**, selecting the Parcel integration, and clicking on **Options**.\n\nUsage\n-----\n\nOnce the integration is set up, it will create a sensor entity named sensor.parcel_recent_shipment. This sensor will display the most recent shipment event and provide additional attributes with detailed information about the shipment.\n\n### Sensor Attributes\n-   `full_description`: Full description of the shipment.\n-   `tracking_number`: Tracking number of the shipment.\n-   `date_expected`: Date the shipment is expected.\n-   `event_date`: Date of the latest shipment event.\n-   `event_location`: Location of the shipment event.\n-   `status`: The converted (from status code) delivery status of the shipment.\n-   `carrier`: The converted (from carrier code) carrier name of the shipment.\n\nFrom v1.0.0 a second sensor entity is added, called sensor.parcel_active_shipment. It's intended to be used to provide information about when the next shipment is due, and how many shipments are currently actively being tracked. It has the following attributes:\n\n### Beta Features (BETA)\nThis integration includes beta features for adding, editing, and deleting parcels. For more details, refer to the [Beta Features Documentation](docs/parcel_edits_beta.md).\n\n### Sensor Attributes\n-   `Number_of_active_parcels`: The number of active shipment being tracked.\n-   `parcels_arriving_today`: The number of shipment with an ETA of the current date.\n-   `Full description`: Full description of the next shipment.\n-   `tracking_number`: Tracking number of the shipment.\n-   `date_expected`: Date the shipment is expected.\n-   `days_until_next_delivery`: The number of days until the next delivery or text description.\n-   `event`: The state of the latest shipment event.\n-   `event_date`: Date of the latest shipment event.\n-   `event_location`: Location of the shipment event.\n-   `next_delivery_status`: The converted (from status code) delivery status of the next shipment arriving.\n-   `next_delivery_carrier`: The converted (from carrier code) carrier name of the next shipment arriving.\n\n### Raw Data Sensor\nFrom v1.2.0 another sensor entity is added, called `sensor.parcel_raw_shipment_data`. It contains raw json data from the API pull for debugging or custom templating. It has the following attributes:\n\n#### Raw Data Sensor Attributes\nAs per the [Parcel App API documentation](https://parcelapp.net/help/api.html)\n\n-   `success` (bool, always provided): Whether a request was successful.\n-   `error_message` (string): Provided in case of an error.\n-   `deliveries` (array): Requested deliveries.\n-   `Utc timestamp`: The time the data in the sensor was last updated\n\nResponse Schema for Deliveries Attribute\n-  `carrier_code` (string, always provided): Carrier for a delivery, provided as an internal code. Full list (updated daily) is available [here](https://api.parcel.app/external/supported_carriers.json).\n-  `description` (string, always provided): Description that was provided for a delivery when it was created.\n-  `status_code` (int, always provided): See the \"Delivery Status Codes\" paragraph below.\n-  `tracking_number` (string, always provided): Tracking number for a delivery.\n-  `events` (array, always provided): Delivery events. Empty if no data is available.\n-  `extra_information` (string): It could be a postcode or an email. Something extra that was required by a carrier to track a delivery.\n-  `date_expected` (string): Expected delivery date/time without specific timezone information.\n-  `date_expected_end` (string): If provided, that means that a has delivery window for package and this is the end date/time.\n-  `timestamp_expected` (int): Epoch time for expected delivery date. Available only when a carrier provides full date/time/timezone for an expected delivery date.\n-  `timestamp_expected_end` (int): Similar to date_expected_end, used to indicate the end time for a delivery window.\n\nResponse Schema for Delivery Events:\n-  `event` (string, always provided): Description of the delivery event.\n-  `date` (string, always provided): Delivery date/time info.\n-  `location` (string): Location of the delivery event.\n-  `additional` (string): Additional information from the carrier related to the delivery event.\n\nDelivery Status Codes:\n-  0 - completed delivery.\n-  1 - frozen delivery. There were no updates for a long time or something else makes the app believe that it will never be updated in the future.\n-  2 - delivery in transit.\n-  3 - delivery expecting a pickup by the recipient.\n-  4 - out for delivery.\n-  5 - delivery not found.\n-  6 - failed delivery attempt.\n-  7 - delivery exception, something is wrong and requires your attention.\n-  8 - carrier has received information about a package, but has not physically received it yet.\n\nThe raw data sensor is disabled by default and has to be enabled. To do so, in the integration, click on the \"Parcel Raw Shipment Data\" entity, click on settings, toggle the \"Enabled\" setting to \"on\", click \"Update\".\n\n## Custom Button Card\n\nIf you are familiar with custom button card, one way to use the active_parcel_shipment sensor is with the following button card template:\n\n```\ntype: custom:button-card\nentity: sensor.parcel_active_shipment\nname: Parcels\nshow_name: true\nshow_icon: true\nshow_state: true\nstyles:\n  grid:\n    - grid-template-areas: '\"i n\" \"i s\"'\n    - grid-template-columns: auto 1fr\n    - grid-template-rows: 12px 12px\n  card:\n    - padding: 22px 22px 22px 22px\n    - height: 150px\n    - background: rgba(10,10,10,0.85)\n  name:\n    - justify-self: end\n    - font-size: 18px\n    - font-weight: 500\n    - color: '#d2ae71'\n  state:\n    - justify-self: end\n    - font-size: 14px\n    - opacity: '0.7'\n    - padding-top: 12px\n    - padding-left: 0px\n  img_cell:\n    - justify-content: start\n    - position: absolute\n    - width: 120px\n    - height: 120px\n    - left: 0\n    - bottom: 0\n    - margin: 0 0 -20px -20px\n    - background: '#d2ae71'\n    - border-radius: 500px\n  icon:\n    - position: relative\n    - width: 75px\n    - color: black\n    - opacity: \"0.5\"\n```\n\n\u003cimg src=\"/docs/images/parcel_button_card.png\" alt=\"Example Button Card\" width=\"250\"/\u003e\n\nYou may want to modify the dimensions, opacity, etc to suit your tastes.\n\n### Community Cards\nFeel free to make a pull request with your template under docs/community_templates !\n\n[Auto-Entities Card](/docs/community_templates/auto_entities.yaml) by @robbinonline\n\\\n\u003cimg src=\"/docs/images/parcel_auto_entities_card.png\" alt=\"Example Bubble Card\" width=\"250\"/\u003e\n\n[Bubble Card](/docs/community_templates/bubble_card.yaml) by @georgefahmy\n\\\n\u003cimg src=\"/docs/images/parcel_bubble_card.png\" alt=\"Example Bubble Card\" width=\"250\"/\u003e\n\n[Push Notification - Parcel Added](/docs/community_templates/push_notification_parcel_added.yaml) by @BenSmartHome\n\nDevelopment\n-----------\n\n### Prerequisites\n\n-   Home Assistant\n-   HACS\n\nContributing\n------------\n\nContributions are welcome! Please open an issue or submit a pull request on the [GitHub repository](https://github.com/jmdevita/parcel-ha/pulls).\n\nLicense\n-------\n\nThis project is licensed under the GNU General Public License v3.0. See the [LICENSE](/LICENSE) file for details.\n\nSupport\n-------\n\nIf you encounter any issues or have questions, please open an issue on the [GitHub repository](https://github.com/jmdevita/parcel-ha/issues).\n\nAcknowledgements\n----------------\n\nThis integration uses the Parcel REST API. Special thanks to the developer of the Parcel API for providing this service.\n\n* * * * *\n\n**Note:** This integration is unofficial and not affiliated with the Parcel API developers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmdevita%2Fparcel-ha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmdevita%2Fparcel-ha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmdevita%2Fparcel-ha/lists"}