Skip to content

Commit 9e2a0e7

Browse files
Added dynamic battery icons
1 parent 8414cf2 commit 9e2a0e7

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

sensor/power.go

+31
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"io/fs"
77
"os"
88
"path/filepath"
9+
"strconv"
10+
"strings"
911

1012
"hacompanion/entity"
1113
"hacompanion/util"
@@ -71,6 +73,7 @@ func (pwr Power) Run(ctx context.Context) (*entity.Payload, error) {
7173
}
7274
}
7375
}
76+
p.Icon = pwr.resolveIcon(p.State)
7477
return p, err
7578
}
7679

@@ -81,3 +84,31 @@ func (pwr Power) optimisticRead(file string) string {
8184
}
8285
return string(b)
8386
}
87+
88+
func (pwr Power) resolveIcon(state any) string {
89+
num, err := strconv.Atoi(strings.TrimSpace(state.(string)))
90+
if err != nil {
91+
return "mdi:battery-unknown"
92+
}
93+
94+
switch {
95+
case num >= 90:
96+
return "mdi:battery"
97+
case num >= 80:
98+
return "mdi:battery-80"
99+
case num >= 70:
100+
return "mdi:battery-70"
101+
case num >= 60:
102+
return "mdi:battery-60"
103+
case num >= 50:
104+
return "mdi:battery-50"
105+
case num >= 40:
106+
return "mdi:battery-40"
107+
case num >= 30:
108+
return "mdi:battery-30"
109+
case num >= 20:
110+
return "mdi:battery-20"
111+
default:
112+
return "mdi:battery-alert"
113+
}
114+
}

0 commit comments

Comments
 (0)