返回顶部
g

garmin-tracker佳明追踪器

Rebuild and maintain garmin_tracking.json from Garmin web data (activities + training plan) with a fixed schema from 2026-02-01.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
732
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

garmin-tracker

Garmin Tracker

当用户要求同步、重建或验证 garmin_tracking.json(工作区根目录)中的 Garmin 训练数据时,使用此技能。

运行时前提条件

  • - 技能执行时,运行环境中必须提供 playwright-core。
  • 如果遇到 MODULENOTFOUND: playwright-core,请在活动工作区中安装:

bash
npm install playwright-core

范围

  • - 此技能范围明确限定:Garmin 跑步者/用户的目标追踪(训练历史摘要 + 即将进行的训练计划)。
  • 默认不在范围内:深度遥测数据抓取(GPS 路线内部数据、分段数组、步频/功率/海拔原始序列)。
  • 不在范围内:营养工作流编排或外部工作流集成。

硬性规则

  • - 控制起始日期固定为:2026-02-01。
  • 保留以下顶层字段:lastUpdate、planName、currentWeek、summary、history、upcoming、recurring_activities。
  • summary.to 必须始终为今天(YYYY-MM-DD 格式)。
  • 活动必须使用以下规范结构:
- type - distanceKm - durationSec - avgPaceSecPerKm - avgHrBpm - calories - sourceId

浏览器流程(Garmin)

  1. 1. 打开 Garmin 活动列表页面,收集从 2026-02-01 开始的活动。
  2. 打开 Garmin 训练计划页面(/app/training-plan),刷新 currentWeek 和 upcoming。
  3. 保持提取目标:仅限列表/表格字段。不进行 GPS/分段/步频/功率的深度抓取。
  4. 如果浏览器操作失败,在升级处理前先执行一次工具内恢复序列(tabs -> focus -> 新的 snapshot)。

会话/认证约定

  • - 用户在 OpenClaw 使用的浏览器配置文件中本地登录 Garmin。
  • 如果 Garmin 页面显示已登出状态,请用户登录后重新运行。
  • 不要在技能文件中存储用户凭据。

认证(优先级顺序)

使用以下严格顺序:

  1. 1. 已登录的浏览器会话(首选):重用现有的已认证 Garmin 会话。
  2. 在受控浏览器/配置文件中引导手动登录。
  3. 仅当浏览器登录不可行或用户明确拒绝时,才使用凭据回退方案。

synctrainingplan.mjs 支持:

  • - --auth-source auto(默认):使用现有浏览器会话;如果已登出且凭据可用,则尝试凭据登录。
  • --auth-source browser:绝不使用凭据;需要手动登录。
  • --auth-source credentials:需要凭据并直接尝试登录。

认证(用户引导)

如果用户已登出,请按以下明确步骤引导:

  1. 1. 要求在受控浏览器配置文件中手动登录:
https://connect.garmin.com/signin/ -> https://connect.garmin.com/app/training-plan -> 重新运行同步。
  1. 2. 如果浏览器登录不可行,请求凭据作为回退方案并运行凭据模式。

注意:

  • - 认证策略(浏览器优先 vs 凭据优先)可由操作员为每个环境配置。
  • 在暴露远程 UI 的容器化浏览器设置中,需要时使用配置的 noVNC/VNC 端点完成登录。
  • 在主机浏览器模式下,直接在 OpenClaw 配置的主机浏览器配置文件中登录。

凭据模式(回退方案)

如果浏览器登录不可行,可以使用凭据模式作为回退方案。

规则:

  1. 1. 仅询问严格必要的信息(用户名/邮箱 + 密码,以及仅在提示时询问 2FA 验证码)。
  2. 仅将凭据用于登录操作,之后尽可能从工作内存/上下文中丢弃。
  3. 切勿将凭据写入 MEMORY.md、garmin_tracking.json、日志或技能文件中。
  4. 切勿在回复中回显凭据。
  5. 登录成功后,继续使用正常的基于会话的流程。

数据重建流程

  1. 1. 读取当前的 garmintracking.json。
  2. 保留 planName 和 recurringactivities。
  3. 从 Garmin 活动(>= 控制起始日期)重建 history。
  4. 从重建的 history 重新计算 summary。
  5. 将 summary.to 设置为今天,lastUpdate 设置为当前时间戳。

本地验证器/协调器脚本

使用捆绑脚本进行模式规范化和摘要重新计算:

bash
python3 {baseDir}/scripts/reconciletracking.py --file garmintracking.json --write

仅检查模式:

bash
python3 {baseDir}/scripts/reconciletracking.py --file garmintracking.json

训练计划同步脚本

使用捆绑脚本从 Garmin 训练计划刷新 currentWeek 和 upcoming:

bash
node {baseDir}/scripts/synctrainingplan.mjs --file garmin_tracking.json --write

凭据回退示例(最后手段):

bash
node {baseDir}/scripts/synctrainingplan.mjs \
--auth-source credentials \
--garmin-email user@example.com \
--garmin-password * \
--file garmin_tracking.json \
--write

CDP 解析优先级:

  1. 1. --cdp-url(显式覆盖)
  2. 来自 --config 路径的 OpenClaw 配置(browser.defaultProfile -> browser.profiles..cdpUrl)
  3. 回退到本地设置的脚本默认 CDP 端点(http://127.0.0.1:

覆盖示例:

bash
node {baseDir}/scripts/synctrainingplan.mjs --config data/config/openclaw.json --url https://connect.garmin.com/app/training-plan --file garmin_tracking.json --write

最小化解析器测试

运行解析器测试用例:

bash
node --test {baseDir}/scripts/tests/trainingplanparser.test.mjs

最终检查

  • - 文件为有效 JSON。
  • 不存在 nutritionLog 键。
  • history[].activities[] 符合规范结构。
  • summary.to 等于今天。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 garmin-tracker-1776420042 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 garmin-tracker-1776420042 技能

通过命令行安装

skillhub install garmin-tracker-1776420042

下载

⬇ 下载 garmin-tracker v1.0.2(免费)

文件大小: 12.44 KB | 发布时间: 2026-4-17 19:56

v1.0.2 最新 2026-4-17 19:56
Hardened auth/config handling: removed implicit env fallbacks, moved to explicit CLI flags for credentials/config, added required runtime bins metadata, and aligned docs/messages with behavior.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部