跳到正文
发现
HMS-CPAP:本地 CPAP 睡眠数据看板
桌面应用生活服务

HMS-CPAP:本地 CPAP 睡眠数据看板

本地优先的睡眠呼吸机数据查看器,读取 SD 卡或蓝牙数据,用网页仪表盘展示每晚治疗情况。

admin
发布于 2026-11-02
浏览
1
访问
0
下载
0
版本
v6.0.3
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

HMS-CPAP(项目内也叫 CpapDash)是一个本地优先的 CPAP(睡眠呼吸机)数据查看器。它自带 C++ 后端和 Angular 网页界面,读取呼吸机写入 SD 卡的文件,自行解析后存入数据库,再用网页仪表盘把每一晚的数据展示出来。数据全程留在自己的机器上,不需要上传云端。

支持的机型:

  • ResMed AirSense 10、AirSense 11(治疗过程中图表每 65 秒刷新一次,可实时查看)
  • Löwenstein Prisma Line(20A、20C、25S、25ST)、Prisma Smart(Max、Plus、Soft)
  • Sefam S.Box AUTO(1263R)、SleepBox AUTO(1200R)
  • BMC / React Health Luna

主要功能

  • 仪表盘:每晚关键指标、30 天趋势、压力仪表,以及把使用时长、AHI、漏气合成一个数的 CpapDash Index
  • 会话详情:13 个可缩放的信号图表、事件标记,ResMed 机型还支持睡眠中的实时视图
  • 事件浏览器:跨所有夜晚的呼吸事件,可按日期、类型、时长筛选
  • PDF 报告:按日期区间生成,方便拿给医生看
  • 血氧:通过 CSV 上传导入 Wellue O2Ring 的 SpO2 / 心率数据并叠加显示,计算 ODI
  • Sleep Bridge Lite 接收:桥接设备接在 SD 卡线路上,机器每次写卡都会实时发送过来,本地重建出卡上的文件
  • AirSense 11 蓝牙读取(默认关闭):本机直接与机器配对,读取每日汇总和当晚实时数据
  • 手动上传页面:任意浏览器拖入 CPAP 的 .zip 或 O2Ring 的 .csv
  • Home Assistant:通过 MQTT 自动发现提供 47+ 个传感器,也可作为 add-on 在 HA 内运行
  • 耗材提醒:按配置跟踪面罩、滤芯、管路,提供剩余天数传感器与到期事件
  • 可选功能(均默认关闭):SleepHQ 导出、ResMed myAir 对比、基于 Ollama 或任意 OpenAI 兼容接口的 LLM 夜报、ML 洞察(AHI 预测、依从性预测、面罩贴合风险、异常检测)
  • 数据库可选:SQLite(默认,免配置)、PostgreSQL、MySQL / MariaDB
  • 运行环境:Windows、macOS、Linux、Raspberry Pi、Docker,或作为 Home Assistant add-on

安装与使用

所有安装方式最终都会打开同一个四步浏览器向导:数据存放位置、数据来源、可选功能、是否开机启动。

Home Assistant add-on:在「设置 → 加载项 → 右上角三点 → 仓库」中添加 https://github.com/hms-homelab/hms-cpap-ha-addon,安装 CpapDash 并启动,向导通过 Ingress 打开,无需开放端口。

Windows:从 Releases 下载 HmsCpapInstaller-Setup.exe 运行,不需要管理员权限,托盘图标里可以打开仪表盘、立即同步、设置开机启动。

macOS:从 Releases 下载 hms-cpap-macos-arm64.zip,解压后运行:

./hms_cpap

浏览器会打开 http://localhost:8893/setup。

Raspberry Pi / Linux(Docker):GHCR 上的镜像同时提供 arm64 与 amd64,可直接运行:

docker run -d --name hms-cpap -p 8893:8893 -v cpap_config:/config -v cpap_data:/data ghcr.io/hms-homelab/hms-cpap:latest

配置保存在 cpap_config 卷,数据保存在 cpap_data 卷,镜像升级不会影响它们。若要让 Sleep Bridge Lite 送数据进来,再加 -p 8894:8894;若要让容器使用宿主机的蓝牙,再加 -v /run/dbus:/run/dbus:ro。

Linux 源码构建:

git clone https://github.com/hms-homelab/hms-cpap.git
cd hms-cpap
./build_and_deploy.sh --deploy

数据来源:Sleep Bridge Lite(推荐,接在 SD 卡插槽线路上实时转发)、本机蓝牙读取 AirSense 11、ez Share 或 Toshiba FlashAir WiFi SD 卡、指向已有卡文件的本地文件夹、网页上传。

注意事项

  • 这不是医疗设备。它是爱好者做的数据查看器,未经任何监管机构批准,不能用于诊断,也不能判断治疗效果。请勿据此更改治疗参数,相关决定请咨询管理你治疗的医生。解析器读取的是未公开、逆向得到的格式,数字可能是错的。
  • Sefam 的卡上只有呼吸信号、逐次呼吸力学与呼吸暂停记录,没有 AHI,程序显示的是仅统计呼吸暂停的指数,会比 ResMed 同一晚的 AHI 低,这是测量方式不同,而非睡眠更好。
  • Luna 的卡上读取压力、漏气、呼吸频率与 I:E 比例,以及机器自己标记的呼吸暂停;由于气流波形的量纲未知,目前不提供流量波形。Luna 需从本地文件夹或上传页读取,不支持 WiFi SD 卡。
  • 标签上 REF 为 39517 的 ResMed AirSense 11,其 SD 插槽无法可靠地给 WiFi SD 卡供电,不要在该机型上使用 ez Share 或 FlashAir。
  • Sleep Bridge 的 8894 端口只有数据流、没有登录,请保持在本机局域网内使用。

本作品整理自 GitHub 开源项目 hms-homelab/hms-cpap,原作者 @hms-homelab,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v6.0.3当前版本

    ## What's Changed * An AirSense 11 night's EDFs carry the card's checksums, model ids and header text by @rccoleman in https://github.com/hms-homelab/hms-cpap/pull/46 * An O2 Ring file pulled over Bluetooth is kept raw in the archive's DATALOG by @rccoleman in https://github.com/hms-homelab/hms-cpap/pull/48 * An AirSense 11 night's STR.edf carries the machine's settings by @rccoleman in https://github.com/hms-homelab/hms-cpap/pull/47

  2. v6.0.2

    AirSense 11 每晚的 EDF 文件现按 SD 卡相同的缩放方式处理,由 rccoleman 提交。

评论