# Galileo

Author: Benoît Allard 1.0dev LGPLv3+ https://bitbucket.org/benallard/galileo/issues galileo@freelists.org (subscribe, archive)

## Introduction

Galileo is a Python utility to securely synchronize a Fitbit device with the Fitbit web service. It allows you to browse your data on their website, and compatible applications.

All Bluetooth-based trackers are supported. Those are:

• Fitbit One
• Fitbit Zip
• Fitbit Flex
• Fitbit Force
• Fitbit Charge
• Fitbit Charge HR

Note

Support for synchronisation without the provided USB dongle is now experimental (See #28). Help with testing is welcome !

Note

Support for the newer trackers: Alta, Surge, and Blaze is now experimental (see #149) due to a change in the network communication protocol. Help with testing is welcome !

Note

The Fitbit Ultra tracker is not supported as it communicates using the ANT protocol. To synchronize it, please use libfitbit.

This utility is mainly targeted at Linux because Fitbit does not provide any Linux-compatible software, but as Python is cross-platform and the libraries used are available on a broad variety of platforms, it should not be too difficult to port it to other platforms.

## Main features

• Synchronize your fitbit tracker with the fitbit server using the provided dongle.
• Securely communicate (using HTTPS) with the fitbit server.
• Save all your dumps locally for possible later analyse.

## Installation

### The easy way

Warning

If you want to run the utility as a non-root user, you will have to install the udev rules manually (See The more complicated way, or follow the instructions given when it fails).

$pip install galileo$ galileo


Note

If you don't want to install this utility system-wide, you may want to install it inside a virtualenv, the behaviour will not be affected.

### Distribution packages

The following Linux distributions have packages available for installation:

Arch:
The utility is available from AUR. You can install it using the yaourt package manager: yaourt -S galileo.
Fedora:
The utility is packaged in a COPR repo. Download the relevant repo for your version of Fedora, and then yum install galileo.
Gentoo:
The utility is packaged as app-misc/galileo within the squeezebox overlay. See https://wiki.gentoo.org/wiki/Layman for details of how to use Gentoo overlays.
Debian:
galileo is officially part of the stretch distribution (Debian 9). Just use your favorite package manager.
Ubuntu:
galileo is officially part of The Yakkety Yak (16.10). Just use your favorite package manager.

### The more complicated way

First, you need to clone this repository locally, and install the required dependencies:

pyusb:
Need at least a 1.0 version, 0.4 and earlier are not compatible. Please use a tagged release as development version might contains bug or interface breakage.
requests:
Newer versions (2.x) preferred, although older should also work.

You should copy the file 99-fitbit.rules to the directory /etc/udev/rules.d in order to be able to run the utility as a non-root user.

Don't forget to:

• restart the udev service: sudo service udev restart
• unplug and re-insert the dongle to activate the new rule.

Then simply run the run script located at the root of this repository.

If your system uses systemd then there is an example unit file in the contrib directory that you may wish to customize.

## Documentation

For the moment, this README (and the --help command line option) is the main documentation we have. The wiki is meant to gather technical information about the project like the communication protocol, or the format of the dump. Once this information reached a suffficient level of maturation, the goal is to integrate it into the project documentation. So head-on there, and start sharing your findings !

Manual pages for the galileo(1) utility and the galileorc(5) configuration file are provided within the doc directory.

## Acknowledgements

Special thanks to the folks present @ the issue 46 of libfitbit.

## Disclaimer

Fitbit is a registered trademark and service mark of Fitbit, Inc. galileo is designed for use with the Fitbit platform. This product is not put out by Fitbit, and Fitbit does not service or warrant the functionality of this product.