GNU/Linux >> Belajar Linux >  >> Linux

Periksa level baterai perangkat bluetooth yang terhubung di linux

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:

  1. Hubungkan ke perangkat BLE target Anda dengan bluetoothctl
  2. 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:

  1. 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
  2. Szymon Janc:https://youtu.be/VMDyebKT5c4 developer dan kontributor LINUX Bluetooth Stack
  3. 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


Linux
  1. Linux – Sysfs dan Devtmpfs?

  2. Cara Memeriksa Riwayat Masuk Linux

  3. Baris perintah Linux howto menerima pasangan untuk perangkat bluetooth tanpa pin

  1. Bagaimana cara melakukan I/O tingkat rendah pada file perangkat Linux dengan Python?

  2. Di mana letak bluetooth/bluetooth.h di Linux?

  3. Bagaimana cara memasang perangkat di Linux?

  1. Cara menginstal driver perangkat di Linux

  2. Cara memeriksa versi Redhat

  3. Cara Memeriksa Zona Waktu di Linux