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