Controlla il livello della batteria delle cuffie bluetooth collegate dalla riga di comando


24

Sto cercando di controllare il livello della batteria delle mie cuffie wireless dalla riga di comando. Mi sono imbattuto in alcune discussioni e sembra che tutto ciò che devo fare è inserire quanto segue:

ioreg -c 'deviceName' |grep -i batterypercent

Ho provato questo comando usando "Powerbeats Wireless" e "bluetoothaudiod" per gli utenti 'deviceName', ma nessuno dei due ha restituito il batterypercent. Ho cercato ioreg -c bluetoothaudiod |grep -i batterydi ottenere informazioni generali sulla batteria e ottenere questo come risposta:

| |   +-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>

Se collego le cuffie al mio iPhone , il livello della batteria viene immediatamente visualizzato sulla barra degli strumenti. Questo mi porta a credere che il dispositivo stia trasmettendo il livello della batteria e che dovrei essere in grado di accedere a queste informazioni dal mio computer.

Come posso controllare il livello della batteria delle mie cuffie collegate bluetooth?

Modificare:

Inizialmente pensavo che il problema riguardasse il nome del dispositivo, ma sembra "Powerbeats Wireless"e bluetoothaudiodfunzioni in modo intercambiabile. Non riesco proprio a capire come accedere al batterypercentparametro.

Modifica 2:

Guardando i documenti Bluetooth, sembra che ci sia un servizio di batteria che espone lo stato della batteria e il livello della batteria . Il livello della batteria può essere letto usando la sotto-procedura GATT Leggi valore caratteristico , quindi ho bisogno di capire un modo di interfacciarsi con questo servizio dalla riga di comando. Ho la sensazione che batterypercentpossa essere codificato solo per periferiche standard (trackpad, mouse, tastiera), poiché tutti i widget di monitoraggio della batteria che ho provato sono compatibili solo con tali dispositivi.

Modifica 3:

Rivisitando questo quasi un anno dopo. So che hanno un trackpad e una tastiera wireless e riesco a vedere perfettamente i livelli della batteria (sia nella barra degli strumenti che nella riga di comando). Tuttavia, non riesco ancora a ottenere il livello della batteria dalle mie cuffie e non so perché: /


ioreg -c "Powerbeats Wireless" |grep -i batteryrestituisce anche le informazioni generali sulla batteria, quindi penso di avere il nome corretto del dispositivo. Ma perché il batterylevelcomando non funziona !! Smh
pingo,

Modifica la tua domanda invece di commentare la tua stessa domanda.
At0mic,

Le modifiche a @IronCraftMan sono ora complete. Pensi di poter offrire qualche aiuto?
pingo,

Ciao, sono interessato a sapere se hai ottenuto ulteriori. Voglio prolungare la durata della batteria dei controller PS4 collegati da BlueTooth al mio iMac.
Dunxd

Non funziona neanche con le mie cuffie bluetooth JVC. Strano, perché il mio iPhone 4S di 5 anni non ha problemi a comunicarmi il livello della batteria quando è collegato.
John Smith,

Risposte:


8

Sul mio iMac (macOS 10.12.6), nessuna delle soluzioni sopra menzionate funziona. Dopo aver letto la pagina man di ioreg . La soluzione che funziona sul mio computer è:

// 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

Ci sono alcune altre classi di dispositivi da provare per l'argomento -c: AppleHSBluetoothDevice AppleHSBluetoothHIDDriver AppleMultitouchMouseHIDEventDriver AppleHIDKeyboardEventDriverV2 , forniscono output diversi.


7

È necessario utilizzare ioreg. Dovrai conoscere il nome del dispositivo. Segui questa guida.

La guida, in breve, in pratica ti ha eseguito ioreg -c <devicename> |grep '"BatteryPercent" ='

Esempio:

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

inserisci qui la descrizione dell'immagine

Inoltre, è possibile recuperare informazioni più ampie sulla batteria con:

ioreg -c BeatsBluetoothHeadset |grep Battery

2
Ehi, grazie per la tua risposta! Questo problema sembra essere specifico per le cuffie Beats, in quanto posso accedere ai livelli della batteria per la tastiera e il trackpad wireless. Aggiornerà la domanda originale!
pingo,

non funziona per me
Jadda,

1

Ho appena scoperto che per controllare il livello della batteria dei miei powerbeat 3 sul mio Mac, basta andare al menu Bluetooth nell'area delle icone in alto a destra dello schermo, passare con il mouse sui powerbeat collegati e quindi mostra il livello della batteria proprio lì. Spero che sia d'aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.