OK. Lets start with the problem.
The ultimate problem is that I often/usually wake up feeling like shit. I am in the process of attempting to determine whether this is caffeine related by removing caffeine from my life, but I would describe myself as something like 80% confident that it is not. I don’t believe I have sleep apnea, but checking that is also something I will be trying to do at some point.
I have been using a Jawbone UP for sleep tracking. I am considering replacing it with a Ouija board in order to get more useful and relevant information. It appears to be categorically unable to detect whether I am actually asleep, let alone what sort of sleep I am currently experiencing (though I have been getting some benefit out of the sleep tracking functionality).
However, it has highlighted one interesting thing: I noticed this morning that my heart rate spiked to > 100bpm twice last night. My “normal” heart rate is somwhere in the region of 55bpm, so that’s quite a spike.
And I think I’ve seen that before, just based on the shape of the graph, though it’s not consciously registered.
So why don’t I look at the data?
Well, I’d love to! Except Jawbone throw away all the detailed heart rate data that’s more than 24 hours old, and don’t let you access the detailed data even from the last 24 hours. I’d be fine with scripting a data export and just dumping it somewhere, but it’s completely impossible in a classic internet of things “You thought that just because you own the device you can actually make use of its functionality? Sucker” backstab.
So that’s the proximate problem: I would like to answer the question “Does my heart rate routinely spike during the night and is that indicative of something?”
The obvious way of answering this is using some sort of continuous recording of heart rate data which has the controversial and exciting feature of my actually being able to access the data.
I only really need this while I am asleep, but it would be nice to have it while I’m out and about too.
So, here is approximately what I am looking for:
- A wearable heart rate monitor with accurate data. I am perfectly happy for this to be a chest strap based one rather than a watch.
- Which I can get a complete data export from. Ideally I would be able to do this for historic data without needing a nearby bluetooth capable device to send the data to live.
- That isn’t ruinously expensive (definitely not > £100. Ideally more in the £50 region).
I currently have three contenders:
- A fitbit. They provide full historical heart rate data and an API you can get it from. I am mostly not just going straight for this one because I’ve heard fairly bad things about the accuracy of the fitbit’s heart rate monitoring.
- A Zephyr. People seem to mostly be recomming the ruinously expensive Bioharness, but they also have the merely slightly pricey HxM. I do not believe I can get historic data out of them only live. These are mostly recommended because they are accurate and have a good bluetooth API.
- Get a cheap chest strap monitor that speaks the standard heart rate service bluetooth specification (there are some really cheap ones), and try out the various android apps that speak it, then later if that works well, write a small Python script to just dump it to a database and run it on a raspberry pi or something next to my bed.
I’m currently most tempted to try the third option first despite it being the “worst” in many regards (requiring the most manual effort on my part). Heart rate service is pretty standard, as far as I can tell, so I can experiment with a heart rate monitor that costs ~£15 and upgrade if the data looks promising (e.g. the Polar heart rate monitors are supposedly quite good and speak heart rate service).
I am however not very satisfied by any of these options, and am open to general advice, recommendations, etc on any of the above, on any point from the proximate to the ultimate problem. So please share. Comments are open on this post, and you’re also welcome to tweet or email me.
You can probably do a pretty good job with a chest strap HRM (Polar/Wahoo etc) and Strava or another dedicated tracking tool. Hard to use for all day tracking because it’s tough on the phone battery but you could leave it plugged in when sleeping. There are decent wrist or arm straps too if that’s more comfortable. Probably not a great long term solution but might work for investigation. You’d need to build a .tcx or gcx parser though.
Which is basically option 3. Doh.
In my narrow experience the really cheap HRMs are a waste of money because they tend not to work at all!
I only have one data point there, so you might write that off. I picked one up for £10 at Lidl a while back and got it to *occasionally* connect to my iPhone – but never long enough to get a reading from it. Plus it kept falling apart.
So I went for a Polar H7 (£42 on Amazon) and it’s been rock solid and reliable, with highly accurate readings, from the start. You might get lucky in the mid-range but if you’re seriously interested in this data I’d just recommend going for it with something like that Polar (if you haven’t already).
In my case I was looking for HRV (Heart Rate Variability) – which is a measure of the variability in timings between beats (or, more specifically, peaks). I can’t remember now, did you see my ACCU conf lightning talk on it?
The Polar has been stellar for that. Given your original problem I’d suggest you also look into HRV as it may give more insight into the underlying causes of whatever your situation is (and is generally useful anyway).
For general HR the wrist worn ones should generally be accurate enough. I don’t know about the Fitbit one, though.
I’ve been using my Apple Watch for monitoring during exercise and it’s been pretty good for that. I’m looking at writing something HR related for it myself (for keeping me below aerobic threshold while running). It’s a shame you’re not in that eco-system as there are quite a few sleep-tracking apps already, and if you did need to write your own there’s a well defined interface for it – and HealthKit already keeps detailed sample logs around for some time (I’m pretty sure more than 24 hours, anyway). But I wonder what the Android Wear story is there? Presumably all suitable devices blow your budget?