Zeo Personal Sleep Coach – Hacking Your Way To A Better Night’s Sleep
What’s a better way to kick off the New Year than by giving tips on how to improve your overall quality of sleep? I decided to write this post as a mini-review of the Zeo Personal Sleep Coach and share some open source tools and APIs to help with saving your Zeo data for your own personal analysis.
In retrospect, 2010 was a pivotal year for me since I first learned about some amazing new technology gadgets that help you keep track of your overall health and well-being. Last February I discovered the WiThings scale that will automatically track your weight and BMI, and will upload your data online so you can set goals and visually see how you are progressing. Then, in April I received my FitBit and have been consistently using it to track my overall fitness activity – calories burned, miles walked, activity level, etc. The thing that I love about these gadgets is that they “just work”: simply stepping on scale, or wearing a little gadget on your belt will help produce interesting sets of data and visual graphs that can help guide you to take action to improve your health. A few months ago I discovered another amazing device called the Zeo Personal Sleep Coach that will actually track how well you’re sleeping, provide detailed data and visual feedback, and give coaching tips to improve your overall quality of sleep.
What is Zeo?
In a nutshell, the Zeo product is designed to analyze your sleep patterns and provide you with a lightweight wireless headband, a bedside display, a set of online analytical tools, and a personalized email-based coaching program. The main thing that initially blew me away with Zeo was the fact that the wireless headband will actually record your brainwave activity! Not only can the device tell you what time you go to bed and what time you wake up, but it will provide detailed info on exactly when you’re lightly sleeping, in REM sleep, and in deep sleep. With all this info at its disposal, the Zeo is able to provide you some valuable information and tools to analyze trends in your sleeping patterns. Here’s a sample of some of the sleep data you can review once it’s been uploaded to the myzeo.com site:
- Zeo Sleep Score
When you wake up and place the headband back on the bedside display, the Zeo will provide you with an overall sleep score (ZQ) that is based on your sleep quality and quantity. Your base score is your total sleeping time, combined with restorative sleep (Deep & REM) and disrupted sleep (wakeups, total wake time). Think of the score as your overall grade for how well you slept. I was surprised to learn that the average score for my age group is a ZQ score of 77. Since I started using the Zeo in November, my sleep score has been averaging a ZQ of 98.
- Sleep Graph
This is where the Zeo data can get interesting. This particular graph will not only show what time you went to bed and woke up, but also the total time it took to fall to sleep and a detailed breakdown of what sleep phase you were in throughout the night! Reviewing this graph can provide some telling feedback on how different factors may impact your night’s sleep: going to bed too early/late, stress (a racing mind), too much caffeine or alcohol, working out too late in the evening, etc.
- Sleep History
The sleep history graph will show key information (ZQ score, total sleep time, deep sleep/rem sleep, etc.) for different time intervals (daily, weekly, monthly). Again, being able to use this data to see trends in your sleeping patterns can provide some useful feedback on how to be more conscious of what’s impacting your quality of sleep.
For a good review and video of the Zeo, I’d recommend reading the WallStreet Journal article from last year (note the price for the Zeo is now $199.95 USD and available at retailers like Brookstone & Sharper image). And, for another recommended review with some detailed info on how the Zeo actually works check out Ryan Hurd’s review and some peer-reviewed literature on the science behind Zeo.
Open Source and APIs
Now, this is where the post gets a little technical (and exciting)! The thing that I *really* like about the Zeo is their willingness to give you as much access to your sleep data as possible and embracing open source as a compliment to their commercial offering. How are they doing this? Zeo issued a press release back in June announcing their new open API to allow 3rd party companies and individual developers complete access to their sleep data. The published API offers developers the ability to register and signup for an API Key, and provides a comprehensive REST API (using both JSON and XML) so 3rd party libraries can be developed.
Zeo currently offers some sample code using the API in a variety of languages (Perl, PHP, Java, etc.) and a fully working Ruby libarary developed by DailyBurn. In order to help ease my own effort to download data and help other developers, I decided to create my own OO Perl library similar to the one I initially created for Fitbit back in May. Unlike the FitBit libary which is somewhat unofficial (Fitbit does not offer ‘published’ API for developers), the Zeo Perl library has been fully tested against the published API, and any future changes by Zeo can be easily incorporated in the the library.
The Perl API (WebService::Zeo) is now hosted on GitHub at http://github.com/ericblue/Perl-Zeo-API. In the near future this library will also be made available on CPAN. This module provides an OO (Object-Oriented) library that currently supports all major services in the REST catalog (methods for getting sleep averages, detailed sleep data based on exact dates and ranges, and pagination to step through the sleep records).
More Open Source “Hacking”
In my mind, the officially supported API is major news for techy geeks and data junkies (me). But, it gets even cooler…. along with the Web API, Zeo also offers:
- Zeo Data Decoder Library – A version of software and a library that enables a user to decode Zeo sleep data stored on a memory card without uploading data to mySleep.myZeo.com.
- Zeo Raw Data Library – A version of software and a library that enables a user to decode Zeo sleep data and raw signal data in real time using the auxiliary serial port located on the back of Zeo.
Their developer site lists some cool sample projects:
- Integrate Zeo sleep data into a website that tracks your weight, nutrition, and exercise.
- Create a desktop application to view and process Zeo sleep data.
- Build a lucid dreaming system to notify you when you are in REM sleep and alert you using a sound.
- Use Zeo while you are awake to measure meditation.
Overall, I’m very pleased with the Zeo so far and would highly recommend to anybody interested in improving their sleep quality. And, for the “hackers” out there, the open source offering provides some great tools to access all of your sleep data and analyze in unique and interesting ways. Happy 2011, and I wish all of you restful sleep and a healthy ZQ score!