web-dev-qa-db-ja.com

Linuxでbluezを使用してBluetooth 4.0 LE経由でFitBit Zipに接続するにはどうすればよいですか?

FitBit Zipを購入しました。このデバイスはBluetooth 4.0 LEを使用します。少なくともbluez経由で接続したいと思います。それが成功した場合、どの程度のプロトコルを理解できるかを確認したいと思います。

Bluetooth 4.0のサポートが統合されたLenovo P500 Ideapadを使用しています。動作しているようです(種類)

私がする時:

hcitool lescan

デバイスのBluetoothアドレスを見つけることができます。これは(潜在的に無関係ですが)CF:D9:24:DB:F4:7Bです。

今、私は別の質問を読みます: Bluetooth Low Energy:Linuxで通知/通知をリッスンする 通知や他のプロトコル機能をリッスンできます。私は古いBluetoothで作業しましたが、Bluetooth LEの経験はありません。

hcitool leccまたはgatttoolを使用してデバイスに接続しようとすると、行き詰まってしまいます。接続がタイムアウトし、LinuxボックスでBluetoothが不良状態のままになっているようです。 bluetooth関連のカーネルモジュールをリロードすることで、これを修正できます。

ヒントはありがたいです。現在、最新のbluezを試しています。

24
Thomas Dignan

galileoプロジェクト をご覧ください。BluetoothLEコネクタでもあるFitbitドングルを使用してトラッカーに接続(および同期)できます。そこで使用されるバイトは、必要なバイトを見つけるのに役立つはずです...

完全な開示:私はこのプロジェクトのメンテナーです。

15
Ben

あなたが言っていることと同じようなことをして、うまく接続できることを覚えています。ただし、表示/通知の特性はリストされていないため、本当に基本的なメタデータ(デバイスタイプ、デバイス名など)を除いて、デバイスからデータを取得できませんでした。

今日も同じことをしようとしたところ、ランダムなタイプのアドレスを使用するように指示するまで、接続を確立できなかったようです。

これは、以前に機能させたときに記録した結果です。

# 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

実際の有用なデータを取得するためにデバイスをペアリングする必要があるかもしれません...それを行う方法がわかりません。

11
Tim Tisdall