github ilyakruchinin/SomnoTrace v3.2.2

3 hours ago

What's Changed in v3.2.2

✨ New Features

  • 🔔 Update notifications on the LCD. SomnoTrace now periodically
    checks (once an hour, with a little randomized jitter) the GitHub
    repository it was built from for the newest stable release. If your
    running firmware differs from the latest release tag, a small amber
    download badge appears in the LCD status bar, next to the Wi-Fi and
    Bluetooth icons. The check uses a lightweight redirect-based lookup —
    no heavy API payloads, no wasted GitHub rate-limit budget — and
    remembers the result across reboots.
    • Fork builds check the fork's own repository; official builds check
      ilyakruchinin/SomnoTrace.
    • Local and non-GitHub-CI builds skip the check entirely — no false
      "update available" noise on development firmware.
    • Filtered or rate-limited internet never produces a false badge.
    • The "I'm Feeling Adventurous" OTA check in the web UI now also
      queries the repository the firmware was actually built from, and
      tells you plainly when the build didn't come from GitHub Actions.
image
  • 🏷️ Device name in the web UI. Your custom device name (set under
    Settings → Device Name) is now shown as a badge next to the
    SomnoTrace logo in the header, and in the browser tab title
    (bedroom — SomnoTrace) — handy when you run more than one unit.
    • On small screens and narrow windows, the logo gracefully swaps to
      the compact icon so the name fits without breaking the layout.
    • Capital letters are now allowed in the device name (Bedroom,
      AS10-Test, ...). Note that names differing only by letter case
      still count as the same device on the network.
    • Hidden when the name is left at the default somnotrace, so
      nothing changes for existing setups.

🐛 Bug Fixes

  • ⚡ Local OTA upload failing on the first attempt. Uploading a
    firmware file through the web UI could stall at ~22 KB and abort with
    OTA: stream buffer timeout, succeeding only on the second try.
    The cause: the OTA partition was fully erased (~10–20 s) before the
    transfer began, freezing the whole system and silently killing the
    connection mid-upload. Flash sectors are now erased lazily, one at a
    time, as the data streams in — the first click works every time.

📖 Documentation

  • 🔵 AirSense 11 pairing instructions clarified (#320). The pairing
    guide now explains that the AS11 stays bonded to a phone even with
    the myAir app closed — and may never start advertising for SomnoTrace.
    Added proper unpair steps: remove the machine in the myAir app and
    forget it in the phone's Bluetooth device list. Special note for
    iPhone users: the Control Center Bluetooth toggle is not enough —
    it only disconnects temporarily and turns itself back on.

🔧 Internal

  • Update indicator badge realigned with the other status-bar icons.
  • GET /api/status now reports update_available and latest_tag for
    the firmware update checker.
  • New host-side unit tests covering the update-check logic (repository
    slug validation, release-tag extraction, version comparison).

Don't miss a new SomnoTrace release

NewReleases is sending notifications on new releases.