SomnoTrace v3.2.7
๐ ๏ธ Fix: EDF import no longer stops after the first folder (#338)
A subtle but nasty one for AirSense 10 users: importing a card with many
day folders only ever processed the oldest one per boot. The cause was the
.crc checksum file that AS10 writes beside every EDF โ the importer consumed
the EDFs but left the checksums behind, so the drained folder could never be
removed and quietly blocked everything queued after it.
- ๐งน AS10
.crcsidecars are now consumed together with their EDF (on success
and on quarantine). - ๐ง A folder with nothing importable โ a leftover husk, a quarantined
.bad,
or your own files โ is now skipped, never allowed to stall later days.
Your files are left alone; only the scan moves on. - ๐ If EDFs remain in
IMPORT/but nothing can be imported, the log now says
so instead of reporting a clean, empty inbox.
Result: drop a whole season of card folders in and they all import in one pass. ๐ฅโจ
๐ New: ntfy authentication (ntfy Pro & self-hosted) (#337)
The alert push channel now works with servers that require credentials โ no
more "I self-host ntfy, can SomnoTrace use it?" dead end.
- Username & password, access tokens (
tk_โฆ), and both via the URL
(?auth=โฆ) for proxies that strip theAuthorizationheader. - Tucked into a collapsed Advanced โ server authentication section, so the
common "just use ntfy.sh" flow stays exactly as clean as before. ๐งผ - ๐ Credentials are never echoed back by the API (only "a secret is
stored"), and an empty field keeps the stored secret โ unrelated settings
changes can't wipe it. - ๐งช Send test push now validates credentials before you save them.
- ๐งฑ Stored in their own NVS blob, so existing alert settings survive upgrades
and downgrades untouched. - ๐ฃ A rejected credential is now a clear "server requires authentication โ
check the server authentication settings" instead of a cryptic failure.
๐ด New: sleep stages on BreathingRoom (#339)
BreathingRoom joins SMB and Aerivue as a sleep-stage destination โ the same
SomnoStage .sst files your device already scores, now visible as a sleep
source next to your therapy and oximetry data.
- ๐ค Both AirSense 11 sessions and O2 ring recordings are supported,
uploaded as-is (UTC-accurate, no resampling). - ๐ Fully idempotent: a known unit is simply
replaced, so retries and
re-sends are always safe. - ๐๏ธ Its own upload state tracker, independent of Aerivue's โ enabling one
never disturbs the other, and past nights backfill automatically. - ๐ Time zone is derived by the server from the unit id; when it can't be
(epoch 0 drifting >5 min from the session stamp) the device sends its IANA
zone explicitly and logs that it did. - ๐ Stage upload is a Premium feature, like oximetry โ a free account gets one
clear notice per pass instead of a wall of failures.
Verified on real hardware: a full 45-night backlog uploaded cleanly. โ
๐ Thank you
- todd3835 โ for the meticulous #338 report and for sharing real AS10 card
data. That data is what turned a "works on my machine" report into a
reproducible bug and a verified fix. ๐ - yahwehPT โ for asking about self-hosted ntfy auth (#337); this release
exists because you asked.
โฌ๏ธ Upgrading
Nothing to reconfigure: alert settings, upload state and existing imports carry
over as-is. AS10 users with leftover folders in IMPORT/ can leave them โ they
are skipped harmlessly now, and new folders import normally.