SomnoTrace v1.1.1 Changelog
Oximetry
-
Full-resolution oximetry uploads to SleepHQ: The O2 Ring's raw 1-second data (
source.bin) is now uploaded directly to SleepHQ instead of the downsampled VLD v3 format. This preserves 4x the data resolution — SleepHQ now receives every sample at 1 Hz instead of 1 sample per 4 seconds. The VLD conversion pipeline has been eliminated entirely, removing unnecessary CPU overhead and storage. -
Simplified SMB share structure: The SMB upload path for oximetry recordings is now flattened to
OXYMETRY/{day}/{recording_id}containing onlysource.bin. The previous nested directory tree (source/,generations/,data/,exports/,sleephq/) with multiple files (vitals.snt,recording.json,manifest.json,recording.vld) is no longer created. The share is now compatible with tools that expect ViHealth-style binary exports. -
Reliable oximetry sync after off-finger detection: When the O2 Ring detects removal from the finger, it finalizes the current recording to flash before making it available for pull. This finalization can take a few seconds, causing SomnoTrace to miss the recording on the first sync attempt. A 3-second delay and automatic retry have been added to handle this race condition, preventing missed recordings.
Wi-Fi
- Pinned association to strongest access point (contributed by @moldbuster): On mesh networks or setups with multiple APs sharing the same SSID, SomnoTrace could previously connect to a distant, weak access point instead of the strongest one nearby. The scan results (BSSID + channel) are now passed through to the Wi-Fi supplicant, locking the connection to the specific AP that won the signal strength ranking.
Web Portal
-
Colour-coded log viewer (contributed by @moldbuster): The logs tab now colourises log lines by ESP-IDF severity level — errors in red with tinted background, warnings in amber with tinted background, info in green, debug in grey, verbose in dim grey. The terminal background also adapts to the active Day/Night theme.
-
Wi-Fi signal strength indicators (contributed by @moldbuster): The Wi-Fi network dropdown in Settings now shows coloured signal quality circles (green/yellow/red) next to each network name. The status page lists all configured networks with live RSSI for the connected one and last-seen scan levels for the rest, with the connected network marked by a green "(CONNECTED)" tag.
-
XSS hardening: SSID values displayed in the web portal are now HTML-escaped, preventing hostile access point names from injecting markup.
Internal
- Consolidated duplicate HTML escaping functions into a single escHtml() helper.
- Fixed a naming collision between the new RSSI colour function and the existing dashboard signal colour function.
Contributors
- @ilyakruchinin — oximetry upload simplification, sync reliability fix, post-merge cleanups
- @moldbuster (hungrycactus) — Wi-Fi BSSID pinning, log colour coding, portal signal strength indicators