Garmin is such a horrible company to try to integrate with. I don't know why they lock down their stuff so hard like this. And if you do manage to gain access to one of their offical APIs or SDKs, they are total dogwater.
Let's not forget Garmin was victim of a ransomware attack in 2020 and they finally paid $10 million after days of blackout and they never really addressed the issue.
This seems pretty nice in terms of features, but would probably need a bit of polish.
> I don't know why they lock down their stuff so hard like this.
Same reason every other company locks down your data. You are the product and they want to keep you locked in, feeding them data.
They can't have you running off with all your data when a new device comes out from a competitor that is better; that would force them to compete more!
Garmin has a long history of being lazy as fuck unless someone's actually competing against them. The smartwatch market heated up and lo and behold features and better models coming out left and right. Their bike computers would go years between refreshes..until Wahoo, Bryton, Coros, and Hammerhead started beating on their door.
Strava is much the same way. They were pretty free with access in and out, and tightened things down making it nearly impossible to export data.
That seems fair - the user has withdrawn their permission for processing their data or invoked "right to be forgotten", no?
You'd think they would allow a popular app that their customers likes to use could have higher limits.
CityStrides were battling with it a lot, but it looks like it was resolved, finally: https://community.citystrides.com/t/increase-strava-api-limi...
Heh, isn't that pretty much every company in the history of capitalism?
Is it still? A few years I built integration for creating posters from route GPS data, and it seemed pretty much the same experience as Strava and RunKeeper, but then they changed their TOC and wanted about $10K to connect.
It seems to be free now - although they still require approval. https://developer.garmin.com/gc-developer-program/overview/
If you want data for your own use - and to send data from one service to another - then tapiriik is great (or atleast was, I haven't used it for a few years):
I've been using InReach and the InReach APIs for a few years now.
They were both very reasonably priced (they cost nothing above my InReach subscription price), very easy to get access to (I emailed them and got access to API docs and the APIs within a day or three) and extremely well thought out and reliable (very robust callback based event/point reporting system, with retries on their side if your code breaks or is flakey, their web page has a great debug interface to see what happens if your webhook fails) and their support was top-notch (if not super fast).
I had a weird bug with their webhooks when I started implementation, where every event would come in twice, once with the timestamp of the event truncated to an integer of whole seconds. You could see from the user-agent that the one with the truncated timestamp was a few versions older of their software. Wrapped that analysis up in an email to them and about 12 hours later saw it get fixed and about 12 hours after that got an email back from AN ACTUAL ENGINEER who thanked me for the description, explained why and how it happened and explained their fix.
Granted, the InReach and definitely the InReach Professional API, are more of a professional product and less pure consumer, but, Garmin definitely knows how to do this.
It's expensive to build out a first class order fulfillment system and it's hard to compete with Amazon's system since they have such huge economies of scale -- Amazon probably ships more product in a few hours than Garmin does all year from their retail site.
Even worse than buying products from a manufacturer is buying a spare/replacement parts, you need a $5 replacement charging cord? Well it'll cost you $15 in shipping and still take 2 weeks, and often those spares are only available from the manufacturer.
Long Story short, i just programmed my own App now for that. Works with all garmin watches and let's use define a fixed Workout and allows to analyze your individual performances across exercises:
https://multisports.creatness.studio - i'm still waiting for Garmin to approve my App Store Submission (another long story with garmin) but it can already be downloaded and sideloaded on a garmin watch. using it for a few weeks now myself.
I believe it wanted interval activities to be recorded without also recording the rest intervals in between which was frustrating.
/edit derp, I’m getting confused between this and runalyze
Noped the f outta there
There are some good OSS libraries to read and interpret those files (e.g. Python https://github.com/polyvertex/fitdecode, Go https://github.com/tormoder/fit).
To get your _current_ data, it is possible to pull the current .FIT files from your device (watch, bike computer, ..) when it is plugged to your computer and mounted as file system.
I once started a side project to do exactly that, but abandoned it after a while (https://github.com/jo-m/garmin-disconnect).
the lesson i learned is you can't just expect these exports from any online services to be complete or what you expect. i highly recommend going through an export of anything you depend on and see if it has what you expect.
One of the recommended fixes was a factory reset of the watch, which deletes all of the stored .fit files.
DI_CONNECT/DI-Connect-Uploaded-Files/UploadedFiles_0-_Part\*.zip
DI_CONNECT/DI-Connect-Fitness/my@email_PrimaryTrainingBackup_Part1.zipI expected some synergy but I got nothing. When monitoring the same activity with the two devices you just gets dupes (for example, sum of the distances measured by the two devices). This is worse than if I had 2 devices from 2 different brands.
FWIW you might have been looking for extended display mode.
https://support.garmin.com/en-US/?faq=fZaD0E9cTwAwBffjoJcWT8
There's another related defect if you use one of their chest straps that records and stores heart rate data for later download (this is mainly for swimming activities where radio can't be used). If you record an activity on your watch and it syncs to Garmin Connect before downloading heart rate data, then after the watch downloads from the chest strap it will create a duplicate activity in Garmin Connect instead of updating the existing activity. Customers have been complaining about this for years but Garmin doesn't care.
'I like the safety'- Apple marketers or people who fell for the marketing
Garmin/google/anyone else does it:
"So dumb, I should be able to use my own stuff!"
1. Open the health app
2. Tap on your face in the upper right
3. Scroll down to the bottom and tap "export all data" or whatever it says.
Bam: every workout and every health measurement in an XML file.
Whoever told you apple locks down health and fitness data was either mistaken or lying to you.
edit: here is a more technical explanation https://www.ryanpraski.com/apple-health-data-how-to-export-a...
for example, the FIT file format, used exclusively for programming workouts on all bike computers, are only supported in one or two apps!
I suppose that's our fault and we should build on the sdk
There are a lot more than two apps which read or write FIT files for purposes other than workout planning. I wrote one of them.
I specifically called out workouts.
one tedious thing is needing to manually create the workouts. Unless you're doing the same thing week in and week out, it gets old quickly.
I'd build something like a ZWO to FIT converter but there's no way to load them onto a bike computer without Garmin or TrainingPeaks
I personally highly recommend intervals.icu
Example: It’s not possible to filter for workouts without gear. Sometimes I forget to add my bike or a pair of shoes, so such a filter would be helpful.
It would be very easy for them to add add that filter to the app and / or connect website.
But without a community manager, there’s no engagement possible.
Imagine they had a public tracker where people could request features. They could review them and use that knowledge to build better stuff, making more money.
I looked into getting a Apple Watch series 10, but ultimately decided against it (battery lasting not longer than 1.5days / no real use for messaging or smart apps a side from health / 2x price compared to the vivo).
I would love to find an _open_ watch, that allows for hacking, nice APIs, self-hosting of dashboards even, nice apps et cetera. I feel like there is market for people like me. Maybe the rebirth of the pebble will be able fill this void?
You can select the filetype too: gpx, fit or tcx.
It takes a surprisingly long time, there must be some serious inefficiencies since the watch only takes a second or so to sync all that same data to my phone. I haven't had a chance yet to look closer at the internals.
I've never put my watch online.
You don't have to "activate" the watch or create an account to use it. You can just strap it on your wrist and go.
You can get to your data using MTP (or the garmin protocol) by accessing the watch filesystem.
I'm not certain about updates. I haven't found a way to download and update the watch offline, but I haven't seriously tried. I did notice some beta firmware you could download and update older watches with offline.
So I think you might need garmin connect or similar to download apps or updates.
He shared some data with me to see if I could decode/dump (2+ years ago) and I gave up. Garmin are not easy sometimes. Shame. I doubt their s/w is making them much, people buy for the hardware not the app specifically. False benefit lockin.