flackdl / ifit-garmin-sync Goto Github PK
View Code? Open in Web Editor NEWExport iFit workouts to Garmin Connect
License: GNU General Public License v3.0
Export iFit workouts to Garmin Connect
License: GNU General Public License v3.0
Would it be possible to modify ifit-garmin-sync to export Strava activity TCX files and import them to Garmin?
Workouts exported directly from iFit by ifit-garmin-sync import to Garmin without details like Power, Pace, and Calories burned.
Workouts synced from iFit to Strava then exported from Strava and imported to Garmin include that information:
Note that the Strava TCX file must have the leading spaces removed before being able to be imported to Garmin:
Is there a way that workouts from NordicTrack/iFit could be labeled as something like:
iFit: Afternoon ride
Sort of like Wahoo does, it lists the ride as Wahoo SYSTM:
And I'm guessing there isn't a way to get the name of the ride to add to add to Strava, instead of just 'afternoon ride' ??
Does the activity uploaded to Garmin include all of the information, like elevation gain/loss?
Thanks for making this available. I receive the following error from Heroku when trying to deploy:
A deployment for XXXXX failed due to a release phase command in release v7.
Heroku's documentation says:
A failed
release
command usually requires a fix to an app’s code.
Can you help? Garmin and iFit usernames and passwords have been double-checked to be correct.
App was syncing just fine on 2/21, no errors, yesterday when I tried, it couldn't sync, and I noticed this error in the logs
2021-02-24T16:05:33.336257+00:00 app[worker.1]: return self.run(*args, **kwargs) 2021-02-24T16:05:33.336258+00:00 app[worker.1]: File "/app/src/sync/tasks.py", line 17, in sync 2021-02-24T16:05:33.336259+00:00 app[worker.1]: return processor.process() 2021-02-24T16:05:33.336259+00:00 app[worker.1]: File "/app/src/sync/processor.py", line 47, in process 2021-02-24T16:05:33.336260+00:00 app[worker.1]: self._import(paths_exported) 2021-02-24T16:05:33.336260+00:00 app[worker.1]: File "/app/src/sync/processor.py", line 84, in _import 2021-02-24T16:05:33.336260+00:00 app[worker.1]: activity.upload(user) 2021-02-24T16:05:33.336261+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/garmin_uploader/workflow.py", line 77, in upload 2021-02-24T16:05:33.336261+00:00 app[worker.1]: assert user.session is not None 2021-02-24T16:05:33.336313+00:00 app[worker.1]: AssertionError
Nothing has changed, I am able to sign into Garmin Connect with the same username and password I've always used for this app, and I verified that it was working this morning using my username/password.
I am trying to start using the ifit synch again, deployed on Heroku, after a summer break, and I am getting Unable to Authenticate with Garmin - I checked the username and password, they have not changed since the last time I was able to use it successfully, and I can still authenticate with this credentials directly on Gramin Connect website. Any idea what could be wrong?
2021-11-24 16:43:12,766 [CRITICAL] Login Failure: Authentification failed. 2021-11-24T16:43:12.767055+00:00 app[worker.1]: [2021-11-24 16:43:12,766: CRITICAL/ForkPoolWorker-8] Login Failure: Authentification failed. 2021-11-24T16:43:12.769478+00:00 app[worker.1]: [2021-11-24 16:43:12,769: ERROR/ForkPoolWorker-8] could not authenticate with garmin 2021-11-24T16:43:12.770298+00:00 app[worker.1]: [2021-11-24 16:43:12,769: ERROR/ForkPoolWorker-8] Task sync.tasks.sync[8c55ed56-3e34-42d6-8076-a222df16ff94] raised unexpected: Exception('could not authenticate with garmin',) 2021-11-24T16:43:12.770299+00:00 app[worker.1]: Traceback (most recent call last): 2021-11-24T16:43:12.770300+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/celery/app/trace.py", line 405, in trace_task 2021-11-24T16:43:12.770300+00:00 app[worker.1]: R = retval = fun(*args, **kwargs) 2021-11-24T16:43:12.770300+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/celery/app/trace.py", line 697, in __protected_call__ 2021-11-24T16:43:12.770301+00:00 app[worker.1]: return self.run(*args, **kwargs) 2021-11-24T16:43:12.770301+00:00 app[worker.1]: File "/app/src/sync/tasks.py", line 17, in sync 2021-11-24T16:43:12.770302+00:00 app[worker.1]: return processor.process() 2021-11-24T16:43:12.770302+00:00 app[worker.1]: File "/app/src/sync/processor.py", line 47, in process 2021-11-24T16:43:12.770303+00:00 app[worker.1]: self._import(paths_exported) 2021-11-24T16:43:12.770303+00:00 app[worker.1]: File "/app/src/sync/processor.py", line 77, in _import 2021-11-24T16:43:12.770303+00:00 app[worker.1]: raise Exception('could not authenticate with garmin') 2021-11-24T16:43:12.770307+00:00 app[worker.1]: Exception: could not authenticate with garmin
See La0/garmin-uploader#28 for a solution..
Is simply redeploying going to solve it?
Heroku is sunsetting free dynos in November. Are there any free alternatives to keep running the sync?
The distances that are showing in Garmin are different than what is the in iFit record. I checked both of the exports, TCX and CSV, and the distance is correct in both, but in Connect, it is showing the distance of the workout (expected distance) rather than the distance that I actually did. I've been looking through the code both here and in garmin-uploader, and see where it appears to be uploading in workflow.py, but being new to the code, can't see where the distance is done. Perhaps it's just looping through the columns and adding the info via the API without being explicitly set. So on that note, I'm thinking that if it were in garmin-uploader, there'd be a bug about it already from others who used it outside of us using the iFit version. But I haven't been able to find that out for sure, or if there's some sort of issue with the downloaded file vs. doing it through the UI on iFit.
Hi,
first a big thank you for your efforts to get this working. One can only hope that one day there will better integration between all the closed gardens in the fitness world.
anyway, I tried to install the script on one of my Debian servers. Installation works fine but the script runs into a 404 error for the API path, currently set on IFIT_URL_AUTH = 'https://www.ifit.com/web-api/login'
Has this changed?
Thanks,
Hi,
Love what you've done here, but I've deployed in Heroku, configured login details for iFit and Garmin, hit the force button, but nothing further is happening... Unfortunately it keeps saying no workouts have been exported. I've checked this several times over a few hours, but I'm yet to see any change.
Any ideas as to what could be going on?
I don't seem to be able to find any logging output in Heroku that might help, is there any debug logging that can be enabled?
Have you thought about changing from Activity to Workout in the Garmin API? The iFit tcx exports contain calories burnt. As it stands today (using Activity), calories always show up as 0 on imported activities in Garmin Connect. Using Workout lets you set calories under duration_calories.
https://developer.garmin.com/fit/file-types/workout/
I really appreciate your work. This project is exactly what I was looking for when trying to integrate the two!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.