Skip to content

Commit

Permalink
Mennekes: fix typo (#12932)
Browse files Browse the repository at this point in the history
  • Loading branch information
premultiply authored Mar 14, 2024
1 parent 8742532 commit c1a3d11
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 39 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ evcc is an extensible EV Charge Controller and home energy management system. Fe

- simple and clean user interface
- wide range of supported [chargers](https://docs.evcc.io/docs/devices/chargers):
- ABL eMH1, Alfen (Eve), Bender (CC612/613), cFos (PowerBrain), Daheimladen, Ebee (Wallbox), Ensto (Chago Wallbox), [EVSEWifi/ smartWB](https://www.evse-wifi.de), Garo (GLB, GLB+, LS4), go-eCharger, HardyBarth (eCB1, cPH1, cPH2), Heidelberg (Energy Control), Innogy (eBox), Juice (Charger Me), KEBA/BMW, Menneckes (Amedio, Amtron Premium/Xtra, Amtron ChargeConrol), older NRGkicks (before 2022/2023), [openWB (includes Pro)](https://openwb.de/), Optec (Mobility One), PC Electric (includes Garo), Siemens, TechniSat (Technivolt), [Tinkerforge Warp Charger](https://www.warp-charger.com), Ubitricity (Heinz), Vestel, Wallbe, Webasto (Live), Mobile Charger Connect and many more
- ABL eMH1, Alfen (Eve), Bender (CC612/613), cFos (PowerBrain), Daheimladen, Ebee (Wallbox), Ensto (Chago Wallbox), [EVSEWifi/ smartWB](https://www.evse-wifi.de), Garo (GLB, GLB+, LS4), go-eCharger, HardyBarth (eCB1, cPH1, cPH2), Heidelberg (Energy Control), Innogy (eBox), Juice (Charger Me), KEBA/BMW, Mennekes (Amedio, Amtron Premium/Xtra, Amtron ChargeConrol), older NRGkicks (before 2022/2023), [openWB (includes Pro)](https://openwb.de/), Optec (Mobility One), PC Electric (includes Garo), Siemens, TechniSat (Technivolt), [Tinkerforge Warp Charger](https://www.warp-charger.com), Ubitricity (Heinz), Vestel, Wallbe, Webasto (Live), Mobile Charger Connect and many more
- experimental EEBus support (Elli, PMCC)
- experimental OCPP support
- Build-your-own: Phoenix Contact (includes ESL Walli), [EVSE DIN](http://evracing.cz/simple-evse-wallbox)
Expand Down
72 changes: 36 additions & 36 deletions charger/menneckes-hcc3.go → charger/mennekes-hcc3.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,28 @@ import (

// https://update.mennekes.de/hcc3/1.13/Description%20Modbus_AMTRON%20HCC3_v01_2021-06-25_en.pdf

// MenneckesHcc3 Xtra/Premium charger implementation
type MenneckesHcc3 struct {
// MennekesHcc3 Xtra/Premium charger implementation
type MennekesHcc3 struct {
conn *modbus.Connection
curr uint16
}

const (
menneckesHcc3RegStatus = 0x0302
menneckesHcc3RegPhases = 0x0308
menneckesHcc3RegSerial = 0x030B
menneckesHcc3RegEnergy = 0x030D
menneckesHcc3RegName = 0x0311
menneckesHcc3RegPower = 0x030F
menneckesHcc3RegAmpsConfig = 0x0400
mennekesHcc3RegStatus = 0x0302
mennekesHcc3RegPhases = 0x0308
mennekesHcc3RegSerial = 0x030B
mennekesHcc3RegEnergy = 0x030D
mennekesHcc3RegName = 0x0311
mennekesHcc3RegPower = 0x030F
mennekesHcc3RegAmpsConfig = 0x0400
)

func init() {
registry.Add("menneckes-hcc3", NewMenneckesHcc3FromConfig)
registry.Add("mennekes-hcc3", NewMennekesHcc3FromConfig)
}

// NewMenneckesHcc3FromConfig creates a Mennekes menneckesHcc3 charger from generic config
func NewMenneckesHcc3FromConfig(other map[string]interface{}) (api.Charger, error) {
// NewMennekesHcc3FromConfig creates a Mennekes mennekesHcc3 charger from generic config
func NewMennekesHcc3FromConfig(other map[string]interface{}) (api.Charger, error) {
cc := modbus.TcpSettings{
ID: 255,
}
Expand All @@ -62,11 +62,11 @@ func NewMenneckesHcc3FromConfig(other map[string]interface{}) (api.Charger, erro
return nil, err
}

return NewMenneckesHcc3(cc.URI, cc.ID)
return NewMennekesHcc3(cc.URI, cc.ID)
}

// NewMenneckesHcc3 creates Menneckes HCC3 charger
func NewMenneckesHcc3(uri string, slaveID uint8) (api.Charger, error) {
// NewMennekesHcc3 creates Mennekes HCC3 charger
func NewMennekesHcc3(uri string, slaveID uint8) (api.Charger, error) {
uri = util.DefaultPort(uri, 502)

conn, err := modbus.NewConnection(uri, "", "", 0, modbus.Tcp, slaveID)
Expand All @@ -78,10 +78,10 @@ func NewMenneckesHcc3(uri string, slaveID uint8) (api.Charger, error) {
return nil, api.ErrSponsorRequired
}

log := util.NewLogger("menneckes-hcc3")
log := util.NewLogger("mennekes-hcc3")
conn.Logger(log.TRACE)

wb := &MenneckesHcc3{
wb := &MennekesHcc3{
conn: conn,
curr: 6,
}
Expand All @@ -90,8 +90,8 @@ func NewMenneckesHcc3(uri string, slaveID uint8) (api.Charger, error) {
}

// Status implements the api.Charger interface
func (wb *MenneckesHcc3) Status() (api.ChargeStatus, error) {
b, err := wb.conn.ReadInputRegisters(menneckesHcc3RegStatus, 1)
func (wb *MennekesHcc3) Status() (api.ChargeStatus, error) {
b, err := wb.conn.ReadInputRegisters(mennekesHcc3RegStatus, 1)
if err != nil {
return api.StatusNone, err
}
Expand All @@ -111,8 +111,8 @@ func (wb *MenneckesHcc3) Status() (api.ChargeStatus, error) {
}

// Enabled implements the api.Charger interface
func (wb *MenneckesHcc3) Enabled() (bool, error) {
b, err := wb.conn.ReadHoldingRegisters(menneckesHcc3RegAmpsConfig, 1)
func (wb *MennekesHcc3) Enabled() (bool, error) {
b, err := wb.conn.ReadHoldingRegisters(mennekesHcc3RegAmpsConfig, 1)
if err != nil {
return false, err
}
Expand All @@ -123,69 +123,69 @@ func (wb *MenneckesHcc3) Enabled() (bool, error) {
}

// Enable implements the api.Charger interface
func (wb *MenneckesHcc3) Enable(enable bool) error {
func (wb *MennekesHcc3) Enable(enable bool) error {
var u uint16
if enable {
u = wb.curr
}

_, err := wb.conn.WriteSingleRegister(menneckesHcc3RegAmpsConfig, u)
_, err := wb.conn.WriteSingleRegister(mennekesHcc3RegAmpsConfig, u)
return err
}

// MaxCurrent implements the api.Charger interface
func (wb *MenneckesHcc3) MaxCurrent(current int64) error {
func (wb *MennekesHcc3) MaxCurrent(current int64) error {
if current < 6 {
return fmt.Errorf("invalid current %d", current)
}

cur := uint16(current)

_, err := wb.conn.WriteSingleRegister(menneckesHcc3RegAmpsConfig, cur)
_, err := wb.conn.WriteSingleRegister(mennekesHcc3RegAmpsConfig, cur)
if err == nil {
wb.curr = cur
}

return err
}

var _ api.Meter = (*MenneckesHcc3)(nil)
var _ api.Meter = (*MennekesHcc3)(nil)

// CurrentPower implements the api.Meter interface
func (wb *MenneckesHcc3) CurrentPower() (float64, error) {
b, err := wb.conn.ReadInputRegisters(menneckesHcc3RegPower, 2)
func (wb *MennekesHcc3) CurrentPower() (float64, error) {
b, err := wb.conn.ReadInputRegisters(mennekesHcc3RegPower, 2)
if err != nil {
return 0, err
}

return rs485.RTUUint32ToFloat64Swapped(b), nil
}

var _ api.ChargeRater = (*MenneckesHcc3)(nil)
var _ api.ChargeRater = (*MennekesHcc3)(nil)

// ChargedEnergy implements the api.MeterEnergy interface
func (wb *MenneckesHcc3) ChargedEnergy() (float64, error) {
b, err := wb.conn.ReadInputRegisters(menneckesHcc3RegEnergy, 2)
func (wb *MennekesHcc3) ChargedEnergy() (float64, error) {
b, err := wb.conn.ReadInputRegisters(mennekesHcc3RegEnergy, 2)
if err != nil {
return 0, err
}

return rs485.RTUUint32ToFloat64Swapped(b) / 1e3, nil
}

var _ api.Diagnosis = (*MenneckesHcc3)(nil)
var _ api.Diagnosis = (*MennekesHcc3)(nil)

// Diagnose implements the api.Diagnosis interface
func (wb *MenneckesHcc3) Diagnose() {
if b, err := wb.conn.ReadInputRegisters(menneckesHcc3RegName, 11); err == nil {
func (wb *MennekesHcc3) Diagnose() {
if b, err := wb.conn.ReadInputRegisters(mennekesHcc3RegName, 11); err == nil {
fmt.Printf("Name: %s\n", encoding.StringLsbFirst(b))
}

if b, err := wb.conn.ReadInputRegisters(menneckesHcc3RegPhases, 1); err == nil {
if b, err := wb.conn.ReadInputRegisters(mennekesHcc3RegPhases, 1); err == nil {
fmt.Printf("Phases: %d\n", binary.BigEndian.Uint16(b))
}

if b, err := wb.conn.ReadInputRegisters(menneckesHcc3RegSerial, 2); err == nil {
if b, err := wb.conn.ReadInputRegisters(mennekesHcc3RegSerial, 2); err == nil {
fmt.Printf("Serial: %d\n", binary.LittleEndian.Uint32(b))
}
}
4 changes: 2 additions & 2 deletions templates/definition/charger/menneckes-hcc3.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
template: menneckes-hcc3
template: mennekes-hcc3
covers: ["amtron"]
products:
- brand: Mennekes
Expand All @@ -11,5 +11,5 @@ params:
choice: ["tcpip"]
id: 255
render: |
type: menneckes-hcc3
type: mennekes-hcc3
{{- include "modbus" . }}

0 comments on commit c1a3d11

Please sign in to comment.