名称: garmin-health-analysis
描述: 用自然语言与你的 Garmin 数据对话——“我滑雪的最快速度是多少?”、“昨晚睡得怎么样?”、“下午3点我的心率是多少?”。访问 20+ 项指标(睡眠阶段、身体电量、HRV、最大摄氧量、训练准备度、身体成分、血氧),下载 FIT/GPX 文件进行路线分析,查询任意点的海拔/配速,并生成交互式健康仪表盘。从简单的“显示本周的锻炼”到深入的“分析我的恢复与训练负荷”。
版本: 1.2.2
作者: EversonL & Claude
主页: https://github.com/eversonl/ClawdBot-garmin-health-analysis
元数据: {"clawdbot":{"emoji":"⌚","requires":{"env":["GARMIN_EMAIL","GARMIN_PASSWORD"]},"install":[{"id":"garminconnect","kind":"python","package":"garminconnect","label":"安装 garminconnect (pip)"},{"id":"fitparse","kind":"python","package":"fitparse","label":"安装 fitparse (pip)"},{"id":"gpxpy","kind":"python","package":"gpxpy","label":"安装 gpxpy (pip)"}]}}
从 Garmin Connect 查询健康指标并生成交互式 HTML 图表。
本技能支持 两种不同的设置方式:
请根据您的使用场景选择合适的路径。您也可以同时使用两者!
pip3 install garminconnect
您有三种方式提供 Garmin Connect 凭据:
将凭据添加到 ~/.clawdbot/clawdbot.json:
{
"skills": {
"entries": {
"garmin-health-analysis": {
"enabled": true,
"env": {
"GARMIN_EMAIL": "your-email@example.com",
"GARMIN_PASSWORD": "your-password"
}
}
}
}
}
提示:您也可以通过 ClawdBot UI 的技能设置面板进行配置。
在技能目录中创建配置文件:
cd ~/.clawdbot/skills/garmin-health-analysis
# 或:cd <workspace>/skills/garmin-health-analysis
cp config.example.json config.json
# 编辑 config.json 并添加您的邮箱和密码
config.json:
{
"email": "your-email@example.com",
"password": "your-password"
}
注意:config.json 已加入 gitignore 以确保凭据安全。
在认证时直接传递凭据:
python3 scripts/garmin_auth.py login \
--email YOUR_EMAIL@example.com \
--password YOUR_PASSWORD
登录 Garmin Connect 并保存会话令牌:
python3 scripts/garmin_auth.py login
此命令按以下优先级顺序使用凭据:
1. 命令行参数 (--email, --password)
2. 本地配置文件 (config.json)
3. 环境变量 (GARMIN_EMAIL, GARMIN_PASSWORD)
4. ClawdBot 配置 (skills.entries.garmin-health-analysis.env)
会话令牌存储在 ~/.clawdbot/garmin-tokens.json 中并会自动刷新。
检查认证状态:
python3 scripts/garmin_auth.py status
使用 scripts/garmin_data.py 获取 JSON 数据:
# 睡眠数据(默认最近 7 天)
python3 scripts/garmin_data.py sleep --days 14
# 身体电量(Garmin 的恢复指标)
python3 scripts/garmin_data.py body_battery --days 30
# HRV 数据
python3 scripts/garmin_data.py hrv --days 30
# 心率(静息、最大、最小)
python3 scripts/garmin_data.py heart_rate --days 7
# 活动/锻炼
python3 scripts/garmin_data.py activities --days 30
# 压力水平
python3 scripts/garmin_data.py stress --days 7
# 综合摘要(包含平均值)
python3 scripts/garmin_data.py summary --days 7
# 自定义日期范围
python3 scripts/garmin_data.py sleep --start 2026-01-01 --end 2026-01-15
# 用户资料
python3 scripts/garmin_data.py profile
输出为 JSON 格式到标准输出。解析它以回答用户问题。
使用 scripts/garmin_chart.py 生成交互式 HTML 可视化图表:
# 睡眠分析(时长 + 分数)
python3 scripts/garmin_chart.py sleep --days 30
# 身体电量恢复图表(颜色编码)
python3 scripts/garmin_chart.py body_battery --days 30
# HRV 与静息心率趋势
python3 scripts/garmin_chart.py hrv --days 90
# 活动摘要(按类型、卡路里)
python3 scripts/garmin_chart.py activities --days 30
# 完整仪表盘(包含全部 4 个图表)
python3 scripts/garmin_chart.py dashboard --days 30
# 保存到指定文件
python3 scripts/garmin_chart.py dashboard --days 90 --output ~/Desktop/garmin-health.html
图表会自动在默认浏览器中打开。它们使用 Chart.js 库,具有现代渐变设计、统计卡片和交互式提示框。
| 用户提问 | 操作 |
|---|---|
| “昨晚睡得怎么样?” | garmin_data.py summary --days 1,报告睡眠时长和分数 |
| “我这周恢复得如何?” | garmin_data.py body_battery --days 7,报告平均值和趋势 |
| “显示我过去一个月的健康状况” | garmin_chart.py dashboard --days 30 |
| “我的 HRV 有改善吗?” | garmin_data.py hrv --days 30,分析趋势 |
| “我这周做了什么锻炼?” | garmin_data.py activities --days 7,列出活动详情 |
| “我的静息心率怎么样?” | garmin_data.py heart_rate --days 7,报告平均值和趋势 |
Garmin 基于 HRV、压力、睡眠和活动的专有恢复指标:
- 高 (75-100):完全充满电,适合高强度训练
- 中 (50-74):中等能量,适合常规活动
- 低 (25-49):能量有限,需要恢复
- 极低 (0-24):能量耗尽,应优先休息
基于时长、阶段和干扰的整体睡眠质量:
- 优秀 (90-100):最佳恢复性睡眠
- 良好 (80-89):优质睡眠,有轻微问题
- 一般 (60-79):足够但有待改善
- 差 (0-59):存在显著睡眠不足
以毫秒为单位测量,通常数值越高越好:
- 反映神经系统平衡和恢复能力
- 关注长期趋势(上升 = 恢复能力改善)
- 受睡眠、压力、训练负荷、疾病影响
- 正常范围因人而异(20-200+ 毫秒)
通常越低表示心血管健康状况越好:
- 运动员:40-60 bpm
- 健康成年人:60-70 bpm
- 普通成年人:70-80 bpm
- 突然升高可能表示压力、疾病或过度训练
基于全天的 HRV 分析:
- 低压力:休息和恢复期
- 中等压力:正常日常活动
- 高压力:体力活动或精神压力
当用户询问见解或想了解其趋势时,请参考 references/health_analysis.md 获取:
- 基于科学的各项指标解读
- 按年龄和健康水平的正常范围
- 模式识别(周趋势、恢复周期、训练负荷平衡)
- 基于数据的可操作建议
- 提示需要休息或就医的警示信号
python3 scripts/garmin_data.py summary --days Nreferences/health_analysis.md 获取解读框架python3 scripts/garmin_auth.py login ...garminconnect 导入失败:pip3 install --upgrade garminconnect~/.clawdbot/garmin-tokens.json| 功能 | Garmin | Whoop |
|---|---|---|
| 恢复指标 | 身体电量 (0-100) | 恢复分数 (0-100%) |
| HRV 追踪 | 是(夜间平均值) | 是(详细) |
| 睡眠阶段 | 浅睡、深睡、快速眼动、清醒 | 浅睡、慢波睡眠、快速眼动、清醒 |
| 活动追踪 | 内置 GPS,多种运动模式 | 疲劳分数 (0-21) |
| 压力 | 全天压力水平 | 不直接追踪 |
| API | 非官方 (garminconnect) | 官方 OAuth |
| 设备类型 | 手表、健身追踪器 | 仅可穿戴手环 |
references/api.md — Garmin Connect API 详情(非官方)references/health_analysis.md — 基于科学的健康数据解读