CPAP PrismaAPP Log
by @sanwebgit
Fetches CPAP therapy data from the PrismaAPP API (Löwenstein Medical) and writes a daily Obsidian log note. Use when the user says "CPAP log", "sleep therapy...
clawhub install cpap-prisma-app📖 About This Skill
name: cpap-prisma-app version: 1.1.0 description: Fetches CPAP therapy data from the PrismaAPP API (Löwenstein Medical) and writes a daily Obsidian log note. Use when the user says "CPAP log", "sleep therapy", "CPAP data", "prisma log", "CPAP today", "CPAP yesterday", or when the daily cron triggers CPAP logging.
CPAP PrismaAPP Log Skill
Automatically fetches CPAP therapy data from the Löwenstein PrismaAPP backend and writes a structured daily Obsidian note.
When Triggered
Prerequisites
my.prismacloud.com with a linked Löwenstein CPAP deviceskills/cpap-prisma-app/config.jsonExecution
Step 1: Run the Python script
Yesterday (default):
python3 ~/.openclaw/workspace/skills/cpap-prisma-app/scripts/fetch-cpap.py
Specific date:
python3 ~/.openclaw/workspace/skills/cpap-prisma-app/scripts/fetch-cpap.py 2026-04-06
Backfill all data since first sync:
python3 ~/.openclaw/workspace/skills/cpap-prisma-app/scripts/fetch-cpap.py --all
Backfill from a specific date:
python3 ~/.openclaw/workspace/skills/cpap-prisma-app/scripts/fetch-cpap.py --from=2026-03-01
Step 2: Confirm output
The script prints a summary and writes the note to:
//YYYY-MM-DD.md
Output Format (Note)
The generated note contains:
All text is fully localised — see the locales/ folder.
Quality Mapping
| API value | Label | Meaning | |-----------|-------|---------| | 0 | 🟢 Good | Optimal | | 1 | 🟡 Okay | Acceptable | | 2 | 🔴 Poor | Needs attention | | 3 | 🟠 Borderline | Monitor closely | | 4 | — | No data |
AHI Reference
| AHI | Classification | |-----|---------------| | < 5 | Normal | | 5–15 | Mild | | 15–30 | Moderate | | > 30 | Severe |
Troubleshooting
No data for date:
Login error:
config.jsonmy.prismacloud.com is reachableconfig.json updateWrong API responses (HTML instead of JSON):
my.prismacloud.com as the API basebucharest.prismacloud.cc is the web SPA only — it returns HTML for all pathsCron Configuration (daily at 18:17)
17 18 * * * python3 /path/to/skills/cpap-prisma-app/scripts/fetch-cpap.py
⚙️ Configuration
my.prismacloud.com with a linked Löwenstein CPAP deviceskills/cpap-prisma-app/config.json📋 Tips & Best Practices
No data for date:
Login error:
config.jsonmy.prismacloud.com is reachableconfig.json updateWrong API responses (HTML instead of JSON):
my.prismacloud.com as the API basebucharest.prismacloud.cc is the web SPA only — it returns HTML for all paths