SomnoTrace v3.2.6
✨ New: Import ResMed EDF files (Experimental 🧪)
SomnoTrace can now ingest data straight from a ResMed SD card — an AirSense 10/11
card copy, a single DATALOG/<date> folder, or even loose .edf files — and turn
it into native sessions. Imported nights show up in the web UI, graphs, uploads,
SleepHQ, SMB, etc. just like normally recorded data, with full waveform,
SpO₂/pulse, daily-summary and event (EVE/CSL) fidelity.
How to use:
- 📡 Connect to your device over FTP (enable FTP access in settings if needed).
- 📂 Copy the card contents — or just the folders/files you want — into
/somnotrace/IMPORT/(keep theDATALOG/<date>structure if you have it). - 🔄 Reboot the device (Actions → Reboot in the web UI). The import runs
automatically at boot — a reboot is required, files aren't picked up live. - ⏳ Wait a bit — the import runs in the background; new sessions then appear
in the dashboard and are re-offered to your upload backends.
🛡️ Safe by design: duplicate sessions are skipped, interrupted copies are
detected (in-progress FTP uploads and files modified <15 s ago are deferred),
and corrupt files are quarantined to *.bad instead of failing silently.
⚠️ Call for testers! This is the first release of the importer. It's been
verified against real AirSense 11 card data and synthetic AirSense 10 files,
but cards in the wild vary. If you have an AS10/AS11 card dump — especially
from different regions/firmware — please try it and report back (successes
too!). Feedback wanted on GitHub issues. 🙏
📅 Locale-aware calendar
The day picker in the dashboard now follows your browser's locale:
Sunday-first for the US, Canada, Japan, Brazil & co., Monday-first for most of
Europe — with weekday names shown in your language. 🗓️🌍
🧰 Under the hood
- PSRAM-first memory allocation throughout the import path; worker stack
high-water is now logged for field diagnosis. 🧠 - Atomic file operations + improved error handling across import and
session-recovery paths. 🔒 edf_genstack footprint restored to pre-import baseline on every export
path (verified on-device: ~4.5 KB headroom on the 16 KB rebuild task). 📏- More host-test coverage: 29 test suites incl. an EDF→SNT→EDF round-trip
across time zones; merged PRs #333 & #334. ✅