Mennekes: fix typo (#12932)
This commit is contained in:
parent
8742532d85
commit
c1a3d11f9a
3 changed files with 39 additions and 39 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
@ -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,
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -123,25 +123,25 @@ 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
|
||||
}
|
||||
|
|
@ -149,11 +149,11 @@ func (wb *MenneckesHcc3) MaxCurrent(current int64) error {
|
|||
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
|
||||
}
|
||||
|
|
@ -161,11 +161,11 @@ func (wb *MenneckesHcc3) CurrentPower() (float64, error) {
|
|||
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
|
||||
}
|
||||
|
|
@ -173,19 +173,19 @@ func (wb *MenneckesHcc3) ChargedEnergy() (float64, error) {
|
|||
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))
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
template: menneckes-hcc3
|
||||
template: mennekes-hcc3
|
||||
covers: ["amtron"]
|
||||
products:
|
||||
- brand: Mennekes
|
||||
|
|
@ -11,5 +11,5 @@ params:
|
|||
choice: ["tcpip"]
|
||||
id: 255
|
||||
render: |
|
||||
type: menneckes-hcc3
|
||||
type: mennekes-hcc3
|
||||
{{- include "modbus" . }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue