Withings has several HR values (from my sleep sensor, from my Blood Pressure device and if one has a more fancy scale or a watch/tracker there would be hr as well)
I’ll have a look at your update and test it when I find a moment
Withings has several HR values (from my sleep sensor, from my Blood Pressure device and if one has a more fancy scale or a watch/tracker there would be hr as well)
I’ll have a look at your update and test it when I find a moment
oh… is it… Would love to see how that is “differentiated” in the API data. I see the API has something called “deviceID” . Would be great if there are samples to work with so that I can see what can be done to select or such.
This feature is now live and available for all in the Apple App Store.
I am now working on the next revision which would also push the data to Garmin Connect.
Some uploaded Dummy data example:
Did you enable MuscleMass field in intervals? This is not a usual field and uploads may fail if this is not enabled within intervals. (There is supposed to be a message showing this, but it’s likely multiple error messages popped up and overlapped each other and only the final one became visible)
I don’t have a Withings and thus, I can only manual update some dummy weights into Withings(but it does not have a field for Muscle Mass)
Please verify if you disable the option for MuscleMass, does the sync succeed?
Hi, thank you for the quick reply.
After your comment I have created a new field “Muscle Mass” in Intervals as you said.
I synchronized again for one year past data but still get the same error message.
I tried both “enabling” and “disabling” “Muscle Mass” in the sync settings of Breakaway App.
Kind regards
Marian
I’m not sure if this makes a difference, but the Muscle Mass I’m using is this “public” version after clicking on the Magnifying Glass “Fields”
Can you go to the SETTINGS tab, way at the bottom… under the Developer Box put in
LOGCLOUD
then try the sync again. After it fails, it should generate a log file that you can access in the HISTORY tab. I think it should be called Debug_logCloud.txt. Please either send it to me or just paste a few lines from it here. It’s a plain text file
Tx
I removed my custom field as you described and I enabled the “public version” from David intervals.icu for “muscle mass”.
However syncing still not work. Here the content of the log file:
2023-12-19 10:56:55.9330 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 10:56:55.9720 Existing Plist File Exists - Update/Write
2023-12-19 10:56:55.9720 DONE ----- saveUserPreferences ----- DONE
2023-12-19 10:56:55.9730 Existing Plist File Exists - Update/Write
2023-12-19 10:56:55.9740 DONE ----- saveUserPreferences ----- DONE
2023-12-19 10:57:09.9980 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 10:57:10.5100 [SUCCESS ] workoutDelete - removeItem at withingsData.csv
2023-12-19 10:57:10.5170 IntervalsIcu.uploadWellnessCSV - Uploading:/withingsData.csv - SUCCESS
2023-12-19 10:58:49.6690 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 10:58:50.2410 IntervalsIcu.uploadWellnessCSV - API Error.. 422 errorMessage: Row 50 2023-05-29: Invalid resting HR
2023-12-19 10:58:50.2780 [SUCCESS ] workoutDelete - removeItem at withingsData.csv
2023-12-19 10:58:54.7480 Existing Plist File Exists - Update/Write
2023-12-19 10:58:54.7530 DONE ----- saveUserPreferences ----- DONE
2023-12-19 11:01:45.4220 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 11:01:45.4830 Existing Plist File Exists - Update/Write
2023-12-19 11:01:45.4840 DONE ----- saveUserPreferences ----- DONE
2023-12-19 11:01:45.4850 Existing Plist File Exists - Update/Write
2023-12-19 11:01:45.4850 DONE ----- saveUserPreferences ----- DONE
2023-12-19 11:01:48.6570 Existing Plist File Exists - Update/Write
2023-12-19 11:01:48.6580 DONE ----- saveUserPreferences ----- DONE
2023-12-19 11:01:49.5760 [SUCCESS ] workoutDelete - removeItem at withingsPref.plist
2023-12-19 11:02:07.3190 loadWithingsPreferences - No Plist. Use Default:withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 11:02:14.4100 Creating New Plist File
2023-12-19 11:02:14.4120 DONE ----- saveUserPreferences ----- DONE
2023-12-19 11:02:14.4310 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 11:02:14.4320 Existing Plist File Exists - Update/Write
2023-12-19 11:02:14.4330 DONE ----- saveUserPreferences ----- DONE
2023-12-19 11:02:34.0870 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 11:02:34.7360 IntervalsIcu.uploadWellnessCSV - API Error.. 422 errorMessage: Row 50 2023-05-29: Invalid resting HR
2023-12-19 11:02:34.7630 [SUCCESS ] workoutDelete - removeItem at withingsData.csv
2023-12-19 11:02:52.6070 DONE loadWithingsPreferences withingsPref(syncWeight: true, syncBodyFat: true, syncDiastolicBP: true, syncSystolicBP: true, lastSyncDate: "19/12/2023", syncToIntervalsIcu: false, syncToStrava: false, syncToGarmin: false, syncHr: true, syncMuscleMass: true, userId: "", refreshToken: "")
2023-12-19 11:02:53.1960 IntervalsIcu.uploadWellnessCSV - API Error.. 422 errorMessage: Row 50 2023-05-29: Invalid resting HR
2023-12-19 11:02:53.2210 [SUCCESS ] workoutDelete - removeItem at withingsData.csv
2023-12-19 11:02:55.7270 Existing Plist File Exists - Update/Write
2023-12-19 11:02:55.7320 DONE ----- saveUserPreferences ----- DONE
There’s your error…
Check your withings data for that date. Somehow Intervals Doesn’t like the HR for that date.
Also - you’re pulling 1 years’ worth of data. Does it work on smaller batches like 1 month?
does the shorter ones work?
I’ve just made changes that will surface this error message to the user, and if LOGCLOUD is enabled, the app won’t delete the CSV file
Tx
Amazing!! It works now! I deleted the “Resting HR” value from 29th of mai 2023. It showed a value of “zero”. I must have been dead on that day
I synced again for 12 months data and it shows now much more values. Also there was no error message in your app.
I will continue to add older data. I have around 10 years of data (weight and blood pressure) and since march 2023 also a smart watch from Withings (Sleep, Resting HR, etc).
Great team effort and great support! Mary thanks!
Marian
2023-12-19 11:16:21.7080 [SUCCESS ] workoutDelete - removeItem at withingsData.csv
2023-12-19 11:16:21.7230 IntervalsIcu.uploadWellnessCSV - Uploading:/withingsData.csv - SUCCESS
It worked for 1yr past data sync? Wow… Didn’t know it can do that “much” at one go. I’m not sure what’s the limit.
I didnt’ know that a value of “0” is not acceptable. I will see if I can make it such that the app will filter out these “0” values
Tx for the report and Tx for supporting the app. If not already, do leave a 5 start rating and a review of the App on the Apple App Store. TX!!
The error messge I showed in previous message was just added.
I synced back until December 2015 and it worked perfectly. See screenshot.
I created also a new public chart for “blood pressure”. Both WEIGHT and BLOOD PRESSURE charts are build from withings measurements.
Of course I will make 5 star ratting in the App Store.
I was a real pleasure to work with you on the resolution.
Marian
Just another small observation: I made a blood measurement today and synchronized it with intervals. The standard date settings in the breakaway app are todays dates “import start” and “end” date. If the date is 19/12/2023 it does not synch. However if the date is 20/12/2023 it will synch. I believe todays date should be “inclusive” bit it is not.
Tx for the observation. Seems like the END Date doesn’t end at 23:59:59
I will take a look at see what I can do… perhaps the simplest is just to +1 day
Edit: Fixed…
One thing I noticed is that there should be rounding in the data, otherwise it gets complicated
How does the (original) data from Withings look like?
Are there multiple data/readings per day?
Hi @app4g ! I am wondering if you could include more data fields from Withings into the breakaway application? E.G. Sleep Duration, Sleep Score, AVG Sleeping HR, SpO2.
Are they available? Last I checked these were not available.
Are some of these fields you circled native or needs to be added (like MuscleMass?)
if like MuscleMass, please share the fieldnames so I can look it up and see how to map it
In my case, the data is from Apple Health, and unlike, for example, the HealthFit application which rounds the values, in the case of the BreakAway application it does not, as seen in the photo
Tx for clarification.
Round to nearest integer or x decimal points?
@Joao_Samora Fixed to truncate the decimal points. (not rounded) This follows the way Apple Health reports it. eg: 283.59 = 283 (vs 284 if rounded)
Compiling now.
@Surf2bikes I’ll add you to testflight. please PM me your email address. This will only add SP02. You only just need to inform me if it works to populate (I’ve yet to add the selection box to enable/disable so it’ll be enabled by default for testing)
Tx