Saltar al contenido

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

Agradeceríamos tu ayuda para extender nuestros posts en referencia a las ciencias de la computación.

Solución:

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 largapero es más un punto de partida recomendado:

  1. Tony D: https://youtu.be/5fQR2PHMDWE?t=4644 logró usar bluetoothctl leer attributes 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

    En Android 8.0.1

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 hack de 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

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_ 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *