¿Cómo puedo conectarme a FitBit Zip a través de Bluetooth 4.0 LE en Linux con bluez?


Compré un FitBit zip. Este dispositivo utiliza Bluetooth 4.0 LE. Me gustaría al menos conectarme a él a través de bluez. Si eso tiene éxito, quiero ver cuánto del protocolo puedo averiguar.

Estoy usando un Lenovo P500 Ideapad que tiene soporte integrado para Bluetooth 4.0. Parece que funciona (tipo de)

Cuando lo hago:

hcitool lescan

Soy capaz de encontrar la dirección bluetooth del dispositivo, que (aunque potencialmente irrelevante) es: CF:D9:24:DB:F4:7B

Ahora, leo en otra pregunta: Bluetooth de baja energía: escuchar notificaciones/indicaciones en linux que puedo escuchar notificaciones y otras características del protocolo. He trabajado con bluetooth antiguo, pero no tengo experiencia con bluetooth LE.

Estoy pegado tratando de usar hcitool lecc o gatttool para conectarse al dispositivo. La conexión se agota y parece dejar a Bluetooth en un mal estado en la caja de Linux. Puedo arreglar eso recargando los módulos del kernel relacionados con Bluetooth.

Cualquiera los indicios son apreciados. Estoy tratando con el último bluez ahora.

Author: Community, 2013-05-21

2 answers

Eche un vistazo al proyecto galileo, podemos conectarnos al rastreador (y sincronizarlo) utilizando el dongle Fitbit, que también es un conector BluetoothLE. Los bytes utilizados allí deben ayudarle a averiguar el que necesita ...

Divulgación completa : Soy el mantenedor de este proyecto.

 15
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-17 14:46:33

Recuerdo haber hecho algo similar a lo que estás describiendo y ser capaz de conectar bien. Sin embargo, no había características listadas para ninguna indicación/notificación, por lo que no pude obtener ningún dato del dispositivo, excepto los metadatos realmente básicos (tipo de dispositivo, nombre del dispositivo, etc.).

Acabo de intentar hacer lo mismo hoy y no pude establecer una conexión en absoluto hasta que le dije que usara un tipo aleatorio de dirección.

Aquí están los resultados que registré cuando llegué a trabajar antes:

# gatttool -b EB:47:1D:11:11:11 --addr-type=random --primary
attr handle = 0x0001, end grp handle = 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle = 0x0008, end grp handle = 0x0008 uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle = 0x0009, end grp handle = 0x000e uuid: adabfb00-6e7d-4601-bda2-bffaa68956ba
attr handle = 0x000f, end grp handle = 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

# gatttool -b EB:47:1D:11:11:11 --addr-type=random --characteristics
handle = 0x0002, char properties = 0x02, char value handle = 0x0003, uuid = 00002a00-0000-1000-8000-00805f9b34fb
handle = 0x0004, char properties = 0x02, char value handle = 0x0005, uuid = 00002a01-0000-1000-8000-00805f9b34fb
handle = 0x0006, char properties = 0x02, char value handle = 0x0007, uuid = 00002a04-0000-1000-8000-00805f9b34fb
handle = 0x000a, char properties = 0x12, char value handle = 0x000b, uuid = adabfb01-6e7d-4601-bda2-bffaa68956ba
handle = 0x000d, char properties = 0x06, char value handle = 0x000e, uuid = adabfb02-6e7d-4601-bda2-bffaa68956ba
handle = 0x0010, char properties = 0x02, char value handle = 0x0011, uuid = 00002a29-0000-1000-8000-00805f9b34fb
handle = 0x0013, char properties = 0x02, char value handle = 0x0014, uuid = 0000fb00-0000-1000-8000-00805f9b34fb

Es posible que tenga que emparejar los dispositivos para obtener los datos útiles reales... no estoy seguro de cómo hacerlo.

 11
Author: Tim Tisdall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-03 20:54:59