Existe una forma sencilla de determinar la corriente de carga instantánea* de la batería, suponiendo que tengas instaladas herramientas de desarrollo:
ioreg -rw0 -c AppleSmartBattery | grep -o -e '"ChargingCurrent"=[0-9]*'
El número se especifica en miliamperios.
Sin embargo, esto no va a ser lo mismo que la corriente que entra a través de su adaptador de CA (esto es más evidente cuando la batería está completamente cargada, en cuyo caso la corriente será 0
), así que puede que no te ayude con lo que estás haciendo. No conozco ningún lugar donde se publique esa información, aunque la PMU debe medirla sin duda.
Del mismo modo, puede ver la tensión instantánea* de la batería, en milivoltios, con
ioreg -rw0 -c AppleSmartBattery | grep -o -e '"Voltage" = [0-9]*'
que, multiplicado por la corriente anterior, nos dará la potencia que se suministra a la batería (en microvatios, así que divídelo por un factor de 1.000.000 para obtener vatios). Pero, de nuevo, no es lo mismo que la potencia suministrada por el adaptador de CA.
Puedes ver más parámetros relacionados con la potencia con
ioreg -rw0 -c AppleSmartBattery
Actualización:
Experimenté en dos sistemas - un MBP basado en T2 con Catalina y un MBP no basado en T2 con Big Sur - y descubrí que el primero tiene las teclas AdapterPower
y SystemPower
contenida en el BatteryData
propiedad de diccionario 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}
Se trata, pues, de una fuente prometedora para determinar tanto la potencia suministrada por el adaptador de CA como la consumida por el sistema. Esto, junto con la corriente de carga de la batería y el voltaje que mostré anteriormente, podría darle una imagen bastante completa de la situación energética.
Al principio no pude averiguar las unidades, ya que los números son demasiado altos para ser W
, mW
e incluso µW
y demasiado bajo para ser nW
. Entonces recordé que algunas claves se almacenan como valores de coma flotante, y cuando convertí 1101610469
en un IEEE-754 float
Tengo el muy razonable 21.1552219391
lo que significa que se publica en unidades de vatios.
Por lo tanto, al menos en determinados equipos o programas, puede ver el consumo de energía del adaptador de CA con
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-
y el consumo de energía del sistema con
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-
Esto utiliza lldb
para realizar la conversión IEEE-754, por lo que, de nuevo, necesitarás tener instaladas las herramientas de desarrollo. También es muy sencillo escribir una pequeña herramienta CLI que utiliza el marco IOKit para volcar estos sin necesidad de Xcode instalado en el sistema de destino, si usted necesita tener eso.
* - Tenga en cuenta que estos valores sólo parecen actualizarse una vez por minuto más o menos, por lo que no son verdaderamente instantáneo.