11package charger
22
33import (
4+ "context"
45 "errors"
56 "fmt"
67 "slices"
@@ -49,11 +50,11 @@ type EEBus struct {
4950}
5051
5152func init () {
52- registry .Add ("eebus" , NewEEBusFromConfig )
53+ registry .AddCtx ("eebus" , NewEEBusFromConfig )
5354}
5455
5556// NewEEBusFromConfig creates an EEBus charger from generic config
56- func NewEEBusFromConfig (other map [string ]interface {}) (api.Charger , error ) {
57+ func NewEEBusFromConfig (ctx context. Context , other map [string ]interface {}) (api.Charger , error ) {
5758 cc := struct {
5859 Ski string
5960 Ip string
@@ -68,13 +69,13 @@ func NewEEBusFromConfig(other map[string]interface{}) (api.Charger, error) {
6869 return nil , err
6970 }
7071
71- return NewEEBus (cc .Ski , cc .Ip , cc .Meter , cc .ChargedEnergy , cc .VasVW )
72+ return NewEEBus (ctx , cc .Ski , cc .Ip , cc .Meter , cc .ChargedEnergy , cc .VasVW )
7273}
7374
7475//go:generate go tool decorate -f decorateEEBus -b *EEBus -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)" -t "api.PhaseCurrents,Currents,func() (float64, float64, float64, error)" -t "api.ChargeRater,ChargedEnergy,func() (float64, error)"
7576
7677// NewEEBus creates EEBus charger
77- func NewEEBus (ski , ip string , hasMeter , hasChargedEnergy , vasVW bool ) (api.Charger , error ) {
78+ func NewEEBus (ctx context. Context , ski , ip string , hasMeter , hasChargedEnergy , vasVW bool ) (api.Charger , error ) {
7879 if eebus .Instance == nil {
7980 return nil , errors .New ("eebus not configured" )
8081 }
@@ -93,7 +94,7 @@ func NewEEBus(ski, ip string, hasMeter, hasChargedEnergy, vasVW bool) (api.Charg
9394 return nil , err
9495 }
9596
96- if err := c .Wait (90 * time . Second ); err != nil {
97+ if err := c .Wait (ctx ); err != nil {
9798 return c , err
9899 }
99100
0 commit comments