Check Bluetooth headphones battery status in Linux
Solution 1:
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.
Solution 2:
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 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.
Solution 3:
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
Solution 4:
For Airpods devices download and run https://github.com/delphiki/AirStatus with:
git clone [email protected]:delphiki/AirStatus.git
cd AirStatus
pip3 install bleak
python3 main.py