Bender: Add identify support (#3115)

This commit is contained in:
premultiply 2022-04-09 11:11:59 +02:00 • committed by GitHub
parent baa5c30485
commit 68db9b27dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 51 additions and 17 deletions

View file

@ -18,9 +18,10 @@ package charger
// SOFTWARE.
// Supports all chargers based on Bender CC612/613 controller series
// * The modbus server must be enabled
// * The setting 'Modbus Slave Register Address Set' must NOT be set to 'Phoenix' or 'TQ-DM100'.
// Use the third selection labeled 'Ebee', 'Bender' etc.
// * The 'Modbus TCP Server for energy management systems' must be enabled.
// * The setting 'Register Address Set' must NOT be set to 'Phoenix' or 'TQ-DM100'.
// Use the third selection labeled 'Ebee', 'Bender', 'MENNEKES' etc.
// * Set 'Allow UID Disclose' to On
import (
"encoding/binary"
@ -47,6 +48,7 @@ const (
bendRegActivePower = 220 // Active Power from primary meter (W)
bendRegChargedEnergy = 716 // Sum of charged energy for the current session (Wh)
bendRegChargingDuration = 718 // Duration since beginning of charge (Seconds)
bendRegUserID = 720 // User ID (OCPP IdTag) from the current session. Bytes 0 to 19.
bendRegEVCCID = 741 // ASCII representation of the Hex. Values corresponding to the EVCCID. Bytes 0 to 11.
bendRegHemsCurrentLimit = 1000 // Current limit of the HEMS module (A)
@ -231,12 +233,27 @@ var _ api.Identifier = (*BenderCC)(nil)
// Identify implements the api.Identifier interface
func (wb *BenderCC) Identify() (string, error) {
b, err := wb.conn.ReadHoldingRegisters(bendRegEVCCID, 6)
b, err := wb.conn.ReadHoldingRegisters(bendRegSmartVehicleDetected, 1)
if err != nil {
return "", err
}
return string(b), nil
if binary.BigEndian.Uint16(b) != 0 {
e, err := wb.conn.ReadHoldingRegisters(bendRegEVCCID, 6)
if err != nil {
return "", err
}
if string(e) != "" {
return string(e), nil
}
}
u, err := wb.conn.ReadHoldingRegisters(bendRegUserID, 10)
if err != nil {
return "", err
}
return string(u), nil
}
var _ api.Diagnosis = (*BenderCC)(nil)
@ -258,4 +275,10 @@ func (wb *BenderCC) Diagnose() {
if b, err := wb.conn.ReadHoldingRegisters(bendRegSmartVehicleDetected, 1); err == nil {
fmt.Printf("\tSmart Vehicle:\t%t\n", binary.BigEndian.Uint16(b) != 0)
}
if b, err := wb.conn.ReadHoldingRegisters(bendRegEVCCID, 6); err == nil {
fmt.Printf("\tEVCCID:\t%s\n", b)
}
if b, err := wb.conn.ReadHoldingRegisters(bendRegUserID, 10); err == nil {
fmt.Printf("\tUserID:\t%s\n", b)
}
}

View file

@ -32,8 +32,9 @@ products:
generic: Heinz
requirements:
description:
de: Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
en: The Modbus server must be enabled. The setting 'Modbus Slave Register Address Set' must NOT be set to 'Phoenix' or 'TQ-DM100'. Use the third selection labeled 'Ebee', 'Bender' etc.
de: Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
en: The 'Modbus TCP Server' must be enabled. The setting 'Register Address Set' must NOT be set to 'Phoenix' or 'TQ-DM100'. Use the third selection labeled 'Ebee', 'Bender', 'MENNEKES' etc. Set 'Allow UID Disclose' to On.
evcc: ["sponsorship"]
params:
- name: host
required: true

View file

@ -1,8 +1,9 @@
product:
brand: Bender
description: CC612/613
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Mennekes
description: Amedio, Amtron ChargeControl, Professional
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Webasto
description: Live
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Juice
description: Charger Me
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: TechniSat
description: Technivolt
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Ebee
description: Wallbox
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Optec
description: Mobility One
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Garo
description: GLB, GLB+, LS4, LS4 compact
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Ensto
description: Chago Wallbox
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template

View file

@ -1,8 +1,9 @@
product:
brand: Ubitricity
description: Heinz
requirements: ["sponsorship"]
description: |
Der Modbus Server muss aktiviert sein. 'Modbus Slave Register Address Set' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender' etc. ist richtig.
Der 'Modbus TCP Server für Energiemanagement-Systeme' muss aktiviert sein. 'Registersatz' darf NICHT auf 'Phoenix' oder 'TQ-DM100' eingestellt sein. Die dritte Auswahlmöglichkeit 'Ebee', 'Bender', 'MENNEKES' etc. ist richtig. 'UID Übertragung erlauben' muss aktiviert sein.
render:
- default: |
type: template