Vérifiez le niveau de la batterie des écouteurs Bluetooth connectés à partir de la ligne de commande

24

J'essaie de vérifier le niveau de la batterie de mes écouteurs sans fil à partir de la ligne de commande. Je suis tombé sur quelques discussions , et il semble que tout ce que je dois faire est d'entrer ce qui suit:

ioreg -c 'deviceName' |grep -i batterypercent

J'ai essayé cette commande en utilisant "Powerbeats Wireless" et "bluetoothaudiod" pour le 'deviceName''s, mais aucun n'a renvoyé le batterypercent. J'ai essayé ioreg -c bluetoothaudiod |grep -i batteryd'obtenir des informations générales sur la batterie, et d'obtenir ceci en réponse:

| |   +-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 je connecte le casque à mon iPhone , le niveau de la batterie apparaît immédiatement dans la barre d'outils. Cela m'amène à croire que l'appareil diffuse le niveau de la batterie et que je devrais pouvoir accéder à ces informations depuis mon ordinateur.

Comment puis-je vérifier le niveau de la batterie de mes écouteurs connectés Bluetooth?

Modifier:

Au début, je pensais que le problème était avec le nom de l'appareil, mais il semble "Powerbeats Wireless"et bluetoothaudiodfonctionne de manière interchangeable. Je n'arrive pas à comprendre comment accéder au batterypercentparam.

Modifier 2:

En regardant les documents Bluetooth, il semble qu'il y ait un service de batterie qui expose l' état de la batterie et le niveau de la batterie . Le niveau de la batterie peut être lu à l'aide de la sous-procédure GATT Read Characteristic Value , donc je dois trouver un moyen d'interfacer avec ce service à partir de la ligne de commande. J'ai le sentiment de batterypercentne pouvoir être codé que pour les périphériques standard (trackpad, souris, clavier), car tous les widgets de surveillance de la batterie que j'ai essayés ne sont compatibles qu'avec de tels appareils.

Modifier 3:

Revisitant cela presque un an plus tard. Je sais que j'ai un trackpad et un clavier sans fil, et je peux voir leurs niveaux de batterie parfaitement bien (dans la barre d'outils ou la ligne de commande). Je ne parviens toujours pas à obtenir le niveau de la batterie de mon casque et je ne sais pas pourquoi: /

pingo
la source
ioreg -c "Powerbeats Wireless" |grep -i batteryrenvoie également les informations générales sur la batterie, donc je pense avoir le nom correct de l'appareil. Mais pourquoi la batterylevelcommande ne fonctionne-t-elle pas !! Smh
pingo
Veuillez modifier votre question au lieu de commenter votre propre question.
At0mic
Les modifications de @IronCraftMan sont maintenant terminées. Vous pensez que vous pourriez offrir de l'aide?
pingo
Salut - je suis intéressé à entendre si vous êtes allé plus loin. Je veux obtenir la durée de vie de la batterie des contrôleurs PS4 connectés par BlueTooth à mon iMac.
dunxd
Ne fonctionne pas non plus pour mes écouteurs Bluetooth JVC. Étrange, car mon iPhone 4S de 5 ans n'a aucun problème à me dire le niveau de sa batterie lorsqu'il est connecté.
John Smith

Réponses:

8

Sur mon iMac (macOS 10.12.6), aucune des solutions mentionnées ci-dessus ne fonctionne. Après avoir lu la page de manuel d' ioreg . La solution qui fonctionne sur mon ordinateur est:

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

Il existe d'autres classes de périphériques à essayer pour l'argument -c: AppleHSBluetoothDevice AppleHSBluetoothHIDDriver AppleMultitouchMouseHIDEventDriver AppleHIDKeyboardEventDriverV2 , ils donnent une sortie différente.

Minghao Ni
la source
7

Vous devez utiliser ioreg. Vous devrez connaître le nom de l'appareil. Suivez simplement ce guide.

Le guide, en bref, vous a essentiellement exécuter le ioreg -c <devicename> |grep '"BatteryPercent" ='

Exemple:

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

entrez la description de l'image ici

De plus, vous pouvez récupérer des informations plus larges sur la batterie avec:

ioreg -c BeatsBluetoothHeadset |grep Battery
wynshaft
la source
2
Hé, merci pour votre réponse! Ce problème semble être spécifique au casque Beats, car je peux accéder aux niveaux de batterie de mon clavier et trackpad sans fil. Met à jour la question d'origine!
pingo
ça ne marche pas pour moi
Jadda
1

Je viens de découvrir que pour vérifier le niveau de la batterie de mes powerbeats 3 sur mon Mac, je vais simplement dans le menu bluetooth dans la zone des icônes en haut à droite de l'écran, survolez vos powerbeats connectés, puis cela montre le niveau de la batterie là. J'espère que ça t'as aidé.

Keaton
la source