名称: 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 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)
- 分析恢复状态的长期趋势
- 关联睡眠质量与生产力/事件
- 设置低准备度自动提醒
- 生成每日/每周/每月健康报告
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
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
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 设置中:
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"
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"
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。