diff --git a/charger/bender.go b/charger/bender.go index d8177a338..a6018c839 100644 --- a/charger/bender.go +++ b/charger/bender.go @@ -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) + } } diff --git a/templates/definition/charger/bender.yaml b/templates/definition/charger/bender.yaml index c51181443..0eb3c5881 100644 --- a/templates/definition/charger/bender.yaml +++ b/templates/definition/charger/bender.yaml @@ -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 diff --git a/templates/docs/charger/bender_0.yaml b/templates/docs/charger/bender_0.yaml index 6209a51bd..b0e38a23d 100644 --- a/templates/docs/charger/bender_0.yaml +++ b/templates/docs/charger/bender_0.yaml @@ -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 diff --git a/templates/docs/charger/bender_1.yaml b/templates/docs/charger/bender_1.yaml index 20d407248..ee6c18ba8 100644 --- a/templates/docs/charger/bender_1.yaml +++ b/templates/docs/charger/bender_1.yaml @@ -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 diff --git a/templates/docs/charger/bender_2.yaml b/templates/docs/charger/bender_2.yaml index a055d12b3..ae1fc62b2 100644 --- a/templates/docs/charger/bender_2.yaml +++ b/templates/docs/charger/bender_2.yaml @@ -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 diff --git a/templates/docs/charger/bender_3.yaml b/templates/docs/charger/bender_3.yaml index e2fad4073..1b1896c10 100644 --- a/templates/docs/charger/bender_3.yaml +++ b/templates/docs/charger/bender_3.yaml @@ -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 diff --git a/templates/docs/charger/bender_4.yaml b/templates/docs/charger/bender_4.yaml index fff028ecf..7aef2b79e 100644 --- a/templates/docs/charger/bender_4.yaml +++ b/templates/docs/charger/bender_4.yaml @@ -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 diff --git a/templates/docs/charger/bender_5.yaml b/templates/docs/charger/bender_5.yaml index a09729b88..e07c9e5f3 100644 --- a/templates/docs/charger/bender_5.yaml +++ b/templates/docs/charger/bender_5.yaml @@ -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 diff --git a/templates/docs/charger/bender_6.yaml b/templates/docs/charger/bender_6.yaml index db96fd58d..34177b1b9 100644 --- a/templates/docs/charger/bender_6.yaml +++ b/templates/docs/charger/bender_6.yaml @@ -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 diff --git a/templates/docs/charger/bender_7.yaml b/templates/docs/charger/bender_7.yaml index f0c0bc72f..dbd9f3e0a 100644 --- a/templates/docs/charger/bender_7.yaml +++ b/templates/docs/charger/bender_7.yaml @@ -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 diff --git a/templates/docs/charger/bender_8.yaml b/templates/docs/charger/bender_8.yaml index ebf44a767..8f7c46bc8 100644 --- a/templates/docs/charger/bender_8.yaml +++ b/templates/docs/charger/bender_8.yaml @@ -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 diff --git a/templates/docs/charger/bender_9.yaml b/templates/docs/charger/bender_9.yaml index 7c304b4c4..c382c22f5 100644 --- a/templates/docs/charger/bender_9.yaml +++ b/templates/docs/charger/bender_9.yaml @@ -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