9 votos

Nivel de batería de los AirPods con `ioreg`.

Puedo consultar el nivel de batería de mis dispositivos bluetooth con ioreg con

ioreg -r -l -n devicename | grep  '"BatteryPercent"\ =' 

con los siguientes dispositivos

  • Teclados: IOAppleBluetoothHIDDriver , AppleBluetoothHIDKeyboard
  • Ratones: BNBMouseDevice , AppleHSBluetoothDevice
  • Trackpad: BNBTrackpadDevice

¿Alguna idea de cuál es el nombre del objeto de los AirPods de Apple?

1 votos

Esta página en AskDifferent puede proporcionar algunas pistas.

0 votos

@IconDaemon He visto la página pero no encuentro ningún dispositivo con BatteryPercent en la lista (ioreg -l) que pueda ser un AirPod.

0 votos

No era el nombre específico, sólo que parecía haber diferentes formas de consultar ioreg.

3voto

goncalopp Puntos 189

Puede consultar /Library/Preferences/com.apple.Bluetooth.plist con el defaults utilidad de línea de comandos para obtener los niveles de batería del Airpod. No utiliza ioreg pero es bastante extensible.

Algunos ejemplos:

# Parse as XML and store in environment variables
battery_left=$(defaults export /Library/Preferences/com.apple.Bluetooth   - | xpath '//dict/key[text()="BatteryPercentLeft"]/following-sibling::integer[1]/text()' 2>/dev/null )
battery_right=$(defaults export /Library/Preferences/com.apple.Bluetooth   - | xpath '//dict/key[text()="BatteryPercentRight"]/following-sibling::integer[1]/text()' 2>/dev/null )
battery_case=$(defaults export /Library/Preferences/com.apple.Bluetooth   - | xpath '//dict/key[text()="BatteryPercentCase"]/following-sibling::integer[1]/text()' 2>/dev/null )
echo left: $battery_left
echo right: $battery_right
echo case: $battery_case

# Just show values from defaults plist text output
# Left
defaults read /Library/Preferences/com.apple.Bluetooth    | grep BatteryPercentLeft | tr -d \; | awk '{print $3}'

# Right
defaults read /Library/Preferences/com.apple.Bluetooth    | grep BatteryPercentRight | tr -d \; | awk '{print $3}'

# Case
defaults read /Library/Preferences/com.apple.Bluetooth    | grep BatteryPercentCase | tr -d \; | awk '{print $3}'

Mi maletín parece reportar siempre como 0 a menos que los airpods estén en él. Si tienes más de un juego de airpods conectado (o si otros dispositivos devuelven información similar) tendrás que hacer algo más complicado para diferenciar entre varios dispositivos.

Esta entrada del blog tiene más información: https://blog.duklabs.com/airpods-power-in-touchbar/

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