Il existe un moyen simple de déterminer le courant de charge instantané* de la batterie, en supposant que vous ayez installé des outils de développement :
ioreg -rw0 -c AppleSmartBattery | grep -o -e '"ChargingCurrent"=[0-9]*'
Le nombre est spécifié en milliampères.
Cependant, ce n'est pas la même chose que le courant qui passe par votre adaptateur secteur (cela est plus évident lorsque la batterie est complètement chargée, auquel cas le courant sera 0
), donc il se peut que cela ne vous aide pas dans ce que vous faites. Je ne connais pas d'endroit où ces informations sont publiées, mais le PMU doit certainement les mesurer.
De même, vous pouvez visualiser la tension instantanée* de la batterie, en millivolts, avec
ioreg -rw0 -c AppleSmartBattery | grep -o -e '"Voltage" = [0-9]*'
qui, multiplié par le courant ci-dessus, vous donnera la puissance fournie à la batterie (en microwatts, à diviser par un facteur de 1 000 000 pour obtenir des watts). Mais, encore une fois, ce n'est pas la même chose que la puissance délivrée par l'adaptateur secteur.
Vous pouvez visualiser d'autres paramètres relatifs à la puissance avec
ioreg -rw0 -c AppleSmartBattery
Mise à jour :
J'ai fait des essais sur deux systèmes - un MBP basé sur T2 avec Catalina et un MBP non basé sur T2 avec Big Sur - et j'ai constaté que le premier possède les touches AdapterPower
y SystemPower
contenu dans le BatteryData
propriété du dictionnaire de AppleSmartBattery
:
"BatteryData" = {"StateOfCharge"=98,"PMUConfigured"=0,"DesignCapacity"=8790,"QmaxCell1"=9017,"AdapterPower"=1101610469,"SystemPower"=1104635067,"ResScale"=244,"QmaxCell2"=9048,"QmaxCell0"=9082,"CycleCount"=69,"Voltage"=12503}
Il s'agit donc d'une source prometteuse pour déterminer à la fois la puissance fournie par l'adaptateur secteur et la puissance consommée par le système. Ces données, ainsi que le courant et la tension de charge de la batterie que j'ai montrés précédemment, pourraient vous donner une image assez complète de la situation énergétique.
Je n'ai pas pu comprendre les unités au début, car les chiffres sont trop élevés pour être W
, mW
et même µW
et trop faible pour être nW
. Puis je me suis souvenu que certaines clés sont stockées sous forme de valeurs à virgule flottante, et quand j'ai converti 1101610469
dans un IEEE-754 float
j'ai obtenu le très raisonnable 21.1552219391
ce qui signifie qu'il est publié en unités de watts.
Vous pouvez donc - sur au moins certains matériels ou logiciels - visualiser la consommation électrique de l'adaptateur secteur avec
ioreg -rw0 -c AppleSmartBattery | grep BatteryData | grep -o '"AdapterPower"=[0-9]*' | cut -c 16- | xargs -I % lldb --batch -o "print/f %" | grep -o '$0 = [0-9.]*' | cut -c 6-
et la consommation électrique du système avec
ioreg -rw0 -c AppleSmartBattery | grep BatteryData | grep -o '"SystemPower"=[0-9]*' | cut -c 16- | xargs -I % lldb --batch -o "print/f %" | grep -o '$0 = [0-9.]*' | cut -c 6-
Cela utilise lldb
pour faire la conversion IEEE-754, donc, encore une fois, vous aurez besoin d'outils de développement installés. Il est également très simple d'écrire un petit outil CLI qui utilise le cadre IOKit pour effectuer ces opérations sans avoir besoin d'installer Xcode sur le système cible, si vous en avez besoin.
* - Notez que ces valeurs ne semblent se mettre à jour qu'une fois par minute environ, elles ne sont donc pas vraiment instantané.