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.
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.
(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.
In ubuntu you can go simply to
settings->power to see the battery status of system and connected devices.
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
This is what:
bluetoothctl devices shows:
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
upower -d not show the device, It's power level may not display in settings .
// I had a mouse shown, but a headphone not.
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' ...
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
For Airpods devices download and run https://github.com/delphiki/AirStatus with:
git clone email@example.com:delphiki/AirStatus.git cd AirStatus pip3 install bleak python3 main.py