All Projects → praveendath92 → Fitbit Googlefit

praveendath92 / Fitbit Googlefit

Licence: gpl-3.0
Export Fitbit data to Google Fit. Unlike the alternatives such as fitnessyncer.com, this offers very fine intraday granularity (every minute/second data).

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Fitbit Googlefit

PyFiSync
Python (+ rsync or rclone) based intelligent file sync with automatic backups and file move/delete tracking.
Stars: ✭ 88 (-78.48%)
Mutual labels:  sync
Fbshipit
Copy commits between repositories · git → git, git → hg, hg → hg, or hg → git
Stars: ✭ 298 (-27.14%)
Mutual labels:  sync
Anki Sync Server
Self-hosted Anki sync server
Stars: ✭ 352 (-13.94%)
Mutual labels:  sync
Taiyakianime
Stream anime and synchronize with your MyAnimeList(MAL) + SIMKL + Anilist on iOS and Android devices
Stars: ✭ 259 (-36.67%)
Mutual labels:  sync
Keepassonedrivesync
Allows syncing of KeePass databases stored on OneDrive Personal, OneDrive for Business or SharePoint
Stars: ✭ 270 (-33.99%)
Mutual labels:  sync
Application Services
Firefox Application Services
Stars: ✭ 327 (-20.05%)
Mutual labels:  sync
react-native-sync-adapter
Schedule background data synchronization using React Native.
Stars: ✭ 112 (-72.62%)
Mutual labels:  sync
Vscode Syncing
⚡️ VSCode Extension - Sync all of your VSCode settings across multiple devices.
Stars: ✭ 395 (-3.42%)
Mutual labels:  sync
Sync
syncs your local folder with remote folder using scp
Stars: ✭ 293 (-28.36%)
Mutual labels:  sync
Rojo
Rojo enables Roblox developers to use professional-grade software engineering tools
Stars: ✭ 338 (-17.36%)
Mutual labels:  sync
Kinto.js
An Offline-First JavaScript Client for Kinto.
Stars: ✭ 268 (-34.47%)
Mutual labels:  sync
Mysqlsmom
同步mysql数据到elasticsearch的工具,功能丰富,用法简单,配置灵活,扩展性强;
Stars: ✭ 268 (-34.47%)
Mutual labels:  sync
Gmvault
gmail backup software
Stars: ✭ 3,396 (+730.32%)
Mutual labels:  sync
uClock
A tight BPM clock generator for Arduino and Teensy
Stars: ✭ 58 (-85.82%)
Mutual labels:  sync
Code Settings Sync
🌴💪 Synchronize your Visual Studio Code Settings Across Multiple Machines using GitHub GIST 💪🌴
Stars: ✭ 3,754 (+817.85%)
Mutual labels:  sync
docker-service-registrator-kong
A docker service registrator for the Kong API Gateway
Stars: ✭ 14 (-96.58%)
Mutual labels:  sync
Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+840.34%)
Mutual labels:  sync
Dotmim.sync
A brand new database synchronization framework, multi platform, multi databases, developed on top of .Net Standard 2.0. https://dotmimsync.readthedocs.io/
Stars: ✭ 406 (-0.73%)
Mutual labels:  sync
Rump
Hot sync two Redis servers using dumps.
Stars: ✭ 382 (-6.6%)
Mutual labels:  sync
Jellyfin Kodi
Jellyfin Plugin for Kodi
Stars: ✭ 332 (-18.83%)
Mutual labels:  sync

Introduction


Export all your Fitbit data to Google Fit. If you find this useful, please star ⭐️ the repository on Github.

Unlike other alternatives, such as fitnessyncer.com, this aims to offer very fine granularity for the data.

Fitbit Steps GoogleFit Steps demo

Features


  • [x] Steps - minute level precision
  • [x] Distance - minute level precision
  • [x] Heart rate - second level precision
  • [x] Weight
  • [x] Body fat percentage
  • [x] Activities
    • [x] Running
    • [x] Swimming
    • [x] Biking
    • [x] Volleyball
    • [x] Walking
    • [x] Badminton
    • [x] Workouts
    • [x] Fencing
    • [x] Cricket
    • [x] Football
    • [x] Hiking
    • [x] And a [few others][activities] -- suggestions welcome!
  • [x] Calories - minute level precision
  • [x] Sleep logs - minute level precision

Adding new activities

To add new activities

Setup


You have to register your own Fitbit and Google Fit applications. This setup is a one time thing.

  1. Install dependencies

This is a python3 application so install all the dependencies

  • Create virtualenv virtualenv fitbitenv
  • Activate env source fitbitenv/bin/activate
  • Install dependencies using pip3 install -r requirements.txt
  1. Fitbit setup

All instructions below must be performed using the same Fitbit account you want to sync with Google Fit.

Application Name : --
Description : --
Application Website : --
Organization : --
Organization Website : --
OAuth 2.0 Application Type : **Personal**
Callback URL : http://localhost:8080/
Default Access Type : Read-Only

Note : 
1. Use your own information for fields marked --
2. Make sure you copy the Callback URL exactly (including the last /)
3. Application Type MUST be Personal
  • Hit save and make a note of OAuth 2.0 Client ID and Client Secret
  • Navigate to auth folder cd /auth
  • run python3 auth_fitbit.py -i <client-id> -s <client-secret>
  • This opens a popup in the browser. Authenticate and done!
  1. Google Fit setup

  • Go to the Google Developers Console
  • Click Continue. Then select Go to credentials and select Client ID
  • Under Application type, select Other and hit Create
  • Make a note of client ID and client secret
  • Navigate to auth folder cd /auth
  • run python3 auth_google.py -i <client-id> -s <client-secret>
  • This opens a popup in the browser. Authenticate and done!

Usage


Get your Google Developer Project Number (a 12 digit number) from a the Google Developers Console

Update project_number in config.ini to be your Google Developer Project Number.

Modify any other variables you'd like in config.ini with your own choices and start the sync using python3 app.py

Sync examples:

  • With date stamps : python3 app.py -s 2016-08-20 -e 2016-08-22
  • Last 3 days : python3 app.py -s "2 days ago" -e tomorrow
  • January month : python3 app.py -s "jan 1 2016" -e "feb 1 2016"

Setup autosync:

You can setup a cron task to automatically sync everyday at 2:30 AM.

30 2 * * * /path-to-repo/fitbit-googlefit/cron.sh >> /path-to-repo/fitbit-googlefit/cron.log 2>&1

Add above line to your cron tab: crontab -e in Linux. Sync logs will be stored to cron.log in repository.

Headless authentication


If you want to do the authentication process on a system without a display - such as a raspberry pi or a remote server, pass --console or -c option to the authentication scripts. See below examples.

python3 auth_fitbit.py -i clientid -s clientsecret --console

python3 auth_google.py -i clientid -s clientsecret --console

Note :

  1. Get command line help using the -h flag.
  2. Arguments passed through command-line take higher priority over config.ini values.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].