At the moment ConnectStats is not working properly when using the Garmin Data from the ConnectStats Servers. I’ll explain the issue, but there is a temporary work around
UPDATE: I have a new version pending approval from Apple that will work without the work around. With version 6.2.1, if you have “all” as a source, the app will automatically go to the web site if the ConnectStats Server didn’t receive data from the Garmin Health API.
Update as of August 6th the issue with the garmin api is resolved. So no need for the work around and using all as data source should be fine.
I you are having ConnectStats not display an activity or statistics or hanging you need to
Select the last good activity you have in your list (does not have to be the last one but a known good one)
Go to Config, Profile and select “Delete Some Activities”. This will delete all the activities from the app up to the one you have selected. It will not delete anything on any server, only in the app local files.
Go to Config, Services, Garmin and select for Source “Garmin WebSite”
Close the app fully (may not be necessary, but to ensure there are nothing in the memory cache)
Restart the app and try to download activities again.
When thing works again, you should be able to revert source to “all”, but monitor here or on twitter for message that it’s fixed
What is the issue
Since early today, the Garmin API is sending error instead of the activities files to the ConnectStats server. As a result the app is trying to go the Garmin website directly to get the fit file. Currently Garmin Connect is not letting you download fit files (if you go to garmin connect and select “export original” you will get an error), this second error is causing ConnectStats to hang on its processing queue (my bug).
If you select Garmin WebSite as a source it will get the data of your activity without trying to get the fit file and this seems to work at the moment.
I’ll update this as the situation evolve and post on twitter as well.
Following the Garmin outage, someone asked me on twitter about some usage statistics and its evolution over time. I thought it would be a good idea to put together a little write up both on the stats but also to show people what type of usage data one can see when you have an app.
ConnectStats remains a very tiny player compared to the big guys, and its two key statistics is that in the recent month the app got about 5,000 downloads and on average 3,000 users start the app every day with some variation between weekend and weekdays. This is quite a representative month.
Garmin Servers were out from Thursday July 23rd to Monday July 27th. I won’t go over what happened at Garmin as it’s well covered in the press or other sites, but wanted to share how it impacted me and ConnectStats. While the impact on ConnectStats wasn’t massive, the episode resulted in two small fixes and improvements…
First, it happened that on a Thursday when I didn’t go out running. So I didn’t realise until Friday, after the Garmin Connect App didn’t upload my latest morning run. The app was reporting some maintenance, which I didn’t worry about too much. I just opened ConnectStats, to see how the app was handling the maintenance, it reported a Garmin Error and invalid name or password if you tried to use the Garmin Website connection. Not great, but it’s hard sometime to interpret the web page errors. Mental note to check again later see if could interpret the message better, and I went to work.
I was just cleaning my files and stumbled across my old source code repository and looked at the first code commit of ConnectStats in September 2012…
ConnectStats and other apps have come a long way since then. The original reason I wrote ConnectStats are no longer valid, but today I still use it and feel the need to maintain it. I’ll go through how I use it, where I think it still has an edge vs other apps and where the other apps provide features I need but will never implement in ConnectStats.
I personally use extensively the Strava App, the Garmin Connect App and ConnectStats. It is very possible there are other apps out there that do a terrific job that I don’t know, but this article is just about what I use myself.
I mentioned many time the best rolling plots are my favorite feature of ConnectStats. After adding a new ability to visually see when you reached specific best, I have now a first version of a feature I have been planning to do for a while now: time analysis of specific slice of your best achievement.
So today, I submitted to Apple for release a first version of this feature in ConnectStats 6.1. The best rolling curve shows you what best power, heart rate or pace you reached for a given time or distance. You could previously see what that curve looked like for a month or year. Now you can see how specific point evolved over time.
I mostly work and play within the Apple ecosystem and AirDrop, Continuity and other integration between devices is extremely useful and convenient. My son recently converted himself to Linux and started to miss the ability to easily move photos, text, or url between his phone and his Linux computer. Being a hacker himself, he thought it would be a great idea to devise an app that let’s you move information from your phone to your computer, and more generally a “cross platform AirDrop substitute for geeks”…
Of course, one solution would be to google and figure out if such an app exists, but where is the fun in that? We decided to take on a Father-Son new project and build our own solution.
First a quick note as I write this, since the new ConnectStats service was introduced, the new service has now passed the 1 million activities threshold out of 14,000 users who used the new service rolled out in January! It is small compared to the big players, but nice nonetheless.
After working on improving the calculation of the best rolling curves, I have now implemented a first version of an improved summary analysis.
In the new version 6.0 of ConnectStats you can now explore your power curves or best rolling plot and study when you reached you best and compare in detail how you are improving over time.
We are living through strange times. I live in London and we are currently in lockdown/stay at home order for a few weeks now. I am quite lucky that my family and myself didn’t get infected by the virus and are still healthy. We are following the rules and staying home except for the daily exercise. Luckily in London, unlike in France where some of my family lives, we are allowed to bike and run without a constraints to stay too close to home (one kilometre in france), as long as we leave and come back from our home it’s ok.
As the weather has been gorgeous since the beginning of the lockdown, this enabled me to log quite a few nice runs and ride.
ConnectStats tries to maintain for each field in an activities from Garmin or Strava a list of translations and units for the metric or imperial system. I am mostly my-self using the app in English and metric but I had updated the list in different languages from some sources I had found online and the Garmin website a few years ago.
But it is now a bit dated and there are quite a few attributes for which I do not have the translations. Some users volunteered to update the translations in their native language. In addition recently I received quite a few bugs report about units being incorrect for example for elevation or weights.
Trying to understand what was wrong in my Best Rolling Curve Calculation pushed my ability to use Xcode debugger to its limit. The quirks I was trying to understand were happening on large time series after multiple level of sampling, rolling averages, etc on noisy data.
I ended up in a mixed environment so I could easily exchange time series data between Xcode and pandas in a Jupyter notebook, which enabled me to explore and get to the bottom it!