The Future of SuuntoLink / Movesink / DM
-
@FrancoisP
No one knows atm, but that’s an option for non BT devices -
@FrancoisP said in The Future of SuuntoLink / Movesink / DM:
I didn’t find anything about the actual desktop apps (Suuntolink / Moveslink / DM).
They don’t require any website to work, just APIWhat do you mean “do not require any website”? Only DM5 is a standalone full-featured GUI application that can be used independently of MovesCount.com.
The only single purpose of Moveslink for MoveStick Mini, Moveslink2, and Suuntolink is to connect you to MovesCount and sync your workout data (your ‘moves’ as Suunto branded them) and sport watch settings, including GPS satellite almanac.
They may also hold a temporary copy of the workout data on your hard drive, but it’s in a proprietary hardware-specific format which is only applicable to MovesCount.@DmitryKo said in Sports Tracker or Movescount: which is sticking around?:
- Moveslink for MoveStick Mini (Windows/Mac) - M, T, X series, Quest;
- Moveslink2 (Windows/Mac) - Traverse, Ambit series, GPS Track Pod;
- Suuntolink (Windows/Mac) - Spartan series;
- Suunto DM5 application (Windows/Mac) - EON, Dx, Cobra, Vyper, Zoop series diving computers
-
@DmitryKo said in The Future of SuuntoLink / Movesink / DM:
@FrancoisP said in The Future of SuuntoLink / Movesink / DM:
I didn’t find anything about the actual desktop apps (Suuntolink / Moveslink / DM).
They don’t require any website to work, just APIWhat do you mean “do not require any website”? Only DM5 is aa standalone full-featured GUI application that can be used independently of MovesCount.com.
The only single purpose of Moveslink for MoveStick Mini, Moveslink2, and Suuntolink is to connect you to MovesCount and sync your workout data (your ‘moves’ as Suunto branded them) and sport watch settings, including GPS satellite almanac.
They may also hold a temporary copy of the workout data on your hard drive, but it’s in a proprietary hardware-specific format which is only applicable to MovesCount.@FrancoisP is kind of right here, at least what concerns Moveslink2 & Suuntolink, don’t know about Moveslink (older T-series watches, GPS-pods and such) & DM. ML2 can retrieve logs from a watch while being offline, data is stored in SML-files, it’s a valid xml and there are tools that are able to import Movelink2 SML directly (GoldenCheetah, QMapshack, SportTracks, Rubytrack to name a few). But that will only cover log retrieval and is acceptable for only fraction of users.
Now to the watch configuration part, everything that currently goes through Movescount web - Moveslink2 does not connect directly to Movescount web frontend, but to backend service that provides API. It does not really matter where that service runs or if data source is some remote data store or a local database or static json-file. So it should be possible with reasonable effort to create a local (offline) application providing both user interface for watch configuration and API service for Moveslink2, keeping all the data locally. Adding support for Apps and Ambit3 structured workouts would complicate thing a lot, but even without those it would be something. A lot more than currently communicated.
Or perhaps create an api-proxy that acts as an adapter between new Suunto services and Moveslink2.
All this should apply to Suuntolink as well. Which is quite a bizarre piece - being an Electron app seems to hint that at some point there were far bigger plans for it; and with some help it seems to support Ambits just fine. -
@margusl said in The Future of SuuntoLink / Movesink / DM:
ML2 can retrieve logs from a watch while being offline, data is stored in SML-files, it’s a valid xml and there are tools that are able to import Movelink2 SML directly
These are just what I said, temporary logs. Update or reinstall the app and the files may be gone.
Now to the watch configuration part, everything that currently goes through Movescount web - does not connect directly to Movescount web frontend, but to backend service that provides API.
They are retiring the entire Movescount service - the web front end, the Azure back-end, the desktop apps, and the user data store. Soon there will be no-one left to implement any substantial change.
it should be possible with reasonable effort to create a local (offline) application providing both user interface for watch configuration and API service for Moveslink2, keeping all the data locally.
All this should apply to Suuntolink as well. Which is quite a bizarre piece - being an Electron app seems to hint that at some point there were far bigger plans for it; and with some help it seems to support Ambits just fine.The problem is, Suunto’s efforts on desktop software front have been anything but reasonable.
Didn’t they promise to eventuly unify Moveslink2 with Moveslink for Movestick Mini? That claim is still on the download page, but this just never happened. Instead, they just started over with Suuntolink for the Spartan series - extending it to support Suunto 9/3 Fitness, thought without actually sending Movescount data. And now even that effort would be retired in favour of direct connection to the Suunto App.
So I wouldn’t really expect them to include any feature that was not explicitly promised in the announcement, however trivial it might be to implement according to your own assesment.
Or perhaps create an api-proxy that acts as an adapter between new Suunto services and Moveslink2
Yes, ‘perhaps’ is the key word here. I for sure would not count on it to happen.
-
@DmitryKo said in The Future of SuuntoLink / Movesink / DM:
@FrancoisP said in The Future of SuuntoLink / Movesink / DM:
I didn’t find anything about the actual desktop apps (Suuntolink / Moveslink / DM).
They don’t require any website to work, just APIWhat do you mean “do not require any website”? Only DM5 is a standalone full-featured GUI application that can be used independently of MovesCount.com.
My point was to have a unified Suunto desktop app to synch watches with the new Suunto App, just need to use the same API than iOs and Android app use, to send the data.
But yes, it’s irrelevant until we cannot add and configure watches via the mobile app, without the need of connecting them by Bluetooth.
-
@DmitryKo said in The Future of SuuntoLink / Movesink / DM:
Update or reinstall the app and the files may be gone.
At least on OS X, you can pretty easily move the .sml files from their home in
~/Library/Application Support/Suunto/Moveslink2/
to anywhere else you feel like in the filesystem. With some moderate tech skill, you can then use ambit2gpx to convert them from Suunto’s weird proprietary XML to something you can upload anywhere.
In fact, this file-moving/library could probably be rolled into a better/open source version of Moveslink2 that would let uses put their data wherever they want, instead of being locked into going through Movescount/Suunto app/sports-tracker/whatever other future garbage Suunto comes up with. It’d also put the burden of ongoing updates/support on to the consumers who want it, rather than the company that clearly doesn’t care.
That’d probably be my preferred solution—though I guess just having my Ambit2 mount in the regular filesystem as USB mass storage would be the best of all options.
-
@Cosmo-Catalano I just favored this comment
-
@Cosmo-Catalano
Do you know if there exists an ambit2fit?
We lose the R-R heart rate data in the GPX output. -
Do you know if there exists an ambit2fit?
We lose the R-R heart rate data in the GPX output.None that I know of, but in theory it’s doable, provided the R-R data is stored in the .sml file that the Ambit uses to record activity.
The .sml file is XML that could be parsed into a .csv, and then converted into a .fit using the Java tools in the FIT SDK.
That said, I don’t have an R-R interval-ready strap, so I can’t confirm that’s where the R-R data lives. And I’ve never used the SDK to go from .csv to .fit—only the other way around. I’d probably take some reading/trial-and-error to get the .csv into the a format the FIT tool will correctly parse.
Finally, GPX format might be able to be extended to hold R-R data (as was done for watts with gpxpx:PowerExtension, but Google doesn’t seem to think there’s a currently-accepted convention for doing this.
-
This is not quite on topic I’m afraid, but played around with some Movescount and Suunto app fit exports today. SA fit files origin from Strava /export_original . SA is also connected to TP, so checked with Training Peaks Uploaded FIles and fit-files from both sources are basically identical, only difference is start time; so this fit file is not something that is crafted specially for Strava.
I just wanted to know what this quote from FIT description actually means in real life:
Used to record heart rate variability data. The hrv data messages contain an array of RR intervals and are interleaved with record and event messages in chronological order.
And It’s just small arrays of IBI values beween other, timestamped, records:
#Exported from Movescount and fed trough SDK's FitToCsv: Data,6,record,timestamp,"916920666",s,position_ Data,1,hrv,time,"0.466|0.472",s,,,,,,,,,,,,,,,, Data,7,record,timestamp,"916920667",s,altitude, Data,1,hrv,time,"0.473|0.466",s,,,,,,,,,,,,,,,, Data,6,record,timestamp,"916920668",s,position_ Data,1,hrv,time,"0.472|0.471",s,,,,,,,,,,,,,,,, Data,7,record,timestamp,"916920669",s,altitude, Data,3,hrv,time,"0.466|0.471|0.473",s,,,,,,,,,, Data,6,record,timestamp,"916920670",s,position_ Data,1,hrv,time,"0.466|0.473",s,,,,,,,,,,,,,,,, Data,7,record,timestamp,"916920671",s,altitude,
Suunto app seems to have a bolder approach with either averaging or dropping about half of original samples - same time window, but instead of 11 samples there are only 5, one per record:
#Exported from SA / Strva and fed trough SDK's FitToCsv: Data,7,record,timestamp,"916920666",s,distance, Data,1,hrv,time,"0.472",s,,,,,,,,,,,,,,,,,,,,,, Data,5,record,timestamp,"916920667",s,position_ Data,1,hrv,time,"0.466",s,,,,,,,,,,,,,,,,,,,,,, Data,7,record,timestamp,"916920668",s,distance, Data,1,hrv,time,"0.473",s,,,,,,,,,,,,,,,,,,,,,, Data,5,record,timestamp,"916920669",s,position_ Data,1,hrv,time,"0.473",s,,,,,,,,,,,,,,,,,,,,,, Data,7,record,timestamp,"916920670",s,distance, Data,1,hrv,time,"0.47",s,,,,,,,,,,,,,,,,,,,,,,, Data,7,record,timestamp,"916920671",s,distance,
@Dimitrios-Kanellopoulos , is this by design?
Sum of all IBI samples is supposed to result total workout time, for Movescount export it was 03:44:45 (matches)
and for Suunto app export 01:44:08 .Also geeked out a bit over Runalyze (they, btw, do import SML files) and for that same activity from different sources HRV analysis results were somewhat different, yet less than I would have expected. Graphs differ mostly because of some outlier samples screw up the scale - at the end of Movescount IBI data there’s some kind correction sample that seems to be total_time - sum(ibi) or something, it’s already present in SML files.
Left: fit from Suunto app / Strava / TP; Rigth: Movescount fit export -
@margusl how did you get the IBI from the Suunto app?
Yes the sum should match pretty much the activity Absolute duration aka, should include pauses as IBI should come in while paused to maintain the time delta.
-
@margusl I like the plot of those IBI what are the y and x Axis values?
I do have raw ibi data access from the watches and I am developing a tool so I might be able to support those graphs as well. -
@Dimitrios-Kanellopoulos said in The Future of SuuntoLink / Movesink / DM:
@margusl how did you get the IBI from the Suunto app?
Suunto app syncs to both Strava & TP . And Strava /export_original output is a fit file with those hrv records. As said, TP export for the same activity is exactly the same.
@Dimitrios-Kanellopoulos said in The Future of SuuntoLink / Movesink / DM:
@margusl I like the plot of those IBI what are the y and x Axis values?
Plots are from Runalyze,
1st R-R intervals plot is samples [ms] over activity duration [hh:mm:ss]
2nd successive differences plot is time diff [ms] over activity duration [hh:mm:ss]
3rd is Poincaré plot, RR interval against next interval or RR(n)[ms] as x vs RR(n+1) [ms] as y -
@margusl are you sure it has hrv?
On the fit file records?
Where exactly on the fit file because I can’t find any ibi or HRV data
-
@Dimitrios-Kanellopoulos said in The Future of SuuntoLink / Movesink / DM:
@margusl are you sure it has hrv?
On the fit file records?
Where exactly on the fit file because I can’t find any ibi or HRV data
Yes, as you see from above snippets, hrv messages are all over the place, after every single timestamped record thorugh whole file, from top to bottom. Those snippets are from csv output of FitToCsv.bat, from FIT SDK. I would be bit suprised if hrv presence is related to watch model (A3P in my case) , but more than likely HR source plays a role here. Those are from Polar H10.
There’s one thing I did not check - there’s a chance that SA fit exports include just a fake HRV, calculated form HR. Though it would be verry much same as averaging.Just check again, activity was synced with SA today few hours ago and Strava export_original still returns fit-file with hrv messages:
Data,1,hrv,time,"0.391",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,3,record,timestamp,"917371937",s,position_lat,"708543526",semicircles,position_long,"294059066",semicircles,distance,"15300.0",m,heart_ra Data,1,hrv,time,"0.39",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,3,record,timestamp,"917371938",s,position_lat,"708543276",semicircles,position_long,"294058231",semicircles,distance,"15304.0",m,heart_ra Data,1,hrv,time,"0.387",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,3,record,timestamp,"917371939",s,position_lat,"708542977",semicircles,position_long,"294057253",semicircles,distance,"15310.0",m,heart_ra Data,1,hrv,time,"0.388",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,2,record,timestamp,"917371940",s,position_lat,"708542691",semicircles,position_long,"294056298",semicircles,distance,"15315.0",m,heart_ra Data,1,hrv,time,"0.293",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,2,record,timestamp,"917371941",s,position_lat,"708542500",semicircles,position_long,"294055356",semicircles,distance,"15320.0",m,heart_ra Data,1,hrv,time,"0.391",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,2,record,timestamp,"917371942",s,position_lat,"708542285",semicircles,position_long,"294054378",semicircles,distance,"15325.0",m,heart_ra Data,1,hrv,time,"0.38",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,2,record,timestamp,"917371943",s,position_lat,"708542059",semicircles,position_long,"294053411",semicircles,distance,"15330.0",m,heart_ra Data,1,hrv,time,"0.377",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Data,2,record,timestamp,"917371944",s,position_lat,"708541761",semicircles,position_long,"294052540",semicircles,distance,"15335.0",m,heart_ra Data,1,hrv,time,"0.376",s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-
@margusl this is something the fitTocsv does. SA does not include hrv so you are most probably seeing generated data.
-
@margusl However you might also be right. I am now checking the fitSDK. Myabe the lib I am using is more old. I ll get back to you about this
-
-
@margusl this should be fixed from today on
-
The moveslink also manage updates of satellite position data. Can I update satellite position data after 2020 for my Ambit 1?