← Back to Skills Marketplace
sanwebgit

CPAP PrismaAPP Log

by Sanweb · GitHub ↗ · v1.1.0 · MIT-0
cross-platform ✓ Security Clean
110
Downloads
1
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install cpap-prisma-app
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...
README (SKILL.md)

CPAP PrismaAPP Log Skill

Automatically fetches CPAP therapy data from the Löwenstein PrismaAPP backend and writes a structured daily Obsidian note.

When Triggered

  • User says: "CPAP log", "CPAP data", "write sleep therapy", "prisma log", "CPAP today/yesterday/[date]"
  • Daily cron job fires (configurable)
  • User requests a historical backfill

Prerequisites

  • Account at my.prismacloud.com with a linked Löwenstein CPAP device
  • Device synced via the PrismaAPP mobile app (data must be uploaded to the server)
  • Credentials stored in skills/cpap-prisma-app/config.json

Execution

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:

\x3Cvault_path>/\x3Clog_dir>/YYYY-MM-DD.md

Output Format (Note)

The generated note contains:

  • Frontmatter: date, weekday, tags (including quality tag), source, created timestamp
  • Summary table: sleep duration, deep sleep, AHI, leakage, snoring %, mask fit %, therapy mode/pressure
  • Overall quality rating (🟢/🟡/🟠/🔴) derived from AHI, leakage, and deep sleep scores
  • Detailed sections: Sleep, CPAP Therapy, Snoring & Mask
  • Navigation links to the previous and next logged day

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
\x3C 5 Normal
5–15 Mild
15–30 Moderate
> 30 Severe

Troubleshooting

No data for date:

  • Check whether the device was used that night
  • Open PrismaAPP on the phone to trigger a Bluetooth sync
  • Data only appears after the device has synced with the app

Login error:

  • Verify credentials in config.json
  • Check that my.prismacloud.com is reachable
  • A password change in PrismaAPP requires a config.json update

Wrong API responses (HTML instead of JSON):

  • Always use my.prismacloud.com as the API base
  • bucharest.prismacloud.cc is the web SPA only — it returns HTML for all paths

Cron Configuration (daily at 18:17)

17 18 * * * python3 /path/to/skills/cpap-prisma-app/scripts/fetch-cpap.py
Usage Guidance
This skill appears to do what it says: it logs into my.prismacloud.com with credentials you place in a local config.json, fetches CPAP data, and writes daily notes into your Obsidian vault. Before installing, review and do the following: 1) Inspect config.json and the script yourself and keep config.json out of source control; consider using strict filesystem permissions or a credential manager instead of plaintext passwords. 2) Verify api_base is set to https://my.prismacloud.com (the script warns that other hosts return HTML). 3) Note the script will create files under the vault_path you configure — confirm the path is correct. 4) The navigation link base in the note template is hardcoded to "30 Bereiche/Gesundheit/CPAP/Logs" (minor bug) and may not match your configured log_dir; you may want to update the script to use the configured log_dir for links. 5) Because the skill stores and uses your PrismaAPP credentials, revoke or rotate them if you stop using the skill. If you want added security, adapt the script to read credentials from an OS keyring or prompt at runtime instead of config.json.
Capability Analysis
Type: OpenClaw Skill Name: cpap-prisma-app Version: 1.1.0 The cpap-prisma-app skill is designed to fetch CPAP therapy data from the Löwenstein Medical PrismaAPP API and generate daily logs in Obsidian. The Python script (fetch-cpap.py) uses standard libraries to perform authenticated OAuth2 requests and process medical metrics like AHI and sleep duration. While it handles sensitive user credentials and health data, all actions are transparent, well-documented, and strictly aligned with the stated purpose, with no evidence of data exfiltration, malicious execution, or prompt injection.
Capability Tags
requires-oauth-token
Capability Assessment
Purpose & Capability
Name/description, README, SKILL.md, locales, and the Python script all align: the skill logs into my.prismacloud.com, fetches CPAP metrics, and writes a Markdown note to an Obsidian vault. There are no unrelated binaries, cloud providers, or credentials requested.
Instruction Scope
Runtime instructions simply run the included Python script; the script reads a local config.json for email/password, talks to the PrismaAPP API endpoints under the configured api_base, and writes Markdown files to the configured vault path. It does not reference unrelated system paths or external endpoints beyond the configured PrismaAPP API.
Install Mechanism
No install spec and the script uses only Python standard libraries (urllib, zoneinfo, pathlib). Nothing is downloaded from arbitrary URLs and no archives are extracted; risk from installation is minimal.
Credentials
The skill does not request environment variables or platform credentials; it expects a local config.json containing your PrismaAPP email and password. That is proportionate to the function, but storing a plaintext password in a file is a privacy risk — consider file permissions, an app-specific password, or a credential store.
Persistence & Privilege
The skill is not always-enabled and does not request elevated system privileges. It writes notes to your Obsidian vault (expected behavior) and creates the output directory if needed. It does not attempt to modify other skills or system-wide agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cpap-prisma-app
  3. After installation, invoke the skill by name or use /cpap-prisma-app
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.0
Initial release: full CPAP therapy log from Löwenstein PrismaAPP API with 9 locales and Obsidian note generation
Metadata
Slug cpap-prisma-app
Version 1.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is CPAP PrismaAPP Log?

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... It is an AI Agent Skill for Claude Code / OpenClaw, with 110 downloads so far.

How do I install CPAP PrismaAPP Log?

Run "/install cpap-prisma-app" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is CPAP PrismaAPP Log free?

Yes, CPAP PrismaAPP Log is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does CPAP PrismaAPP Log support?

CPAP PrismaAPP Log is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created CPAP PrismaAPP Log?

It is built and maintained by Sanweb (@sanwebgit); the current version is v1.1.0.

💬 Comments