OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  oura-analytics:Oura Ring 数据集成与分析工具

oura-analytics:Oura Ring 数据集成与分析工具

 
  apple ·  2026-02-05 08:55:22 · 3 次点击  · 0 条评论  

名称: oura-analytics
描述: Oura Ring 数据集成与分析。从 Oura Cloud API 获取睡眠分数、准备度、活动、HRV 及趋势数据。生成自动化报告、与生产力的关联分析,并在恢复状态不佳时触发提醒。需要 OURA_API_TOKEN(请在 cloud.ouraring.com 获取)。
元数据: {"openclaw":{"requires":{"bins":["python3"],"env":["OURA_API_TOKEN"]},"homepage":"https://github.com/kesslerio/oura-analytics-openclaw-skill"}}


Oura 数据分析

快速开始

# 设置 Oura API 令牌
export OURA_API_TOKEN="你的个人访问令牌"

# 获取睡眠数据(最近 7 天)
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

使用场景

适用于以下场景:
- 获取 Oura Ring 指标(睡眠、准备度、活动、HRV)
- 分析恢复状态的长期趋势
- 关联睡眠质量与生产力/事件
- 设置低准备度自动提醒
- 生成每日/每周/每月健康报告

核心工作流

1. 数据获取

export PYTHONPATH="{baseDir}/scripts"
python - <<'PY'
from oura_api import OuraClient

client = OuraClient(token="YOUR_TOKEN")
sleep_data = client.get_sleep(start_date="2026-01-01", end_date="2026-01-16")
readiness_data = client.get_readiness(start_date="2026-01-01", end_date="2026-01-16")
print(len(sleep_data), len(readiness_data))
PY

2. 趋势分析

export PYTHONPATH="{baseDir}/scripts"
python - <<'PY'
from oura_api import OuraClient, OuraAnalyzer

client = OuraClient(token="YOUR_TOKEN")
sleep_data = client.get_sleep(start_date="2026-01-01", end_date="2026-01-16")
readiness_data = client.get_readiness(start_date="2026-01-01", end_date="2026-01-16")

analyzer = OuraAnalyzer(sleep_data, readiness_data)
avg_sleep = analyzer.average_metric(sleep_data, "score")
avg_readiness = analyzer.average_metric(readiness_data, "score")
trend = analyzer.trend(sleep_data, "average_hrv")
print(avg_sleep, avg_readiness, trend)
PY

3. 提醒功能

python {baseDir}/scripts/alerts.py --days 7 --readiness 60 --efficiency 80

环境变量

必需:
- 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 - 基于阈值的通知功能(CLI 用法:python {baseDir}/scripts/alerts.py --days 7 --readiness 60
  • scripts/weekly_report.py - 周度报告生成器

参考文档

  • references/api.md - Oura Cloud API 文档
  • references/metrics.md - 指标定义与解读

自动化(定时任务)

定时任务在 OpenClaw 网关中配置,不在本仓库中。请将以下任务添加到你的 OpenClaw 设置中:

每日晨间简报(上午 8:00)

openclaw cron add \
  --name "每日 Oura 健康报告(混合格式)" \
  --cron "0 8 * * *" \
  --tz "America/Los_Angeles" \
  --session isolated \
  --wake next-heartbeat \
  --deliver \
  --channel telegram \
  --target "<你的 Telegram 聊天 ID>" \
  --message "运行每日 Oura 健康报告(混合格式):执行 bash /你的/实际路径/scripts/daily-oura-report-hybrid.sh"

每周睡眠报告(周日上午 8:00)

openclaw cron add \
  --name "每周 Oura 睡眠报告" \
  --cron "0 8 * * 0" \
  --tz "America/Los_Angeles" \
  --session isolated \
  --wake next-heartbeat \
  --deliver \
  --channel telegram \
  --target "<你的 Telegram 聊天 ID>" \
  --message "运行每周 Oura 睡眠报告:bash /你的/实际路径/oura-weekly-sleep-alert.sh"

每日 Obsidian 笔记(上午 8:15)

openclaw cron add \
  --name "每日 Obsidian 笔记" \
  --cron "15 8 * * *" \
  --tz "America/Los_Angeles" \
  --session isolated \
  --wake next-heartbeat \
  --message "使用 Oura 数据创建每日 Obsidian 笔记。运行:source /你的/实际路径/venv/bin/activate && python /你的/实际路径/daily-note.py"

注意: 请将 /你的/实际路径/ 替换为你的实际路径,并将 <你的 Telegram 聊天 ID> 替换为你的 Telegram 频道/群组 ID。

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