32

Is it possible to get the battery status of Bluetooth headphones connected to Linux? Android shows it so I was wondering if it was possible.

2
8

I wrote a simple python script that does the job. It uses AT commands to communicate with the device via RFCOMM and prints the battery level if the device is supported.

https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level

(You need Python 3.6.0 or newer to run the script)

It might not work with all bluetooth headsets but I've provided a couple of workarounds in the 'Issues' page that might help.

4
  • 1
    Thank you for doing the job for the community – Rafik Farhad Oct 26 '20 at 14:35
  • Thank you! Do you have print screens, just want to see how its looks like. – Qui-Gon Jinn Oct 28 '20 at 4:25
  • @Qui-GonJinn it's a command line tool. It simply prints the battery level, for example something like this: Battery level for XX:YY:ZZ:AA:BB:CC is 80% – Alireza S.N Oct 28 '20 at 5:19
  • Using port .2 I get <MAC adress> is offline (16, 'Device or resource busy'). Using other ports I get <MAC adress> is offline (111, 'Connection refused'). – sancho.s ReinstateMonicaCellio Mar 30 at 8:01
4

upower can be used from a terminal to list power devices, listening to device events and querying history and statistics.

If your device is listed by upower -e you can run upower --dump to retrieve the battery level of your device.

Here is a sample output:

$ upower --dump
...
Device: /org/freedesktop/UPower/devices/mouse_dev_C1_FC_26_13_A9_58
  native-path:          /org/bluez/hci0/dev_C1_FC_26_13_A9_58
  model:                MX Anywhere 2S
  serial:               C1:FC:26:13:A9:58
  power supply:         no
  updated:              Wed 31 Dec 1969 06:00:00 PM CST (1550719462 seconds ago)
  has history:          yes
  has statistics:       no
  mouse
    present:             yes
    rechargeable:        no
    state:               unknown
    warning-level:       none
    percentage:          50%
    icon-name:          'battery-missing-symbolic'
...

src reddit

3
  • 14
    It did not show the bluetooth device, just the ac adapter, laptop battery and displaydevice. – gabs1bb3 Feb 27 '20 at 7:30
  • @gabs1bb3 It shows. – Éderson T. Szlachta Jul 3 '20 at 19:44
  • @ÉdersonT.Szlachta not always. My phone can show the battery status of my device but Ubuntu (18.04) can't. – Saren Tasciyan May 31 at 10:52
2

In ubuntu you can go simply to settings->power to see the battery status of system and connected devices.

enter image description here

Yes, I know it's a Microsoft Bluetooth mouse on a Linux System ... but hey, Microsoft is the new cool company now ;)

This is what: systemctl status bluetooth

enter image description here

This is what: bluetoothctl devices shows:

enter image description here

The JBL was disconnected and the Creative speaker is connected with power. So the resulting ones with batteries (Keychron and Mouse) show up in the settings->power dialog.

NOTE: If upower -d not show the device, It's power level may not display in settings .
// I had a mouse shown, but a headphone not.

6
  • Unfortunately, I don't see the first section "Devices" on my machine. I've the same Ubuntu20.04.1 LTS. – Rajesh Chaudhary Dec 11 '20 at 6:40
  • @Rajesh Chaudhary Can you run a upower -d and see what the output is ? – klaas Dec 11 '20 at 22:25
  • Here you go @klaas pastebin.com/zskLJmtr – Rajesh Chaudhary Dec 13 '20 at 13:28
  • Hmm, seems you don't have any connected devices. Probably a last check if BT stack is running. You can check it with systemctl status bluetooth Which should state loaded and active. If that is the case you can use bluetoothctl which open an internal cli. Enter deviceswhich should give a list of the connected devices. I add the outputs for my system in the answer above. – klaas Dec 17 '20 at 11:58
  • 1
    Seems to be dependent on the device. I found the issue and comment from the maintainer below in the gnome.org gitlab issues Source,see here: Quote: ".. the device needs to show up in the output of upower -d to show up in the Power Settings panel (whether that's a laptop or a desktop). Right now, this means only devices which export their battery status in the kernel, and Bluetooth LE devices which export the battery via the BATT profile are supported..." – klaas Dec 19 '20 at 21:12
0

I have developed a GUI application to get the battery level of a bluetooth headset. You can check it on: https://github.com/Coutj/Bluetooth_project.git

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.