You need Node installed. All of this you only need to do once:
- Clone the git repo locally
npm install
- Create a new Exist app with Allowed Attributes of: Time asleep, Time in bed, Bedtime, Wake time
- Follow the instructions in the Exist API docs to generate an OAuth2 Bearer token for your app
- Create a
.env
file with the contentsEXIST_BEARER_TOKEN=your_token_here
node claim_attributes.js
You should get this output from the final command:
Sending request to acquire sleep attributes...
{ failed: [],
success:
[ { active: true, name: 'sleep' },
{ active: true, name: 'sleep_start' },
{ active: true, name: 'sleep_end' },
{ active: true, name: 'time_in_bed' } ] }
If you do, you're ready to go!
- Export a fresh CSV of your sleep data from Sleep Cycle by going to Settings -> Advanced -> Database -> Export database
- Place the
sleepdata.csv
file in your project directory node index.js
After several seconds you should see output from the Exist API saying that the attribute update was a success!
Each time you run this, it will send your entire database to Exist, as it has no state to remember what it has already sent. This is probably terrible and I imagine might not work if you have too much data. In that case you could simply split up your csv in to multiple files and run them one at a time.