Skip to content

Send BMI to Garmin and fix Windows scheduled syncs; 1.15.3 - #82

Merged
sturimcode merged 3 commits into
mainfrom
release/1.15.3
Nov 13, 2026
Merged

sturimcode merged 3 commits into
mainfrom
release/1.15.3

Conversation

@sturimcode

Copy link
Copy Markdown
Owner

This release sends BMI to Garmin, fixes Windows scheduled syncs, and makes updates more reliable.

  • Sent Eufy's BMI to Garmin, clamped to 10-70 and rounded to one decimal before the FIT encoder truncates it. eufy-sync previously left BMI out on the assumption that Garmin calculated it from the profile height, but none of 137 uploaded weigh-ins had a BMI on an account with a height set. A live re-send now shows Eufy's 26.7 in Garmin. The README's "What syncs" table now lists BMI. This applies to new weigh-ins; earlier entries keep no BMI because Garmin rejects the same weigh-in as a duplicate.
  • Stored the full path to eufy-sync in the Windows scheduled task's VBScript wrapper. When run from the program's folder, shutil.which can return a relative path; Task Scheduler starts the wrapper elsewhere, so every scheduled run failed before eufy-sync started without reporting the failure. Christopher (@smithbuilt) found this in HomeVitals and reported it in A multi-person fork of eufy-sync (HomeVitals), thank you, and an offer #77. Each sync now rewrites the wrapper when its program path is relative or no longer exists, while leaving it alone if the stored program exists or the wrapper cannot be read. --doctor also compares against the full path.
  • Kept HomeVitals' guard around the wrapper's shell.Run out of eufy-sync. HomeVitals starts its program directly, so a missing program raises inside VBScript and opens an error box that blocks later runs. eufy-sync starts through cmd, which turns the same failure into an exit code.
  • Retried a failed --update installation once after 60 seconds. After two releases, PyPI's version API named the new version before the package index served it. On Windows, the retry runs in the update console, which now receives one command string so a Python path with spaces keeps its quotes; the previous argv list escaped them as \", which cmd does not read.
  • Logged a network failure while signing in to a service as "Could not reach ..." instead of "Authentication failed".
  • Updated the version to 1.15.3 in pyproject.toml and eufy_sync/__init__.py.

Tests: 793 pass locally on macOS with Python 3.12; ruff is clean. New Windows-only tests run the real wrapper under cscript to check exit-code passthrough and a missing program, and run the update console's command line through two cmd layers with an installer in a "Program Files (x86)" folder that fails once.

@sturimcode
sturimcode merged commit ed593a5 into main Nov 13, 2026
26 of 28 checks passed
@sturimcode
sturimcode deleted the release/1.15.3 branch November 13, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant