名称: garmin-connect
描述: "Garmin Connect 与 Clawdbot 的集成:使用 OAuth 每 5 分钟同步一次健身数据(步数、心率、卡路里、锻炼、睡眠)。"
将您的所有 Garmin 健身数据同步到 Clawdbot:
- 🚶 每日活动:步数、心率、卡路里、活跃分钟数、距离
- 😴 睡眠:时长、质量、深睡/REM/浅睡细分
- 🏋️ 锻炼:近期活动,包含距离、时长、卡路里、心率
- ⏱️ 实时同步:通过 cron 每 5 分钟同步一次
pip install -r requirements.txt
python3 scripts/garmin-auth.py your-email@gmail.com your-password
此操作会将您的 OAuth 会话保存到 ~/.garth/session.json —— 完全本地化且安全。
python3 scripts/garmin-sync.py
您应该能看到包含今日统计数据的 JSON 输出。
添加到您的 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
在您的脚本中导入并使用:
from scripts.garmin_formatter import format_all, get_as_dict
# 获取所有格式化数据
print(format_all())
# 或获取原始字典数据
data = get_as_dict()
print(f"今日步数: {data['summary']['steps']}")
✅ 基于 OAuth(安全,不存储密码)
✅ 所有指标:活动、睡眠、锻炼
✅ 本地缓存(快速访问)
✅ 支持定时任务(5 分钟间隔)
✅ 易于与 Clawdbot 集成
✅ 支持多用户
summary)steps: 每日步数heart_rate_resting: 静息心率 (bpm)calories: 总卡路里消耗active_minutes: 高强度活动分钟数distance_km: 行进距离sleep)duration_hours: 总睡眠时长(小时)duration_minutes: 总睡眠时长(分钟)quality_percent: 睡眠质量评分 (0-100)deep_sleep_hours: 深睡时长rem_sleep_hours: REM 睡眠时长light_sleep_hours: 浅睡时长awake_minutes: 睡眠期间的清醒时长workouts)针对每项近期锻炼:
- type: 活动类型(跑步、骑行等)
- name: 活动名称
- distance_km: 行进距离
- duration_minutes: 活动时长
- calories: 卡路里消耗
- heart_rate_avg: 平均心率
- heart_rate_max: 最大心率
默认情况下,数据缓存于:~/.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 |
定时任务包装脚本 |
requirements.txt |
Python 依赖项 |
garmin-sync.pychmod +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
# 获取格式化输出
print(format_all())
# 获取原始数据
data = get_as_dict()
if data:
print(f"睡眠: {data['sleep']['duration_hours']}h")
print(f"步数: {data['summary']['steps']:,}")
MIT — 可自由使用、分叉、修改。