十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Home Assistant 17TRACK Get Packages 动作完全指南:用 `seventeentrack.get_packages` 查询包裹数据

Home Assistant 17TRACK Get Packages 动作完全指南:用 `seventeentrack.get_packages` 查询包裹数据 Home Assistant 17TRACK Get Packages 动作完全指南用seventeentrack.get_packages查询包裹数据【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io本指南聚焦 Home Assistant 官方文档中的17TRACK: Get packages动作seventeentrack.get_packages讲解如何通过 UI 与 YAML 两种方式调用它查询 17Track 账户中的包裹最新数据如何按状态过滤结果、读取返回的响应数据结构以及如何把它接入自动化与仪表盘实现「今日送达提醒」「在途包裹概览」等实战场景。读完你将掌握该动作的全部配置参数、返回值字段与源码层面的实现依据能够直接编写可运行的自动化与脚本。动作概览它能做什么seventeentrack.get_packages是 17TRACK 集成seventeentrackdomain提供的一个动作action其作用是查询 17Track API 并返回你账户中已跟踪包裹的最新数据。根据动作文档的描述你可以把结果限制在特定状态的包裹例如在途、待取件这在自动化或脚本中非常实用——典型场景是发送一条通知列出今天所有「正在派送out for delivery」的包裹。从仓库结构看该动作与 seventeentrack.add_package按单号添加包裹、seventeentrack.archive_package归档包裹共同构成 17TRACK 集成的动作体系添加 → 查询 → 归档三者配合即可在 Home Assistant 内完成包裹跟踪的完整闭环。动作文档source/_actions/seventeentrack.get_packages.markdown将description明确为 Queries the 17Track API for the latest package data并在related_actions中声明了与 add/archive 两个动作的关联关系。前置条件17TRACK 集成使用该动作前需要先通过配置流config flow完成 17TRACK 集成接入。集成文档source/_integrations/seventeentrack.markdown说明了以下关键信息集成允许用户获取与 17track.net 账户绑定的包裹数据集成会创建汇总传感器显示处于某状态如 In Transit 的包裹数量以及账户内每个包裹的独立传感器ha_iot_class: Cloud Polling即采用云端轮询方式获取数据集成类型为service通过ha_config_flow: true启用配置流。⚠️重要提示源自官方集成文档虽然 17track.net 网站声明账户密码不能超过 16 个字符但用户技术上可以设置更长的密码然而这些超长密码无法与集成使用的 API 配合工作。因此请确保你的 17track.net 密码不超过 16 个字符。获取 config_entry_id无论走 UI 还是 YAML 路径调用动作时都需要指定 17Track 服务即config_entry_id。官方集成文档提供了获取方法进入Settings Devices services选择 17Track 集成点击右上角三个点的菜单选择Copy entry ID复制条目 ID。方式一从用户界面UI使用如果你更习惯可视化方式构建自动化动作文档对应的 UI 操作路径如下actions/ui_header.md也确认了该动作支持 UI 引导式配置进入Settings Automations scenes打开一个已有的自动化或脚本或选择Create automation Create new automation如果是新建自动化在When区域添加一个触发器脚本则不需要触发器脚本由其他事物调用时才会运行在Then do区域选择Add action在搜索框中搜索并选择17TRACK: Get packages选择要查询的17Track service并可选择要返回的Package states包裹状态在Response variable响应变量字段中输入一个名称来存储数据例如result选择Save保存。动作不支持 targets该动作不支持目标targets。在 UI 中你通过17Track service字段选择 17Track 服务而不是通过选择区域、设备、实体或标签来指定目标。这意味着它只能针对已配置的 17TRACK 集成条目执行不能按实体定向。UI 选项一览选项说明是否必填17Track service要检索包裹的 17Track 服务是Package states只返回处于所选状态的包裹留空则返回全部包裹否方式二在 YAML 中使用如果你直接在 YAML 中工作或想确切了解 Home Assistant 在底层做了什么动作文档给出了完整的 YAML 技术参考actions/yaml_header.md对此进行了说明该部分列出 YAML 中使用的字段名、类型以及哪些是必填的。基本示例action: seventeentrack.get_packages data: config_entry_id: 2b4be47a1fa7c3764f14cf756dc98991 package_state: - delivered - in_transit response_variable: result执行后匹配的包裹会存储在result响应变量中位于result.packages下。YAML 选项详解字段类型是否必填说明config_entry_idstring是要检索包裹的 17Track 服务配置条目的 IDpackage_statelist否只返回所列状态的包裹省略时返回全部包裹。可选值见下方状态列表response_variablestring是动作层面存储响应数据的变量名如resultpackage_state 可选值动作文档明确列出了package_state支持的一个或多个值not_found未找到in_transit在途expired已过期ready_to_be_picked_up待取件undelivered未送达delivered已送达alert异常提醒值得注意的是集成文档在「Package statuses」章节列出的状态为Not found、In transit、Expired、Ready to be picked up、Undelivered、Delivered、Returned已退回。集成会为每个状态创建一个传感器传感器显示的值即为处于该状态的包裹数量。因此在实际使用中package_state的状态维度与集成传感器状态体系一致你可以按需组合过滤例如只查询delivered和in_transit。响应数据结构Response data动作返回一个packages列表每个条目描述一个包裹包含以下字段源自动作文档字段说明tracking_number包裹的跟踪单号friendly_name你为该包裹设置的友好名称status包裹当前的状态info_text最新跟踪事件的一句话描述location包裹的最后已知位置timestamp最新跟踪事件的时间ISO 8601 格式仅当 17Track 报告了时间时才存在origin_country包裹的发件国家destination_country包裹的目的地国家package_type包裹类型tracking_info_language跟踪信息的语言在模板template中可通过result.packages访问该列表例如{{ result.packages | count }}统计包裹数量、{% for package in result.packages %}遍历每个包裹。实战自动化与仪表盘集成示例示例一仪表盘汇总卡片官方集成文档示例集成文档提供了一个完整的实战场景先创建一个基于触发器的模板传感器每小时调用一次seventeentrack.get_packages统计在途包裹再在仪表盘用 Markdown 卡片展示。第一步创建触发器型模板传感器template: - trigger: - trigger: time_pattern hours: /1 - trigger: homeassistant event: start action: - action: seventeentrack.get_packages data: config_entry_id: YOUR_CONFIG_ENTRY_ID package_state: - in_transit response_variable: result sensor: - name: Packages in transit unique_id: packages_in_transit state: {{ result.packages | count }} attributes: packages: {{ result.packages }}这里使用了两个触发器每小时time_pattern触发一次以及 Home Assistant 启动homeassistantevent: start时触发保证重启后立即刷新数据。包裹列表存入传感器属性packages中。第二步使用模板 Markdown 卡片列出所有在途包裹及其状态type: markdown title: Packages in transit content: {% for package in state_attr(sensor.packages_in_transit, packages) %} - **{{ package.friendly_name }} ({{ package.tracking_number }}):** {{ package.info_text }} {% endfor %}示例二与添加/归档动作联动构成完整跟踪闭环用seventeentrack.add_package从订单确认邮件中解析出单号并自动添加跟踪参考 add_package 动作文档 中的自动化示例用seventeentrack.get_packages定期查询状态变化用seventeentrack.archive_package在包裹标记为已送达后自动归档参考 archive_package 动作文档。快速测试Try it yourself动作文档附带的actions/try_it.md建议你亲自验证打开Settings Tools Actions搜索该动作填写字段然后选择Perform action执行动作。无需编写一行 YAML即可在真实实体上看到效果。常见问题排查方向动作文档末尾的stuck.md提示了遇到问题时的通用排查思路。结合本动作特性常见检查点包括config_entry_id 是否正确必须指向 17TRACK 集成条目的真实 ID可通过 Settings Devices services 中集成菜单的 Copy entry ID 获取密码长度限制若 API 鉴权失败先确认 17track.net 账户密码不超过 16 个字符状态值拼写package_state需使用文档列出的枚举值如in_transit、ready_to_be_picked_up响应变量命名冲突response_variable名称在同一自动化/脚本中应保持唯一避免被其他动作覆盖。小结seventeentrack.get_packages是 17TRACK 集成数据查询的核心入口通过config_entry_id指定服务、用package_state按状态过滤、以response_variable承接返回的packages列表配合模板传感器与 Markdown 卡片即可构建实时的包裹看板。结合 add/archive 两个兄弟动作你可以在 Home Assistant 内完成从添加单号、状态监控到自动归档的完整包裹跟踪自动化闭环。【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表