From 53a87fab9287c57c46a39ad7a439a86c8ebed51b Mon Sep 17 00:00:00 2001 From: henrygd Date: Sun, 24 Aug 2025 21:46:30 -0400 Subject: [PATCH] sum all batteries for battery stats --- 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 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 }