Wyze Scale and Garmin Connect

I know this thread is a bit old, but I just tried the Android app Syncmytracks (paid version) which I just confirmed was able to sync both weight + body fat from Fitbit to Garmin. It isn’t an instant sync, you have to schedule it but can set to to as little as 1 hour and you can force a manual sync as well.
I was also reading that https://smartscalesync.com/ will allow you to sync this data, but you have to pay $15 annually or $3 monthly.

1 Like

Hi @efreeze , Thank you for your efforts and sharing. I am attempting to get the sync to work on a Raspberry PI.
Could you help with these errors? I think the base64.pi does not like some digits the key i got from Wyze ? I read that it does not like digits over 7?

pi@ender3:~/wyze_garmin_sync $ python --version
Python 3.8.17
pi@ender3:~/wyze_garmin_sync $ ./connect_sync.legacy.sh
Traceback (most recent call last):
File “./scale.py”, line 17, in
client = Client(email=os.environ[‘WYZE_EMAIL’], password=os.environ[‘WYZE_PASSWORD’], totp_key=os.environ[‘WYZE_TOTP’])
File “/home/pi/.local/lib/python3.8/site-packages/wyze_sdk/api/client.py”, line 66, in init
self.login()
File “/home/pi/.local/lib/python3.8/site-packages/wyze_sdk/api/client.py”, line 164, in login
response = self._auth_client().user_login(email=self._email, password=self._password, totp_key=self._totp_key)
File “/home/pi/.local/lib/python3.8/site-packages/wyze_sdk/service/auth_service.py”, line 83, in user_login
verification_code = totp(totp_key)
File “/home/pi/.local/lib/python3.8/site-packages/mintotp.py”, line 20, in totp
return hotp(key, int(time.time() / time_step), digits, digest)
File “/home/pi/.local/lib/python3.8/site-packages/mintotp.py”, line 11, in hotp
key = base64.b32decode(key.upper() + ‘=’ * ((8 - len(key)) % 8))
File “/usr/lib/python3.8/base64.py”, line 231, in b32decode
raise binascii.Error(‘Non-base32 digit found’) from None
binascii.Error: Non-base32 digit found
md5sum: ./cksum.txt: No such file or directory
2023-07-02 21:19:20,069 [WARNING] File ‘/home/pi/wyze_garmin_sync/wyze_scale.fit’ does not exist. Skipping…
Error: No valid files.
file not uploaded

I also tried the docker version. I verified all login, passwords, and the key worked.
pi@ender3:~/wyze_garmin_sync $ docker compose up
[+] Building 0.0s (0/0)
[+] Running 1/0
:heavy_check_mark: Container wyze_garmin_sync-wyzegarminconnect-1 Created 0.0s
Attaching to wyze_garmin_sync-wyzegarminconnect-1
wyze_garmin_sync-wyzegarminconnect-1 | touch: setting times of ‘/etc/cron.d/garmin_wyze_scheduler’: Operation not permitted
wyze_garmin_sync-wyzegarminconnect-1 | /wyze_garmin_sync /wyze_garmin_sync
wyze_garmin_sync-wyzegarminconnect-1 | Traceback (most recent call last):
wyze_garmin_sync-wyzegarminconnect-1 | File “/wyze_garmin_sync/scale.py”, line 4, in
wyze_garmin_sync-wyzegarminconnect-1 | import wyze_sdk
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/site-packages/wyze_sdk/init.py”, line 1, in
wyze_garmin_sync-wyzegarminconnect-1 | import logging
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/logging/init.py”, line 58, in
wyze_garmin_sync-wyzegarminconnect-1 | _startTime = time.time()
wyze_garmin_sync-wyzegarminconnect-1 | ^^^^^^^^^^^
wyze_garmin_sync-wyzegarminconnect-1 | PermissionError: [Errno 1] Operation not permitted
wyze_garmin_sync-wyzegarminconnect-1 | md5sum: /wyze_garmin_sync/cksum.txt: No such file or directory
wyze_garmin_sync-wyzegarminconnect-1 | Traceback (most recent call last):
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/bin/gupload”, line 5, in
wyze_garmin_sync-wyzegarminconnect-1 | from garmin_uploader.cli import main
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/site-packages/garmin_uploader/init.py”, line 1, in
wyze_garmin_sync-wyzegarminconnect-1 | import logging
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/logging/init.py”, line 58, in
wyze_garmin_sync-wyzegarminconnect-1 | _startTime = time.time()
wyze_garmin_sync-wyzegarminconnect-1 | ^^^^^^^^^^^
wyze_garmin_sync-wyzegarminconnect-1 | PermissionError: [Errno 1] Operation not permitted
wyze_garmin_sync-wyzegarminconnect-1 | file not uploaded
wyze_garmin_sync-wyzegarminconnect-1 | 1969-12-31 19:00:00: /wyze_garmin_sync ~
wyze_garmin_sync-wyzegarminconnect-1 | Traceback (most recent call last):
wyze_garmin_sync-wyzegarminconnect-1 | File “/wyze_garmin_sync/scale.py”, line 4, in
wyze_garmin_sync-wyzegarminconnect-1 | import wyze_sdk
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/site-packages/wyze_sdk/init.py”, line 1, in
wyze_garmin_sync-wyzegarminconnect-1 | import logging
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/logging/init.py”, line 58, in
wyze_garmin_sync-wyzegarminconnect-1 | _startTime = time.time()
wyze_garmin_sync-wyzegarminconnect-1 | ^^^^^^^^^^^
wyze_garmin_sync-wyzegarminconnect-1 | PermissionError: [Errno 1] Operation not permitted
wyze_garmin_sync-wyzegarminconnect-1 | md5sum: /wyze_garmin_sync/cksum.txt: No such file or directory
wyze_garmin_sync-wyzegarminconnect-1 | Traceback (most recent call last):
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/bin/gupload”, line 5, in
wyze_garmin_sync-wyzegarminconnect-1 | from garmin_uploader.cli import main
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/site-packages/garmin_uploader/init.py”, line 1, in
wyze_garmin_sync-wyzegarminconnect-1 | import logging
wyze_garmin_sync-wyzegarminconnect-1 | File “/usr/local/lib/python3.11/logging/init.py”, line 58, in
wyze_garmin_sync-wyzegarminconnect-1 | _startTime = time.time()
wyze_garmin_sync-wyzegarminconnect-1 | ^^^^^^^^^^^
wyze_garmin_sync-wyzegarminconnect-1 | PermissionError: [Errno 1] Operation not permitted
wyze_garmin_sync-wyzegarminconnect-1 | file not uploaded

Hi @skydivejohn ,

what does your docker-compose.yml look like ? also did you run the docker with a user that has elevated rights ?
Regarding the non docker version it seems you didn’t edit the file to put your credentials.
Please use git hub to debug the issue.
Happy to help.
efreeze

I am not clear how to use git hub to debug the issue?
I tried to do the legacy install with the updated emails/passwords, TOTP, and path to the wyze_garmin_sync folder.
I installed docker then updated these fields with my info in the yml file:
WYZE_EMAIL:
WYZE_PASSWORD:
WYZE_TOTP:
Garmin_username:
Garmin_password:
I see the operation not permitted errors in the Docker output even if i run it under sudo.

I just want to add another vote for Wyze to add direct syncing to Garmin Connect…

1 Like

+1 to adding Garming Connect for the Wyze Scale. I was just looking for a smart scale and wondered if this was possible.

1 Like

Adding a vote to this. This needs to happen

1 Like

I know this is not the solution we are hoping for but I’m using SmartScaleSync.com (they just added direct support for Wyze scales) and it seems to be working well; lets me upload all the metrics to garmin (weight, body fat, bone mass, muscle mass, water %, visceral fat, metabolic age…)

1 Like

How has this not happened yet? The only way to sync weight with Garmin from Wyze is to pay for a annual subscription for a third party service? Ridiculous.

2 Likes

Wow, they get all the stats in? I’ve only been able to get weight, Body Fat, and BMI in. Tried about 20 different ways to name the fields and just gave up. If SmartScaleSync is getting these other metrics in, then Garmin either updated their API, or SSS has negotiated something with them for a private API to get the data in.