2013-05-21 7 views
24

Ho acquistato un zip FitBit. Questo dispositivo utilizza Bluetooth 4.0 LE. Mi piacerebbe almeno collegarmi tramite bluez. Se ciò è successo, voglio vedere quanto del protocollo riesco a capire.Come posso collegarmi a FitBit Zip su Bluetooth 4.0 LE su Linux con bluez?

Utilizzo un Lenovo P500 Ideapad con supporto integrato per Bluetooth 4.0. Sembra funzionare (tipo di)

Quando faccio:

hcitool lescan 

sono in grado di trovare l'indirizzo Bluetooth del dispositivo, che (anche se potenzialmente irrilevanti) è: CF: D9: 24: DB: F4 : 7B

Ora, ho letto in un'altra domanda: Bluetooth Low Energy: listening for notifications/indications in linux che posso ascoltare per le notifiche e altre funzionalità del protocollo. Ho lavorato con il vecchio bluetooth, ma non ho esperienza con bluetooth LE.

Mi sto bloccando cercando di utilizzare hcitool lecc o gatttool per connettersi al dispositivo. La connessione è scaduta e sembra lasciare il bluetooth in cattivo stato sulla scatola Linux. Sono in grado di risolvere il problema ricaricando i moduli del kernel relativi al bluetooth.

Eventuali suggerimenti sono apprezzati. Sto provando con l'ultimo bluez ora.

risposta

15

Dai un'occhiata allo galileo project, siamo in grado di connettersi al tracker (e sincronizzarlo) utilizzando il dongle Fitbit, che è anche un connettore BluetoothLE. I byte utilizzati dovrebbero aiutarti a capire quello che ti serve ...

Full Disclosure: Sono il manutentore di questo progetto.

+0

Grazie mille. Non sono stato in giro ultimamente ma questo è bello e ho intenzione di installarlo e provare a capire il codice. –

+0

Ehi, è possibile fare in modo che Fitbit Charge parli con la nuova app (personalizzata per la mia versione per android/iphone) che sto sviluppando e mostrando promemoria, ecc. – user3705478

11

Mi ricordo di aver fatto qualcosa di simile a quello che stai descrivendo e di essere in grado di connetterci bene. Tuttavia, non c'erano caratteristiche elencate per eventuali indicazioni/notifiche, quindi non sono stato in grado di ottenere dati dal dispositivo ad eccezione dei metadati di base (tipo di dispositivo, nome del dispositivo, ecc.).

Ho appena provato a fare la stessa cosa oggi e non riuscivo a stabilire una connessione fino a quando non ho detto di usare un tipo casuale di indirizzo.

Ecco i risultati ho registrato quando ho preso a lavorare prima:

# 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 

Potrebbe essere necessario associare i dispositivi per ottenere i dati utili effettivi ... non so come fare.

+0

Grazie per la risposta. Questo post sarà incredibilmente utile. –

+0

@ TomDignan Qualche progresso? –

+0

grazie per avermi seguito. Sfortunatamente sono stato troppo impegnato con il lavoro per scherzarci ultimamente. Spero di riuscire ad aggirarlo al più presto. –

Problemi correlati