diff --git a/README.md b/README.md index 171a91be7..4996ecba2 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Evcc is an extensible EV Charge Controller with PV integration implemented in [G - multiple [chargers](https://docs.evcc.io/docs/devices/chargers): - Open source: [openWB](https://openwb.de/), [EVSEWifi](https://www.evse-wifi.de) (includes smartWB) - Other commercial: ABL eMH1, Alfen Eve, cFos PowerBrain, Daheimladen, go-eCharger, Heidelberg Energy Control, Innogy eBox, KEBA/BMW, NRGkick, PC Electric (includes Garo), Wallbe, Mobile Charger Connect, EEBUS (experimental) - - Build-your-own: Phoenix (includes ESL Walli), [SimpleEVSE](https://www.evse-wifi.de/produkt-schlagwort/simple-evse-wb/) + - Build-your-own: Phoenix (includes ESL Walli), [EVSE DIN](https://www.evse-wifi.de/produkt-schlagwort/simple-evse-wb/) - Smart-Home outlets: FritzDECT, Shelly, Tasmota, TP-Link - multiple [meters](https://docs.evcc.io/docs/devices/meters): ModBus (Eastron SDM, MPM3PM, SBC ALE3 and many more), Discovergy (using HTTP plugin), SMA Sunny Home Manager and Energy Meter, KOSTAL Smart Energy Meter (KSEM, EMxx), any Sunspec-compatible inverter or home battery devices (Fronius, SMA, SolarEdge, KOSTAL, STECA, E3DC, ...), Tesla PowerWall, LG ESS HOME - wide support of vendor-specific [vehicles](https://docs.evcc.io/docs/devices/vehicles) interfaces (remote charge, battery and preconditioning status): Audi, BMW, Fiat, Ford, Hyundai, Kia, Mini, Nissan, Niu, Porsche, Renault, Seat, Smart, Skoda, Tesla, Volkswagen, Volvo, Tronity diff --git a/charger/simpleevse.go b/charger/evsedin.go similarity index 72% rename from charger/simpleevse.go rename to charger/evsedin.go index 0c97b4e7a..383b08772 100644 --- a/charger/simpleevse.go +++ b/charger/evsedin.go @@ -9,8 +9,8 @@ import ( "github.com/evcc-io/evcc/util/modbus" ) -// SimpleEVSE charger implementation -type SimpleEVSE struct { +// EvseDIN charger implementation +type EvseDIN struct { conn *modbus.Connection current int64 } @@ -21,13 +21,14 @@ const ( ) func init() { - registry.Add("simpleevse", NewSimpleEVSEFromConfig) + registry.Add("simpleevse", NewEvseDINFromConfig) // deprecated + registry.Add("evsedin", NewEvseDINFromConfig) } // https://files.ev-power.eu/inc/_doc/attach/StoItem/4418/evse-wb-din_Manual.pdf -// NewSimpleEVSEFromConfig creates a SimpleEVSE charger from generic config -func NewSimpleEVSEFromConfig(other map[string]interface{}) (api.Charger, error) { +// NewEvseDINFromConfig creates an EVSE DIN charger from generic config +func NewEvseDINFromConfig(other map[string]interface{}) (api.Charger, error) { cc := modbus.Settings{ Baudrate: 9600, Comset: "8N1", @@ -37,11 +38,11 @@ func NewSimpleEVSEFromConfig(other map[string]interface{}) (api.Charger, error) return nil, err } - return NewSimpleEVSE(cc.URI, cc.Device, cc.Comset, cc.Baudrate, true, cc.ID) + return NewEvseDIN(cc.URI, cc.Device, cc.Comset, cc.Baudrate, true, cc.ID) } -// NewSimpleEVSE creates SimpleEVSE charger -func NewSimpleEVSE(uri, device, comset string, baudrate int, rtu bool, slaveID uint8) (api.Charger, error) { +// NewEvseDIN creates EVSE DIN charger +func NewEvseDIN(uri, device, comset string, baudrate int, rtu bool, slaveID uint8) (api.Charger, error) { log := util.NewLogger("evse") conn, err := modbus.NewConnection(uri, device, comset, baudrate, modbus.RtuFormat, slaveID) @@ -52,7 +53,7 @@ func NewSimpleEVSE(uri, device, comset string, baudrate int, rtu bool, slaveID u conn.Logger(log.TRACE) conn.Delay(200 * time.Millisecond) - evse := &SimpleEVSE{ + evse := &EvseDIN{ conn: conn, current: 6, // assume min current } @@ -61,7 +62,7 @@ func NewSimpleEVSE(uri, device, comset string, baudrate int, rtu bool, slaveID u } // Status implements the api.Charger interface -func (evse *SimpleEVSE) Status() (api.ChargeStatus, error) { +func (evse *EvseDIN) Status() (api.ChargeStatus, error) { b, err := evse.conn.ReadHoldingRegisters(evseRegVehicleStatus, 1) if err != nil { return api.StatusNone, err @@ -84,7 +85,7 @@ func (evse *SimpleEVSE) Status() (api.ChargeStatus, error) { } // Enabled implements the api.Charger interface -func (evse *SimpleEVSE) Enabled() (bool, error) { +func (evse *EvseDIN) Enabled() (bool, error) { b, err := evse.conn.ReadHoldingRegisters(evseRegAmpsConfig, 1) if err != nil { return false, err @@ -99,7 +100,7 @@ func (evse *SimpleEVSE) Enabled() (bool, error) { } // Enable implements the api.Charger interface -func (evse *SimpleEVSE) Enable(enable bool) error { +func (evse *EvseDIN) Enable(enable bool) error { b := []byte{0, 0} if enable { @@ -112,7 +113,7 @@ func (evse *SimpleEVSE) Enable(enable bool) error { } // MaxCurrent implements the api.Charger interface -func (evse *SimpleEVSE) MaxCurrent(current int64) error { +func (evse *EvseDIN) MaxCurrent(current int64) error { b := []byte{0, byte(current)} _, err := evse.conn.WriteMultipleRegisters(evseRegAmpsConfig, 1, b) diff --git a/templates/definition/charger/evsedin.yaml b/templates/definition/charger/evsedin.yaml index 5b0eb753b..9656c5a1b 100644 --- a/templates/definition/charger/evsedin.yaml +++ b/templates/definition/charger/evsedin.yaml @@ -5,5 +5,5 @@ params: - name: modbus choice: ["rs485"] render: | - type: simpleevse + type: evsedin {{include "modbus" .}}