名称: 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 —— 可自由使用、分叉、修改。