From fb3c70a1bcc29827498e9f7d25ab0e59a9cf2649 Mon Sep 17 00:00:00 2001 From: henrygd Date: Sun, 24 Aug 2025 22:34:38 -0400 Subject: [PATCH] update battery charge to include all batteries --- beszel/internal/agent/battery.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/beszel/internal/agent/battery.go b/beszel/internal/agent/battery.go index da5433c..3159a1e 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 + totalCapacity := float64(0) + totalCharge := float64(0) + for _, bat := range batteries { + if bat.Design != 0 { + totalCapacity += bat.Design + } else { + totalCapacity += bat.Full + } + totalCharge += bat.Current } - batteryPercent = uint8(bat.Current / full * 100) - batteryState = uint8(bat.State.Raw) + batteryPercent = uint8(totalCharge / totalCapacity * 100) + batteryState = uint8(batteries[0].State.Raw) return batteryPercent, batteryState, nil }