diff --git a/charger/bender.go b/charger/bender.go index e7d5a0f7bb..911229b79b 100644 --- a/charger/bender.go +++ b/charger/bender.go @@ -238,7 +238,7 @@ func (wb *BenderCC) totalEnergy() (float64, error) { } var total float64 - for l := 0; l < 3; l++ { + for l := range 3 { total += float64(binary.BigEndian.Uint32(b[4*l:4*(l+1)])) / 1e3 } diff --git a/charger/peblar.go b/charger/peblar.go index 9bbae2b903..f2410ab345 100644 --- a/charger/peblar.go +++ b/charger/peblar.go @@ -233,7 +233,7 @@ func (wb *Peblar) getPhaseValues(reg uint16, divider float64) (float64, float64, } var res [3]float64 - for i := 0; i < int(wb.phases); i++ { + for i := range int(wb.phases) { res[i] = float64(binary.BigEndian.Uint32(b[4*i:])) / divider } diff --git a/charger/vaillant.go b/charger/vaillant.go index cb529d35e0..83f80bc9f4 100644 --- a/charger/vaillant.go +++ b/charger/vaillant.go @@ -185,7 +185,7 @@ func (v *Vaillant) print(chapter int, prefix string, zz ...any) { fmt.Printf("%d.%d. %s\n", chapter, i+1, typ) if rt.Kind() == reflect.Slice { - for j := 0; j < rv.Len(); j++ { + for j := range rv.Len() { fmt.Printf("%d.%d.%d. %s %d\n", chapter, i+1, j+1, typ, j) fmt.Printf("%+v\n", rv.Index(j)) } diff --git a/charger/versicharge.go b/charger/versicharge.go index 8251d4357a..90670c2956 100644 --- a/charger/versicharge.go +++ b/charger/versicharge.go @@ -148,7 +148,7 @@ func (wb *Versicharge) CurrentPower() (float64, error) { } var sum float64 - for i := 0; i < 3; i++ { + for i := range 3 { sum += float64(binary.BigEndian.Uint16(b[2*i:])) } diff --git a/cmd/detect/work.go b/cmd/detect/work.go index ac8c1c5689..e5e65dc7e9 100644 --- a/cmd/detect/work.go +++ b/cmd/detect/work.go @@ -13,7 +13,7 @@ import ( func workers(log *util.Logger, num int, tasks <-chan string, hits chan<- []tasks.Result) *sync.WaitGroup { var wg sync.WaitGroup - for i := 0; i < num; i++ { + for range num { wg.Add(1) go func() { workunit(log, tasks, hits) diff --git a/core/planner/helper_test.go b/core/planner/helper_test.go index 7e082e2d80..2206e7a174 100644 --- a/core/planner/helper_test.go +++ b/core/planner/helper_test.go @@ -18,7 +18,7 @@ func TestSlotHasSuccessor(t *testing.T) { plan[i], plan[j] = plan[j], plan[i] }) - for i := 0; i < len(plan); i++ { + for i := range plan { if plan[i] != last { require.True(t, SlotHasSuccessor(plan[i], plan)) } diff --git a/meter/openwb.go b/meter/openwb.go index bfd0c17537..371a876a3e 100644 --- a/meter/openwb.go +++ b/meter/openwb.go @@ -65,7 +65,7 @@ func NewOpenWBFromConfig(other map[string]interface{}) (api.Meter, error) { } var curr [3]func() (float64, error) - for i := 0; i < 3; i++ { + for i := range 3 { current, err := to.FloatGetter(mq("%s/evu/%s%d", cc.Topic, openwb.CurrentTopic, i+1)) if err != nil { return nil, err diff --git a/provider/timeseries.go b/provider/timeseries.go index bcae29b73c..38c0991443 100644 --- a/provider/timeseries.go +++ b/provider/timeseries.go @@ -26,7 +26,7 @@ func (p *timeseriesProvider) StringGetter() (func() (string, error), error) { return func() (string, error) { res := make(api.Rates, 48) ts := now.BeginningOfHour() - for i := 0; i < 48; i++ { + for i := range 48 { res[i] = api.Rate{ Start: ts, End: ts.Add(time.Hour), diff --git a/server/influxdb.go b/server/influxdb.go index 924769408c..0e331eccf0 100644 --- a/server/influxdb.go +++ b/server/influxdb.go @@ -75,7 +75,7 @@ func (m *Influx) writeComplexPoint(writer pointWriter, key string, val any, tags typ := reflect.TypeOf(sv) val := reflect.ValueOf(sv) - for i := 0; i < typ.NumField(); i++ { + for i := range typ.NumField() { if f := typ.Field(i); f.IsExported() { if val.Field(i).IsZero() && omitEmpty(f) { continue @@ -135,7 +135,7 @@ func (m *Influx) writeComplexPoint(writer pointWriter, key string, val any, tags val := reflect.ValueOf(val) // loop slice - for i := 0; i < val.Len(); i++ { + for i := range val.Len() { tags["id"] = strconv.Itoa(i + 1) writeStruct(val.Index(i).Interface()) } diff --git a/server/modbus/proxy_test.go b/server/modbus/proxy_test.go index 84cb382c6f..5eb258dc25 100644 --- a/server/modbus/proxy_test.go +++ b/server/modbus/proxy_test.go @@ -37,7 +37,7 @@ func TestConcurrentRead(t *testing.T) { conn, err := modbus.NewConnection(l.Addr().String(), "", "", 0, modbus.Tcp, uint8(id)) require.NoError(t, err) - for i := 0; i < 50; i++ { + for range 50 { addr := uint16(rand.Int31n(200) + 1) qty := uint16(rand.Int31n(32) + 1) diff --git a/server/mqtt.go b/server/mqtt.go index e22659fcfb..f36f9d57e8 100644 --- a/server/mqtt.go +++ b/server/mqtt.go @@ -83,7 +83,7 @@ func (m *MQTT) publishComplex(topic string, retained bool, payload interface{}) m.publishSingleValue(topic, retained, val.Len()) // loop slice - for i := 0; i < val.Len(); i++ { + for i := range val.Len() { m.publishComplex(fmt.Sprintf("%s/%d", topic, i+1), retained, val.Index(i).Interface()) } @@ -99,7 +99,7 @@ func (m *MQTT) publishComplex(topic string, retained bool, payload interface{}) typ := val.Type() // loop struct - for i := 0; i < typ.NumField(); i++ { + for i := range typ.NumField() { if f := typ.Field(i); f.IsExported() { topic := fmt.Sprintf("%s/%s", topic, strings.ToLower(f.Name[:1])+f.Name[1:]) @@ -278,7 +278,7 @@ func (m *MQTT) Run(site site.API, in <-chan util.Param) { topic = fmt.Sprintf("%s/vehicles", m.root) m.publish(topic, true, len(site.Vehicles().Settings())) - for i := 0; i < 10; i++ { + for i := range 10 { m.publish(fmt.Sprintf("%s/site/pv/%d", m.root, i), true, nil) m.publish(fmt.Sprintf("%s/site/battery/%d", m.root, i), true, nil) m.publish(fmt.Sprintf("%s/site/vehicles/%d", m.root, i), true, nil) diff --git a/server/socket_helper.go b/server/socket_helper.go index c512da66e3..e16052e15e 100644 --- a/server/socket_helper.go +++ b/server/socket_helper.go @@ -21,7 +21,7 @@ func encodeSliceAsString(v any) (string, error) { rv := reflect.ValueOf(v) res := make([]string, rv.Len()) - for i := 0; i < rv.Len(); i++ { + for i := range rv.Len() { var err error if res[i], err = encodeAsString(rv.Index(i).Interface()); err != nil { return "", err diff --git a/tariff/fixed.go b/tariff/fixed.go index 71f5753a10..c40e2e5df9 100644 --- a/tariff/fixed.go +++ b/tariff/fixed.go @@ -85,7 +85,7 @@ func (t *Fixed) Rates() (api.Rates, error) { var res api.Rates start := now.With(t.clock.Now().Local()).BeginningOfDay() - for i := 0; i < 7; i++ { + for i := range 7 { dow := fixed.Day((int(start.Weekday()) + i) % 7) zones := t.zones.ForDay(dow) diff --git a/tariff/fixed_test.go b/tariff/fixed_test.go index 3dab95c29c..d757d21a3c 100644 --- a/tariff/fixed_test.go +++ b/tariff/fixed_test.go @@ -54,7 +54,7 @@ func TestFixedSplitZones(t *testing.T) { tf.clock = clock.NewMock() var expect api.Rates - for i := 0; i < 7; i++ { + for i := range 7 { dayStart := now.With(tf.clock.Now()).BeginningOfDay().AddDate(0, 0, i) // 00:00-05:00 0.1 diff --git a/util/logstash/log.go b/util/logstash/log.go index 15450932c6..717fbbc51c 100644 --- a/util/logstash/log.go +++ b/util/logstash/log.go @@ -65,7 +65,7 @@ func (l *logger) Size() int64 { r := l.data var size int64 - for i := 0; i < r.Len(); i++ { + for range r.Len() { if e, ok := r.Value.(element); ok { size += int64(len(e)) } diff --git a/util/time.go b/util/time.go index 2929650884..d1463fbdd9 100644 --- a/util/time.go +++ b/util/time.go @@ -32,7 +32,7 @@ func GetNextOccurrence(weekdays []int, timeStr string, tz string) (time.Time, er } // Check the next 7 days for a valid match - for i := 0; i < 7; i++ { + for range 7 { weekday := int(target.Weekday()) if contains(weekdays, weekday) { return target, nil