Skip to content

v1.31.0

Choose a tag to compare

@KristianP26 KristianP26 released this 06 Oct 12:23
c0f4c8a

What's new

  • Setup wizard: a section menu where you can edit any part, comments in config.yaml are kept when saving, and passwords can go to .env. In Docker, mount garmin-tokens and strava-tokens (see the configuration guide).
  • Renpho ES-CS20M with AE01/AE02 (#436): the app sends the Renpho start sequence with a guest profile of your first user. Not yet confirmed on hardware.
  • Arboleaf and other 19-byte QN scales (#331): with ble.qn_weight_ack, the first user's age and height are sent as the vendor app does. Keep birth_date and height in line with the vendor app.
  • Beurer scales that want a new pairing before every weigh-in (#417): new option ble.adapter_privacy (Linux only, off by default).
  • Stuck BlueZ scans: a scan that hears nothing for 15 s is restarted (Scan stalled in the log).

1.31.0 (2026-10-06)

Added

  • addon: add the adapter_privacy option (37ad5f8)
  • ble: add a 'blocked' scan failure for a scale found but not connected (70bf715)
  • ble: extend the composition hold while a transfer is still arriving (5563ec6)
  • ble: restart a scan that stops delivering advertisements (fc465f0)
  • ble: turn on LE privacy so a Beurer scale keeps the bond (#417) (3b4dc23)
  • config: add ble.adapter_privacy and pass it to the node-ble scan (1b65828)
  • garmin: add skip_metabolic_age to leave metabolic age out of the upload (#455) (b2e5584)
  • scales: build the QN A00D profile frame from an age and a height (760fee4)
  • wizard: ask for units and authorize Strava during setup (2a39fbb)
  • wizard: section menu, edit-aware BLE and secrets kept in .env (bd0bb53)
  • wizard: show what an edit changes before saving it (116cee6)

Fixed

  • ble: read the adapter state back after a btmgmt power cycle (72d9c47)
  • ble: take over a Discovering state that no client owns (c2960aa)
  • scales: hold the Beurer/Sanitas link while the 0x59 stream is arriving (#211) (3cd85e6)
  • scales: send the Arboleaf app's profile sequence on the 19-byte QN dialect (#331) (6cb5ad1)
  • scales: send the Renpho app's start sequence to ES-CS20M units with AE01/AE02 (#436) (269c504)
  • wizard: keep comments on edit, test every exporter, mask the HA token (8c99de6)

Docs

  • describe the 19-byte QN profile frame sent under qn_weight_ack (a724152)
  • describe the athlete metabolic age rule as a clamp above actual age (6692acf)
  • describe the ES-CS20M start sequence and the profile it writes to the scale (c093733)
  • describe the wizard section menu and secrets kept in .env (8cfb02d)
  • describe units, comment-preserving edits and Strava in the wizard (c40b052)
  • explain ble.adapter_privacy and the Beurer bond it keeps (37f77b6)
  • explain how a stuck BlueZ scan is now healed (1a4377d)
  • garmin: limit 'depends on age alone' to profiles without is_athlete (52f3fb0)