GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überprüfen Sie den Batteriestand des verbundenen Bluetooth-Geräts unter Linux

Für mich hat das Ausführen im Terminal funktioniert:

upower --dump

Seit Bluez v5.48 wird der Batteriestand nicht mehr in der Liste der GATT-Eigenschaften angezeigt, da diese spezielle GATT-Eigenschaft in DBUS org.bluez.Battery1 verschoben wurde Schnittstelle.

Von der Befehlszeile:

  1. Verbinden Sie sich mit bluetoothctl mit Ihrem BLE-Zielgerät
  2. Und fordern Sie dann DBUS an, indem Sie Folgendes ausführen: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"

In meinem Fall mit meinem BLE-Peripheriegerät mit folgender MAC-Adresse 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

Hinweis:Möglicherweise können Sie Ihr Gerät mit der Bluez DBUS-API scannen und eine Verbindung zu ihm herstellen.


Dies ist eine so großartige Frage, vor der Entwicklung und den Tools, die derzeit verfügbar sind.

Die kurze Antwort (im Oktober 2018)

du musst es selbst schreiben! Es wird kein Einzeiler im Terminal sein. Ich werde dies für mich selbst in Python schreiben, aber C hat etwas mehr Dokumentation, also wenn Sie mit C vertraut sind, machen Sie es.

Die lange Antwort , aber es ist eher ein empfohlener Ausgangspunkt:

  1. Tony D:https://youtu.be/5fQR2PHMDWE?t=4644 konnte bluetoothctl verwenden um Attribute zu lesen und Daten an ein Bluetooth-Gerät zu senden. Sehen Sie sich auf jeden Fall die Videoinformationen an, Sie werden tolle Links und Referenzen finden:https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt
  2. Szymon Janc:https://youtu.be/VMDyebKT5c4 Entwickler und Mitwirkender am LINUX Bluetooth Stack
  3. Auf jeden Fall Sehen Sie sich an, wie diese Frage auf Mobilgeräten beantwortet wird. Für Android ist es der BAS (Battery Service):https://android.stackexchange.com/questions/106073/displaying-bluetooth-gadgets-battery-status-on-the-phone


Dies ist vielleicht etwas spät für die Party, aber für mich hat dieses Python-Projekt gut funktioniert:

https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level

Ich musste nur den Port in Zeile 57 für mein No-Name-X5-Headset auf 3 ändern. Wenn es hängt oder Fehler mit "Verbindung verweigert" auftreten, versuchen Sie es mit einem anderen Port.

Das Python-Programm verwendet AT-Befehle über RFCOMM und sollte funktionieren, während Pulseaudio die A2DP-Senke verwendet (Mine stellt die Verbindung wieder her). Python 3 wird benötigt, da 2 keine BT-Serial-Sockets hat. Windows wird wahrscheinlich nicht funktionieren, da Bluez fehlt. Es macht im Grunde dasselbe wie der Pulsaudio-Hack hier:https://stackoverflow.com/a/56390625/920122

Wenn Sie sich die ausgetauschten Befehle ansehen möchten, versuchen Sie es mit meinem Debug-Fork:https://github.com/clst/Bluetooth_Headset_Battery_Level


Linux
  1. So installieren Sie einen Gerätetreiber unter Linux

  2. So überprüfen Sie die Redhat-Version

  3. So überprüfen Sie die Zeitzone in Linux

  4. So überprüfen Sie den SSD/HDD-Zustand unter Linux

  5. So überprüfen Sie den Linux-Anmeldeverlauf

So überprüfen Sie die Kali Linux-Version

So überprüfen Sie die Linux-Version

So verbinden Sie sich über Bluetooth in GNOME unter Linux

Unter Linux ist alles eine Datei – Teil 1

So überprüfen Sie den Batteriestatus und -stand des Laptops im Terminal unter Linux

Überprüfen Sie die Zeitzone in Linux