Bagi saya menjalankan ini di terminal berfungsi:
upower --dump
Anda tidak melihat Tingkat Baterai dalam daftar karakteristik GATT sejak Bluez v5.48 karena karakteristik GATT khusus ini dipindahkan ke DBUS org.bluez.Battery1
antarmuka.
Dari baris perintah:
- Hubungkan ke perangkat BLE target Anda dengan
bluetoothctl
- Kemudian minta DBUS dengan menjalankan:
dbus-send --print-reply=literal --system --dest=org.bluez /org/bluez/hci0/dev_<mac_address_of_your_ble_peripheral> org.freedesktop.DBus.Properties.Get string:"org.bluez.Battery1" string:"Percentage"
Dalam kasus saya dengan perangkat BLE saya dengan alamat MAC berikut C3:41:A6:C8:93:42
:
$ dbus-send --print-reply=literal --system --dest=org.bluez \
/org/bluez/hci0/dev_C3_41_A6_C8_93_42 org.freedesktop.DBus.Properties.Get \
string:"org.bluez.Battery1" string:"Percentage"
variant byte 94
Catatan:Anda berpotensi memindai dan terhubung ke perangkat Anda menggunakan Bluez DBUS API.
Ini adalah pertanyaan yang sangat bagus, di depan pengembangan dan alat yang tersedia saat ini.
Jawaban singkatnya (pada Oktober 2018)
Anda harus menulisnya sendiri! Itu tidak akan menjadi satu liner di terminal. Saya akan menulis ini sendiri dengan Python, tetapi C memiliki lebih banyak dokumentasi, jadi jika Anda ahli dengan C, lakukan saja.
Jawaban panjang , tetapi ini lebih merupakan titik awal yang disarankan:
- Tony D:https://youtu.be/5fQR2PHMDWE?t=4644 berhasil menggunakan
bluetoothctl
untuk membaca atribut dan mengirim data ke perangkat bluetooth. Pastikan untuk memeriksa informasi videonya, Anda akan menemukan tautan dan referensi yang bagus:https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt - Szymon Janc:https://youtu.be/VMDyebKT5c4 developer dan kontributor LINUX Bluetooth Stack
-
Pasti lihat bagaimana pertanyaan ini dijawab di perangkat Seluler. Untuk Android ini adalah BAS (Layanan Baterai):https://android.stackexchange.com/questions/106073/displaying-bluetooth-gadgets-battery-status-on-the-phone
Ini mungkin agak terlambat ke pesta, tetapi bagi saya proyek Python ini bekerja dengan baik:
https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level
Saya hanya perlu mengganti port di baris 57 ke 3 untuk headset X5 tanpa nama saya. Jika macet atau error dengan "koneksi ditolak", coba port lain.
Program Python menggunakan perintah AT melalui RFCOMM dan harus bekerja saat Pulseaudio menggunakan wastafel A2DP (milik saya terhubung kembali). Python 3 diperlukan karena 2 tidak memiliki soket BT-Serial. Windows mungkin tidak akan berfungsi karena tidak memiliki bluez. Ini pada dasarnya melakukan hal yang sama dengan hack Pulseaudio di sini:https://stackoverflow.com/a/56390625/920122
Jika Anda ingin melihat perintah saat dipertukarkan, coba garpu debug saya:https://github.com/clst/Bluetooth_Headset_Battery_Level