Linux で Bluetooth ヘッドセットの電池残量を調べる方法
2022年10月19日 水曜日
デバイスと Linux デスクトップ環境の組み合わせによっては、標準でバッテリ残量が表示されるものもあるようですが、私の所有するデバイスと環境では表示されませんでした。そうした環境下でもバッテリ残量を調べる方法がありましたので紹介いたします。
環境
- openSUSE Leap 15.4
- エレコム製 Bluetooth アダプタ LBT-UAN05C2/N(※1)
- ちなみにこのアダプタ、Linux に挿すだけで自動認識して使えました。Bluetooth 通信時に LED が点灯するので、ちゃんとペアリングできているのか視覚的に分かりやすくてオススメです。
- Bose Quiet Comfort 35 wireless headphones II
- 少々値が張るのですが、長時間つけていても全く疲れず、ノイズキャンセリング機能で周囲の音がカットされるので会議に集中できます。そして自宅でリモートワークをしていると、妻と学校から帰ってきた子どもがケンカを始めて仕事にならないときがあるのですが、そんなとき、このヘッドセットが本領を発揮します。
インストール
https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level を利用します。
# zypper in bluez bluez-devel python3-devel python3-pybluez # pip3 install bluetooth_battery $ git clone https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level $ cd Bluetooth_Headset_Battery_Level
使いかた
Bluetooth でペアリング済みのヘッドセットの MAC アドレスを調べます。
$ bluetoothctl devices Device 4C:87:5D:54:E4:1C LE-会社の Bose QC35 II
4C:87:5D:54:E4:1C だと分かります。
$ ./bluetooth_battery.py 4C:87:5D:54:E4:1C Battery level for 4C:87:5D:54:E4:1C is 60%
やったね!
注意
すでに PC と Bluetooth 接続済みだと、割り込めないのかこのような表示になりますので注意です。
(最初、なんだこれ使えないのか、と思ってハマりました)
4C:87:5D:54:E4:1C is offline [Errno 111] Connection refused
追加情報
- LBT-UAN05C2/N の認識状況は次のとおりです。[↑]
Sep 29 20:36:47 tail systemd[1]: systemd-rfkill.service: Deactivated successfully. Sep 29 20:36:48 tail kernel: usb 5-3.3: new full-speed USB device number 8 using xhci_hcd Sep 29 20:36:48 tail kernel: usb 5-3.3: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice=88.91 Sep 29 20:36:48 tail kernel: usb 5-3.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0 Sep 29 20:36:48 tail kernel: usb 5-3.3: Product: CSR8510 A10 Sep 29 20:36:48 tail rtkit-daemon[3017]: Supervising 15 threads of 10 processes of 1 users. Sep 29 20:36:48 tail rtkit-daemon[3017]: Supervising 15 threads of 10 processes of 1 users. Sep 29 20:36:48 tail systemd[1]: Starting Load/Save RF Kill Switch Status... Sep 29 20:36:48 tail upowerd[16564]: treating change event as add on /sys/devices/pci0000:00/0000:00:08.1/0000:0b:00.3/usb5/5-3/5-3.3 Sep 29 20:36:48 tail systemd[1]: Started Load/Save RF Kill Switch Status. Sep 29 20:36:48 tail systemd[1]: Reached target Bluetooth Support. Sep 29 20:36:48 tail systemd[2634]: Reached target Bluetooth. Sep 29 20:36:48 tail bluetoothd[10405]: Admin Policy Set interface registered Sep 29 20:36:48 tail bluetoothd[10405]: Admin Policy Status interface registered Sep 29 20:36:48 tail bluetoothd[10405]: src/profile.c:ext_start_servers() RFCOMM server failed for Headset unit: rfcomm_bind: Address already in use (98) Sep 29 20:36:48 tail bluetoothd[10405]: src/profile.c:ext_start_servers() RFCOMM server failed for Hands-Free Voice gateway: rfcomm_bind: Address already in use (98) Sep 29 20:36:49 tail bluetoothd[10405]: Player registered: sender=:1.46 path=/media_player3 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSink/sbc Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSource/sbc Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSink/sbc_xq_453 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSource/sbc_xq_453 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSink/sbc_xq_512 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSource/sbc_xq_512 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSink/sbc_xq_552 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.50 path=/MediaEndpoint/A2DPSource/sbc_xq_552 Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSource/ldac Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSource/aac Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSink/sbc Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSource/sbc Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSink/sbc_xq Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSource/sbc_xq Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSource/faststream Sep 29 20:36:49 tail bluetoothd[10405]: Endpoint registered: sender=:1.46 path=/MediaEndpoint/A2DPSource/faststream_duplex