joaovitoriasilva / endurain

My DIY fitness tracker journey. Frontend is built using Vue.js and Bootstrap CSS; Python FastAPI, Alembic, SQLAlchemy, stravalib, gpxpy, MariaDB behind the scenes. Suggestions welcome!
GNU General Public License v3.0
485 stars 12 forks source link

[FEAT] - Integrate with Garmin #3

Open Cave-Johnson opened 8 months ago

Cave-Johnson commented 8 months ago

Would be great to add Garmin support - i know alot of people that would love to be able to self host something to pull in their Garmin data

https://github.com/cyberjunky/python-garminconnect

dgalli1 commented 1 month ago

Wouldn't it be more useful to directly support .fit file imports instead of relaying on an API?

Like this smartwatches connected via gadgetbridge could also still work.

Garmin also has a offical sdk, which should result in fewer stability issues: https://developer.garmin.com/fit/overview/

The connect website also has a function to export fit files which would mean that it should still be possible to connect via the webpage for users in the offical eco system.

Edit nvm: https://github.com/joaovitoriasilva/endurain/blob/4b0d546d2e67ce77cbcf04cd91ace01b431ae154/backend/app/fit/utils.py#L1 :+1:

joaovitoriasilva commented 1 month ago

Hello @dgalli1. Yes, you are right. .fit files is on my to do list. Probably my next task. Every platform that I know supports .fit files, so it makes sense to support it.

Using an API has some other benefits like exporting other data than activities, i.e. all the health data that Garmin also has, like weight, HRV, etc

alexanderadam commented 1 month ago

Wouldn't it be more useful to directly support .fit file imports instead of relaying on an API?

I think that both have different advantages and purposes. Moving files manually can be inconvenient instead of having a sync that just works™.

However, I think that in order to use the API you'd need to be part of the Garmin developer program and I'm not sure which conditions apply there.

Like this smartwatches connected via gadgetbridge could also still work.

IMHO this would be the best way since everything would stay within an open ecosystem. _However, Gadgetbridge sync was requested 9 years and I'm not sure that it'd be supported anytime soon.

Using an API has some other benefits like exporting other data than activities, i.e. all the health data that Garmin also has, like weight, HRV, etc

That's true. But I can also imagine that it means a lot of work to implement these, or not?