Sincronizando el Fitbit Ultra usando el Raspberry Pi

(c) Glen Murphy
(c) Glen Murphy

Como ustedes sabrán tengo un Fitbit Ultra el cual había dejado de usar durante algún tiempo, pero en vista de la posibilidad de usar el Raspberry Pi para sincronizarlo a su servicio, decidí darle una segunda oportunidad y de paso entretenerme un poco con el Raspberry Pi tratando de configurar todo y que funcionara.

Buscando información para poder hacerlo encontré un proyecto desarrollado por Kyle Machulis de Nonpolynomial Labs publicado en OpenYou como parte del proyecto Open Source Health Hardware. Dicho proyecto desarrolló una librería llamada libfitibit la cual tiene publicado su código fuente en GitHub. Sin embargo no tenía la más mínima idea de como instalar dicha librería.

Afortunadamente encontré una guía para instalar libfitbit en Ubuntu 12.04 Precise Pangolin publicada en Sharpee’s Space, la cual me sirvió bastante a pesar de no tratarse una guía para Raspbian, pero debido a que comparten la base Debian no requirió prácticamente de modificaciones.

Instalación

Antes que todo es necesario que el Fitbit Ultra esté registrado bajo tu usuario en el sitio web de Fitbit, para lo cual es necesario disponer de un PC con Windows o MacOS X debido a que requiere la utilización del software de configuración del Fitbit el cual sólo funciona y está disponible para dichos sistemas operativos.

Una vez que el dispositivo esté registrado en la web de Fitbit, ya podemos comenzar a configurar el servicio de sincronización en el Raspberry Pi.

El paso siguiente es descargar, instalar y configurar la librería libfitbit desde su repositorio en GitHub para lo cual seguimos los siguientes pasos abriendo para esto una ventana de Terminal. Es necesario tener permisos de superusuario, y por esta razón algunos de los comandos necesariamente comienzan con el comando sudo.

Si bien es cierto que las instrucciones de Sharpee’s Space utilizan el repositorio de Ben Allard en GitHub, preferí usar el repositorio de Kyle Machulis mencionado previamente, puesto que el primero me arrojó un error.

sudo apt-get install git

mkdir /opt

cd /opt

sudo git clone https://github.com/qdot/libfitbit.git

cd libfitbit

Puede que les de un error en la creación del directorio /opt si es que ya existe previamente, pero no es nada importante.

Una vez descargada la librería es necesario que esté disponible para no-superusuarios y por lo tanto hay que copiarla a rules.d con el siguiente comando.

sudo cp ./platform/linux/* /etc/udev/rules.d

Ahora es necesario instalar algunas librería de Python necesarias para el funcionamiento de libfitbit.

sudo pip install pyusb

sudo apt-get install python-yaml

Eventualmente puede darles un error indicando que el comando pip no existe para lo cual necesitan instalar este paquete con el siguiente comando.

sudo apt-get install python-pip

La instalación de dicho paquete seleccionará en forma automática otras dependencias, por lo tanto el sistema les pedirá que confirmen si realmente quieren instalar el paquete python-pip y sus dependencias.

Finalmente hay que conectar el dispositivo de carga y sincronización del FitBit Ultra a uno de los puertos USB del Raspberry Pi y correr el servicio de sincronización usando el siguiente comando.

python /opt/libfitbit/python/fitbit_client.py

Y listo, ya tenemos corriendo la librería libfitbit en el Raspberry Pi y cuando el dispositivo de carga y sincronización del Fitbit detecte que hay un Fitbit Ultra cerca sincronizará con la web de Fitbit la información contenida en el dispositivo.

Cabe recordar que el dispositivo de carga y sincronización es inalámbrico gracias a que es compatible con el protocolo ANT, y no es necesario poner el Fitbit Ultra en su dock para sincronizarlo, sino que esto sólo es necesario cuando requieres cargar la batería interna del Fitbit Ultra.

Eventualmente pueden obtener un error la primera vez que corran el servicio de sincronización en su Raspberry Pi, pero esto se soluciona desconectando el dispositivo de sincronización y carga del puerto USB y volviendo a conectarlo.

Una vez que el Fitbit Ultra se sincroniza, el proceso iniciado por libfitbit se detiene, y para volver a sincronizar es necesario volver a ejecutarlo. Esto se puede solucionar a través de un cron para que corra en forma automática cada cierto tiempo, y que yo configuré para que corra cada 3 horas excepto durante las horas de sueño. Para esto es necesario editar la lista de procesos cron y agregar la siguiente línea

crontab -e

0 0,9,12,15,18,21,0 * * * python /opt/libfitbit/python/fitbit_client.py

Si quieren verificar que el trabajo haya sido agregado efectivamente al cron utilicen el siguiente comando

crontab -l

Con esto tendremos corriendo en forma automática el script de Python de libfitbit cada 3 horas y no tendremos que preocuparnos más por la sincronización de nuestro Fitbit.

Hay otras opciones, como por ejemplo un daemon basado en libfitbit el cual comentaré más adelante una vez que haya tenido oportunidad de instalarlo y probarlo, puesto que requiere una compilación previa, algo que aún tengo que aprender, pero por lo menos gracias a libfitbit ya logré el primer paso en darle alguna utilidad a mi Raspberry Pi.

Enlaces:

Author: Edison Montes

Soy un médico joven que trabaja en la atención prehospitalaria, específicamente en el SAMU Metropolitano, formado en la Universidad de Concepción. Mi fascinación por la tecnología nace de la mano de mi padre, quien no dudó en mantenernos a mi y a mi hermano al tanto de todo lo nuevo que pudiera aparecer.

4 thoughts

  1. Hola,
    Interesante articulo ya que tengo los dos gadgets, me gustaria preguntarte una cosa, tengo un fitbit pero no tengo la base, me he fabricado un cargador, pero sabes si hay algun otro modo de sincronizarlo con el pc.
    Saludos

  2. Hola. Tengo el fitbit ultra sin la base también me la ingenie para cargarlo, mi celular Android tiene tecnología ant+ me podrías ayudar a usarlo como base de sincronisacion?

  3. dudas de un no poseedor que esta valorando el fitbit:
    ¿la sincronización con el cron mete los datos en el servidor o en la pi?
    ¿como se recuperan esos datos?

    La cuestión es que quiero montar un tracker de pulsaciones remoto de un familiar, y si esto funciona (subir datos para consultar en remoto puede ser la solución)

    1. Hola, los datos se sincronizan con la web de FitBit y en las ultimas versiones puedes ver esto desde la App que debes instalar entu celular o tablet.
      Se podria modificar el script para guardarlo localmente.
      Saludos
      JZ

Responder a joniuz Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *