Tim Golden is an excellent wmi module, I believe it will give you everything you want. You just need to make a few queries to get everything:
import wmi c = wmi.WMI() t = wmi.WMI(moniker = "//./root/wmi") batts1 = c.CIM_Battery(Caption = 'Portable Battery') for i, b in enumerate(batts1): print 'Battery %d Design Capacity: %d mWh' % (i, b.DesignCapacity or 0) batts = t.ExecQuery('Select * from BatteryFullChargedCapacity') for i, b in enumerate(batts): print ('Battery %d Fully Charged Capacity: %d mWh' % (i, b.FullChargedCapacity)) batts = t.ExecQuery('Select * from BatteryStatus where Voltage > 0') for i, b in enumerate(batts): print '\nBattery %d ***************' % i print 'Tag: ' + str(b.Tag) print 'Name: ' + b.InstanceName print 'PowerOnline: ' + str(b.PowerOnline) print 'Discharging: ' + str(b.Discharging) print 'Charging: ' + str(b.Charging) print 'Voltage: ' + str(b.Voltage) print 'DischargeRate: ' + str(b.DischargeRate) print 'ChargeRate: ' + str(b.ChargeRate) print 'RemainingCapacity: ' + str(b.RemainingCapacity) print 'Active: ' + str(b.Active) print 'Critical: ' + str(b.Critical)
This, of course, is not cross-platform, and it needs a third-party resource, but it works very well.
source share