Contribute configuration for HTTP URL Thing to support Bender CC613 Wallbox

Hello,

I used the HTTP URL Thing to link in my Bender CC613 charge controller of my wallbox. Is there a possibility to contribute this to OpenHAB?

The configuration of thing is as follows:

// RestAPI documentation: http://wallbox-1/legacy/doc/doc_3

Thing http:url:wallbox-1 "Bender CC613" @ "Garage" [
    baseURL="http://wallbox-1/rest",
    refresh=5,
    contentType="text/plain"
] {
    Channels:
        Type string : conn_state "conn_state" [ stateExtension="conn_state" ]
        // event/conn_state
        Type string : auth_state "auth_state" [ stateExtension="auth_state" ]
        // event/auth_state
        Type string : auth_uid "auth_uid" [ stateExtension="auth_uid" ]
        // event/auth_uid
        Type number : time_since_charging_start "time_since_charging_start" [ stateExtension="time_since_charging_start" ]
        Type number : meter_wh "meter_wh" [ stateExtension="meter_wh" ]
        // event/meter_wh
        Type number : power_w "power_w" [ stateExtension="power_w" ]
        // event/power_w
        Type number : transaction_wh "transaction_wh" [ stateExtension="transaction_wh" ]
        // event/transaction_wh
        Type string : display_text "display_text" [ stateExtension="display_text" ]
        // event/display_text
        Type string : cp_id "cp_id" [ stateExtension="cp_id" ]
        Type string : ocpp_state "ocpp_state" [ stateExtension="ocpp_state" ]
        Type string : type2_state "type2_state" [ stateExtension="type2_state" ]
        Type string : type2_proximity "type2_proximity" [ stateExtension="type2_proximity" ]
        Type number : sig_current "sig_current" [ stateExtension="sig_current" ]
        Type string : schuko_state "schuko_state" [ stateExtension="schuko_state" ]
        Type string : backend_conn_state "backend_conn_state" [ stateExtension="backend_conn_state" ]
        Type string : free_charging "free_charging" [ stateExtension="free_charging" ]
        Type string : slave_state "slave_state" [ stateExtension="slave_state" ]
        Type string : ocpp_meter_cfg "ocpp_meter_cfg" [ stateExtension="ocpp_meter_cfg" ]
        Type string : ocpp_meter_serial "ocpp_meter_serial" [ stateExtension="ocpp_meter_serial" ]
        Type string : current_a "current_a" [ stateExtension="current_a" ]
        Type number : energy_man_current "energy_man_current" [ stateExtension="energy_man_current" ]
        Type string : ambient_temp "ambient_temp" [ stateExtension="ambient_temp" ]
        Type string : firmware_ver "firmware_ver" [ stateExtension="firmware_ver" ]
        Type string : cc_serial_n "cc_serial_n" [ stateExtension="cc_serial_n" ]
        Type number : con_cycles_schuko "con_cycles_schuko" [ stateExtension="con_cycles_schuko" ]
        Type number : con_cycles_type2 "con_cycles_type2" [ stateExtension="con_cycles_type2" ]
        Type number : max_current "max_current" [ stateExtension="max_current" ]
        Type string : rcmb_state "rcmb_state" [ stateExtension="rcmb_state" ]
        // event/rcmb_state
        Type string : rcmb_max "rcmb_max" [ stateExtension="rcmb_max" ]
        Type string : rcmb_values "rcmb_values" [ stateExtension="rcmb_values" ]
        Type string : cable_attached "cable_attached" [ stateExtension="cable_attached" ]
        Type string : schuko_cfg "schuko_cfg" [ stateExtension="schuko_cfg" ]
        Type string : rcd_state "rcd_state" [ stateExtension="rcd_state" ]
        // event/rcd_state
        Type string : mcb_type2_state "mcb_type2_state" [ stateExtension="mcb_type2_state" ]
        // event/mcb_type2_state
        Type string : mcb_schuko_state "mcb_schuko_state" [ stateExtension="mcb_schuko_state" ]
        // event/mcb_schuko_state
        Type string : cp_vendor "cp_vendor" [ stateExtension="cp_vendor" ]
        Type string : errors "errors" [ stateExtension="errors" ]
        Type string : cp_model "cp_model" [ stateExtension="cp_model" ]
        Type string : full_state "full_state" [ stateExtension="full_state" ]
        // event/full_state
//        Type string : dev_dbg "dev_dbg" [ stateExtension="dev_dbg" ]
//        Type string : ocpp "ocpp" [ stateExtension="ocpp" ]
//        Type string : ps "ps" [ stateExtension="ps" ]
}

The following is the corresponding items configuration:

String Wallbox1_conn_state "Wallbox-1 - Connection State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:conn_state" }
String Wallbox1_auth_state "Wallbox-1 - Authorization State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:auth_state" }
String Wallbox1_auth_uid "Wallbox-1 - Authorization UID" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:auth_uid" }
Number:Time Wallbox1_time_since_charging_start "Wallbox-1 - Time Since Charging Start [%d s]" (gWallbox1) ["Measurement", "Duration"] {
    channel="http:url:wallbox-1:time_since_charging_start" }
Number:Energy Wallbox1_meter_wh "Wallbox-1 - Meter Energy Total [%d Wh]" (gWallbox1) ["Measurement", "Energy"] {
    channel="http:url:wallbox-1:meter_wh" }
Number:Power Wallbox1_power_w "Wallbox-1 - Power [%d W]" (gWallbox1) ["Measurement", "Power"] {
    channel="http:url:wallbox-1:power_w" }
Number:Energy Wallbox1_transaction_wh "Wallbox-1 - Energy Last Transaction [%d Wh]" (gWallbox1) ["Measurement", "Energy"] {
    channel="http:url:wallbox-1:transaction_wh" }
String Wallbox1_display_text "Wallbox-1 - Display Text" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:display_text" }
String Wallbox1_cp_id "Wallbox-1 - ChargePoint ID" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:cp_id" }
String Wallbox1_ocpp_state "Wallbox-1 - OCPP State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:ocpp_state" }
String Wallbox1_type2_state "Wallbox-1 - Type2 State [MAP(bender_type2_state.map):%s]" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:type2_state" }
String Wallbox1_type2_proximity "Wallbox-1 - Type2 Proximity" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:type2_proximity" }
Number:ElectricCurrent Wallbox1_sig_current "Wallbox-1 - Signaled Current [%d A]" (gWallbox1) ["Setpoint", "Current"] {
    channel="http:url:wallbox-1:sig_current" }
String Wallbox1_schuko_state "Wallbox-1 - Schuko State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:schuko_state" }
String Wallbox1_backend_conn_state "Wallbox-1 - Backend Connection State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:backend_conn_state" }
String Wallbox1_free_charging "Wallbox-1 - Free Charging" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:free_charging" }
String Wallbox1_slave_state "Wallbox-1 - Slave State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:slave_state" }
String Wallbox1_ocpp_meter_cfg "Wallbox-1 - OCPP Meter Configuration [MAP(bender_ocpp_meter_cfg.map):%s]" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:ocpp_meter_cfg" }
String Wallbox1_ocpp_meter_serial "Wallbox-1 - OCPP Meter Serial" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:ocpp_meter_serial" }
String Wallbox1_current_a_str "Wallbox-1 - Current" (gWallbox1) ["Measurement"] {
    channel="http:url:wallbox-1:current_a" }
Number:ElectricCurrent Wallbox1_energy_man_current "Wallbox-1 - Energy Manager Current [%d A]" (gWallbox1) ["Status", "Current"] {
    channel="http:url:wallbox-1:energy_man_current" }
String Wallbox1_ambient_temp_str "Wallbox-1 - Ambient Temperature [%s °C]" (gWallbox1) ["Measurement", "Temperature"] {
    channel="http:url:wallbox-1:ambient_temp" }
String Wallbox1_firmware_ver "Wallbox-1 - Firmware Version" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:firmware_ver" }
String Wallbox1_cc_serial_n "Wallbox-1 - Controller serial number" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:cc_serial_n" }
Number:Dimensionless Wallbox1_con_cycles_schuko "Wallbox-1 - Contactor Cycles Schuko" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:con_cycles_schuko" }
Number:Dimensionless Wallbox1_con_cycles_type2 "Wallbox-1 - Contactor Cycles Type2" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:con_cycles_type2" }
Number:ElectricCurrent Wallbox1_max_current "Wallbox-1 - Maximum Current [%d A]" (gWallbox1) ["Status", "Current"] {
    channel="http:url:wallbox-1:max_current" }
String Wallbox1_rcmb_state "Wallbox-1 - RCMB/FI State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:rcmb_state" }
String Wallbox1_rcmb_max_str "Wallbox-1 - RCMB/FI Last Transaction Maximum" (gWallbox1) ["Measurement"] {
    channel="http:url:wallbox-1:rcmb_max" }
String Wallbox1_rcmb_values_str "Wallbox-1 - RCMB/FI Current Values" (gWallbox1) ["Measurement"] {
    channel="http:url:wallbox-1:rcmb_values" }
String Wallbox1_cable_attached "Wallbox-1 - Cable Attached" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:cable_attached" }
String Wallbox1_schuko_cfg "Wallbox-1 - Schuko Configuration" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:schuko_cfg" }
String Wallbox1_rcd_state "Wallbox-1 - RCD/FI State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:rcd_state" }
String Wallbox1_mcb_type2_state "Wallbox-1 - MCB/LS Type2 State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:mcb_type2_state" }
String Wallbox1_mcb_schuko_state "Wallbox-1 - MCB/LS Schuko State" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:mcb_schuko_state" }
String Wallbox1_cp_vendor "Wallbox-1 - ChargePoint Vendor" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:cp_vendor" }
String Wallbox1_errors "Wallbox-1 - Errors" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:errors" }
String Wallbox1_cp_model "Wallbox-1 - ChargePoint Model" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:cp_model" }
//String Wallbox1_full_state "Wallbox-1 - Full State" (gWallbox1) ["Status"] {
//    channel="http:url:wallbox-1:full_state" }
//String Wallbox1_dev_dbg "Wallbox-1 - Development/Debug" (gWallbox1) ["Status"] {
//    channel="http:url:wallbox-1:dev_dbg" }
//String Wallbox1_ocpp "Wallbox-1 - OCPP" (gWallbox1) ["Status"] {
//    channel="http:url:wallbox-1:ocpp" }
//String Wallbox1_ps "Wallbox-1 - PS" (gWallbox1) ["Status"] {
//    channel="http:url:wallbox-1:ps" }

String Wallbox1_conn_state_simple "Wallbox-1 - Connection State (Simple) [MAP(bender_conn_state_simple.map):%s]" (gWallbox1) ["Status"] {
    channel="http:url:wallbox-1:conn_state" }
Number:ElectricCurrent Wallbox1_current_a_L1 "Wallbox-1 - Current - L1 [%s A]" (gWallbox1) ["Measurement", "Current"]
Number:ElectricCurrent Wallbox1_current_a_L2 "Wallbox-1 - Current - L2 [%s A]" (gWallbox1) ["Measurement", "Current"]
Number:ElectricCurrent Wallbox1_current_a_L3 "Wallbox-1 - Current - L3 [%s A]" (gWallbox1) ["Measurement", "Current"]
Number:Temperature Wallbox1_ambient_temp "Wallbox-1 - Ambient Temperature [%.2f °C]" (gWallbox1) ["Measurement", "Temperature"]
Number:ElectricCurrent Wallbox1_rcmb_max_rms "Wallbox-1 - RCMB/FI Last Transaction Maximum - RMS [%.1f mA]" (gWallbox1) ["Measurement", "Current"]
Number:ElectricCurrent Wallbox1_rcmb_max_dc "Wallbox-1 - RCMB/FI Last Transaction Maximum - DC [%.1f mA]" (gWallbox1) ["Measurement", "Current"]
Number:ElectricCurrent Wallbox1_rcmb_values_rms "Wallbox-1 - RCMB/FI Current Values - RMS [%.1f mA]" (gWallbox1) ["Measurement", "Current"]
Number:ElectricCurrent Wallbox1_rcmb_values_dc "Wallbox-1 - RCMB/FI Current Values - DC [%.1f mA]" (gWallbox1) ["Measurement", "Current"]

Currently I’m only reading the status. But in the future, I’ll extend it to load my vehicle dependent on photovoltaic power available.

Bye,
Tobias

2 Likes

In the meantime I also wrote a thing and an item configuration for the Modbus TCP access to the Bender CC613 controller. The CC613 provides register “#1000 Hems Current Limit (A)” that allows to set the maximum current the vehicle should load with. I wrote a rule to continuously set this register based on photovoltaic energy production and the building’s excessive energy available. This increases the own generated energy usage from photovoltaic system (“Eigenverbrauch” in German) by only consuming energy, when it’s available excessive (“PV-Überschussladen” in German).

I uploaded all reference configurations to GitHub here: GitHub - tobylorenz/openhab-config: OpenHAB reference configuration (things, transformations, items, rules)