sum all batteries for battery stats

This commit is contained in:
henrygd
2025-08-24 21:46:30 -04:00
parent 8b655ef2b9
commit 53a87fab92

View File

@@ -4,15 +4,21 @@ import "github.com/distatus/battery"
// getBatteryStats returns the current battery percent and charge state // getBatteryStats returns the current battery percent and charge state
func getBatteryStats() (batteryPercent uint8, batteryState uint8, err error) { func getBatteryStats() (batteryPercent uint8, batteryState uint8, err error) {
bat, err := battery.Get(0) batteries, err := battery.GetAll()
if err != nil { if err != nil {
return batteryPercent, batteryState, err return batteryPercent, batteryState, err
} }
full := bat.Design batteriesTotalCapacity := float64(0)
if full == 0 { batteriesTotalCharge := float64(0)
full = bat.Full for _, bat := range batteries {
full := bat.Design
if full == 0 {
full = bat.Full
}
batteriesTotalCapacity += full
batteriesTotalCharge += bat.Current
} }
batteryPercent = uint8(bat.Current / full * 100) batteryPercent = uint8(batteriesTotalCharge / batteriesTotalCapacity * 100)
batteryState = uint8(bat.State.Raw) batteryState = uint8(batteries[0].State.Raw)
return batteryPercent, batteryState, nil return batteryPercent, batteryState, nil
} }