GNU/Linux >> Tutoriales Linux >  >> Linux

Verifique el nivel de batería del dispositivo bluetooth conectado en linux

Para mí, ejecutar esto en la terminal funcionó:

upower --dump

No ve el nivel de batería en la lista de características de GATT desde Bluez v5.48 porque esta característica específica de GATT se movió a DBUS org.bluez.Battery1 interfaz.

Desde la línea de comando:

  1. Conéctese a su dispositivo BLE de destino con bluetoothctl
  2. Y luego solicite DBUS ejecutando: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"

En mi caso con mi periférico BLE con la siguiente dirección MAC 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

Nota:potencialmente podría escanear y conectarse a su dispositivo usando la API Bluez DBUS.


Esta es una gran pregunta, por delante del desarrollo y las herramientas que están disponibles en este momento.

La respuesta corta (en octubre de 2018)

¡Tienes que escribirlo tú mismo! No será un trazador de líneas en la terminal. Voy a escribir esto por mí mismo en Python, pero C tiene un poco más de documentación, así que si eres hábil con C, hazlo.

La respuesta larga , pero es más un punto de partida recomendado:

  1. Tony D:https://youtu.be/5fQR2PHMDWE?t=4644 logró usar bluetoothctl para leer atributos y enviar datos a un dispositivo bluetooth. Definitivamente revise la información del video, encontrará excelentes enlaces y referencias:https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt
  2. Szymon Janc:https://youtu.be/VMDyebKT5c4 desarrollador y colaborador de LINUX Bluetooth Stack
  3. Definitivamente mira cómo se responde esta pregunta en los dispositivos móviles. Para Android es el BAS (servicio de batería):https://android.stackexchange.com/questions/106073/displaying-bluetooth-gadgets-battery-status-on-the-phone


Puede que sea un poco tarde para la fiesta, pero para mí este proyecto de Python ha funcionado bien:

https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level

Solo tuve que cambiar el puerto en la línea 57 a 3 para mi auricular X5 sin nombre. Si se bloquea o se produce un error con "conexión rechazada", intente con un puerto diferente.

El programa Python usa comandos AT a través de RFCOMM y debería funcionar mientras Pulseaudio usa el sumidero A2DP (el mío se vuelve a conectar). Se necesita Python 3 ya que 2 no tiene enchufes BT-Serial. Windows probablemente no funcionará ya que carece de bluez. Básicamente hace lo mismo que el truco Pulseaudio aquí:https://stackoverflow.com/a/56390625/920122

Si desea ver los comandos a medida que se intercambian, pruebe mi bifurcación de depuración:https://github.com/clst/Bluetooth_Headset_Battery_Level


Linux
  1. Cómo instalar un controlador de dispositivo en Linux

  2. Cómo verificar la versión de Redhat

  3. Comando de Ubuntu Linux para verificar el estado de la batería y el estado de la batería

  4. Cómo verificar el historial de inicio de sesión de Linux

  5. Línea de comando de Linux cómo aceptar emparejamiento para dispositivo bluetooth sin pin

Cómo comprobar la versión de Kali Linux

Cómo comprobar la versión de Linux

Cómo conectarse a través de Bluetooth en GNOME en Linux

Todo es archivo en Linux – Parte 1

Cómo verificar el estado y el nivel de la batería de la computadora portátil en la terminal en Linux

Comprobar la zona horaria en Linux