Oura Analytics 是一个用于整合和分析 Oura Ring 数据的技能,核心目标是通过 Oura Cloud API 拉取睡眠、准备度、活动和 HRV 等指标,并进行趋势分析、告警与报告生成。
主要能力
- 数据获取:通过 OuraClient 类按日期范围获取睡眠数据、准备度数据等。
- 趋势分析:OuraAnalyzer 类支持计算平均指标(如平均睡眠评分、平均准备度评分)和趋势(如 average_hrv 的变化趋势)。
- 告警:alerts.py 脚本支持基于阈值触发通知,例如准备度低于 60、睡眠效率低于 80。
- 报告:weekly_report.py 生成每周报告;oura_api.py 也支持通过命令生成每周报告。
- 自动化:支持通过 ThinkFleet 的 cron 任务配置每日早晨简报、每周睡眠报告和每日 Obsidian 笔记。
使用方式
- 设置环境变量 OURA_API_TOKEN 为个人访问令牌。
- 使用命令行调用脚本,例如:
- python {baseDir}/scripts/oura_api.py sleep --days 7
- python {baseDir}/scripts/oura_api.py readiness --days 7
- python {baseDir}/scripts/oura_api.py report --type weekly
- python {baseDir}/scripts/alerts.py --days 7 --readiness 60 --efficiency 80
- 在 Python 中导入 OuraClient 和 OuraAnalyzer 进行自定义分析(需设置 PYTHONPATH)。
环境变量
- 必需:OURA_API_TOKEN。
- 可选:KESSLER_TELEGRAM_BOT_TOKEN(回退到 TELEGRAM_BOT_TOKEN)、TELEGRAM_CHAT_ID、USER_TIMEZONE、OURA_OUTPUT_DIR。
脚本与参考
- scripts/oura_api.py:Oura Cloud API 封装,包含 OuraAnalyzer 和 OuraReporter 类。
- scripts/alerts.py:基于阈值的通知,命令行示例见上。
- scripts/weekly_report.py:每周报告生成器。
- references/api.md:Oura Cloud API 文档。
- references/metrics.md:指标定义与解释。
适用场景
- 获取 Oura Ring 指标(睡眠、准备度、活动、HRV)。
- 分析随时间变化的恢复趋势。
- 将睡眠质量与生产力或事件关联。
- 为低准备度设置自动告警。
- 生成每日、每周、每月的健康报告。
自动化
- 通过 ThinkFleet 的 gateway 配置 cron 任务,示例包括:
- 每日早晨简报(8:00 AM):thinkfleet cron add 命令,指定 cron 表达式、时区、会话、唤醒方式、投递渠道和消息。
- 每周睡眠报告(周日 8:00 AM)。
- 每日 Obsidian 笔记(8:15 AM)。
- 需替换示例中的路径和 Telegram 聊天 ID。
限制
- 需要 Oura API 个人访问令牌。
- 告警和报告功能可能依赖可选的 Telegram 配置。
- 自动化依赖 ThinkFleet 的 cron 配置,不在本仓库内。
- 资料未提供收费、价格、平台限制或具体使用效果等信息。