尧图精选

一文看懂Open Wearables统一数据模型:摘要、时间序列与事件如何抹平设备差异

🕒 发布时间:2026/10/2 21:22:11 📁 来源:尧图网络
一文看懂Open Wearables统一数据模型摘要、时间序列与事件如何抹平设备差异【免费下载链接】open-wearablesSelf-hosted platform to unify wearable health data through one AI-ready API.项目地址: https://gitcode.com/gh_mirrors/op/open-wearablesOpen Wearables 是一个自托管的开源平台通过一套AI-Ready API将 Garmin、Oura、Whoop、Apple Health 等穿戴设备的数据统一成一个统一数据模型Unified Data Model。无论你用哪块手表、哪支戒指、哪个 App查出来的心率、睡眠、运动数据都长得一样。这篇文章带你用一张图 三张表彻底搞懂它背后的设计。先说痛点为什么多设备数据这么难用不同厂商的数据格式五花八门Garmin 叫Body BatteryOura 叫Readiness语义完全不同步数有的存整数、有的存分钟级聚合值单位还有米和公里之分睡眠阶段划分标准各不相同时区和时区偏移处理也不统一如果每个 App 都要单独对接每家厂商的 OAuth、API 和数据映射开发成本会爆炸。Open Wearables 的做法是在数据入口做一次归一化之后所有访问者后端、前端、AI Agent都只面对一套结构。统一数据模型三大支柱事件、时间序列、描述符官方文档对架构的完整阐述见 docs/architecture/unified-data-model.mdx。整个模型围绕三类核心结构展开1️⃣ 事件Events一次完整的发生过的事适用于有明确起止时间的记录一次跑步、一夜睡眠、一次月经周期。字段说明category事件类别如workout、sleepstart_datetime/end_datetime起止时间与时长详情表多态按类别挂WorkoutDetails心率 min/max/avg、距离、卡路里或SleepDetails深睡/REM/清醒分钟数对应源码backend/app/models/event_record.py2️⃣ 时间序列Time Series所有中高频数据的共享池所有心率、HRV、SpO2、步数、体重……全部存进同一张表data_point_series靠两个维度区分类型通过series_type_definition表引用每种类型绑定标准单位bpm、kg、kcal避免单位混乱来源设备每个数据点都带设备映射 ID同一分钟两台设备各记各的互不覆盖源码参考backend/app/models/data_point_series.py、backend/app/models/series_type_definition.py完整支持的 100 数据类型清单含单位见 docs/architecture/data-types.mdx。3️⃣ 描述符与 ID 映射慢变信息与设备身份证PersonalRecord生日、性别等静态生物特征用于计算年龄相关指标DataSource设备映射把用户 厂商 设备映射成一个内部 ID其他表只需引用这个 ID既标明来源又不撑宽时间序列表见 backend/app/models/data_source.py摘要 API时间序列之上的日报层原始时间序列太细分钟级甚至秒级看趋势不现实。Open Wearables 在上面盖了一层按天聚合的摘要接口一次请求拿一天的全貌接口内容GET /users/{id}/summaries/activity步数、活动能量、站立时间等每日活动汇总GET /users/{id}/summaries/sleep睡眠时长、效率、各阶段占比GET /users/{id}/summaries/recovery恢复分、HRV、静息心率、SpO2路由实现见 backend/app/api/routes/v1/summaries.py。时间序列查询则支持resolution参数可按1min/5min/1hour聚合心率取均值、步数取总和——聚合规则统一由平台代劳你不用关心设备差异。抹平设备差异的 4 个关键设计单位标准化每种序列类型在定义表里绑定唯一单位Garmin 的皮肤温度偏差和 Ultrahuman 的体温会被重新归类到同一语义类型项目里甚至专门写了 数据重标注脚本 处理历史数据运动类型归一化各厂商的run/跑步/TREADMILL统一映射为 100 个标准类型如running、cycling来源可追溯原始 ID 保留在external_id字段归一化不丢信息数据优先级同一指标多台设备同时上报时可由用户配置哪家设备说了算面向 AI 的数据出口MCP Server统一模型的直接受益者是 AI内置 MCP Server 让 Claude、Cursor 等助手可以直接问我上周睡得怎么样AI 自己决定查睡眠事件还是时间序列。工具实现见 mcp/app/tools/。路线图数据模型还将演进官方将演进分为四个阶段基础模型当前→ 广谱数据支持 → 复杂指标计算VO2 max、EPOC 等由计算引擎推导→ 时间序列按整数/小数/分类拆分以优化存储小结你想查的用哪个结构昨晚睡了多久、深睡多少睡眠事件 SleepDetails最近一周 HRV 趋势时间序列heart_rate_variability今天走了多少步、烧了多少千卡活动摘要 API上周三 5 公里跑步详情运动事件 WorkoutDetails一句话总结Open Wearables 用事件管发生过什么、时间序列管连续变化、摘要管每日全貌再用设备映射和单位定义把 10 厂商的差异挡在入口让你拿到手的永远是同一套字段、同一套单位 【免费下载链接】open-wearablesSelf-hosted platform to unify wearable health data through one AI-ready API.项目地址: https://gitcode.com/gh_mirrors/op/open-wearables创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →