核心用法
Garmin Tracker 是一个专为 Garmin 用户设计的训练数据同步技能,通过浏览器自动化从 Garmin Connect 提取跑步活动与训练计划信息,并维护结构化的 garmin_tracking.json 文件。
主要流程:
1. 数据抓取:使用 Playwright 浏览器引擎访问 Garmin 活动列表和训练计划页面
2. 本地重建:读取现有 JSON 文件,保留 planName 和 recurring_activities,重建 history 和 summary
3. 计划同步:更新 currentWeek 和 upcoming 训练安排
4. 验证归档:通过 Python 脚本进行模式校验和摘要重计算
认证方式(优先级递减):
- 浏览器现有会话(推荐)
- 引导用户手动登录
- 凭证回退模式(需用户明确授权)
技术约束:
- 固定起始日期
2026-02-01 - 严格控制数据范围:仅列表/表格字段,不抓取 GPS 轨迹、功率、步频等原始时序数据
- 标准化活动字段:type、distanceKm、durationSec、avgPaceSecPerKm、avgHrBpm、calories、sourceId
显著优点
1. 自动化程度高:单次配置后可持续同步,减少手动导出导入
2. 数据结构清晰:强制模式约束,确保跨工具兼容性
3. 安全优先设计:浏览器会话优先,凭证模式有严格清理规则
4. 模块化脚本:分离重建、同步、验证功能,便于调试和维护
5. 故障恢复机制:内置浏览器状态恢复序列(tabs → focus → snapshot)
潜在局限
1. 依赖浏览器环境:必须安装 playwright-core,对无 GUI 环境配置要求较高
2. 认证脆弱性:Garmin 页面结构变更可能导致登录流程失效
3. 数据深度有限:故意不抓取详细telemetry,不适合需要深度分析的用户
4. 日期硬编码:2026-02-01 起始日期无法配置,历史数据追溯受限
5. 单用户设计:无多账户支持,家庭共享场景需手动切换
适合人群
- 需要定期追踪训练进度但不想手动记录数据的 Garmin 跑步用户
- 希望将训练计划与历史活动整合到统一 JSON 工作流的技术用户
- 已有 OpenClaw 环境配置、能接受浏览器自动化方案的进阶用户
常规风险
| 风险类别 | 说明 | 缓解措施 |
|---------|------|---------|
| 会话过期 | Garmin 登录状态失效 | 明确引导重新登录流程 |
| 凭证泄露 | 回退模式下的密码处理 | 强制内存清理,禁止持久化存储 |
| 数据覆盖 | 重建流程可能丢失未归档数据 | 建议重建前手动备份 |
| 页面结构变更 | Garmin UI 更新导致选择器失效 | 依赖稳定列表/表格字段,降低 Fragility |
| 网络不稳定 | 同步中断导致 JSON 损坏 | 验证脚本前置检查 |
该技能体现了"最小可行抓取"的设计哲学,在自动化便利性与数据安全之间取得平衡,适合作为个人训练管理流水线的可靠数据源。