Garmin Connect技能使用说明
2026-04-01
新闻来源:网淘吧
围观:11
电脑广告
手机广告
Garmin Connect 技能
将您所有的 Garmin 健身数据同步到 Clawdbot:
- 🚶日常活动:步数、心率、卡路里、活跃分钟数、距离
- 😴睡眠:时长、质量、深度/快速眼动/浅度睡眠细分
- 🏋️锻炼:最近的活动,包含距离、时长、卡路里、心率
- ⏱️实时同步:通过 cron 每 5 分钟一次
快速开始
1. 安装依赖项
pip install -r requirements.txt
2. OAuth 身份验证(一次性)
python3 scripts/garmin-auth.py your-email@gmail.com your-password
这会将您的 OAuth 会话保存到~/.garth/session.json——完全本地化且安全。

3. 测试同步
python3 scripts/garmin-sync.py
您应该会看到包含今日统计数据的 JSON 输出。
4. 设置 5 分钟 Cron 任务
添加到您的crontab中:
*/5 * * * * /home/user/garmin-connect-clawdbot/scripts/garmin-cron.sh
或手动执行:
*/5 * * * * python3 /home/user/garmin-connect-clawdbot/scripts/garmin-sync.py ~/.clawdbot/.garmin-cache.json
5. 在Clawdbot中使用
在您的脚本中导入并使用:
from scripts.garmin_formatter import format_all, get_as_dict
# Get all formatted data
print(format_all())
# Or get raw dict
data = get_as_dict()
print(f"Steps today: {data['summary']['steps']}")
功能特点
✅ 基于OAuth(安全,不存储密码) ✅ 所有指标:活动、睡眠、锻炼 ✅ 本地缓存(快速访问) ✅ 适合Cron(5分钟间隔) ✅ 易于集成到Clawdbot ✅ 多用户支持
捕获的数据
每日活动(摘要)
步数:每日步数静息心率:静息心率(次/分钟)卡路里:总消耗卡路里活动分钟数:高强度活动分钟数距离_公里:行进距离
睡眠(睡眠)
duration_hours:总睡眠时长(小时)duration_minutes:总睡眠时长(分钟)quality_percent:睡眠质量评分(0-100)deep_sleep_hours:深度睡眠时长rem_sleep_hours:快速眼动睡眠时长light_sleep_hours:浅度睡眠时长awake_minutes:睡眠中清醒时长
锻炼记录 (workouts)
对于每次近期锻炼:
type:活动类型(跑步、骑行等)name:活动名称distance_km:行进距离duration_minutes活动时长卡路里:消耗的卡路里平均心率:平均心率最大心率:最大心率
缓存位置
默认情况下,数据缓存于:~/.clawdbot/.garmin-cache.json
可通过以下方式自定义:
python3 scripts/garmin-sync.py /custom/path/cache.json
文件
| 文件 | 用途 |
|---|---|
garmin-auth.py | OAuth 设置(运行一次) |
garmin-sync.py | 主同步逻辑(每5分钟运行) |
garmin-formatter.py | 格式化数据以供显示 |
garmin-cron.sh | Cron 包装脚本 |
requirements.txt | Python 依赖项 |
故障排除
OAuth 身份验证失败
- 检查电子邮件/密码
- 在 Garmin 账户上禁用双重认证(或使用应用专用密码)
- Garmin 服务器可能正在限制请求速率 — 请等待 5 分钟
未显示数据
- 将您的 Garmin 设备与 Garmin Connect 应用同步
- 等待 2-3 分钟让数据同步
- 检查 Garmin Connect 网页版或应用中是否显示数据
- 然后再次运行
garmin-sync.py---
在 cron 中遇到权限被拒绝
chmod +x scripts/garmin-cron.sh
chmod +x scripts/garmin-sync.py
chmod +x scripts/garmin-auth.py
缓存文件未找到
运行garmin-sync.py至少一次以创建缓存:
python3 scripts/garmin-sync.py
使用示例
from scripts.garmin_formatter import format_all, get_as_dict
# Get formatted output
print(format_all())
# Get raw data
data = get_as_dict()
if data:
print(f"Sleep: {data['sleep']['duration_hours']}h")
print(f"Steps: {data['summary']['steps']:,}")
许可证
MIT 许可证 — 可自由使用、分叉、修改。
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~