From 25c64ef544d13f01f2f865732b1de3ce24b152d8 Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 26 Jul 2025 11:02:22 +0200 Subject: [PATCH] chore: simplify --- charger/em2go.go | 58 +++---------------- .../definition/charger/em2go-duo-power.yaml | 9 +-- 2 files changed, 8 insertions(+), 59 deletions(-) diff --git a/charger/em2go.go b/charger/em2go.go index f7d4453ee..1e8253873 100644 --- a/charger/em2go.go +++ b/charger/em2go.go @@ -71,26 +71,13 @@ const ( func init() { registry.AddCtx("em2go", NewEm2GoFromConfig) registry.AddCtx("em2go-home", NewEm2GoFromConfig) - registry.AddCtx("em2go-duo-power", NewEm2GoDuoPowerFromConfig) + registry.AddCtx("em2go-duo", NewEm2GoFromConfig) } //go:generate go tool decorate -f decorateEm2Go -b *Em2Go -r api.Charger -t "api.ChargerEx,MaxCurrentMillis,func(float64) error" -t "api.PhaseSwitcher,Phases1p3p,func(int) error" -t "api.PhaseGetter,GetPhases,func() (int, error)" // NewEm2GoFromConfig creates a Em2Go charger from generic config func NewEm2GoFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) { - cc := modbus.TcpSettings{ - ID: 255, - } - - if err := util.DecodeOther(other, &cc); err != nil { - return nil, err - } - - return NewEm2Go(ctx, cc.URI, cc.ID) -} - -// NewEm2GoDuoPowerFromConfig creates a Em2Go Duo Power charger from generic config -func NewEm2GoDuoPowerFromConfig(ctx context.Context, other map[string]interface{}) (api.Charger, error) { cc := struct { modbus.TcpSettings `mapstructure:",squash"` Connector int @@ -103,11 +90,11 @@ func NewEm2GoDuoPowerFromConfig(ctx context.Context, other map[string]interface{ return nil, err } - return NewEm2GoDuoPower(ctx, cc.URI, cc.ID, cc.Connector) + return NewEm2Go(ctx, cc.URI, cc.ID, cc.Connector) } // NewEm2Go creates Em2Go charger -func NewEm2Go(ctx context.Context, uri string, slaveID uint8) (api.Charger, error) { +func NewEm2Go(ctx context.Context, uri string, slaveID uint8, connector int) (api.Charger, error) { uri = util.DefaultPort(uri, 502) conn, err := modbus.NewConnection(ctx, uri, "", "", 0, modbus.Tcp, slaveID) @@ -122,41 +109,10 @@ func NewEm2Go(ctx context.Context, uri string, slaveID uint8) (api.Charger, erro conn.Logger(log.TRACE) wb := &Em2Go{ - log: log, - conn: conn, - current: 60, - workaround: false, - base: 0, // single connector, no offset - } - - return wb.initialize() -} - -// NewEm2GoDuoPower creates Em2Go Duo Power charger -func NewEm2GoDuoPower(ctx context.Context, uri string, slaveID uint8, connector int) (api.Charger, error) { - if connector < 1 || connector > 2 { - return nil, fmt.Errorf("invalid connector: %d", connector) - } - - uri = util.DefaultPort(uri, 502) - - conn, err := modbus.NewConnection(ctx, uri, "", "", 0, modbus.Tcp, slaveID) - if err != nil { - return nil, err - } - - // Add delay of 60 milliseconds between requests - conn.Delay(60 * time.Millisecond) - - log := util.NewLogger("em2go-duo-power") - conn.Logger(log.TRACE) - - wb := &Em2Go{ - log: log, - conn: conn, - current: 60, - workaround: false, - base: uint16((connector - 1) * em2GoDuoPowerOffset), + log: log, + conn: conn, + current: 60, + base: uint16((connector - 1) * em2GoDuoPowerOffset), } return wb.initialize() diff --git a/templates/definition/charger/em2go-duo-power.yaml b/templates/definition/charger/em2go-duo-power.yaml index 7b2f83f1c..9bee603de 100644 --- a/templates/definition/charger/em2go-duo-power.yaml +++ b/templates/definition/charger/em2go-duo-power.yaml @@ -2,20 +2,13 @@ template: em2go-duo-power products: - brand: EM2GO description: - generic: AC WALLBOX DUO POWER 2X 22KW + generic: Duo Power capabilities: ["mA"] -requirements: - description: - de: "Aktuelle Firmware mit Modbus-Unterstützung notwendig. Mögliche Verbindungsprobleme - Device ID muss bei jeder Verbindung inkrementiert werden." - en: "Recent firmware with Modbus support required. Possible connection issues - Device ID needs to be incremented for each connection attempt." params: - name: modbus choice: ["tcpip"] id: 255 - name: connector - description: - de: "Anschluss (1 oder 2 für Duo Power)" - en: "Connector (1 or 2 for Duo Power)" default: 1 render: | type: em2go-duo-power