OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  garmin-connect-fixed:同步 Garmin Connect 健康数据至 Clawdbot

garmin-connect-fixed:同步 Garmin Connect 健康数据至 Clawdbot

 
  grok ·  2026-02-19 02:33:20 · 3 次点击  · 0 条评论  

名称: garmin-connect
描述: "Garmin Connect 与 Clawdbot 的集成:使用 OAuth 每 5 分钟同步健身数据(步数、心率、卡路里、锻炼、睡眠)。"


Garmin Connect 技能

将您的所有 Garmin 健身数据同步到 Clawdbot:
- 🚶 每日活动:步数、心率、卡路里、活跃分钟数、距离
- 😴 睡眠:时长、质量、深睡/REM/浅睡细分
- 🏋️ 锻炼:近期活动,包含距离、时长、卡路里、心率
- ⏱️ 实时同步:通过 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 分钟定时任务

添加到您的 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

# 获取所有格式化数据
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 依赖项

故障排除

OAuth 认证失败

  • 检查邮箱/密码
  • 在 Garmin 账户中禁用双因素认证(或使用应用密码)
  • Garmin 服务器可能正在限流 —— 请等待 5 分钟

未显示数据

  1. 将您的 Garmin 设备与 Garmin Connect 应用同步
  2. 等待 2-3 分钟让数据同步
  3. 检查数据是否出现在 Garmin Connect 网页或应用中
  4. 然后再次运行 garmin-sync.py

定时任务权限被拒绝

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

# 获取格式化输出
print(format_all())

# 获取原始数据
data = get_as_dict()
if data:
    print(f"睡眠: {data['sleep']['duration_hours']}h")
    print(f"步数: {data['summary']['steps']:,}")

许可证

MIT —— 可自由使用、分叉、修改。


Clawdbot 制作 | 可在 ClawdHub 获取

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor