Estoy intentando comprobar el nivel de batería de mis auriculares inalámbricos desde la línea de comandos. Encontré algunas discusiones , y parece que todo lo que tengo que hacer es ingresar lo siguiente:
ioreg -c 'deviceName' |grep -i batterypercent
Probé este comando usando "Powerbeats Wireless" y "bluetoothaudiod" para el 'deviceName'
's, pero ninguno de los dos devolvió el batterypercent
. Traté ioreg -c bluetoothaudiod |grep -i battery
de obtener información general sobre la batería y obtuve 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 batería aparece inmediatamente en la barra de herramientas. Esto me lleva a creer que el dispositivo está transmitiendo el nivel de la batería y que debería poder acceder a esta información desde mi computadora.
¿Cómo puedo comprobar el nivel de batería de mis auriculares conectados por bluetooth?
Editar:
Inicialmente pensé que el problema estaba relacionado con el nombre del dispositivo, pero parece que "Powerbeats Wireless"
funciona bluetoothaudiod
indistintamente. Simplemente no puedo entender cómo acceder al batterypercent
param.
Edición 2:
Mirando los documentos de Bluetooth, parece que hay un servicio de batería que expone el estado de la batería y el nivel de la batería . El nivel de la batería se puede leer usando el subprocedimiento GATT Read Characteristic Value , por lo que necesito encontrar una forma de interactuar con este servicio desde la línea de comando. Tengo la sensación de batterypercent
que solo puede estar codificado para periféricos estándar (panel táctil, mouse, teclado), ya que todos los widgets de monitoreo de batería que he probado solo son compatibles con dichos dispositivos.
Editar 3:
Revisando esto casi un año después. Sé que tengo un panel táctil y un teclado inalámbricos, y puedo ver sus niveles de batería perfectamente bien (tanto en la barra de herramientas como en la línea de comandos). Sin embargo, todavía no puedo obtener el nivel de batería de mis auriculares, y no estoy seguro de por qué :/
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 computadora 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 algunas otras clases de dispositivos para probar el argumento -c: AppleHSBluetoothDevice AppleHSBluetoothHIDDriver AppleMultitouchMouseHIDEventDriver AppleHIDKeyboardEventDriverV2 , dan una salida diferente.
Ninguna de las respuestas me funciona.
Esta aplicación funciona para mí:
https://github.com/jariz/Akku/ (nota: esta herramienta ya no se trabaja activamente y no funcionará en Monterrey o posterior)
Es de código abierto y gratuito.
Recuerda descargar la versión 0.1.0-beta.10.
Necesitas usar ioreg
. Necesitará saber el nombre del dispositivo. Solo sigue esta guía.
La guía, en resumen, básicamente te hace ejecutar elioreg -c <devicename> |grep '"BatteryPercent" ='
Ejemplo:
ioreg -c BeatsBluetoothHeadset |grep '"BatteryPercent" ='
Además, puede recuperar información más amplia sobre la batería con:
ioreg -c BeatsBluetoothHeadset |grep Battery
Acabo de descubrir que para verificar el nivel de batería de mis powerbeats 3 en mi Mac, simplemente voy al menú de bluetooth en el área de íconos en la parte superior derecha de la pantalla, desplazo el mouse sobre los powerbeats conectados y luego muestra el nivel de batería allí mismo. Espero que ayude.
Este conjunto de banderas reduce la salida al mínimo y el siguiente código le da solo un porcentaje como un número.
ioreg -r -n AppleDeviceManagementHIDEventService -k BatteryPercent | perl -nE '/"BatteryPercent" = (\d++)/ && say $1'
Yo uso esto con BetterTouchTool.
0xPingo
ioreg -c "Powerbeats Wireless" |grep -i battery
también devuelve la información general de la batería, así que creo que tengo el nombre de dispositivo correcto. ¡¡ Pero por qué elbatterylevel
comando no funciona!! SmhAt0mic
0xPingo
dunxd
John Smith
drevicko