Hi,
I recently got a Juice Charger me wallbox and worked out how to integrate this device into Home Assistant.
This is still WIP, but these are my results so far.
Please also see this GitHub thread for further information (also regarding EVCC integration) .
support pages:
Juice Charger me
Bender charge controller CC613
charger controller wiki
firmware:
manuals:
Juice installation guide
Juice manual
Bender charge controller manual (English)
Bender charge controller manual (German)
further documentation:
list of compatible energy meters
list of compatible wifi usb sticks
list of compatible RFID cards
links / web access:
web interface v2: http://ip_address
old web interface (operator settings): http://ip_address/legacy/operator
old web interface (manufacturer settings): http://ip_address/legacy/manufacturer
operator login data:
user: operator
password: JuiCeMeUP!
or
user: operator
password: yellow_zone
manufacturer login data:
user: manufacturer
password: see here (thanks to drfisheye!)
user: manufacturer
password: orange_zone
Modbus meter connection:
meter MODBUS A → Bender CC613 MODBUS A
meter MODBUS B → Bender CC613 MODBUS B
meter MODBUS GND → Bender CC613 PE
I used telephone cable to connect the meter to the charge controller (Bender CC613).
All wires have to be connected to panel “B”.
Please see Bender CC613 manual (page 14, see above) for details
Modbus meter configuration:
Meter slave ID: 1
Baudrate: 9600
Parity: none
Data Bit: 8
Stop Bit: 1
firmware downgrade:
In case you need to downgrade your firmware, the following instructions should work:
- copy the older firmware to /home/charge, e. g. via WinSCP
- login via SSH, e. g. via PuTTY / KiTTY (user: root; password: manufacturer password)
- cd /home/charge
- opkg install FILENAME --force-downgrade
OCPP compatibility:
-
OCPP plugin for Home Assistant
with capability of direct integration into Home Assistant dashboards -
SteVe OCPP server
with capability of integration into Home Assistant via CURL sensors (WIP):
- platform: command_line
command: 'curl -H "STEVE-API-KEY: YOUR_KEY_HERE" http://YOUR_IP_HERE:8080/steve/api/v1/transactions?periodType=TODAY'
name: SteVe-OCPP - REST - heutige Transaktionen
json_attributes:
- chargeBoxId
- chargeBoxPk
- connectorId
- id
- ocppIdTag
- ocppTagPk
- startTimestamp
- startValue
- stopEventActor
- stopReason
- stopTimestamp
- stopValue
value_template: '{{ value_json }}'
scan_interval: 60
command_timeout: 10
- platform: command_line
command: 'curl -H "STEVE-API-KEY: YOUR_KEY_HERE" http://YOUR_IP_HERE:8080/steve/api/v1/transactions?periodType=ALL'
name: SteVe-OCPP - REST - alle Transaktionen
json_attributes:
- chargeBoxId
- chargeBoxPk
- connectorId
- id
- ocppIdTag
- ocppTagPk
- startTimestamp
- startValue
- stopEventActor
- stopReason
- stopTimestamp
- stopValue
value_template: '{{ value_json }}'
scan_interval: 60
command_timeout: 10
- platform: command_line
command: 'curl -H "STEVE-API-KEY: YOUR_KEY_HERE" http://YOUR_IP_HERE:8080/steve/api/v1/ocppTags'
name: SteVe-OCPP - REST - OCPP-Tags
json_attributes:
- activeTransactionCount
- blocked
- expiryDate
- idTag
- inTransaction
- maxActiveTransactionCount
- note
- ocppTagPk
- parentIdTag
- parentOcppTagPk
value_template: '{{ value_json }}'
scan_interval: 60
command_timeout: 10
REST sensor configuration:
- platform: rest
name: Juice Charger me - REST - KFZ-Verbindungs-Status
resource: http://192.168.2.75/rest/conn_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'no_vehicle_connected' %}
kein Fahrzeug angeschlossen
{% elif value == 'vehicle_connected_schuko' %}
Fahrzeug an SCHUKO-Steckdose angeschlossen - kein Lade-Vorgang
{% elif value == 'vehicle_charging_schuko' %}
Fahrzeug an SCHUKO-Steckdose angeschlossen - lädt
{% elif value == 'vehicle_connected_type2' %}
Fahrzeug an Typ 2-Steckdose angeschlossen - kein Lade-Vorgang
{% elif value == 'vehicle_charging_type2' %}
Fahrzeug an Typ 2-Steckdose angeschlossen - lädt
{% elif value == 'vehicle_connector_error' %}
Verbindungs-Fehler
{% endif %}
- platform: rest
name: Juice Charger me - REST - Autorisierungs-Status
resource: http://192.168.2.75/rest/auth_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'not_authorized_for_charging' %}
keine Lade-Autorisierung
{% elif value == 'wait_for_auth' %}
warte auf Lade-Autorisierung
{% elif value == 'authorized_for_charging' %}
Lade-Autorisierung erfolgt
{% elif value == 'auth_timeout' %}
Autorisierungs-Timeout
{% endif %}
- platform: rest
name: Juice Charger me - REST - Autorisierungs-UID
resource: http://192.168.2.75/rest/auth_uid
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Zeit seit Lade-Beginn (sec)
resource: http://192.168.2.75/rest/time_since_charging_start
verify_ssl: false
scan_interval: 60
unit_of_measurement: "sec"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Zeit seit Lade-Beginn (min)
resource: http://192.168.2.75/rest/time_since_charging_start
verify_ssl: false
scan_interval: 60
unit_of_measurement: "min"
value_template: " {{ value | multiply(0.0166666666666667) | round(0) }} "
- platform: rest
name: Juice Charger me - REST - Zähler-Stand gesamt (Wh)
resource: http://192.168.2.75/rest/meter_wh
verify_ssl: false
scan_interval: 60
unit_of_measurement: "Wh"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Zähler-Stand gesamt (kWh)
resource: http://192.168.2.75/rest/meter_wh
verify_ssl: false
scan_interval: 60
unit_of_measurement: "kWh"
value_template: " {{ value | multiply(0.001) }} "
- platform: rest
name: Juice Charger me - REST - Leistung (W)
resource: http://192.168.2.75/rest/power_w
verify_ssl: false
scan_interval: 60
unit_of_measurement: "W"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Leistung (kW)
resource: http://192.168.2.75/rest/power_w
verify_ssl: false
scan_interval: 60
unit_of_measurement: "kW"
value_template: " {{ value | multiply(0.001) }} "
- platform: rest
name: Juice Charger me - REST - geladene Energie (aktuelle Transaktion) (Wh)
resource: http://192.168.2.75/rest/transaction_wh
verify_ssl: false
scan_interval: 60
unit_of_measurement: "Wh"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - geladene Energie (aktuelle Transaktion) (kWh)
resource: http://192.168.2.75/rest/transaction_wh
verify_ssl: false
scan_interval: 60
unit_of_measurement: "kWh"
value_template: " {{ value | multiply(0.001) }} "
- platform: rest
name: Juice Charger me - REST - OCPP-Charging Point-ID
resource: http://192.168.2.75/rest/cp_id
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - OCPP-Status
resource: http://192.168.2.75/rest/ocpp_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'available' %}
verfĂĽgbar
{% elif value == 'occupied' %}
besetzt
{% elif value == 'reserved' %}
reserviert
{% elif value == 'unavailable' %}
nicht verfĂĽgbar
{% elif value == 'faulted' %}
Fehler
{% elif value == 'preparing' %}
Vorbereitung
{% elif value == 'charging' %}
lädt
{% elif value == 'suspendedevse' %}
verbunden - Laden pausiert durch Wallbox
{% elif value == 'suspendedev' %}
verbunden - Laden pausiert durch eKFZ
{% elif value == 'finishing' %}
Vorgang wird beendet
{% endif %}
- platform: rest
name: Juice Charger me - REST - Typ 2-Status
resource: http://192.168.2.75/rest/type2_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'a' %}
a
{% elif value == 'b' %}
b
{% elif value == 'c' %}
c
{% elif value == 'd' %}
d
{% elif value == 'e' %}
e
{% endif %}
- platform: rest
name: Juice Charger me - REST - Typ 2-Proximity
resource: http://192.168.2.75/rest/type2_proximity
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'no_cable' %}
kein Kabel angeschlossen
{% elif value == '13' %}
13
{% elif value == '20' %}
20
{% elif value == '32' %}
32
{% elif value == '63' %}
63
{% elif value == 'cable_attached' %}
Kabel angeschlossen
{% elif value == 'short_circuit' %}
Kurzschluss
{% endif %}
- platform: rest
name: Juice Charger me - REST - aktuelle Kabel-Signatur (A)
resource: http://192.168.2.75/rest/sig_current
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Schuko-Status
resource: http://192.168.2.75/rest/schuko_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'idle' %}
Leerlauf
{% elif value == 'connected' %}
verbunden
{% elif value == 'power_on' %}
aktiviert
{% endif %}
- platform: rest
name: Juice Charger me - REST - Backend-Verbindungs-Status
resource: http://192.168.2.75/rest/backend_conn_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'not_connected' %}
nicht verbunden
{% elif value == 'connecting' %}
wird verbunden
{% elif value == 'connecting_proxy_ok' %}
wird verbunden - Proxy OK
{% elif value == 'connected' %}
verbunden
{% elif value == 'not_reachable' %}
nicht erreichbar
{% elif value == 'rejected' %}
Verbindung verweigert
{% elif value == 'pending' %}
ausstehend
{% endif %}
- platform: rest
name: Juice Charger me - REST - kostenloses Laden
resource: http://192.168.2.75/rest/free_charging
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'off' %}
deaktiviert
{% elif value == 'on' %}
aktiviert
{% endif %}
- platform: rest
name: Juice Charger me - REST - Slave-Status
resource: http://192.168.2.75/rest/slave_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'available' %}
verfĂĽgbar
{% elif value == 'occupied' %}
besetzt
{% elif value == 'reserved' %}
reserviert
{% elif value == 'unavailable' %}
nicht verfĂĽgbar
{% elif value == 'faulted' %}
Fehler
{% elif value == 'preparing' %}
Vorbereitung
{% elif value == 'charging' %}
lädt
{% elif value == 'suspendedevse' %}
verbunden - Laden pausiert durch Wallbox
{% elif value == 'suspendedev' %}
verbunden - Laden pausiert durch eKFZ
{% elif value == 'finishing' %}
Vorgang wird beendet
{% endif %}
- platform: rest
name: Juice Charger me - REST - OCPP-Zähler-Konfigurations-Profil
resource: http://192.168.2.75/rest/ocpp_meter_cfg
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - OCPP-Zähler-Seriennummer
resource: http://192.168.2.75/rest/ocpp_meter_serial
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Stromstärke alle Phasen
resource: http://192.168.2.75/rest/current_a
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Stromstärke L1
resource: http://192.168.2.75/rest/current_a
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value.split(',')[0] }} "
- platform: rest
name: Juice Charger me - REST - Stromstärke L2
resource: http://192.168.2.75/rest/current_a
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value.split(',')[1] }} "
- platform: rest
name: Juice Charger me - REST - Stromstärke L3
resource: http://192.168.2.75/rest/current_a
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value.split(',')[2] }} "
- platform: rest
name: Juice Charger me - REST - Energy Man Current (A)
resource: http://192.168.2.75/rest/energy_man_current
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Wallbox-Temperatur
resource: http://192.168.2.75/rest/ambient_temp
verify_ssl: false
scan_interval: 60
unit_of_measurement: "°C"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Firmware-Version
resource: http://192.168.2.75/rest/firmware_ver
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Laderegler-Seriennummer
resource: http://192.168.2.75/rest/cc_serial_n
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Anzahl Steck-Vorgänge Schuko
resource: http://192.168.2.75/rest/con_cycles_schuko
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Anzahl Steck-Vorgänge Typ 2-Stecker
resource: http://192.168.2.75/rest/con_cycles_type2
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - maximale Stromstärke (A)
resource: http://192.168.2.75/rest/max_current
verify_ssl: false
scan_interval: 60
unit_of_measurement: "A"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - RCMB-Status
resource: http://192.168.2.75/rest/rcmb_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'triggered' %}
ausgelöst
{% elif value == 'okay' %}
OK
{% endif %}
- platform: rest
name: Juice Charger me - REST - RCMB-Werte maximal
resource: http://192.168.2.75/rest/rcmb_max_values
verify_ssl: false
scan_interval: 60
unit_of_measurement: "mA"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - RCMB-Wert maximal (1)
resource: http://192.168.2.75/rest/rcmb_max_values
verify_ssl: false
scan_interval: 60
unit_of_measurement: "mA"
value_template: " {{ value.split(',')[0] }} "
- platform: rest
name: Juice Charger me - REST - RCMB-Wert maximal (2)
resource: http://192.168.2.75/rest/rcmb_max_values
verify_ssl: false
scan_interval: 60
unit_of_measurement: "mA"
value_template: " {{ value.split(',')[1] }} "
- platform: rest
name: Juice Charger me - REST - RCMB-Werte aktuell
resource: http://192.168.2.75/rest/rcmb_current_values
verify_ssl: false
scan_interval: 60
unit_of_measurement: "mA"
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - RCMB-Wert aktuell (1)
resource: http://192.168.2.75/rest/rcmb_current_values
verify_ssl: false
scan_interval: 60
unit_of_measurement: "mA"
value_template: " {{ value.split(',')[0] }} "
- platform: rest
name: Juice Charger me - REST - RCMB-Wert aktuell (2)
resource: http://192.168.2.75/rest/rcmb_current_values
verify_ssl: false
scan_interval: 60
unit_of_measurement: "mA"
value_template: " {{ value.split(',')[1] }} "
- platform: rest
name: Juice Charger me - REST - RCD-Status
resource: http://192.168.2.75/rest/rcd_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'disable' %}
deaktiviert
{% elif value == 'triggered' %}
ausgelöst
{% elif value == 'OK' %}
OK
{% endif %}
- platform: rest
name: Juice Charger me - REST - Kabel verbunden
resource: http://192.168.2.75/rest/cable_attached
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'off' %}
nein
{% elif value == 'on' %}
ja
{% endif %}
- platform: rest
name: Juice Charger me - REST - Schuko-Konfiguration
resource: http://192.168.2.75/rest/schuko_cfg
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'disable' %}
deaktiviert
{% elif value == 'enable' %}
aktiviert
{% endif %}
- platform: rest
name: Juice Charger me - REST - MCB-Typ 2-Status
resource: http://192.168.2.75/rest/mcb_type2_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'disable' %}
deaktiviert
{% elif value == 'triggered' %}
ausgelöst
{% elif value == 'OK' %}
OK
{% endif %}
- platform: rest
name: Juice Charger me - REST - MCB-Schuko-Status
resource: http://192.168.2.75/rest/mcb_schuko_state
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'disable' %}
deaktiviert
{% elif value == 'triggered' %}
ausgelöst
{% elif value == 'OK' %}
OK
{% endif %}
- platform: rest
name: Juice Charger me - REST - Wallbox-Hersteller
resource: http://192.168.2.75/rest/cp_vendor
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Wallbox-Modell
resource: http://192.168.2.75/rest/cp_model
verify_ssl: false
scan_interval: 60
value_template: " {{ value }} "
- platform: rest
name: Juice Charger me - REST - Fehler-Status
resource: http://192.168.2.75/rest/errors
verify_ssl: false
scan_interval: 60
value_template: >
{% if value == 'no_errors' %}
kein Fehler
{% else %}
{{ value }}
{% endif %}
MODBUS sensor configuration:
- name: "juice-charger-me"
close_comm_on_error: true
delay: 0
message_wait_milliseconds: 0
retries: 3
timeout: 10
type: tcp
host: 192.168.2.75
port: 502
sensors:
- name: Juice Charger me - ModBus - Firmware-Version
scan_interval: 60
address: 100
input_type: holding
data_type: string
count: 2
- name: Juice Charger me - ModBus - Protokoll-Version
scan_interval: 60
address: 120
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Control Pilot-Status
scan_interval: 60
address: 122
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Control Pilot-Status (Hex)
scan_interval: 60
address: 123
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Wallbox-VerfĂĽgbarkeit
scan_interval: 60
address: 124
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Kommunikations-Timeout (sec)
unit_of_measurement: sec
scan_interval: 60
address: 132
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Stromstärken-Limit Hardware (A)
unit_of_measurement: A
scan_interval: 60
address: 133
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Stromstärken-Limit Operator (A)
unit_of_measurement: A
scan_interval: 60
address: 134
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - RCMB-Modus
scan_interval: 60
address: 135
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Stecker-Verriegelung
scan_interval: 60
address: 152
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Energie L1 (Wh)
unit_of_measurement: Wh
scan_interval: 60
address: 200
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Energie L2 (Wh)
unit_of_measurement: Wh
scan_interval: 60
address: 202
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Energie L3 (Wh)
unit_of_measurement: Wh
scan_interval: 60
address: 204
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Leistung L1 (W)
unit_of_measurement: W
scan_interval: 60
address: 206
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Leistung L2 (W)
unit_of_measurement: W
scan_interval: 60
address: 208
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Leistung L3 (W)
unit_of_measurement: W
scan_interval: 60
address: 210
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Stromstärke L1 (mA)
unit_of_measurement: mA
scan_interval: 60
address: 212
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Stromstärke L2 (mA)
unit_of_measurement: mA
scan_interval: 60
address: 214
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Stromstärke L3 (mA)
unit_of_measurement: mA
scan_interval: 60
address: 216
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Energie gesamt (Wh)
unit_of_measurement: Wh
scan_interval: 60
address: 218
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Leistung gesamt (W)
unit_of_measurement: W
scan_interval: 60
address: 220
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Spannung L1 (V)
unit_of_measurement: V
scan_interval: 60
address: 222
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Spannung L2 (V)
unit_of_measurement: V
scan_interval: 60
address: 224
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Spannung L3 (V)
unit_of_measurement: V
scan_interval: 60
address: 226
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - angebotener Strom (A)
unit_of_measurement: A
scan_interval: 60
address: 706
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - Start-Zeit
scan_interval: 60
address: 707
input_type: holding
data_type: string
count: 2
- name: Juice Charger me - ModBus - End-Zeit
scan_interval: 60
address: 710
input_type: holding
data_type: string
count: 2
- name: Juice Charger me - ModBus - minimale Stromstärke zum Laden (A)
unit_of_measurement: A
scan_interval: 60
address: 712
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - durch eKFZ benötigte Energie (Wh)
unit_of_measurement: Wh
scan_interval: 60
address: 713
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - maximale Stromstärke zum Laden (A)
unit_of_measurement: A
scan_interval: 60
address: 715
input_type: holding
data_type: uint16
- name: Juice Charger me - ModBus - geladene Energie (Wh)
unit_of_measurement: Wh
scan_interval: 60
address: 716
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - Lade-Dauer (sec)
unit_of_measurement: sec
scan_interval: 60
address: 718
input_type: holding
data_type: uint32
- name: Juice Charger me - ModBus - 15118-Fähigkeit des eKFZ
scan_interval: 60
address: 740
input_type: holding
data_type: uint16
Best regards,
David