Skip to content

v1.30.1

Choose a tag to compare

@KristianP26 KristianP26 released this 04 Oct 18:45
7318b09

What's new

  • Token directories: two Garmin or Strava accounts sharing one token_dir are now a config error. Give each account its own and run setup-garmin again. A relative token_dir is relative to the config.yaml folder.
  • Embedded MQTT broker on the LAN now needs a password.
  • .env overrides: variables only in .env (like SCALE_MAC or DEBUG) no longer override config.yaml. Move them into config.yaml.
  • Exporters: every exporter of a type now runs, so two webhooks both get the reading.
  • Stored weigh-ins keep their time and go only to exporters that can record a past measurement.
  • Garmin needs Python 3.12 or newer. If Garmin rejects your token, run setup-garmin again.
  • Home Assistant add-on: builds from its own image version. Updating in the first minutes after a release can fail; try again a bit later.

1.30.1 (2026-10-04)

Fixed

  • addon: declare the MQTT service and give btmgmt its capability (80cb57d)
  • addon: restart the app after it exits and guard the Garmin token (26be7ba)
  • ble: harden the BLE transports, reloads and the run path (1cf535f)
  • ble: honour shutdown mid-session and tidy the transport edges (90572d6)
  • ble: keep the pairing agent scoped to the scale being paired (7dde25d)
  • ble: stop abandoned poll cycles, drop the SIG 0xFFFF weight, remember Salter exports (08dacba)
  • ci: repair GHCR cleanup, pin actions and images, harden add-on and worker (e61d823)
  • config: honour env overrides, legacy .env exporters and wizard edits (9f1fd7b)
  • config: keep edits, read .env beside --config and follow symlinks (5f5d394)
  • config: keep secrets out of reload, YAML and header log lines (3483bf5)
  • config: refuse two accounts sharing one Garmin or Strava token dir (ac8e5fa)
  • config: reload .env, escape ${ and tidy runtime and exporter edges (2bff4cd)
  • config: stop .env leftovers overriding config.yaml, load scan config properly (242b605)
  • exporters: keep Garmin and Strava token directories owner-only (b494e84)
  • file: create the export file owner-only (891733e)
  • firmware: give host connects ownership, a time budget and TLS (21a3bc7)
  • firmware: keep the ESP32 proxy scanning and connected (1152b4c)
  • firmware: publish the newest advertisement of each device (ae14129)
  • firmware: validate config, bound MQTT inputs and pin aioble (a50398c)
  • garmin: keep results across SIGTERM, treat 401 as permanent, check Python (09af3e3)
  • mqtt-proxy: require a password for a LAN-exposed embedded broker (1f4057d)
  • runtime: give stored records their own time and owner, validate composition (0e7d395)
  • runtime: keep scanning while the retry queue drains and exit cleanly (40cbdb7)
  • scales: apply the record-time and composition rules to the adapters (38f1b9b)
  • scales: bind QN timers to their session and check ESF-551 checksums (40920fe)
  • wizard: stop suggesting a public MQTT broker for health data (a405cf8)

Docs

  • bring the guides back in line with the code (c48cbc7)
  • configuration: overrides come from the real environment, not .env (9bf6778)
  • cover --config with .env, ESP32 TLS, structured proxy errors and live reload limits (94709e1)
  • describe the retry schedule, add-on MQTT and liveness fixes and wizard user edits (835d37e)
  • exporters: do not ship a guessable ntfy topic in the examples (879d78b)
  • Garmin 401 and Python version messages, Salter dedup mark file (a18e293)
  • multi-user: give each Garmin and Strava account its own token_dir (5150f07)
  • per-user exporters merge, stored weigh-ins, composition without impedance (7b0e5e9)