The Future of SuuntoLink / Movesink / DM
-
@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?