Tuesday, January 26, 2016

Fitbit Sync Battery Drain - Tasker Profile

Recently I got myself a Fitbit Charge HR, which added to my new year resolve to do something proactive to improve my health. Let's see how this resolve stands beyond the first few weeks, but that is out of scope for this blog entry.

I have an Android Nexus 5 phone where I installed my Fitbit app, and via Bluetooth the app syncs with my Fitbit. The device should ideally last around 5 days with a fresh charge, but I noticed mine was lasting hardly for two days! Together with the proprietary charge cable, this, I saw as an added pain.

Quick fixes included:

  • Make very sure that the FitBit is updated to any latest firmware version
  • Turning off the 'Quick View' feature of my Charge HR
  • Turning off  'Add Day Sync'. This was hitting my fitbit almost every 15 minutes or so!
  • Turning off  'Always Connected'. This was bad too for both my phone and the device battery life
I feel this did help a lot in saving battery life of my Fitbit, but now I had to manually remember to sync. I also do not like keeping my bluetooth always open. So I needed someway to automate my fitbit getting synced once or twice a day.

Check on my settings on the shown screenshot of my FitBit.

Tasker to the rescue!

I happen to have Tasker on my phone, which I paid for for it's ease of automating almost anything on my phone. I made a quick profile using it, to solve my requirements.

I can confirm that post my tasker profile, and the above FitBit config changes, instead of max 2 days, I am easily getting 5+ days now!

Profile Features:

Version 1.1 (Feb 19, 2016)
Have tweaked the profile to make it more reliable.
One major change in this version is that during sync, I turn off wifi, and rely on the mobile data for internet connectivity. At least for my testing, I have found this to be much more reliable for some reason in making the FitBit to sync.

I also check if internet is connected, before opening the App. Additionally a few strategic delays were added to allow the system to stabilize post a setting change.

Till now, I am getting sync perfectly as planned, twice a day (7:30 AM and 9:00 PM, but ofcource you can change these times if you need to).

Original version (Jan 26, 2016)
  1. Sync my Fitbit twice a day, at 7 AM and then at 8 PM. This way my curious self gets to see in the morning how was my sleep yesterday, and in the evening to see how my day went.
  2. The profile would turn on bluetooth at the defined time for 5 minutes and will wake up the phone
  3. during this time the profile would also launch the Fitbit app so that a manual sync begins
  4. After 5 minutes, the bluetooth would be turned back off
  5. I think tasker uses the efficient Android API to try to wake up the phone at "approximately" the times defined to try club other wake requests
Download the latest profile XML from here

Do let a comment if this helped you, or if you may improve this further.