Tigge / antfs-cli

Extracts FIT files from ANT-FS based sport watches such as Garmin Forerunner 60, 405CX, 310XT, 610 and 910XT.
MIT License
312 stars 76 forks source link

Upload to Garmin Connect #96

Open Toilal opened 10 years ago

Toilal commented 10 years ago

There are functions from python ant downloader that could be added into this project, like garmin connect upload, and daemon mode (automatically catch new activities when watch is in range).

With those function, this project will be as effective as official Garmin ANT Agent.

Is there any plan ? Do you want those to be included in the project, or in another ?

I can help writing those functions, as i'm a python developer.

aspiers commented 10 years ago

This project already has uploading to Garmin Connect.

Tigge commented 10 years ago

Hi, the plan is to have the same functionality as the official Garmin ANT Agent, but there is no real roadmap for the missing features yet. I'm currently focusing on the split of the library and the agent, but things are progressing slowly.

Some of the planned features have issues here on Github, but not all. Suggestions and help are really appreciated!

Toilal commented 10 years ago

@aspiers The script you mentionned uses GcpUploader. From official wiki

The python-ant-downloader project was recently launched and probably makes this project (=GcpUploader) obsolete. It strives to be a full replacement for the Garmin ANT agent for Linux platforms. It can extract data from some Garmin ANT+ equipped devices and upload the data to Garmin Connect.

I should give a try to python-ant-downloader to upload .fit files to Garmin connect ...

aspiers commented 10 years ago

@Toilal I already looked at https://github.com/braiden/python-ant-downloader but it only works with devices supporting the Garmin Device Interface Spec and lists the FR910xt as an unsupported device. Having said that, uploading to GC is really an independent problem from downloading data from devices. So IMHO it would be better to keep downloading and uploading functionality in separate projects, just like GcpUploader does currently.

aspiers commented 10 years ago

I have filed https://github.com/braiden/python-ant-downloader/issues/59 in the hope that the wider Linux/Garmin community can discuss this in more depth.

Toilal commented 10 years ago

I agree it should belong to another project, but GcpUploader doesn't seem to be maintained ... i've read that python-ant-downloader borrowed some code from tapiriik to upload to Garmin Connect.

Maybe we could use tapiriik instead, as it's an active project really focused on uploading and downloading data from various sport communities (Strava, Garmin Connect, and others ...).

aspiers commented 10 years ago

Yeah I read that too, sounds like a good idea!

dlotton commented 10 years ago

I agree it should belong to another project, but GcpUploader doesn't seem to be maintained ... I've read that python-ant-downloader borrowed some code from tapiriik to upload to Garmin Connect.

GcpUploader isn't abandoned (I'm the maintainer). However, I'm not in a position right now where I can dedicate any time to improvements/upgrades/fixes for a while. Note, GcpUploader also borrowed code from Tapiriik when GC changed their authentication scheme.

GcpUploader was something I cobbled together as a complete novice to accomplish a task that I couldn't find a solution for at the time. It isn't pretty, but it got done what I needed to do.

I do have a branch in my GIT repo where I've done a bunch of restructuring(I've learned a bit since I've started), fixed some unicode issues, and added a couple of features(set activity type, parse a csv file with list of files), but it is not well tested. I tried to maintain the same API so the changes (hopefully) would not break other code people may wrap around it. Note this branch may have some additional requirements. See the setup file.

I've just exposed the GIT repo with READ access for 'authenticated' SF users on SourceForge, if you're interested in playing with it.

aspiers commented 10 years ago

@dlotton thanks a lot for sharing this info, especially that development branch. I strongly recommend that you make the git repo available on github which is far more conducive to outside contributions and collaboration than SourceForge (due to the pull request workflow and a far more friendly UI).

aspiers commented 8 years ago

@dlotton Would you be able to publish the repo on github?

Tigge commented 8 years ago

@dlotton I would also love to see this on GitHub!

dlotton commented 8 years ago

I'll look into migrating it to GitHub.

dlotton commented 8 years ago

https://github.com/dlotton/GcpUploader

dlotton commented 8 years ago

FYI, there have been some people complaining about a JSON decode problem when uploading to Garmin Connect. I have not had the bandwidth to look into the issue. It sounds as if the problem may have gone away... maybe Garmin has been monkeying with their API.

https://sourceforge.net/p/gcpuploader/discussion/general/thread/51de38db/

I would strongly suggest taking a long hard look at the Tapiriik project (https://tapiriik.com/). That's where I leveraged a good portion of my code when Garmin changed their authentication scheme. It can synchronize across many different sports data sites and also integrates with Dropbox. It is actively developed/supported and it's damned sexy code, too.

aspiers commented 8 years ago

@dlotton Thanks a lot for putting it on github!

I already use Tapiriik for syncing other services - yes it's cool, but a bit too heavyweight for just uploading some local files to Garmin. I suppose I could copy them to the Dropbox folder tapiriik syncs with, but a) that doesn't integrate with antfs-cli and b) I don't like depending on Dropbox more than I can help.

dlotton commented 8 years ago

@aspiers No problem, I'm just pretty sacked with work and haven't had time to dedicate to this in the last year or so.

Yes, my thought was to sync through dropbox, which is also cross-platform, but I agree, it I don't particularly like the idea of having to rely on dropbox either.

If I were better at this I'd link my code to the Tapiriik source repo so I would be able to benefit from updates and feature adds that he makes, but I'm not that smart. I'm a hardware guy by trade. :)