Control de la pulsera Miband en GNU/Linux con python

Suele ser buena cosa medir lo que andamos pero no suele ser bueno si tenemos que darle esos datos a alguien en china. Xianomi por ejemplo vende unas pulseritas de estas tan de moda por poco precio pero con la feature de que usando su aplicación tendrás que darles demasiada información sin necesidad.

Tu mismo puedes gestionarte tu propio software para manipular una de estas pulseritas y puedes no necesitar compartirlo si no quieres por redes sociales. En mi caso he probado y este es el resultado:

mibanda001

En resumen esto es para los que no quieren pasar por el aro de tener que usar las aplicaciones oficiales y quienes gustan de trastear.

Material necesario:

Una pulserita miband de esas modernas. Puedes conseguir aquí una por unos 13 € y gastos de envió gratis.

 

mi-band
Un pincho USB bluetooth mini 4.0. Por 4 € más o menos lo puedes conseguir aquí. Este es el que colocaremos en el ordenador.

usb

Software necesario

Lo primero es instalar el modulo mibanda . Esto en Debian puede hacerse cumpliendo las siguientes dependencias.

Instalamos las dependencias necesarias:

# apt-get install python-pip pkg-config libboost-python-dev libboost-thread-dev libglib2.0-dev python-dev libbluetooth-dev
# pip install gattlib
# pip install mibanda

 

Nota: «#» lo uso cuando es un comando que has de ejecutar como usuario root.
Nota: «$» lo uso cuando es un comando que has de ejecutar como usuario normal y corriente :).

 

Aquí documentación sobre la API aquí: http://oscaracena.bitbucket.org/mibanda/api/

 

En caso de que tengamos más de uno hemos de ver si alguno está bloqueado. Se puede hacer así y desbloquear indicando el número que sale al hacer el list:

 

rfkill list
rfkill unblock número

 

Si tenemos ya el tinglado nos podemos hacer un software en python a medida. Aquí por ejemplo algunas de las funciones sencillitas para ir trasteando:

import mibanda

sd = mibanda.DiscoveryService()
print sd
device = mibanda.BandDevice("88:0f:10:1E:8f:74", "MI")
print device
device.connect()
direccion = device.getAddress()
print direccion
nombre = device.getName()
print nombre
info = device.getBatteryInfo()
statusinfo = info.status
print statusinfo
statusinfolevel = info.level
print statusinfolevel
statusinfocargas = info.charge_counter
print statusinfocargas
statusinfolast = info.last_charged
print statusinfolast
pasos = device.getSteps()
print pasos
 

¿Le ha gustado el contenido?

Si le ha gustado y le ha sido de utilidad puede donar aquí https://paypal.me/mierdatv .  
También puede escribir un comentario si lo considera oportuno.  
 

Comentarios 3

Deja un comentario

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