Fitbit Analytics 是一个用于集成 Fitbit 健康与健身数据的技能,基于 Fitbit Web API 获取并分析个人健康指标。
用途
该技能适用于以下场景:获取 Fitbit 指标(步数、卡路里、心率、睡眠);分析一段时间内的活动趋势;为不活动或异常心率设置告警;生成每日或每周健康报告。
主要能力
通过 Fitbit Web API 封装,可获取多种数据:每日步数、每日消耗卡路里、每日距离、活动摘要、心率数据、睡眠数据、详细睡眠阶段、血氧水平、体重测量值,以及 Active Zone Minutes(AZM)细分。
每日简报(fitbit_briefing.py)可生成早晨健康简报,输出内容包括:昨日的活动(已记录的运动)、昨日的 Active Zone Minutes(总计、Fat Burn、Cardio、Peak)、今日活动摘要(步数、卡路里、楼层、距离)、心率(静息、平均、区间)、睡眠(时长、效率、清醒次数),以及与 7 天平均值的趋势对比。支持 text、brief(3 行摘要)、json 三种输出格式。
分析功能(FitbitAnalyzer)可返回 avg_steps、avg_resting_hr、step_trend 等汇总指标。告警脚本(alerts.py)支持基于阈值的通知,例如指定天数、步数阈值和睡眠阈值。
注意:Cardio Load 无法通过 Fitbit API 获取,它是 Fitbit Premium 功能,仅在移动应用中可见。
使用方式
首先设置 Fitbit API 凭据环境变量:FITBIT_CLIENT_ID、FITBIT_CLIENT_SECRET、FITBIT_ACCESS_TOKEN、FITBIT_REFRESH_TOKEN。
命令行使用示例:
- 生成早晨简报:python scripts/fitbit_briefing.py(可加 --date 指定日期、--format 指定格式)
- 获取每日步数:python scripts/fitbit_api.py steps --days 7
- 获取心率数据:python scripts/fitbit_api.py heartrate --days 7
- 睡眠摘要:python scripts/fitbit_api.py sleep --days 7
- 生成每周健康报告:python scripts/fitbit_api.py report --type weekly
- 获取活动摘要:python scripts/fitbit_api.py summary --days 7
- 告警:python {baseDir}/scripts/alerts.py --days 7 --steps 8000 --sleep 7
Python API 使用:设置 PYTHONPATH 后导入 FitbitClient,调用 get_steps、get_heartrate、get_sleep、get_activity_summary 等方法(需提供 start_date 和 end_date)。也可使用 FitbitAnalyzer 进行汇总分析。
认证
Fitbit API 需要 OAuth 2.0 认证:在 https://dev.fitbit.com/apps 创建应用,获取 client_id 和 client_secret,完成 OAuth 流程获取 access_token 和 refresh_token,然后设置环境变量或传入脚本。
自动化
Cron 任务在 ThinkFleet 的网关中配置,而非本仓库。可通过 thinkfleet cron add 命令添加每日早晨简报等定时任务,支持指定 cron 表达式、时区、会话、投递渠道(如 telegram)和目标。
脚本与参考
脚本包括:scripts/fitbit_api.py(Fitbit Web API 封装、CLI 和分析)、scripts/fitbit_briefing.py(早晨简报 CLI)、scripts/alerts.py(基于阈值的通知)。参考文档包括 references/api.md(Fitbit Web API 文档)和 references/metrics.md(指标定义与解读)。
限制
Cardio Load 不可通过 API 获取。Cron 任务需在 ThinkFleet 网关中配置。使用前必须完成 OAuth 2.0 认证并配置四个环境变量。