36 votos

Comprobar el nivel de batería de los auriculares bluetooth conectados desde la línea de comandos

Estoy intentando comprobar el nivel de batería de mis auriculares inalámbricos desde la línea de comandos. Me encontré con un algunos discusiones y parece que todo lo que tengo que hacer es introducir lo siguiente:

ioreg -c 'deviceName' |grep -i batterypercent

He probado este comando usando "Powerbeats Wireless" y "bluetoothaudiod" para el 'deviceName' pero ninguno de los dos devolvió el batterypercent . He intentado ioreg -c bluetoothaudiod |grep -i battery para obtener información general sobre la batería, y obtener esto como respuesta:

| |   +-o AppleSmartBatteryManager  <class AppleSmartBatteryManager, id 0x100000250, registered, matched, active, busy 0 (0 ms), retain 7>
| |     +-o AppleSmartBattery  <class AppleSmartBattery, id 0x100000252, registered, matched, active, busy 0 (0 ms), retain 6>

Si conecto los auriculares a mi iPhone el nivel de la batería inmediatamente aparece en la barra de herramientas. Esto me lleva a creer que el dispositivo está transmitiendo el nivel de batería, y que debería poder acceder a esta información desde mi ordenador.

¿Cómo puedo comprobar el nivel de batería de mis auriculares conectados por bluetooth?

Editar:

Inicialmente pensé que el problema era con el nombre del dispositivo, pero parece que "Powerbeats Wireless" y bluetoothaudiod funcionan indistintamente. Sólo que no puedo averiguar cómo acceder a la batterypercent parámetro.

Editar 2:

Mirando los documentos de Bluetooth, parece que hay un Servicio de baterías que expone el Estado de la batería y Nivel de la batería . El nivel de la batería se puede leer utilizando el GATT Subprocedimiento de lectura de valores característicos Así que tengo que encontrar una manera de interactuar con este servicio desde la línea de comandos. Tengo la sensación de que batterypercent puede estar codificado sólo para periféricos estándar (trackpad, ratón, teclado), ya que todos los widgets de monitorización de la batería que he probado sólo son compatibles con dichos dispositivos.

Edita 3:

Revisando esto casi un año después. Sé que tengo un trackpad y un teclado inalámbricos, y puedo ver sus niveles de batería perfectamente (tanto en la barra de herramientas como en la línea de comandos). Sin embargo, sigo sin poder obtener el nivel de batería de mis auriculares, y no estoy seguro de por qué :/

14voto

Minghao Ni Puntos 111

En mi iMac (MacOS 10.12.6), ninguna de las soluciones mencionadas anteriormente funciona. Después de leer la página man de ioreg . La solución que funciona en mi ordenador es:

// the -r option is used to reduce output
// the -l option is used to display properties for all object
// by default some object properties are not shown
// the -c specify device class, the class could be specific or general
ioreg -c AppleDeviceManagementHIDEventService -r -l
ioreg -c AppleDeviceManagementHIDEventService -r -l | grep -i battery

// instead of using device io class, you could also use a property key to query
// you need to know one of target device's property key(-k), for example it is BatteryPercent for Bluetooth keyboard and mouse
// any device with this property will be listed
ioreg -r -l -k "BatteryPercent"
ioreg -r -l -k "BatteryPercent" | grep -i battery

Hay otras clases de dispositivos que se pueden probar con el argumento -c: AppleHSBluetoothDispositivo AppleHSBluetoothHIDDriver AppleMultitouchMouseHIDEventDriver AppleHIDKeyboardEventDriverV2 , dan un resultado diferente.

10voto

Statham Puntos 226

Ninguna de las respuestas me sirve.

Esta aplicación me funciona:

https://github.com/jariz/Akku/

Es de código abierto y gratuito.

Recuerda descargar la versión 0.1.0-beta.10.

enter image description here

9voto

MBA Puntos 31

Es necesario utilizar ioreg . Necesitarás saber el nombre del dispositivo. Sólo tienes que seguir este guía.

La guía, en resumen, básicamente te hace correr el ioreg -c <devicename> |grep '"BatteryPercent" ='

Ejemplo:

ioreg -c BeatsBluetoothHeadset |grep '"BatteryPercent" ='

enter image description here

Además, puedes recuperar información más amplia de la batería con:

ioreg -c BeatsBluetoothHeadset |grep Battery

2voto

Gobii Puntos 11

Acabo de descubrir que para comprobar el nivel de batería de mis powerbeats 3 en mi Mac sólo tengo que ir al menú de bluetooth en la zona de iconos de la parte superior derecha de la pantalla, pasar el ratón por encima de los powerbeats conectados y entonces se muestra el nivel de batería allí mismo. Espero que eso ayude.

0voto

Yuriy Ershov Puntos 21

Este conjunto de banderas reduce la salida al mínimo y el siguiente código le da sólo el porcentaje como un número.

ioreg -r -n AppleDeviceManagementHIDEventService -k BatteryPercent | perl -nE '/"BatteryPercent" = (\d++)/ && say $1'

Lo uso con BetterTouchTool.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X